popup.css

125.4 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: "Cormorant Garamond", "Times New Roman", serif;168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  padding-bottom: 0.12em;300  font-family: "Cormorant Garamond", "Times New Roman", serif;301  font-style: italic; font-weight: 400;302  font-size: 44px; line-height: 0.95;303  color: var(--peach-t0);304  display: -webkit-box;305  -webkit-line-clamp: 2;306  -webkit-box-orient: vertical;307  overflow: hidden;308  text-wrap: balance;309}310.peach-entry-name--lg { font-size: 40px; }311.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }312.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }313.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }314315/* Trash icon in entry header */316.peach-entry-trash-btn {317  flex-shrink: 0;318  padding: 4px;319  margin-top: 4px;320  background: transparent;321  border: none;322  cursor: pointer;323  color: var(--peach-t2);324  border-radius: 4px;325  transition: color 140ms ease, background 140ms ease;326  display: flex;327  align-items: center;328  justify-content: center;329}330.peach-entry-trash-btn:hover {331  color: var(--peach-t1);332  background: var(--peach-t3);333}334.peach-entry-trash-confirm {335  display: flex;336  align-items: center;337  gap: 6px;338  flex-shrink: 0;339  margin-top: 6px;340  flex-wrap: nowrap;341}342.peach-entry-trash-confirm-label {343  font-family: var(--font-mono);344  font-size: 9px;345  letter-spacing: 0.1em;346  color: var(--peach-t2);347  white-space: nowrap;348}349.peach-entry-name-button {350  padding: 0;351  background: transparent;352  text-align: left;353  cursor: pointer;354  max-width: 100%;355  overflow: hidden;356  display: block;357}358.peach-entry-name-char {359  display: inline-block;360  white-space: pre;361  opacity: 0;362  transform: translateY(0.22em);363  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;364  animation-delay: calc(var(--char-index, 0) * 20ms);365}366367/* Domain */368.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }369.peach-domain-row {370  width: 100%; border: 0; background: transparent; color: inherit;371  padding: 0; display: flex; justify-content: space-between; align-items: baseline;372  cursor: default;373}374.peach-domain-value {375  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;376  font-size: 10px; font-style: italic;377  letter-spacing: 0.12em; color: var(--peach-t1);378}379380/* Fields */381.peach-fields { display: grid; gap: 10px; }382.peach-field-card { display: grid; gap: 7px; }383.peach-label {384  font-family: Inter, system-ui, sans-serif;385  text-transform: uppercase; letter-spacing: 0.2em;386  font-size: 8px; color: var(--peach-t2);387}388.peach-field-value-row {389  display: flex; justify-content: space-between;390  align-items: center; gap: 8px;391  min-width: 0;392}393.peach-field-value {394  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;395  font-size: 13px; color: var(--peach-t1);396  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;397  flex: 1;398  min-width: 0;399}400.peach-password-value {401  display: inline-flex;402  align-items: center;403  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;404  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);405  overflow: hidden;406  text-overflow: ellipsis;407  white-space: nowrap;408  flex: 1;409  min-width: 0;410  max-width: 100%;411}412.peach-password-value.is-revealed {413  font-size: 14px;414  letter-spacing: 0.08em;415}416.peach-password-text,417.peach-password-mask {418  display: block;419  width: 100%;420  overflow: hidden;421  white-space: nowrap;422  /* Render as uniform mid-line bullets, not baseline periods */423  font-family: Inter, system-ui, sans-serif;424  font-size: 10px;425  letter-spacing: 3px;426  user-select: none;427}428.peach-field-actions { display: flex; gap: 4px; align-items: center; }429.peach-password-strength { display: flex; align-items: center; gap: 8px; }430.peach-strength-bar { display: flex; gap: 3px; }431.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }432.peach-strength-label {433  font-family: "IBM Plex Mono", monospace;434  font-style: italic;435  font-size: 9px;436  font-weight: 300;437  min-width: 36px;438  text-align: right;439  color: var(--peach-t2);440  letter-spacing: 0.06em;441}442443.peach-strength-hairline {444  display: flex;445  align-items: center;446  gap: 10px;447  margin-top: -2px;448}449450.peach-strength-hairline-track {451  flex: 1;452  height: 3px;453  border-radius: 2px;454  background: var(--peach-s2);455  overflow: hidden;456}457458.peach-strength-hairline-fill {459  height: 100%;460  border-radius: 2px;461  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),462    background 400ms ease;463}464465/* Note content (display) */466.peach-note-content {467  border-top: 1px solid var(--peach-t3);468  padding-top: 10px;469  font-family: "Cormorant Garamond", "Times New Roman", serif;470  font-size: 15px;471  line-height: 1.75;472  color: var(--peach-t1);473}474475/* ── Inline editing ─────────────────────────────────────────────────── */476477/* Clickable display values */478.peach-inline-clickable {479  cursor: text;480  border-radius: 3px;481  transition: background 150ms ease;482}483.peach-inline-clickable:hover {484  background: rgba(240, 232, 216, 0.05);485}486487/* Subtle "edit" hint that appears on hover */488.peach-inline-edit-hint {489  font-family: Inter, system-ui, sans-serif;490  font-size: 9px;491  text-transform: uppercase;492  letter-spacing: 0.14em;493  color: var(--peach-t2);494  opacity: 0;495  transition: opacity 120ms ease;496  pointer-events: none;497  margin-left: 6px;498  flex-shrink: 0;499}500.peach-domain-row:hover .peach-inline-edit-hint {501  opacity: 1;502}503504/* Title editing */505.peach-inline-title-wrap {506  display: flex;507  flex-direction: column;508  gap: 6px;509}510.peach-inline-title-input {511  font-family: "Cormorant Garamond", "Times New Roman", serif;512  font-style: italic;513  font-weight: 400;514  font-size: 40px;515  line-height: 0.95;516  color: var(--peach-t0);517  background: transparent;518  border: none;519  border-bottom: 1px solid var(--peach-accent);520  outline: none;521  width: 100%;522  padding: 2px 0;523}524525/* Generic inline field */526.peach-inline-field-wrap {527  display: flex;528  flex-direction: column;529  gap: 6px;530}531.peach-inline-input {532  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;533  font-size: 13px;534  color: var(--peach-t0);535  background: transparent;536  border: none;537  border-bottom: 1px solid var(--peach-accent);538  outline: none;539  width: 100%;540  padding: 3px 0;541}542.peach-inline-textarea {543  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;544  font-size: 11px;545  line-height: 1.7;546  color: var(--peach-t0);547  background: rgba(240, 232, 216, 0.04);548  border: 1px solid var(--peach-accent);549  border-radius: 4px;550  outline: none;551  width: 100%;552  padding: 8px;553  resize: vertical;554  min-height: 80px;555}556557/* Save / cancel row */558.peach-inline-actions {559  display: flex;560  gap: 6px;561  align-items: center;562}563.peach-inline-save-btn,564.peach-inline-cancel-btn {565  display: inline-flex;566  align-items: center;567  justify-content: center;568  width: 26px;569  height: 26px;570  border-radius: 4px;571  border: none;572  cursor: pointer;573  transition: background 140ms ease, opacity 140ms ease;574  flex-shrink: 0;575}576.peach-inline-save-btn {577  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);578  color: var(--peach-accent);579}580.peach-inline-save-btn:hover:not(:disabled) {581  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);582}583.peach-inline-cancel-btn {584  background: rgba(240, 232, 216, 0.06);585  color: var(--peach-t2);586}587.peach-inline-cancel-btn:hover:not(:disabled) {588  background: rgba(240, 232, 216, 0.12);589  color: var(--peach-t1);590}591.peach-inline-save-btn:disabled,592.peach-inline-cancel-btn:disabled {593  opacity: 0.4;594  cursor: not-allowed;595}596597/* Inline password generator wrapper */598.peach-inline-generator-wrap {599  margin-top: 10px;600  padding-top: 10px;601  border-top: 1px solid var(--peach-t3);602  display: flex;603  flex-direction: column;604  gap: 8px;605}606.peach-inline-generator-cancel {607  align-self: flex-start;608  font-size: 11px;609  color: var(--peach-t2);610}611612/* "is-editing" card state */613.peach-field-card.is-editing {614  background: rgba(240, 232, 216, 0.02);615  border-radius: 6px;616  padding: 8px;617  margin: -8px;618}619620/* Inline tag editor on Entry detail view */621.peach-inline-tag-editor {622  display: flex;623  flex-direction: column;624  gap: 6px;625}626627/* Quiet inline "+ add X" link in the entry detail body */628.peach-entry-add-link {629  justify-self: start;630  margin-top: 8px;631}632633/* Additional URLs editor revealed by clicking the URL field */634.peach-additional-urls {635  display: flex;636  flex-direction: column;637  gap: 6px;638  margin-top: 8px;639}640.peach-additional-urls-label {641  font-size: 9px;642  letter-spacing: 0.1em;643  text-transform: uppercase;644  color: var(--peach-t2);645  margin-bottom: 2px;646}647.peach-additional-url-row {648  display: flex;649  align-items: center;650  gap: 6px;651}652.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }653.peach-additional-url-remove {654  background: transparent;655  border: 1px solid var(--peach-t3);656  color: var(--peach-t2);657  width: 22px;658  height: 22px;659  border-radius: 4px;660  cursor: pointer;661  font-size: 14px;662  line-height: 1;663  display: inline-flex;664  align-items: center;665  justify-content: center;666  flex-shrink: 0;667  transition: color 120ms ease, border-color 120ms ease;668}669.peach-additional-url-remove:hover:not(:disabled) {670  color: var(--peach-accent);671  border-color: var(--peach-border-accent);672}673.peach-additional-urls-add { align-self: flex-start; }674675/* Delete row */676.peach-entry-delete-row {677  display: flex;678  align-items: center;679  gap: 8px;680  padding-top: 18px;681  margin-top: 8px;682  border-top: 1px solid var(--peach-t3);683}684.peach-delete-btn {685  font-size: 11px;686  color: var(--peach-t2);687  padding: 4px 0;688}689.peach-delete-confirm-text {690  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;691  font-size: 11px;692  font-style: italic;693  color: var(--peach-t2);694  flex-shrink: 0;695}696697/* TOTP band */698.peach-totp-band {699  border-top: 1px solid var(--peach-t3);700  padding: 12px 20px 14px;701  position: relative;702  display: grid;703  grid-template-columns: 1fr auto;704  gap: 10px;705}706.peach-totp-main {707  min-width: 0;708  cursor: pointer;709  user-select: none;710}711.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }712.peach-totp-code-row {713  display: flex;714  align-items: flex-end;715  gap: 10px;716  min-width: 0;717}718.peach-totp-code {719  margin: 2px 0 0;720  font-family: "Cormorant Garamond", "Times New Roman", serif;721  font-style: italic;722  font-weight: 300;723  font-size: 38px; color: var(--peach-accent);724  line-height: 0.95; min-height: 1em;725  min-width: 0;726}727.peach-totp-code-text {728  display: inline-flex;729  overflow: hidden;730  text-overflow: ellipsis;731  white-space: nowrap;732}733.peach-totp-copy-btn {734  margin-bottom: 2px;735  flex-shrink: 0;736  border-color: transparent;737}738.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }739.peach-totp-countdown {740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;741  font-size: 22px; color: var(--peach-t1);742}743.peach-totp-ring { transform: rotate(-90deg); }744.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }745.peach-totp-ring-progress {746  fill: none; stroke: var(--peach-accent); stroke-width: 2;747  stroke-linecap: round;748  transition: stroke-dashoffset 1s linear, stroke 500ms ease;749}750/* Search bar */751.peach-search-wrap {752  border-top: 1px solid var(--peach-t3);753  background: var(--peach-s1);754  min-height: 54px; position: relative;755  box-shadow: inset 0 6px 18px transparent;756  transition: box-shadow 700ms ease;757}758.peach-search-wrap::before {759  content: "";760  position: absolute;761  left: 0;762  top: 0;763  height: 2px;764  width: var(--peach-totp-progress, 0%);765  background: var(--peach-accent);766  opacity: 0;767  transition: width 1s linear, opacity 180ms ease;768  pointer-events: none;769}770.peach-shell[data-totp-active="true"] .peach-search-wrap::before {771  opacity: 0.9;772}773.peach-shell[data-totp-active="true"] .peach-search-wrap {774  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);775}776777@keyframes peach-totp-code-flare {778  0%   { filter: brightness(1); }779  25%  { filter: brightness(1.3); }780  100% { filter: brightness(1); }781}782.peach-totp-code.is-hot {783  animation: peach-totp-code-flare 3000ms ease-in-out both;784}785.peach-search-bar {786  min-height: 54px;787  display: grid;788  grid-template-columns: auto minmax(0, 1fr) auto;789  align-items: center;790  gap: 8px; padding: 0 9px 0 12px;791}792.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }793.peach-search-input {794  border: 0; background: transparent; color: var(--peach-t0);795  font-family: "Cormorant Garamond", "Times New Roman", serif;796  font-style: italic; font-size: 18px;797  outline: none; width: 100%; min-width: 0; padding: 0;798  caret-color: var(--peach-accent);799}800.peach-search-input::placeholder { color: var(--peach-t2); }801.peach-search-meta {802  display: grid;803  grid-auto-flow: column;804  align-items: center;805  justify-content: end;806  gap: 6px;807  min-width: max-content;808}809.peach-search-counter {810  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;811  font-size: 10px; color: var(--peach-t2);812  display: inline-flex;813  align-items: center;814  line-height: 1;815}816.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }817818/* Buttons */819.peach-btn {820  border: 1px solid transparent; border-radius: 12px;821  background: transparent; color: var(--peach-t0);822  font-family: Inter, system-ui, sans-serif;823  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;824  cursor: pointer;825  transition:826    background-color var(--peach-dur-80) var(--peach-curve-arrival),827    color var(--peach-dur-80) var(--peach-curve-arrival),828    border-color var(--peach-dur-150) var(--peach-curve-arrival);829}830.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }831.peach-btn:disabled {832  opacity: 0.45;833  cursor: not-allowed;834}835.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }836.peach-btn--md { min-height: 38px; }837.peach-btn--accent {838  background: var(--peach-accent);839  color: rgba(0,0,0,0.78);840  box-shadow:841    0 1px 0 rgba(255,255,255,0.08) inset,842    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),843    0 3px 16px var(--peach-glow),844    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);845}846.peach-btn--accent:hover:not(:disabled) {847  background: var(--peach-accent);848  filter: brightness(1.10) saturate(1.05);849  box-shadow:850    0 1px 0 rgba(255,255,255,0.10) inset,851    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),852    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),853    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);854}855.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }856.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }857.peach-icon-btn {858  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;859  display: inline-flex; align-items: center; justify-content: center;860}861862.peach-btn:focus-visible {863  outline: none;864  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);865}866867/* Lock button */868.peach-lock-icon { transform-origin: center; }869.peach-lock-btn.is-locking { color: var(--peach-accent); }870.peach-lock-btn.is-locking .peach-lock-icon {871  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);872}873874/* Copy button */875.peach-copy-btn {876  position: relative; overflow: hidden;877  color: var(--peach-t2); border-color: var(--peach-t3);878}879.peach-copy-icon {880  display: inline-flex; align-items: center; justify-content: center;881  position: relative; z-index: 1;882}883.peach-copy-icon-svg { display: block; }884.peach-copy-sheen {885  position: absolute; inset: 0;886  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);887  opacity: 0; transform: scaleX(0.15); transform-origin: left center;888}889.peach-copy-btn.is-copied {890  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;891  box-shadow:892    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),893    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),894    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);895}896.peach-copy-btn.is-copied .peach-copy-icon {897  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;898}899.peach-copy-btn.is-copied .peach-copy-sheen {900  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;901}902.peach-copy-btn.is-retreat {903  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;904}905.peach-copy-btn.is-retreat .peach-copy-sheen {906  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;907}908.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }909.peach-copy-drain-bar {910  display: block; width: 100%; height: 100%;911  background: var(--peach-accent); opacity: 0.7;912  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;913}914915/* Unlock screen elements */916.peach-unlock-headline {917  margin: 2px 0 0;918  font-family: "Cormorant Garamond", "Times New Roman", serif;919  font-size: 52px; line-height: 0.95;920  font-style: italic; font-weight: 400;921}922.peach-subline {923  margin: 0;924  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;925  font-size: 10px; color: var(--peach-t2); font-style: italic;926}927.peach-subline--lock {928  max-width: 248px;929  line-height: 1.5;930}931.peach-underline-input {932  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);933  padding: 6px 0; background: transparent; color: var(--peach-t0);934  outline: none;935  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;936  font-size: 13px;937  caret-color: var(--peach-accent);938}939.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }940.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }941.peach-hint {942  margin: 0;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer {947  margin-top: 4px; display: flex; align-items: center; gap: 7px;948  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;949  font-size: 10px; color: var(--peach-t2);950}951.peach-unlock-footer--lock {952  padding-top: 2px;953}954955/* Breach badge */956.peach-breach-badge {957  display: flex;958  position: relative;959  z-index: 1;960  align-items: center;961  gap: 7px;962  font-size: 9px;963  color: var(--peach-breach);964  padding: 5px 10px;965  margin-bottom: 4px;966  border-radius: 8px;967  background: rgba(220, 80, 60, 0.07);968  border: 1px solid rgba(220, 80, 60, 0.18);969  letter-spacing: 0.04em;970}971972.peach-breach-action {973  margin-left: auto;974  font-size: 10px;975  padding: 3px 8px;976}977978.peach-password-value.is-breached {979  color: rgba(220, 80, 60, 0.75);980  border-bottom: 1px solid rgba(220, 80, 60, 0.22);981}982983/* ── Overlay views ─────────────────────────────────────────────────── */984.peach-overlay-view {985  position: absolute;986  inset: 0;987  display: flex;988  flex-direction: column;989  background:990    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),991    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),992    var(--peach-bg);993  z-index: 2;994  overflow: hidden;995  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;996}997@keyframes overlay-in {998  from { opacity: 0; transform: translateY(8px); }999  to   { opacity: 1; transform: translateY(0); }1000}1001.peach-overlay-view.ov-enter-up {1002  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1003}1004.peach-overlay-view.ov-exit-up {1005  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1006}1007.peach-overlay-view.ov-enter-right {1008  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1009}1010.peach-overlay-view.ov-exit-right {1011  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1012}10131014@keyframes ov-enter-up {1015  from { opacity: 0; transform: translateY(18px); }1016  to   { opacity: 1; transform: translateY(0); }1017}1018@keyframes ov-exit-up {1019  from { opacity: 1; transform: translateY(0); }1020  to   { opacity: 0; transform: translateY(-12px); }1021}1022@keyframes ov-enter-right {1023  from { opacity: 0; transform: translateX(20px); }1024  to   { opacity: 1; transform: translateX(0); }1025}1026@keyframes ov-exit-right {1027  from { opacity: 1; transform: translateX(0); }1028  to   { opacity: 0; transform: translateX(20px); }1029}10301031/* Overlay shared header */1032.peach-overlay-header {1033  padding: 10px 12px;1034  display: flex;1035  align-items: center;1036  gap: 8px;1037  border-bottom: 1px solid var(--peach-t3);1038  flex-shrink: 0;1039}1040.peach-overlay-title {1041  font-family: "IBM Plex Mono", monospace;1042  font-size: 9px;1043  text-transform: uppercase;1044  letter-spacing: 0.18em;1045  color: var(--peach-t2);1046  flex: 1;1047  text-align: center;1048}10491050.peach-overlay-card {1051  background: var(--peach-s1);1052  border: 1px solid var(--peach-t3);1053  border-radius: 12px;1054  overflow: hidden;1055  width: 100%;1056}10571058.peach-onboarding-alt-actions {1059  display: flex;1060  flex-direction: column;1061  gap: 4px;1062  padding: 0;1063}10641065.peach-settings-copy {1066  margin: 0 0 10px;1067  font-size: 11px;1068  line-height: 1.5;1069  color: var(--peach-t2);1070}10711072.peach-settings-copy strong {1073  color: var(--peach-t0);1074}10751076.peach-settings-copy--spacious {1077  margin-bottom: 12px;1078}10791080.peach-settings-copy--result {1081  color: var(--peach-accent);1082  font-size: 13px;1083  text-align: center;1084  padding: 8px 0;1085}10861087.peach-settings-copy--danger {1088  color: var(--peach-breach);1089}10901091.peach-settings-copy--success {1092  color: var(--peach-accent);1093}10941095.peach-inline-feedback {1096  font-size: 11px;1097  margin: 10px 0 0;1098}10991100.peach-inline-feedback--ok {1101  color: var(--peach-accent);1102}11031104.peach-inline-feedback--error {1105  color: var(--peach-breach);1106}11071108.peach-inline-feedback--muted {1109  color: var(--peach-t2);1110  font-size: 10px;1111  margin: 4px 0;1112}11131114.peach-inline-feedback--spaced {1115  margin-top: 12px;1116}11171118.peach-settings-actions--row {1119  display: flex;1120  gap: 6px;1121}11221123.peach-settings-actions--end {1124  margin-top: 14px;1125  justify-content: flex-end;1126}11271128.peach-settings-stack {1129  display: flex;1130  flex-direction: column;1131  gap: 6px;1132}11331134.peach-settings-stack--tight {1135  gap: 4px;1136}11371138.peach-settings-stack--spacious {1139  gap: 8px;1140}11411142.peach-settings-input {1143  width: 100%;1144  box-sizing: border-box;1145  padding: 8px 10px;1146  background: var(--peach-s2);1147  border: 1px solid var(--peach-t3);1148  border-radius: 6px;1149  color: var(--peach-t0);1150  font-family: var(--font-ui);1151  font-size: 12px;1152  outline: none;1153  transition: border-color 120ms ease;1154}11551156.peach-settings-input:focus {1157  border-color: var(--peach-accent);1158}11591160.peach-settings-input[type="password"] {1161  font-family: var(--font-mono);1162  letter-spacing: 0.04em;1163}11641165.peach-phrase-textarea {1166  width: 100%;1167  box-sizing: border-box;1168  min-height: 120px;1169  padding: 10px 12px;1170  background: var(--peach-s2);1171  border: 1px solid var(--peach-t3);1172  border-radius: 6px;1173  color: var(--peach-t0);1174  font-size: 12px;1175  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1176  line-height: 1.5;1177  resize: vertical;1178  outline: none;1179}11801181.peach-phrase-textarea:focus {1182  border-color: var(--peach-accent);1183}11841185.peach-hidden-file-input {1186  display: none;1187}11881189.peach-checkbox-note {1190  display: flex;1191  align-items: flex-start;1192  gap: 8px;1193  font-size: 11px;1194  color: var(--peach-t1);1195  cursor: pointer;1196  margin: 12px 0;1197}11981199.peach-checkbox-note input {1200  margin-top: 1px;1201}12021203.peach-cjk-phrase-box {1204  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1205  font-size: 13px;1206  line-height: 1.5;1207  background: var(--peach-s2);1208  border: 1px solid var(--peach-t3);1209  border-radius: 6px;1210  padding: 10px 12px;1211  margin: 0 0 10px;1212  word-break: break-all;1213  white-space: pre-wrap;1214  max-height: 220px;1215  overflow-y: auto;1216  color: var(--peach-t0);1217  user-select: all;1218  scrollbar-width: none;1219  -ms-overflow-style: none;1220}1221.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12221223.peach-danger-notice {1224  background: rgba(220, 80, 60, 0.08);1225  border: 1px solid rgba(220, 80, 60, 0.2);1226  border-radius: 6px;1227  padding: 9px 11px;1228  font-size: 11px;1229  color: var(--peach-t1);1230  line-height: 1.5;1231}12321233.peach-info-notice {1234  font-size: 11px;1235  color: var(--peach-t1);1236  line-height: 1.5;1237  background: var(--surface-card);1238  border: 1px solid var(--peach-t3);1239  border-radius: 6px;1240  padding: 8px 10px;1241}12421243.peach-strength-row {1244  display: flex;1245  align-items: center;1246  gap: 8px;1247  margin-bottom: 10px;1248}12491250.peach-strength-track {1251  flex: 1;1252  height: 4px;1253  background: var(--peach-s2);1254  border-radius: 2px;1255  overflow: hidden;1256}12571258.peach-strength-fill {1259  height: 100%;1260  border-radius: 2px;1261  transition: width 120ms ease, background 120ms ease;1262}12631264/* ── Type selector tabs ── */1265.peach-type-tabs {1266  display: flex;1267  gap: 0;1268  background: var(--peach-t4);1269  border-radius: 8px;1270  padding: 3px;1271}12721273.peach-type-tab {1274  flex: 1;1275  display: flex;1276  align-items: center;1277  justify-content: center;1278  gap: 6px;1279  padding: 6px 10px;1280  border-radius: 6px;1281  border: none;1282  background: transparent;1283  cursor: pointer;1284  font-family: Inter, system-ui, sans-serif;1285  font-size: 11px;1286  font-weight: 400;1287  letter-spacing: 0.04em;1288  color: var(--peach-t1);1289  transition: background 150ms ease, color 150ms ease;1290}12911292.peach-type-tab.is-active {1293  background: var(--peach-s2);1294  color: var(--peach-t0);1295  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1296}12971298.peach-type-tab:not(.is-active):hover {1299  color: var(--peach-t0);1300}13011302.peach-type-tab svg {1303  opacity: 0.7;1304  flex-shrink: 0;1305}13061307.peach-type-tab.is-active svg {1308  opacity: 1;1309}13101311/* ── List view ───────────────────────────────────────────────────────── */1312.peach-list-top {1313  padding: 0 10px;1314  min-height: 46px;1315  display: flex;1316  align-items: center;1317  gap: 6px;1318  border-bottom: 1px solid var(--peach-t3);1319  flex-shrink: 0;1320  background: var(--peach-s1);1321}1322.peach-vault-list {1323  flex: 1;1324  overflow-y: auto;1325  scrollbar-width: none;1326}1327.peach-vault-list::-webkit-scrollbar { display: none; }13281329/* Scrollbar — vault list */1330.peach-vault-list {1331  scrollbar-width: thin;1332  scrollbar-color: var(--peach-t3) transparent;1333}13341335.peach-vault-list::-webkit-scrollbar {1336  width: 3px;1337}13381339.peach-vault-list::-webkit-scrollbar-thumb {1340  background: var(--peach-t3);1341  border-radius: 2px;1342}13431344.peach-entry-row {1345  width: 100%;1346  display: flex;1347  align-items: center;1348  gap: 10px;1349  padding: 9px 16px;1350  background: transparent;1351  border: none;1352  border-bottom: 1px solid var(--peach-t3);1353  cursor: pointer;1354  color: inherit;1355  text-align: left;1356  transition: background 80ms ease;1357}1358.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1359.peach-entry-row:last-child { border-bottom: none; }1360.peach-entry-row.is-active {1361  box-shadow: inset 2px 0 0 var(--peach-accent);1362  background: rgba(240,232,216,0.03);1363}1364.peach-entry-row:focus-visible {1365  outline: none;1366  box-shadow: 0 0 0 1px var(--peach-border-accent);1367  background: rgba(240,232,216,0.03);1368}1369.peach-entry-row-icon {1370  width: 26px; height: 26px;1371  border-radius: 7px;1372  border: 1px solid var(--peach-t3);1373  display: flex; align-items: center; justify-content: center;1374  color: var(--peach-t2);1375  flex-shrink: 0;1376}1377.peach-entry-row-icon.is-breach {1378  border-color: rgba(220,80,60,0.3);1379  color: rgba(220,80,60,0.7);1380}1381.peach-entry-row-info { flex: 1; min-width: 0; }1382.peach-entry-row-name {1383  display: block;1384  font-family: "Cormorant Garamond", serif;1385  font-size: 17px;1386  font-style: italic;1387  font-weight: 400;1388  color: var(--peach-t0);1389  line-height: 1.2;1390  white-space: nowrap;1391  overflow: hidden;1392  text-overflow: ellipsis;1393}1394.peach-entry-row-meta {1395  display: block;1396  font-family: "IBM Plex Mono", monospace;1397  font-size: 9px;1398  color: var(--peach-t2);1399  margin-top: 1px;1400  letter-spacing: 0.05em;1401}1402.peach-entry-row-dot {1403  width: 5px; height: 5px;1404  border-radius: 50%;1405  background: rgba(220,80,60,0.7);1406  flex-shrink: 0;1407}1408.peach-new-entry-row {1409  display: flex;1410  align-items: center;1411  justify-content: center;1412  gap: 6px;1413  width: 100%;1414  padding: 11px;1415  background: transparent;1416  border: none;1417  border-top: 1px solid var(--peach-t3);1418  color: var(--peach-t2);1419  font-family: "IBM Plex Mono", monospace;1420  font-size: 9px;1421  text-transform: uppercase;1422  letter-spacing: 0.14em;1423  cursor: pointer;1424  flex-shrink: 0;1425  transition: color 120ms ease, background 120ms ease;1426}1427.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14281429/* ── Multi-select mode ─────────────────────────────────────────────── */14301431/* Select-mode trigger button in sort bar — same shape as trash btn */1432.peach-sort-select-btn {1433  display: flex;1434  align-items: center;1435  justify-content: center;1436  padding: 3px 5px;1437  background: transparent;1438  border: none;1439  cursor: pointer;1440  color: var(--peach-t2);1441  border-radius: 4px;1442  transition: color 140ms ease, background 140ms ease;1443}1444.peach-sort-select-btn:hover {1445  color: var(--peach-t1);1446  background: var(--peach-t3);1447}14481449/* Sort bar in select mode */1450.peach-select-cancel-btn {1451  background: transparent;1452  border: none;1453  padding: 0 4px;1454  cursor: pointer;1455  font-family: "IBM Plex Mono", monospace;1456  font-size: 9px;1457  letter-spacing: 0.12em;1458  text-transform: uppercase;1459  color: var(--peach-t2);1460  transition: color 140ms ease;1461  flex-shrink: 0;1462}1463.peach-select-cancel-btn:hover { color: var(--peach-t0); }14641465.peach-select-count-label {1466  flex: 1;1467  text-align: center;1468  font-family: "IBM Plex Mono", monospace;1469  font-size: 9px;1470  letter-spacing: 0.14em;1471  text-transform: uppercase;1472  color: var(--peach-t1);1473}14741475.peach-select-all-btn {1476  background: transparent;1477  border: none;1478  padding: 0 4px;1479  cursor: pointer;1480  font-family: "IBM Plex Mono", monospace;1481  font-size: 9px;1482  letter-spacing: 0.12em;1483  text-transform: uppercase;1484  color: var(--peach-t2);1485  transition: color 140ms ease;1486  flex-shrink: 0;1487}1488.peach-select-all-btn:hover { color: var(--peach-accent); }14891490/* List in select mode */1491.peach-vault-list.is-selecting .peach-entry-row {1492  cursor: default;1493}1494.peach-vault-list.is-selecting .peach-entry-row:hover {1495  background: rgba(240,232,216,0.02);1496}1497.peach-vault-list.is-selecting .peach-entry-row.is-selected {1498  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1499}1500.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1501  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1502}15031504/* Select indicator circles in icon slot */1505.peach-entry-row-icon.is-select-icon {1506  color: var(--peach-t2);1507}1508.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1509  color: var(--peach-accent);1510}15111512/* Delete action bar at bottom (replaces new-entry row) */1513.peach-select-action-bar {1514  display: flex;1515  align-items: center;1516  justify-content: center;1517  gap: 7px;1518  width: 100%;1519  padding: 11px;1520  background: transparent;1521  border: none;1522  border-top: 1px solid var(--peach-t3);1523  color: var(--peach-t1);1524  font-family: "IBM Plex Mono", monospace;1525  font-size: 9px;1526  text-transform: uppercase;1527  letter-spacing: 0.14em;1528  cursor: pointer;1529  flex-shrink: 0;1530  transition: color 120ms ease, background 120ms ease;1531}1532.peach-select-action-bar:not(:disabled):hover {1533  color: var(--peach-t0);1534  background: rgba(220,80,60,0.06);1535}1536.peach-select-action-bar:not(:disabled):hover svg {1537  stroke: rgba(220,80,60,0.8);1538}1539.peach-select-action-bar:disabled,1540.peach-select-action-bar.is-empty {1541  color: var(--peach-t2);1542  cursor: default;1543  opacity: 0.5;1544}1545.peach-search-counter-list {1546  white-space: nowrap;1547  flex-shrink: 0;1548}1549.peach-list-empty {1550  min-height: 180px;1551  display: grid;1552  place-items: center;1553  color: var(--peach-t2);1554  font-family: "IBM Plex Mono", monospace;1555  font-size: 11px;1556}15571558/* ── Settings view ───────────────────────────────────────────────────── */1559.peach-settings-body {1560  flex: 1;1561  overflow-y: auto;1562  min-height: 0;1563  display: flex;1564  flex-direction: column;1565  padding: 2px 0 10px;1566}1567.peach-settings-group {1568  padding: 9px 16px 11px;1569  border-bottom: 1px solid var(--peach-t3);1570}1571.peach-export-intro {1572  padding-bottom: 8px;1573}1574.peach-export-card {1575  display: grid;1576  gap: 10px;1577}1578.peach-script-string {1579  font-family: "PeachScript", monospace;1580  font-size: 11px;1581  line-height: 1.9;1582  letter-spacing: 0.06em;1583  color: var(--peach-t0);1584  word-break: break-all;1585  user-select: all;1586  background: var(--peach-input-bg, var(--surface-card));1587  border: 1px solid var(--peach-t3);1588  border-radius: 6px;1589  padding: 12px;1590  margin: 0 0 8px;1591  max-height: 180px;1592  overflow-y: auto;1593  white-space: pre-wrap;1594}1595.peach-script-input {1596  font-family: "PeachScript", monospace;1597  font-size: 11px;1598  line-height: 1.9;1599  letter-spacing: 0.06em;1600  color: var(--peach-t0);1601  background: var(--peach-input-bg, var(--surface-card));1602  border: 1px solid var(--peach-t3);1603  border-radius: 6px;1604  padding: 12px;1605  width: 100%;1606  min-height: 96px;1607  resize: vertical;1608  word-break: break-all;1609}1610.peach-qr-canvas-wrap {1611  display: flex;1612  justify-content: center;1613  padding: 12px 0 6px;1614}1615.peach-qr-canvas-wrap canvas {1616  display: block;1617  background: #ffffff;1618  border-radius: 6px;1619  max-width: 100%;1620  height: auto;1621}1622.peach-csv-warning {1623  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1624  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1625  color: var(--peach-t0);1626  border-radius: 6px;1627  padding: 10px 12px;1628  margin-bottom: 8px;1629  font-size: 12px;1630  line-height: 1.45;1631}1632.peach-legacy-cjk-summary {1633  cursor: pointer;1634  color: var(--peach-t2);1635  font-family: "IBM Plex Mono", monospace;1636  font-size: 10px;1637  text-transform: uppercase;1638  letter-spacing: 0.14em;1639  padding: 6px 0;1640}1641.peach-legacy-cjk-note {1642  color: var(--peach-t2);1643  font-size: 11px;1644  line-height: 1.5;1645  margin: 6px 0 0;1646}16471648.peach-export-card--primary {1649  background:1650    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1651}1652.peach-export-card-head {1653  display: flex;1654  align-items: center;1655  justify-content: space-between;1656  gap: 10px;1657}1658.peach-export-card-copy {1659  margin: 0;1660  font-size: 12px;1661  line-height: 1.55;1662  color: var(--peach-t1);1663}1664.peach-export-note {1665  margin: 0;1666  font-size: 10px;1667  line-height: 1.5;1668  color: var(--peach-t2);1669}1670.peach-export-pill {1671  display: inline-flex;1672  align-items: center;1673  padding: 4px 8px;1674  border-radius: 999px;1675  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1676  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1677  color: var(--peach-accent);1678  font-family: "IBM Plex Mono", monospace;1679  font-size: 8px;1680  letter-spacing: 0.12em;1681  text-transform: uppercase;1682  white-space: nowrap;1683}1684.peach-export-pill--danger {1685  border-color: rgba(220,80,60,0.22);1686  background: rgba(220,80,60,0.08);1687  color: var(--peach-breach);1688}1689.peach-export-password-stack {1690  gap: 8px;1691}1692.peach-settings-label {1693  margin: 0 0 6px;1694  font-family: "IBM Plex Mono", monospace;1695  font-size: 8px;1696  text-transform: uppercase;1697  letter-spacing: 0.18em;1698  color: var(--peach-t2);1699}1700.peach-settings-row {1701  display: flex;1702  align-items: center;1703  justify-content: space-between;1704  gap: 12px;1705  min-height: 34px;1706  padding: 6px 0;1707  font-size: 13px;1708  color: var(--peach-t1);1709}1710.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1711.peach-settings-value {1712  font-family: "IBM Plex Mono", monospace;1713  font-size: 10px;1714  color: var(--peach-t2);1715}17161717.peach-settings-value--status {1718  display: flex;1719  align-items: center;1720  gap: 6px;1721}17221723.peach-settings-link {1724  font-family: "IBM Plex Mono", monospace;1725  font-size: 10px;1726  color: var(--peach-accent);1727  text-decoration: none;1728  cursor: pointer;1729}1730.peach-settings-link:hover {1731  text-decoration: underline;1732}17331734.peach-settings-row--stack {1735  flex-direction: column;1736  align-items: stretch;1737  gap: 6px;1738}17391740.peach-settings-row--top {1741  align-items: flex-start;1742}17431744.peach-settings-row-main {1745  display: flex;1746  flex-direction: column;1747  gap: 4px;1748  flex: 1;1749}1750.peach-toggle {1751  width: 28px; height: 16px;1752  border-radius: 999px;1753  background: var(--peach-t3);1754  border: 1px solid var(--peach-t3);1755  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1756  flex-shrink: 0;1757  transition: background 200ms ease, border-color 200ms ease;1758  cursor: pointer;1759}1760.peach-toggle.is-on {1761  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1762  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1763}1764.peach-toggle-knob {1765  width: 10px; height: 10px;1766  border-radius: 50%;1767  background: var(--peach-t2);1768  flex-shrink: 0;1769  transform: translateX(0px);1770  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1771}1772.peach-toggle.is-on .peach-toggle-knob {1773  background: var(--peach-accent);1774  transform: translateX(12px);1775}1776.peach-settings-footer {1777  display: flex;1778  align-items: center;1779  gap: 8px;1780  margin-top: auto;1781  padding: 14px 16px 8px;1782  font-family: "IBM Plex Mono", monospace;1783  font-size: 9px;1784  color: var(--peach-t2);1785}17861787/* ── Settings home navigation ──────────────────────────────────────────── */1788.peach-settings-nav-label {1789  margin: 0 0 2px;1790  padding: 12px 16px 4px;1791  font-family: "IBM Plex Mono", monospace;1792  font-size: 8px;1793  text-transform: uppercase;1794  letter-spacing: 0.18em;1795  color: var(--peach-t2);1796}17971798.peach-settings-cat-row {1799  display: flex;1800  align-items: center;1801  gap: 10px;1802  width: 100%;1803  padding: 9px 16px;1804  background: none;1805  border: none;1806  border-bottom: 1px solid var(--peach-t3);1807  cursor: pointer;1808  text-align: left;1809  color: inherit;1810  transition: background var(--peach-dur-80) ease;1811}1812.peach-settings-cat-row:hover {1813  background: var(--peach-t3);1814}1815.peach-settings-cat-row:last-child {1816  border-bottom: none;1817}18181819.peach-settings-cat-icon {1820  width: 28px;1821  height: 28px;1822  border-radius: 7px;1823  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1824  color: var(--peach-accent);1825  display: flex;1826  align-items: center;1827  justify-content: center;1828  flex-shrink: 0;1829}1830/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1831   Darken the icon stroke to ink and bump the bg tint so the icon reads1832   sharply while the cell still feels accent-tinted. */1833.light .peach-settings-cat-icon {1834  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1835  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1836}18371838.peach-settings-cat-content {1839  flex: 1;1840  display: flex;1841  flex-direction: column;1842  gap: 2px;1843  min-width: 0;1844}18451846.peach-settings-cat-name {1847  font-size: 13px;1848  font-weight: 450;1849  color: var(--peach-t0);1850  line-height: 1.2;1851}18521853.peach-settings-cat-desc {1854  font-size: 10px;1855  color: var(--peach-t2);1856  line-height: 1.3;1857  white-space: nowrap;1858  overflow: hidden;1859  text-overflow: ellipsis;1860}18611862.peach-settings-cat-chevron {1863  color: var(--peach-t2);1864  flex-shrink: 0;1865  opacity: 0.5;1866}18671868/* ── Settings sub-view section labels ──────────────────────────────────── */1869.peach-settings-sub-label {1870  margin: 12px 0 4px;1871  font-family: "IBM Plex Mono", monospace;1872  font-size: 8px;1873  text-transform: uppercase;1874  letter-spacing: 0.18em;1875  color: var(--peach-t2);1876}1877.peach-settings-sub-label:first-child {1878  margin-top: 4px;1879}18801881/* ── Feedback form ──────────────────────────────────────────────────────── */1882.peach-feedback-group {1883  flex: 1;1884  display: flex;1885  flex-direction: column;1886  border-bottom: none;1887}18881889.peach-feedback-intro {1890  margin: 4px 0 14px;1891  font-size: 12px;1892  line-height: 1.55;1893  color: var(--peach-t1);1894}18951896.peach-feedback-chips {1897  display: flex;1898  flex-wrap: wrap;1899  gap: 6px;1900  margin-bottom: 14px;1901}19021903.peach-feedback-chip {1904  padding: 4px 10px;1905  border-radius: 999px;1906  border: 1px solid var(--peach-t3);1907  background: none;1908  color: var(--peach-t2);1909  font-size: 11px;1910  font-family: var(--font-ui);1911  cursor: pointer;1912  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1913    background var(--peach-dur-80) ease;1914}1915.peach-feedback-chip:hover {1916  border-color: var(--peach-t2);1917  color: var(--peach-t1);1918}1919.peach-feedback-chip.is-active {1920  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1921  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1922  color: var(--peach-accent);1923}19241925.peach-feedback-textarea {1926  flex: 1;1927  width: 100%;1928  min-height: 120px;1929  box-sizing: border-box;1930  background: var(--peach-t3);1931  border: 1px solid var(--peach-t3);1932  border-radius: 6px;1933  color: var(--peach-t0);1934  font-size: 12px;1935  font-family: var(--font-ui);1936  line-height: 1.5;1937  padding: 8px 10px;1938  resize: none;1939  outline: none;1940  transition: border-color var(--peach-dur-150) ease;1941}1942.peach-feedback-textarea:focus {1943  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1944}1945.peach-feedback-textarea::placeholder {1946  color: var(--peach-t2);1947}19481949.peach-feedback-meta {1950  margin: 6px 0 0;1951  font-size: 10px;1952  color: var(--peach-t2);1953  font-family: "IBM Plex Mono", monospace;1954}19551956.peach-feedback-result {1957  margin: 8px 0 0;1958  font-size: 11px;1959  font-family: "IBM Plex Mono", monospace;1960}1961.peach-feedback-result--ok { color: var(--peach-sync-ok); }1962.peach-feedback-result--err { color: var(--peach-breach); }19631964.peach-feedback-submit {1965  width: 100%;1966  margin-top: 12px;1967  justify-content: center;1968}19691970.peach-feedback-anon {1971  margin: 8px 0 0;1972  font-size: 10px;1973  color: var(--peach-t2);1974  text-align: center;1975}19761977.peach-passkey-badge {1978  margin-left: 8px;1979  font-size: 10px;1980  letter-spacing: 0.06em;1981  text-transform: uppercase;1982  color: var(--peach-t2);1983  font-family: var(--font-ui);1984  vertical-align: middle;1985}19861987.peach-passkey-delete-btn {1988  color: var(--peach-breach);1989  border-color: rgba(229, 85, 85, 0.25);1990}19911992.peach-passkey-delete-confirm {1993  display: flex;1994  align-items: center;1995  gap: 8px;1996  padding: 8px 10px;1997  background: rgba(229, 85, 85, 0.06);1998  border: 1px solid rgba(229, 85, 85, 0.2);1999  border-radius: 6px;2000}20012002.peach-passkey-delete-confirm-copy {2003  flex: 1;2004  font-size: 11px;2005  color: var(--peach-t1);2006}20072008.peach-passkey-delete-btn--confirm {2009  color: var(--peach-breach);2010  border-color: rgba(229, 85, 85, 0.4);2011}20122013.peach-passkey-activity {2014  flex-direction: column;2015  align-items: flex-start;2016  gap: 4px;2017}20182019.peach-passkey-meta {2020  font-size: 11px;2021  color: var(--peach-t2);2022}20232024.peach-passkey-actions {2025  position: relative;2026  z-index: 1;2027  margin-top: 14px;2028  display: flex;2029  flex-direction: column;2030  gap: 8px;2031}20322033.peach-passkey-approval {2034  display: flex;2035  flex-direction: column;2036  align-items: center;2037  padding: 28px 22px 22px;2038  gap: 14px;2039  text-align: center;2040}20412042.peach-passkey-approval-icon {2043  width: 46px;2044  height: 46px;2045  border-radius: 12px;2046  background: var(--peach-s2);2047  border: 1px solid var(--peach-t3);2048  display: flex;2049  align-items: center;2050  justify-content: center;2051  flex-shrink: 0;2052  color: var(--peach-accent);2053}20542055.peach-passkey-approval-icon img,2056.peach-passkey-approval-icon svg {2057  width: 28px;2058  height: 28px;2059  border-radius: 6px;2060}20612062.peach-passkey-approval-rp {2063  font-family: var(--font-ui);2064  font-size: 12px;2065  color: var(--peach-t2);2066  letter-spacing: 0.03em;2067}20682069.peach-passkey-approval-action {2070  font-family: var(--font-display);2071  font-style: italic;2072  font-weight: 300;2073  font-size: 26px;2074  color: var(--peach-t0);2075  line-height: 1;2076}20772078.peach-passkey-approval-user {2079  font-family: var(--font-mono);2080  font-size: 11px;2081  color: var(--peach-t1);2082  background: var(--peach-s2);2083  border: 1px solid var(--peach-t3);2084  border-radius: 4px;2085  padding: 3px 8px;2086}20872088.peach-passkey-approval-notice {2089  font-size: 10px;2090  color: var(--peach-t2);2091  line-height: 1.5;2092  max-width: 220px;2093}20942095.peach-passkey-approval-actions {2096  display: flex;2097  gap: 8px;2098  width: 100%;2099  margin-top: 6px;2100}21012102.peach-passkey-approval-actions .peach-btn {2103  flex: 1;2104}21052106/* ── Inline generator drawer ── */2107.peach-generator-drawer {2108  display: grid;2109  grid-template-rows: 0fr;2110  transition: grid-template-rows 320ms var(--peach-curve-arrival);2111  overflow: hidden;2112}2113.peach-generator-drawer.is-open {2114  grid-template-rows: 1fr;2115}2116.peach-generator-drawer-inner {2117  min-height: 0;2118  overflow: hidden;2119}2120.peach-generator-drawer-content {2121  border-top: 1px solid var(--peach-t3);2122  padding: 8px 0 4px;2123  display: flex;2124  flex-direction: column;2125  gap: 8px;2126}21272128/* ── Compact generator (inside entry edit) ── */2129.peach-generator-drawer-content--compact {2130  border-top: 1px solid var(--peach-t3);2131  padding: 8px 0 2px;2132  gap: 7px;2133}2134.peach-pwgen-compact-display-row {2135  display: flex;2136  align-items: center;2137  gap: 6px;2138}2139.peach-pwgen-compact-output {2140  flex: 1;2141  min-width: 0;2142  font-family: "IBM Plex Mono", monospace;2143  font-size: 11px;2144  font-weight: 400;2145  letter-spacing: 0.04em;2146  color: var(--peach-t0);2147  background: rgba(240, 232, 216, 0.04);2148  border: 1px solid var(--peach-t3);2149  border-radius: 5px;2150  padding: 5px 8px;2151  word-break: break-all;2152  line-height: 1.5;2153}2154.peach-pwgen-compact-controls {2155  display: flex;2156  align-items: center;2157  gap: 6px;2158}2159.peach-pwgen-compact-slider {2160  flex: 1;2161  min-width: 0;2162  height: 2px !important;2163}2164.peach-pwgen-compact-controls .peach-pwgen-len-num {2165  flex-shrink: 0;2166  min-width: 18px;2167  text-align: right;2168}2169.peach-pwgen-compact-pills {2170  display: flex;2171  gap: 3px;2172  flex-shrink: 0;2173}2174.peach-pwgen-compact-pills .peach-pwgen-pill {2175  padding: 2px 7px;2176  font-size: 8px;2177}2178.peach-pwgen-compact-use {2179  flex-shrink: 0;2180  font-size: 10px !important;2181  padding: 3px 9px !important;2182  min-height: 22px !important;2183  border-radius: 5px !important;2184}21852186/* ── Password edit row (input + eye toggle side-by-side) ── */2187.peach-password-edit-row {2188  display: flex;2189  align-items: center;2190  gap: 6px;2191}2192.peach-password-edit-row .peach-inline-input {2193  flex: 1;2194  min-width: 0;2195}21962197/* ── Generate toggle link ── */2198.peach-generate-toggle-link {2199  display: inline-flex;2200  align-items: center;2201  gap: 5px;2202  background: none;2203  border: none;2204  padding: 0;2205  cursor: pointer;2206  font-family: "IBM Plex Mono", monospace;2207  font-size: 10px;2208  color: var(--peach-t2);2209  letter-spacing: 0.04em;2210  transition: color 120ms ease;2211  align-self: flex-start;2212}2213.peach-generate-toggle-link:hover {2214  color: var(--peach-accent);2215}22162217/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2218.peach-entry-body {2219  flex: 1;2220  overflow-y: auto;2221  overflow-x: hidden;2222  scrollbar-width: none;2223  -ms-overflow-style: none;2224  overscroll-behavior: contain;2225  display: grid;2226  gap: 10px;2227  align-content: start;2228  padding: 10px 20px 14px;2229  min-width: 0;2230  min-height: 0;2231}2232.peach-entry-body::-webkit-scrollbar { display: none; }22332234/* Type-toggle pills + inline note toolbar */2235.peach-new-type-row {2236  display: flex;2237  align-items: center;2238  gap: 6px;2239  margin-bottom: 2px;2240}2241.peach-new-type-btn {2242  background: transparent;2243  border: 1px solid var(--peach-t3);2244  border-radius: 12px;2245  padding: 3px 10px;2246  font-family: "IBM Plex Mono", monospace;2247  font-size: 9px;2248  letter-spacing: 0.12em;2249  text-transform: uppercase;2250  color: var(--peach-t2);2251  cursor: pointer;2252  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2253}2254.peach-new-type-btn.is-active {2255  color: var(--peach-t0);2256  border-color: var(--peach-accent);2257  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2258}2259.peach-new-type-btn:not(.is-active):hover {2260  color: var(--peach-t1);2261  border-color: var(--peach-t2);2262}22632264/* Editable title */2265.peach-new-title-wrap { margin: 0 0 2px; }2266.peach-new-title-input {2267  background: transparent;2268  border: none;2269  outline: none;2270  width: 100%;2271  color: var(--peach-t0);2272  font-family: "Cormorant Garamond", Georgia, serif;2273  font-style: italic;2274  font-weight: 400;2275  font-size: 40px;2276  line-height: 0.95;2277  caret-color: var(--peach-accent);2278}2279.peach-new-title-input::placeholder { color: var(--peach-t2); }22802281/* Editable domain field */2282.peach-domain-value--edit {2283  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2284  font-size: 10px;2285  font-style: italic;2286  letter-spacing: 0.12em;2287  color: var(--peach-t1);2288  background: transparent;2289  border: none;2290  border-bottom: 1px solid var(--peach-t3);2291  outline: none;2292  width: 100%;2293  padding: 2px 0;2294  caret-color: var(--peach-accent);2295  transition: border-color 140ms ease, color 140ms ease;2296}2297.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2298.peach-domain-value--edit:focus {2299  border-bottom-color: rgba(240, 232, 216, 0.28);2300  color: var(--peach-t0);2301}23022303/* Editable field values (username, password, totp) */2304.peach-field-value--edit {2305  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2306  font-size: 13px;2307  color: var(--peach-t0);2308  background: transparent;2309  border: none;2310  border-bottom: 1px solid var(--peach-t3);2311  outline: none;2312  flex: 1;2313  min-width: 0;2314  padding: 3px 0;2315  caret-color: var(--peach-accent);2316  transition: border-color 140ms ease, color 140ms ease;2317}2318.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2319.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2320.peach-field-value--edit:focus {2321  border-bottom-color: rgba(240, 232, 216, 0.28);2322  color: var(--peach-t0);2323}23242325/* "+ add optional field" links */2326.peach-entry-add-links {2327  display: flex;2328  gap: 12px;2329  flex-wrap: wrap;2330  margin-top: -2px;2331}2332.peach-add-field-link {2333  background: transparent;2334  border: none;2335  padding: 0;2336  cursor: pointer;2337  font-family: "IBM Plex Mono", monospace;2338  font-size: 9px;2339  letter-spacing: 0.1em;2340  text-transform: uppercase;2341  color: var(--peach-t2);2342  transition: color 140ms ease;2343}2344.peach-add-field-link:hover { color: var(--peach-accent); }23452346/* ── New entry form (legacy classes) ────────────────────────────────── */2347.peach-new-body {2348  flex: 1;2349  overflow-y: auto;2350  padding: 10px 20px 14px;2351}2352.peach-new-name-input {2353  background: transparent;2354  border: none;2355  outline: none;2356  width: 100%;2357  color: var(--peach-t0);2358  font-family: "Cormorant Garamond", Georgia, serif;2359  font-style: italic;2360  font-weight: 400;2361  font-size: 40px;2362  line-height: 0.95;2363  caret-color: var(--peach-accent);2364}2365.peach-new-name-input::placeholder { color: var(--peach-t2); }2366.peach-new-field-input {2367  background: transparent;2368  border: none;2369  outline: none;2370  flex: 1;2371  min-width: 0;2372  caret-color: var(--peach-accent);2373}2374.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }23752376/* ── Canary card ── */2377.peach-canary-card {2378  border: 1px solid rgba(217, 160, 48, 0.2);2379  background: rgba(217, 160, 48, 0.03);2380  border-radius: 8px;2381  padding: 12px;2382}23832384.peach-canary-settings-header {2385  display: flex;2386  align-items: center;2387  justify-content: space-between;2388  cursor: pointer;2389  user-select: none;2390}23912392.peach-canary-card .peach-label {2393  color: rgba(217, 160, 48, 0.85);2394}23952396.peach-canary-card .peach-new-field-input {2397  border-color: rgba(217, 160, 48, 0.25);2398}23992400.peach-canary-card .peach-new-field-input:focus {2401  border-color: rgba(217, 160, 48, 0.5);2402}24032404.peach-canary-body {2405  margin-top: 12px;2406  display: flex;2407  flex-direction: column;2408  gap: 10px;2409}24102411.peach-canary-explainer {2412  display: flex;2413  gap: 10px;2414  padding: 10px 12px;2415  border-radius: 10px;2416  background: rgba(217, 160, 48, 0.06);2417  border: 1px solid rgba(217, 160, 48, 0.22);2418  margin-bottom: 4px;2419}24202421.peach-canary-explainer-icon {2422  font-size: 16px;2423  flex-shrink: 0;2424  line-height: 1.2;2425}24262427.peach-canary-explainer-title {2428  font-family: var(--font-ui);2429  font-size: 11px;2430  font-weight: 500;2431  color: rgba(217, 160, 48, 0.9);2432  margin: 0 0 3px;2433}24342435.peach-canary-explainer-copy {2436  font-family: var(--font-ui);2437  font-size: 10px;2438  color: var(--peach-t2);2439  line-height: 1.55;2440  margin: 0;2441}24422443.peach-canary-hint {2444  font-size: 10px;2445  color: var(--peach-t2);2446  font-family: Inter, system-ui, sans-serif;2447  line-height: 1.5;2448  margin-top: 4px;2449}24502451.peach-canary-actions-row {2452  display: flex;2453  align-items: center;2454  gap: 8px;2455}24562457.peach-canary-test-btn {2458  border-color: rgba(217, 160, 48, 0.3);2459  color: rgba(217, 160, 48, 0.85);2460}24612462.peach-canary-test-result {2463  font-size: 10px;2464  font-family: Inter, system-ui, sans-serif;2465}24662467.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2468.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }24692470.peach-canary-badge {2471  display: flex;2472  position: relative;2473  z-index: 1;2474  align-items: center;2475  gap: 5px;2476  padding: 4px 10px;2477  background: rgba(217, 160, 48, 0.12);2478  border: 1px solid rgba(217, 160, 48, 0.35);2479  border-radius: 6px;2480  margin-bottom: 6px;2481  width: fit-content;2482}24832484.peach-canary-badge-label {2485  font-size: 10px;2486  letter-spacing: 0.06em;2487  color: rgba(217, 160, 48, 0.9);2488  font-family: var(--font-ui);2489  text-transform: uppercase;2490}24912492.peach-canary-badge-icon {2493  font-size: 11px;2494}24952496.peach-canary-suppress-row {2497  display: flex;2498  align-items: center;2499  gap: 8px;2500  padding: 6px 10px;2501  background: rgba(217, 160, 48, 0.08);2502  border-radius: 6px;2503  margin-bottom: 8px;2504}25052506.peach-canary-suppress-label {2507  font-size: 11px;2508  color: rgba(217, 160, 48, 0.85);2509  cursor: pointer;2510  font-family: var(--font-ui);2511  letter-spacing: 0.04em;2512}25132514.peach-regen-panel {2515  position: relative;2516  z-index: 1;2517  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2518  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2519  border-radius: 8px;2520  padding: 12px;2521  margin-bottom: 8px;2522}25232524.peach-regen-panel-header {2525  display: flex;2526  align-items: center;2527  justify-content: space-between;2528  margin-bottom: 10px;2529}25302531.peach-regen-panel-title {2532  font-size: 11px;2533  font-weight: 600;2534  letter-spacing: 0.06em;2535  text-transform: uppercase;2536  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2537}25382539.peach-regen-output {2540  background: rgba(0, 0, 0, 0.2);2541  border-radius: 6px;2542  padding: 10px;2543  margin-bottom: 10px;2544  font-family: var(--font-mono);2545  font-size: 13px;2546  word-break: break-all;2547  color: var(--peach-t1);2548}25492550.peach-regen-actions {2551  display: flex;2552  gap: 6px;2553}25542555.peach-regen-actions--spaced {2556  margin-bottom: 8px;2557}25582559.peach-regen-action-grow {2560  flex: 1;2561}25622563.peach-regen-copy-btn {2564  padding: 0 8px;2565}25662567.peach-regen-success {2568  position: relative;2569  z-index: 1;2570  background: rgba(40, 180, 80, 0.1);2571  border: 1px solid rgba(40, 180, 80, 0.3);2572  border-radius: 8px;2573  padding: 10px 12px;2574  margin-bottom: 8px;2575  display: flex;2576  align-items: center;2577  gap: 8px;2578  font-size: 11px;2579  color: rgba(40, 180, 80, 0.9);2580}25812582/* ── Note editor overlay ── */2583.peach-note-editor {2584  position: absolute;2585  inset: 0;2586  z-index: 200;2587  display: flex;2588  flex-direction: column;2589  background:2590    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2591    var(--peach-bg);2592  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2593}25942595.peach-note-editor-header {2596  display: flex;2597  align-items: center;2598  gap: 10px;2599  padding: 14px 16px 10px;2600  border-bottom: 1px solid var(--peach-t3);2601  flex-shrink: 0;2602}26032604.peach-note-editor-back {2605  background: transparent;2606  border: none;2607  cursor: pointer;2608  color: var(--peach-t2);2609  padding: 4px 6px;2610  border-radius: 6px;2611  display: flex;2612  align-items: center;2613  transition: color 120ms ease, background 120ms ease;2614  flex-shrink: 0;2615}2616.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26172618.peach-note-editor-label {2619  flex: 1;2620  font-family: "Cormorant Garamond", "Times New Roman", serif;2621  font-style: italic;2622  font-size: 15px;2623  color: var(--peach-t1);2624  letter-spacing: 0.02em;2625}26262627.peach-note-editor-save-btn {2628  background: transparent;2629  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2630  border-radius: 8px;2631  color: var(--peach-accent);2632  font-family: "IBM Plex Mono", monospace;2633  font-size: 10px;2634  letter-spacing: 0.06em;2635  text-transform: uppercase;2636  padding: 3px 10px;2637  cursor: pointer;2638  transition: background 120ms ease, border-color 120ms ease;2639}2640.peach-note-editor-save-btn:hover:not(:disabled) {2641  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2642  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2643}2644.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26452646.peach-note-toolbar {2647  display: flex;2648  align-items: center;2649  gap: 3px;2650  padding: 6px 14px 5px;2651  border-bottom: 1px solid var(--peach-t3);2652  flex-shrink: 0;2653}26542655.peach-note-tool-btn {2656  background: transparent;2657  border: 1px solid transparent;2658  border-radius: 5px;2659  color: var(--peach-t2);2660  font-family: "IBM Plex Mono", monospace;2661  font-size: 10px;2662  letter-spacing: 0.04em;2663  padding: 2px 8px;2664  cursor: pointer;2665  line-height: 1.6;2666  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2667}2668.peach-note-tool-btn:hover {2669  background: var(--peach-t4);2670  color: var(--peach-t0);2671  border-color: var(--peach-t3);2672}26732674.peach-note-tool-icon {2675  padding: 3px 7px;2676  display: inline-flex;2677  align-items: center;2678  justify-content: center;2679}26802681.peach-note-tool-divider {2682  width: 1px;2683  height: 14px;2684  background: var(--peach-t3);2685  margin: 0 4px;2686  flex-shrink: 0;2687}26882689.peach-note-editor-body {2690  flex: 1;2691  overflow-y: auto;2692  padding: 16px 20px 20px;2693  outline: none;2694  font-family: "Cormorant Garamond", "Times New Roman", serif;2695  font-size: 16px;2696  line-height: 1.75;2697  color: var(--peach-t0);2698  scrollbar-width: none;2699  word-break: break-word;2700}2701.peach-note-editor-body:empty::before {2702  content: "write your note…";2703  color: var(--peach-t3);2704  font-style: italic;2705  pointer-events: none;2706}27072708/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2709.peach-note-editor-inline {2710  display: flex;2711  flex-direction: column;2712  flex: 1;2713  min-height: 0;2714}2715.peach-note-editor-body--inline {2716  flex: 1;2717  min-height: 0;2718  font-size: 15px;2719  padding: 10px 20px 14px;2720}27212722/* Full-width toolbar row inside the body (Add.tsx note type).2723   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2724.peach-note-toolbar-body {2725  display: flex;2726  align-items: center;2727  gap: 3px;2728  padding: 5px 20px 4px;2729  margin: 2px -20px 0;2730  border-bottom: 1px solid var(--peach-t3);2731  flex-shrink: 0;2732}27332734/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2735   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2736   and .peach-note-tool-divider button-level styles. */2737.peach-note-toolbar-inline {2738  display: flex;2739  align-items: center;2740  gap: 3px;2741  margin-left: auto;2742  padding-left: 10px;2743  border-left: 1px solid var(--peach-t3);2744  min-height: 22px;2745}27462747/* Entry.tsx toolbar row (no tabs, toolbar only) */2748.peach-entry-note-toolbar-row {2749  display: flex;2750  align-items: center;2751  margin: 4px 0 6px;2752  position: relative;2753  z-index: 1;2754}2755.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2756  border-left: none;2757  padding-left: 0;2758  margin-left: 0;2759}27602761/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2762.peach-note-body {2763  display: flex;2764  flex-direction: column;2765  flex: 1;2766  min-height: 0;2767  margin: 4px 0 0;2768}2769.peach-entry-body--new .peach-note-body {2770  margin: 8px -20px 0;2771}27722773/* Add.tsx body is a grid by default; swap to a flex column when a note is2774   active so the note body can stretch and pin the tags row to the bottom. */2775.peach-entry-body--new:has(.peach-note-body) {2776  display: flex;2777  flex-direction: column;2778}27792780/* Rich content element styles (editor + display) */2781.peach-note-editor-body h2,2782.peach-note-content h2 {2783  font-family: "Cormorant Garamond", serif;2784  font-size: 20px;2785  font-weight: 600;2786  font-style: italic;2787  color: var(--peach-t0);2788  margin: 6px 0 2px;2789  line-height: 1.3;2790}2791.peach-note-editor-body ul,2792.peach-note-content ul {2793  padding-left: 18px;2794  margin: 3px 0;2795  list-style: disc;2796}2797.peach-note-editor-body ol,2798.peach-note-content ol {2799  padding-left: 18px;2800  margin: 3px 0;2801  list-style: decimal;2802}2803.peach-note-editor-body li,2804.peach-note-content li { margin: 2px 0; }2805.peach-note-editor-body hr,2806.peach-note-content hr {2807  border: none;2808  border-top: 1px solid var(--peach-t3);2809  margin: 10px 0;2810}28112812/* font size elements from execCommand */2813.peach-note-editor-body font[size="1"],2814.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2815.peach-note-editor-body font[size="2"],2816.peach-note-content font[size="2"] { font-size: 13px; }2817.peach-note-editor-body font[size="3"],2818.peach-note-content font[size="3"] { font-size: 16px; }2819.peach-note-editor-body font[size="4"],2820.peach-note-content font[size="4"] { font-size: 20px; }2821.peach-note-editor-body font[size="5"],2822.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28232824/* bold / italic inside the editor and note display */2825.peach-note-editor-body b, .peach-note-editor-body strong,2826.peach-note-content b, .peach-note-content strong { font-weight: 700; }2827.peach-note-editor-body em, .peach-note-editor-body i,2828.peach-note-content em, .peach-note-content i { font-style: italic; }28292830/* note display — rendered HTML, no pre-wrap */2831.peach-note-content {2832  overflow: auto;2833  max-height: 340px;2834  word-break: break-word;2835}28362837/* ── Note textarea ── */2838.peach-note-textarea {2839  width: 100%;2840  min-height: 180px;2841  max-height: 280px;2842  resize: vertical;2843  background: var(--peach-t4);2844  border: 1px solid var(--peach-t3);2845  border-radius: 8px;2846  padding: 10px 12px;2847  font-family: "IBM Plex Mono", monospace;2848  font-size: 12px;2849  line-height: 1.7;2850  color: var(--peach-t1);2851  outline: none;2852  transition: border-color 150ms ease;2853}28542855.peach-note-textarea:focus {2856  border-color: var(--peach-t2);2857}28582859.peach-note-char-count {2860  font-family: "IBM Plex Mono", monospace;2861  font-size: 9px;2862  color: var(--peach-t3);2863  text-align: right;2864  margin-top: 4px;2865  letter-spacing: 0.1em;2866}28672868/* ── Field input baseline ── */2869.peach-new-field-input {2870  width: 100%;2871  background: transparent;2872  border: none;2873  border-bottom: 1px solid var(--peach-t3);2874  padding: 4px 0;2875  color: var(--peach-t1);2876  font-family: "IBM Plex Mono", monospace;2877  font-size: 13px;2878  outline: none;2879  transition: border-color 150ms ease;2880}28812882.peach-new-field-input:focus {2883  border-bottom-color: var(--peach-t0);2884  color: var(--peach-t0);2885}28862887.peach-new-name-input {2888  width: 100%;2889  background: transparent;2890  border: none;2891  border-bottom: 1px solid var(--peach-t3);2892  padding: 6px 0;2893  font-family: "Cormorant Garamond", Georgia, serif;2894  font-style: italic;2895  font-size: 28px;2896  color: var(--peach-t0);2897  outline: none;2898  transition: border-color 150ms ease;2899}29002901.peach-new-name-input:focus {2902  border-bottom-color: var(--peach-t1);2903}29042905.peach-new-name-input::placeholder {2906  color: var(--peach-t2);2907  font-style: italic;2908}29092910.peach-new-field-input::placeholder {2911  color: var(--peach-t3);2912}29132914/* ── Demo entrance animation ── */2915#hd-shell {2916  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2917}2918@keyframes hd-shell-enter {2919  from { opacity: 0; transform: scale(0.96) translateY(16px); }2920  to   { opacity: 1; transform: scale(1) translateY(0); }2921}29222923/* ── Keyframes ── */2924@keyframes peach-char-enter {2925  from { opacity: 0; transform: translateY(0.22em); }2926  to   { opacity: 1; transform: translateY(0); }2927}2928@keyframes peach-content-enter {2929  from { opacity: 0.96; transform: translateY(4px); }2930  to   { opacity: 1; transform: translateY(0); }2931}2932@keyframes peach-content-exit {2933  from { opacity: 1; transform: translateY(0); }2934  to   { opacity: 0.92; transform: translateY(-3px); }2935}2936@keyframes peach-screen-enter {2937  from { opacity: 0; transform: translateY(14px); }2938  to   { opacity: 1; transform: translateY(0); }2939}2940@keyframes peach-shell-fade-in {2941  from { opacity: 0; }2942  to   { opacity: 1; }2943}2944@keyframes peach-veil-in {2945  from { opacity: 0; }2946  to   { opacity: 1; }2947}2948@keyframes peach-lock-settle {2949  0%   { transform: scale(0.9); }2950  65%  { transform: scale(1.08); }2951  100% { transform: scale(1); }2952}2953@keyframes peach-copy-confirm {2954  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2955  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); }2956}2957@keyframes peach-copy-retreat {2958  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); }2959  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2960}2961@keyframes peach-copy-flood {2962  from { opacity: 0; transform: scaleX(0.15); }2963  to   { opacity: 1; transform: scaleX(1); }2964}2965@keyframes peach-copy-icon-settle {2966  from  { transform: scale(0.84); }2967  70%   { transform: scale(1.08); }2968  to    { transform: scale(1); }2969}2970@keyframes peach-copy-sheen-retreat {2971  from { opacity: 1; transform: scaleX(1); }2972  to   { opacity: 0; transform: scaleX(0.15); }2973}2974@keyframes peach-copy-drain {2975  from { width: 100%; }2976  to   { width: 0; }2977}2978@keyframes peach-shake {2979  0%, 100% { transform: translateX(0); }2980  20%      { transform: translateX(-6px); }2981  40%      { transform: translateX(6px); }2982  60%      { transform: translateX(-4px); }2983  80%      { transform: translateX(4px); }2984}29852986@keyframes pip-pulse {2987  0% { transform: scale(1); }2988  40% { transform: scale(2.2); }2989  100% { transform: scale(1); }2990}299129922993/* ── Password generator ── */2994.peach-pwgen-body {2995  flex: 1; overflow-y: auto;2996  display: flex; flex-direction: column;2997}2998.peach-policy-badge {2999  display: flex; align-items: center;3000  padding: 6px 20px 0;3001  font-size: 10px; font-family: Inter, sans-serif;3002  color: var(--peach-t2); letter-spacing: 0.04em;3003}3004.peach-pwgen-display {3005  padding: 14px 20px 12px;3006  border-bottom: 1px solid var(--peach-t3);3007  display: flex; align-items: flex-start; gap: 10px;3008}3009.peach-pwgen-display-row {3010  display: flex;3011  align-items: flex-start;3012  gap: 8px;3013  padding-bottom: 8px;3014  border-bottom: 1px solid var(--peach-t3);3015}3016.peach-pwgen-output {3017  flex: 1; min-width: 0; margin: 0;3018  font-family: "IBM Plex Mono", monospace;3019  font-size: 13px; color: var(--peach-t0);3020  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3021  white-space: normal;3022  padding: 10px 12px;3023  background: var(--peach-t4);3024  border-radius: 6px;3025  min-height: 36px;3026}3027.peach-pwgen-output-display {3028  flex: 1;3029  min-width: 0;3030  margin: 0;3031  font-family: "Cormorant Garamond", "Times New Roman", serif;3032  font-style: italic;3033  font-weight: 300;3034  font-size: 32px;3035  line-height: 1.05;3036  color: var(--peach-t0);3037  word-break: break-all;3038  overflow-wrap: break-word;3039  white-space: normal;3040  letter-spacing: 0.02em;3041}3042.peach-pwgen-display-actions {3043  display: flex;3044  flex-direction: column;3045  gap: 4px;3046  flex-shrink: 0;3047  margin-top: 2px;3048}3049.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3050.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3051.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3052.peach-pwgen-len-num {3053  font-family: "IBM Plex Mono", monospace;3054  font-size: 12px; color: var(--peach-accent);3055}3056.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3057.peach-pwgen-toggles { display: flex; flex-direction: column; }3058.peach-pwgen-charset-pills {3059  display: flex;3060  gap: 6px;3061  flex-wrap: wrap;3062}3063.peach-pwgen-pill {3064  padding: 4px 11px;3065  border-radius: 999px;3066  border: 1px solid var(--peach-t3);3067  background: transparent;3068  color: var(--peach-t2);3069  font-family: "IBM Plex Mono", monospace;3070  font-size: 9px;3071  letter-spacing: 0.08em;3072  cursor: pointer;3073  transition: all 150ms ease;3074}3075.peach-pwgen-pill.is-on {3076  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3077  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3078  color: var(--peach-accent);3079}3080.peach-pwgen-pill:not(.is-on):hover {3081  color: var(--peach-t1);3082  border-color: var(--peach-t2);3083}3084.peach-pwgen-use-btn {3085  width: 100%;3086  min-height: 34px;3087  border-radius: 8px;3088  margin-top: 2px;3089}3090.peach-pwgen-toggle-row {3091  display: flex; align-items: center; justify-content: space-between;3092  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3093}3094.peach-pwgen-toggle-row:last-child { border-bottom: none; }3095.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }30963097.peach-screen-prelock {3098  z-index: 10;3099}31003101.prelock-form {3102  display: grid;3103  gap: 12px;3104}31053106/* Peach popup should not expose native scrollbars on internal panels. */3107.peach-settings-body,3108.peach-new-body,3109.peach-pwgen-body,3110.lock-screen,3111.peach-import-preview {3112  scrollbar-width: none;3113  -ms-overflow-style: none;3114  overscroll-behavior: contain;3115}3116.peach-settings-body::-webkit-scrollbar,3117.peach-new-body::-webkit-scrollbar,3118.peach-pwgen-body::-webkit-scrollbar,3119.lock-screen::-webkit-scrollbar,3120.peach-import-preview::-webkit-scrollbar {3121  width: 0;3122  height: 0;3123  display: none;3124}31253126.lock-screen {3127  height: 100%;3128  min-height: 100%;3129  overflow-y: auto;3130  padding: 18px 18px 16px;3131  gap: 14px;3132  grid-template-rows: auto auto auto 1fr auto;3133  align-content: stretch;3134  position: relative;3135  isolation: isolate;3136}3137.peach-screen.lock-screen--vault-stage {3138  display: flex;3139  flex-direction: column;3140  justify-content: flex-start;3141  gap: 18px;3142  padding: 20px 18px 18px;3143  overflow: hidden;3144}3145.peach-screen.lock-screen--vault-stage .peach-lock-panel {3146  margin-top: auto;3147}3148.lock-screen--onboarding {3149  display: flex;3150  flex-direction: column;3151  gap: 12px;3152  justify-content: flex-start;3153}31543155.lock-screen::before {3156  content: "";3157  position: absolute;3158  inset: 12px 18px auto auto;3159  width: 160px;3160  height: 160px;3161  border-radius: 999px;3162  background:3163    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%);3164  filter: blur(6px);3165  opacity: 0.7;3166  pointer-events: none;3167  z-index: 0;3168}31693170.lock-screen-header {3171  display: flex;3172  align-items: center;3173  justify-content: space-between;3174  position: relative;3175  z-index: 1;3176}31773178.lock-password-input.shake {3179  animation: peach-shake 300ms ease-in-out;3180}31813182.peach-hint-error {3183  color: rgba(220, 80, 60, 0.92);3184}31853186.peach-onboarding-headline {3187  margin: 0;3188  font-family: "Cormorant Garamond", "Times New Roman", serif;3189  font-size: 35px;3190  line-height: 0.88;3191  font-style: italic;3192  font-weight: 400;3193  max-width: 252px;3194}31953196.peach-lock-copy {3197  display: grid;3198  gap: 8px;3199  position: relative;3200  z-index: 1;3201}32023203.peach-lock-copy--onboarding {3204  gap: 10px;3205}32063207.peach-lock-hero {3208  position: relative;3209  z-index: 1;3210  display: grid;3211  gap: 8px;3212  min-height: 0;3213  padding: 4px 2px 0;3214  border: none;3215  border-radius: 0;3216  background: transparent;3217  box-shadow: none;3218}3219.peach-lock-hero-art {3220  position: absolute;3221  right: -8px;3222  top: -6px;3223  width: 120px;3224  height: 120px;3225  display: flex;3226  align-items: center;3227  justify-content: center;3228  pointer-events: none;3229  opacity: 0.12;3230  filter: saturate(0.9);3231}3232.peach-lock-hero-mark {3233  width: 100%;3234  height: 100%;3235}3236/* Peach body stays brand-peach across every accent — we don't want a3237   green or blue peach when sage/sky is selected. Leaf + stem keep the3238   sage tint because a real peach has a sage leaf. */3239.peach-lock-hero-mark path:nth-child(2),3240.peach-lock-hero-mark path:nth-child(3) {3241  stroke: rgba(123, 144, 96, 0.88);3242  fill: rgba(123, 144, 96, 0.88);3243}3244.peach-lock-hero > *:not(.peach-lock-hero-art) {3245  position: relative;3246  z-index: 1;3247}32483249.peach-lock-eyebrow {3250  display: inline-flex;3251  align-items: center;3252  width: fit-content;3253  padding: 4px 9px;3254  border-radius: 999px;3255  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3256  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3257  color: var(--peach-t0);3258  font-family: "IBM Plex Mono", monospace;3259  font-size: 8px;3260  letter-spacing: 0.18em;3261  text-transform: uppercase;3262}32633264.peach-lock-label-row {3265  display: flex;3266  align-items: center;3267  justify-content: space-between;3268  margin-bottom: 0;3269}32703271.peach-lock-reveal-btn {3272  display: inline-flex;3273  align-items: center;3274  gap: 4px;3275  background: none;3276  border: none;3277  cursor: pointer;3278  font-family: "IBM Plex Mono", monospace;3279  font-size: 9px;3280  letter-spacing: 0.06em;3281  color: var(--peach-t2);3282  padding: 2px 0;3283  transition: color 150ms ease;3284}32853286.peach-lock-reveal-btn:hover {3287  color: var(--peach-t1);3288}32893290.peach-lock-warning {3291  color: rgba(220, 80, 60, 0.85) !important;3292  line-height: 1.5;3293}32943295.peach-onboarding-cards {3296  display: grid;3297  gap: 8px;3298  position: relative;3299  z-index: 1;3300}33013302.peach-lock-panel {3303  position: relative;3304  z-index: 1;3305  display: grid;3306  gap: 9px;3307  padding: 14px 16px 15px;3308  border-radius: 18px;3309  border: 1px solid var(--peach-t3);3310  background:3311    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3312  box-shadow:3313    inset 0 1px 0 rgba(240, 232, 216, 0.04),3314    0 12px 28px rgba(0, 0, 0, 0.12);3315}33163317.peach-lock-panel--secondary {3318  gap: 12px;3319}33203321.peach-lock-panel-header {3322  display: flex;3323  align-items: baseline;3324  justify-content: space-between;3325  gap: 12px;3326}33273328.peach-lock-option-grid {3329  display: grid;3330  gap: 10px;3331}33323333.peach-lock-option {3334  width: 100%;3335  display: grid;3336  gap: 6px;3337  padding: 14px 15px;3338  border-radius: 16px;3339  border: 1px solid rgba(240, 232, 216, 0.08);3340  background: rgba(240, 232, 216, 0.02);3341  color: var(--peach-t0);3342  text-align: left;3343  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3344}33453346.peach-lock-option:hover {3347  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3348  background: rgba(240, 232, 216, 0.04);3349  transform: translateY(-1px);3350}33513352.peach-lock-option-title {3353  font-size: 12px;3354  color: var(--peach-t0);3355}33563357.peach-lock-option-copy {3358  font-size: 11px;3359  line-height: 1.55;3360  color: var(--peach-t1);3361}33623363.peach-onboarding-stack {3364  margin-top: 2px;3365}3366.peach-lock-panel-footer {3367  display: grid;3368  gap: 6px;3369  margin-top: 2px;3370  padding-top: 10px;3371  border-top: 1px solid rgba(240, 232, 216, 0.06);3372}33733374/* Restore picker panel — method option cards */3375.peach-lock-panel--restore {3376  gap: 10px;3377}3378.peach-lock-option--history {3379  border-color: rgba(240, 232, 216, 0.06);3380  opacity: 0.85;3381}33823383/* Snapshot restore panel */3384.peach-snapshot-panel {3385  gap: 10px;3386  overflow-y: auto;3387  max-height: 340px;3388}3389.peach-snapshot-list {3390  display: flex;3391  flex-direction: column;3392  gap: 4px;3393}3394.peach-snapshot-row {3395  display: flex;3396  align-items: center;3397  justify-content: space-between;3398  width: 100%;3399  padding: 8px 10px;3400  border-radius: 8px;3401  border: 1px solid rgba(240, 232, 216, 0.07);3402  background: transparent;3403  cursor: pointer;3404  transition: border-color 120ms, background 120ms;3405  text-align: left;3406  gap: 8px;3407}3408.peach-snapshot-row:hover {3409  border-color: rgba(240, 232, 216, 0.14);3410  background: rgba(240, 232, 216, 0.03);3411}3412.peach-snapshot-row.is-selected {3413  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3414  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3415}3416.peach-snapshot-time {3417  font-size: 11.5px;3418  color: var(--peach-t0);3419  flex: 1;3420}3421.peach-snapshot-count {3422  font-family: "IBM Plex Mono", monospace;3423  font-size: 10px;3424  color: var(--peach-t2);3425  flex-shrink: 0;3426}3427.peach-snapshot-confirm {3428  display: flex;3429  flex-direction: column;3430  gap: 8px;3431  padding-top: 10px;3432  border-top: 1px solid rgba(240, 232, 216, 0.06);3433}3434.peach-snapshot-warning {3435  display: flex;3436  align-items: flex-start;3437  gap: 6px;3438  font-size: 10.5px;3439  color: rgba(220, 80, 60, 0.85);3440  line-height: 1.55;3441}3442.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3443.peach-snapshot-confirm-row {3444  display: flex;3445  gap: 6px;3446  align-items: center;3447}3448.peach-snapshot-restore-btn {3449  width: 100%;3450}3451.peach-lock-hero--unlock .peach-lock-hero-art {3452  width: 112px;3453  height: 112px;3454  right: 0;3455  top: 2px;3456  opacity: 0.1;3457}34583459.peach-card {3460  border: 1px solid var(--peach-t3);3461  border-radius: 18px;3462  background:3463    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3464  box-shadow:3465    inset 0 0 0 1px var(--peach-border-accent),3466    inset 0 1px 0 rgba(240, 232, 216, 0.04),3467    0 12px 32px rgba(0, 0, 0, 0.14);3468  overflow: hidden;3469}34703471.peach-card-active {3472  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3473  box-shadow:3474    inset 0 1px 0 rgba(240, 232, 216, 0.05),3475    0 16px 38px rgba(0, 0, 0, 0.18),3476    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3477}34783479.peach-card-disabled {3480  opacity: 0.72;3481}34823483.peach-card-header {3484  width: 100%;3485  padding: 13px 16px 11px;3486  background: transparent;3487  color: var(--peach-t0);3488  display: flex;3489  justify-content: space-between;3490  align-items: center;3491  text-align: left;3492  font-size: 12px;3493}34943495.peach-card-body {3496  padding: 0 16px 16px;3497  display: grid;3498  gap: 9px;3499}35003501.peach-card-tag {3502  color: var(--peach-t2);3503  font-family: "IBM Plex Mono", monospace;3504  font-size: 9px;3505  letter-spacing: 0.12em;3506  text-transform: uppercase;3507}35083509.peach-empty-copy {3510  display: grid;3511  gap: 6px;3512  color: var(--peach-t1);3513  font-size: 13px;3514}35153516.peach-lock-submit {3517  width: 100%;3518  box-shadow:3519    0 1px 0 rgba(255,255,255,0.10) inset,3520    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3521    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3522    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3523}35243525.peach-lock-secondary {3526  width: 100%;3527  border-color: var(--peach-t3);3528  background: rgba(240, 232, 216, 0.02);3529}35303531.peach-lock-secondary:hover {3532  background: rgba(240, 232, 216, 0.04);3533}35343535.peach-lock-note {3536  max-width: none;3537  line-height: 1.55;3538  margin: 0;3539}35403541.peach-overlay-action {3542  font-size: 10px;3543  padding: 4px 8px;3544  letter-spacing: 0.06em;3545  min-width: 44px;3546  text-align: center;3547}35483549.peach-overlay-spacer {3550  width: 32px;3551}35523553.peach-inline-action {3554  flex-shrink: 0;3555  font-size: 9px;3556  letter-spacing: 0.1em;3557  text-transform: uppercase;3558  padding: 4px 7px;3559}3560.peach-password-toggle-btn {3561  display: inline-flex;3562  align-items: center;3563  justify-content: center;3564  min-width: 30px;3565  min-height: 26px;3566  padding: 0 7px;3567  border: 1px solid var(--peach-t3);3568  border-radius: 999px;3569  background: rgba(240, 232, 216, 0.04);3570  color: var(--peach-t2);3571  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3572}3573.peach-password-toggle-btn:hover {3574  border-color: var(--peach-t2);3575  color: var(--peach-t0);3576  background: rgba(240, 232, 216, 0.06);3577}35783579.peach-new-textarea {3580  width: 100%;3581  min-height: 88px;3582  resize: vertical;3583  border: 0;3584  outline: none;3585  background: transparent;3586  color: var(--peach-t1);3587  font-family: "IBM Plex Mono", monospace;3588  font-size: 12px;3589  line-height: 1.65;3590  caret-color: var(--peach-accent);3591}35923593.peach-new-textarea::placeholder {3594  color: var(--peach-t2);3595  opacity: 0.7;3596}35973598.peach-settings-actions {3599  display: grid;3600  gap: 8px;3601}36023603.peach-sync-section-label {3604  font-size: 11px;3605  color: var(--peach-t2);3606  text-transform: uppercase;3607  letter-spacing: 0.05em;3608}36093610.peach-sync-device-row {3611  display: flex;3612  justify-content: space-between;3613  align-items: center;3614  padding: 6px 0;3615  border-bottom: 1px solid var(--peach-t3);3616}36173618.peach-sync-device-info {3619  display: flex;3620  flex-direction: column;3621  gap: 2px;3622}36233624.peach-sync-device-name {3625  font-size: 13px;3626  color: var(--peach-t0);3627}36283629.peach-sync-device-meta {3630  font-size: 11px;3631  color: var(--peach-t2);3632}36333634.peach-sync-status-dot {3635  display: inline-block;3636  width: 8px;3637  height: 8px;3638  border-radius: 50%;3639  vertical-align: middle;3640}36413642.peach-sync-remove-btn {3643  color: var(--peach-breach);3644}36453646.peach-sync-hero-icon {3647  color: var(--peach-t1);3648  opacity: 0.85;3649}36503651.peach-import-preview {3652  margin-bottom: 12px;3653  max-height: 152px;3654  overflow-y: auto;3655  border: 1px solid var(--peach-t3);3656  border-radius: 10px;3657  padding: 8px 10px;3658  display: grid;3659  gap: 8px;3660  background: rgba(240, 232, 216, 0.02);3661}36623663.peach-import-preview-row {3664  display: flex;3665  justify-content: space-between;3666  gap: 10px;3667  font-size: 11px;3668  color: var(--peach-t1);3669}36703671.peach-import-preview-title {3672  color: var(--peach-t0);3673  flex: 1;3674  min-width: 0;3675  overflow: hidden;3676  text-overflow: ellipsis;3677  white-space: nowrap;3678}36793680.peach-import-preview-meta {3681  color: var(--peach-t2);3682  flex-shrink: 0;3683  max-width: 42%;3684  overflow: hidden;3685  text-overflow: ellipsis;3686  white-space: nowrap;3687}36883689.peach-import-preview-more {3690  color: var(--peach-t2);3691  font-size: 10px;3692}36933694.peach-restore-copy {3695  margin: 0;3696  color: var(--peach-t1);3697  font-size: 11px;3698  line-height: 1.6;3699}37003701.peach-restore-warning {3702  padding: 10px 12px;3703  border-radius: 12px;3704  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3705  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3706  color: var(--peach-t0);3707  font-size: 11px;3708  line-height: 1.55;3709}37103711.peach-provider-chips {3712  display: flex;3713  flex-wrap: wrap;3714  gap: 6px;3715}37163717.peach-provider-chip {3718  display: inline-flex;3719  align-items: center;3720  padding: 5px 8px;3721  border-radius: 999px;3722  border: 1px solid var(--peach-t3);3723  background: rgba(240, 232, 216, 0.02);3724  color: var(--peach-t1);3725  font-family: "IBM Plex Mono", monospace;3726  font-size: 8px;3727  letter-spacing: 0.08em;3728  text-transform: uppercase;3729}37303731.peach-restore-file,3732.peach-restore-input {3733  width: 100%;3734  border-radius: 10px;3735  border: 1px solid var(--peach-t3);3736  background: var(--peach-s2);3737  color: var(--peach-t0);3738  font-size: 12px;3739}37403741.peach-restore-file {3742  padding: 9px 10px;3743}37443745.peach-restore-file::file-selector-button {3746  margin-right: 10px;3747  padding: 7px 10px;3748  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3749  border-radius: 999px;3750  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3751  color: var(--peach-t0);3752  font-size: 10px;3753  letter-spacing: 0.08em;3754  text-transform: uppercase;3755  cursor: pointer;3756}37573758.peach-restore-input {3759  padding: 10px 12px;3760}37613762.peach-auth-grid {3763  display: grid;3764  gap: 10px;3765}37663767.peach-import-summary {3768  color: var(--peach-t1);3769  font-size: 12px;3770  line-height: 1.6;3771  margin-bottom: 12px;3772}37733774.peach-restore-error {3775  color: rgba(220, 80, 60, 0.95);3776  font-size: 12px;3777  line-height: 1.55;3778}37793780.peach-cjk-qr-panel {3781  margin-top: 14px;3782  padding: 12px;3783  border-radius: 16px;3784  border: 1px solid var(--peach-t3);3785  background: rgba(240, 232, 216, 0.02);3786  display: grid;3787  gap: 10px;3788}37893790.peach-cjk-qr-frame {3791  display: grid;3792  place-items: center;3793  min-height: 212px;3794  border-radius: 14px;3795  background: #fff;3796  overflow: hidden;3797}37983799.peach-cjk-qr-frame svg {3800  display: block;3801  width: 196px;3802  height: 196px;3803}38043805.peach-cjk-qr-error,3806.peach-cjk-qr-caption {3807  color: var(--peach-t1);3808  font-size: 11px;3809  line-height: 1.55;3810}38113812.peach-cjk-qr-card {3813  max-width: 400px;3814  margin: auto;3815}38163817.peach-cjk-qr-body {3818  padding: 0 20px 20px;3819  text-align: center;3820}38213822.peach-cjk-qr-hint {3823  font-size: 11px;3824  color: var(--peach-t2);3825  margin: 0 0 14px;3826}38273828.peach-cjk-qr-image {3829  border-radius: 4px;3830  display: block;3831  margin: 0 auto;3832  width: 100%;3833  max-width: 320px;3834  height: auto;3835}38363837.peach-pro-badge {3838  padding: 2px 6px;3839  border-radius: 999px;3840  font-family: var(--font-ui);3841  font-size: 10px;3842  letter-spacing: 0.08em;3843  text-transform: uppercase;3844  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3845  color: var(--peach-accent);3846}38473848/* ── Shortcuts rebind table ─────────────────────────────────── */3849.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3850.peach-shortcut-row {3851  display: flex;3852  align-items: center;3853  gap: 10px;3854  padding: 6px 0;3855}3856.peach-shortcut-row-label {3857  flex: 1;3858  font-size: 12px;3859  color: var(--peach-t0);3860}3861.peach-shortcut-chip {3862  min-width: 64px;3863  padding: 4px 10px;3864  border-radius: 6px;3865  border: 1px solid var(--peach-t3);3866  background: var(--peach-input-bg, var(--surface-card));3867  color: var(--peach-t0);3868  font-family: var(--font-mono);3869  font-size: 11px;3870  letter-spacing: 0.04em;3871  cursor: pointer;3872  text-align: center;3873  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3874}3875.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3876.peach-shortcut-chip.is-custom {3877  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3878  color: var(--peach-accent);3879}3880.peach-shortcut-chip.is-capturing {3881  border-color: var(--peach-accent);3882  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3883  color: var(--peach-accent);3884  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3885}3886@keyframes peach-shortcut-capture-pulse {3887  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3888  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3889}3890.peach-shortcut-reset {3891  background: transparent;3892  border: none;3893  cursor: pointer;3894  color: var(--peach-t2);3895  padding: 4px 6px;3896  border-radius: 5px;3897  font-size: 14px;3898  line-height: 1;3899  transition: color 120ms ease, background 120ms ease;3900}3901.peach-shortcut-reset:hover {3902  color: var(--peach-t0);3903  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3904}3905.peach-shortcuts-conflict {3906  margin: 4px 0 0;3907  padding: 8px 10px;3908  border-radius: 7px;3909  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3910  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3911  font-family: var(--font-mono);3912  font-size: 11px;3913  color: var(--peach-t0);3914}39153916/* ── Help dialog overlay (? to open) ────────────────────────── */3917.peach-shortcuts-help-backdrop {3918  position: fixed;3919  inset: 0;3920  background: rgba(0, 0, 0, 0.55);3921  backdrop-filter: blur(2px);3922  display: flex;3923  align-items: center;3924  justify-content: center;3925  z-index: 1000;3926  animation: peach-help-fade-in 140ms ease forwards;3927}3928@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }3929.peach-shortcuts-help-card {3930  width: min(320px, 92vw);3931  max-height: 80vh;3932  overflow-y: auto;3933  border-radius: 14px;3934  border: 1px solid var(--peach-t3);3935  background: var(--peach-bg);3936  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);3937  padding: 16px 18px 18px;3938  display: flex;3939  flex-direction: column;3940  gap: 12px;3941}3942.peach-shortcuts-help-head {3943  display: flex; align-items: center; justify-content: space-between;3944}3945.peach-shortcuts-help-head h3 {3946  margin: 0;3947  font-family: var(--font-display);3948  font-style: italic;3949  font-weight: 400;3950  font-size: 22px;3951  color: var(--peach-t0);3952}3953.peach-shortcuts-help-close {3954  background: transparent;3955  border: none;3956  color: var(--peach-t2);3957  cursor: pointer;3958  font-size: 14px;3959  padding: 4px 8px;3960  border-radius: 5px;3961}3962.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }3963.peach-shortcuts-help-body ul {3964  list-style: none; padding: 0; margin: 4px 0 12px;3965  display: grid; gap: 8px;3966}3967.peach-shortcuts-help-body li {3968  display: flex; align-items: center; justify-content: space-between; gap: 12px;3969  font-size: 12px; color: var(--peach-t0);3970}3971.peach-shortcuts-help-body kbd {3972  font-family: var(--font-mono);3973  font-size: 11px;3974  padding: 3px 8px;3975  border-radius: 6px;3976  background: var(--surface-card);3977  border: 1px solid var(--peach-t3);3978  color: var(--peach-accent);3979  letter-spacing: 0.04em;3980}39813982/* ── Pro promo on Account screen ────────────────────────────── */3983.peach-pro-promo {3984  position: relative;3985  border-radius: 14px;3986  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3987  background:3988    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),3989    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),3990    var(--surface-card);3991  overflow: hidden;3992  margin-bottom: 14px;3993}3994.peach-pro-promo-glow {3995  position: absolute;3996  inset: -40% -20% auto auto;3997  width: 220px; height: 220px;3998  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);3999  pointer-events: none;4000  filter: blur(8px);4001}4002.peach-pro-promo-inner {4003  position: relative;4004  padding: 18px 18px 16px;4005}4006.peach-pro-promo-title {4007  font-family: var(--font-display);4008  font-style: italic;4009  font-weight: 400;4010  font-size: 28px;4011  line-height: 1;4012  letter-spacing: -0.005em;4013  color: var(--peach-t0);4014  margin: 0 0 4px;4015}4016.peach-pro-promo-tagline {4017  font-family: var(--font-mono);4018  font-size: 10px;4019  letter-spacing: 0.06em;4020  color: var(--peach-t2);4021  margin: 0 0 14px;4022}4023.peach-pro-promo-list {4024  list-style: none;4025  margin: 0 0 16px;4026  padding: 0;4027  display: grid;4028  gap: 9px;4029}4030.peach-pro-promo-list li {4031  display: flex;4032  align-items: flex-start;4033  gap: 9px;4034  font-size: 12px;4035  color: var(--peach-t1);4036  line-height: 1.4;4037}4038.peach-pro-promo-list svg {4039  width: 14px;4040  height: 14px;4041  flex-shrink: 0;4042  color: var(--peach-accent);4043  margin-top: 2px;4044}4045.peach-pro-promo-list span {4046  color: var(--peach-t0);4047}4048.peach-pro-promo-cta {4049  width: 100%;4050  background: var(--peach-accent);4051  color: #fff;4052  border: none;4053  padding: 9px 12px;4054  border-radius: 9px;4055  font-size: 12px;4056  font-weight: 500;4057  font-family: var(--font-ui);4058  letter-spacing: 0.02em;4059  text-decoration: none;4060  display: inline-flex;4061  align-items: center;4062  justify-content: center;4063  cursor: pointer;4064  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4065  box-shadow: 0 2px 16px var(--peach-glow);4066}4067.peach-pro-promo-cta:hover {4068  filter: brightness(1.07);4069  box-shadow: 0 4px 24px var(--peach-glow);4070  transform: translateY(-1px);4071}4072.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }40734074.peach-pro-or-divider {4075  display: flex;4076  align-items: center;4077  gap: 10px;4078  margin: 4px 0 12px;4079  font-family: var(--font-mono);4080  font-size: 10px;4081  letter-spacing: 0.06em;4082  color: var(--peach-t2);4083  text-transform: uppercase;4084}4085.peach-pro-or-divider::before,4086.peach-pro-or-divider::after {4087  content: "";4088  flex: 1;4089  height: 1px;4090  background: var(--peach-t3);4091}40924093.peach-loading {4094  position: absolute;4095  inset: 0;4096  display: flex;4097  align-items: center;4098  justify-content: center;4099  background: var(--bg);4100  animation: peach-loading-pulse 1.2s ease-in-out infinite;4101}41024103@keyframes peach-loading-pulse {4104  0%, 100% { opacity: 0.6; }4105  50% { opacity: 1; }4106}41074108/* ── Health Dashboard ─────────────────────────────────────────────────── */4109.peach-health-body {4110  flex: 1;4111  overflow-y: auto;4112  display: flex;4113  flex-direction: column;4114}41154116.peach-health-summary {4117  padding: 10px 16px 6px;4118  font-family: "IBM Plex Mono", monospace;4119  font-size: 11px;4120}4121.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4122.peach-health-summary-ok { color: var(--peach-t2); }41234124.peach-health-check-row {4125  padding: 0 16px 10px;4126}4127.peach-health-check-btn {4128  width: 100%;4129  display: flex;4130  align-items: center;4131  justify-content: center;4132}41334134.peach-health-sections {4135  flex: 1;4136  display: flex;4137  flex-direction: column;4138}41394140.peach-health-section {4141  border-bottom: 1px solid var(--peach-t3);4142}41434144.peach-health-section-header {4145  width: 100%;4146  display: flex;4147  align-items: center;4148  justify-content: space-between;4149  padding: 9px 16px;4150  background: transparent;4151  cursor: pointer;4152  color: var(--peach-t0);4153}41544155.peach-health-section-title-row {4156  display: flex;4157  align-items: center;4158  gap: 8px;4159}41604161.peach-health-count-badge {4162  display: inline-flex;4163  align-items: center;4164  justify-content: center;4165  min-width: 20px;4166  height: 18px;4167  padding: 0 5px;4168  border-radius: 999px;4169  background: rgba(220,80,60,0.15);4170  border: 1px solid rgba(220,80,60,0.25);4171  font-family: "IBM Plex Mono", monospace;4172  font-size: 9px;4173  color: rgba(220,80,60,0.9);4174}41754176.peach-health-section-title {4177  font-family: "IBM Plex Mono", monospace;4178  font-size: 11px;4179  text-transform: uppercase;4180  letter-spacing: 0.1em;4181  color: var(--peach-t1);4182}41834184.peach-health-chevron {4185  color: var(--peach-t2);4186  transition: transform 200ms ease;4187  flex-shrink: 0;4188}4189.peach-health-chevron.is-expanded {4190  transform: rotate(180deg);4191}41924193.peach-health-section-body {4194  padding: 0 16px 10px;4195  display: flex;4196  flex-direction: column;4197  gap: 4px;4198}41994200.peach-health-row {4201  display: flex;4202  align-items: flex-start;4203  justify-content: space-between;4204  gap: 8px;4205  padding: 6px 8px;4206  border-radius: 8px;4207  background: rgba(240,232,216,0.02);4208}42094210.peach-health-row-info {4211  flex: 1;4212  min-width: 0;4213  display: flex;4214  flex-direction: column;4215  gap: 2px;4216}42174218.peach-health-row-name {4219  font-family: "Cormorant Garamond", serif;4220  font-size: 15px;4221  font-style: italic;4222  font-weight: 400;4223  color: var(--peach-t0);4224  white-space: nowrap;4225  overflow: hidden;4226  text-overflow: ellipsis;4227}42284229.peach-health-row-meta {4230  font-family: "IBM Plex Mono", monospace;4231  font-size: 9px;4232  color: var(--peach-t2);4233  letter-spacing: 0.05em;4234}42354236.peach-health-fix-btn {4237  font-size: 9px;4238  letter-spacing: 0.08em;4239  text-transform: uppercase;4240  padding: 4px 7px;4241  flex-shrink: 0;4242  display: flex;4243  align-items: center;4244}42454246.peach-health-empty {4247  font-family: "IBM Plex Mono", monospace;4248  font-size: 10px;4249  color: var(--peach-t2);4250  padding: 6px 0;4251}42524253.peach-health-loading {4254  font-family: "IBM Plex Mono", monospace;4255  font-size: 10px;4256  color: var(--peach-t2);4257  padding: 6px 0;4258  display: flex;4259  align-items: center;4260  gap: 6px;4261}42624263.peach-health-loading::before {4264  content: "";4265  width: 10px;4266  height: 10px;4267  border: 1.5px solid var(--peach-t3);4268  border-top-color: var(--peach-accent);4269  border-radius: 50%;4270  animation: peach-spin 600ms linear infinite;4271}42724273@keyframes peach-spin {4274  to { transform: rotate(360deg); }4275}42764277.peach-spinner {4278  width: 32px;4279  height: 32px;4280  border: 2px solid var(--peach-s2);4281  border-top-color: var(--peach-accent);4282  border-radius: 50%;4283  margin: 0 auto 16px;4284  animation: peach-spin 0.8s linear infinite;4285}42864287.peach-progress-screen {4288  text-align: center;4289  padding: 32px 16px;4290}42914292.peach-progress-screen-title {4293  font-size: 13px;4294  color: var(--peach-t0);4295  margin-bottom: 16px;4296}42974298.peach-progress-screen-stage {4299  font-size: 11px;4300  color: var(--peach-t2);4301  min-height: 14px;4302}43034304.peach-progress-screen-note {4305  font-size: 10px;4306  color: var(--peach-t2);4307  margin-top: 8px;4308}43094310.peach-pairing-body {4311  flex: 1;4312  overflow-y: auto;4313  display: flex;4314  flex-direction: column;4315}43164317.peach-pairing-content {4318  flex: 1;4319  display: flex;4320  flex-direction: column;4321  align-items: center;4322  justify-content: center;4323  gap: 14px;4324  padding: 28px 20px;4325  text-align: center;4326}43274328.peach-pairing-headline {4329  font-family: var(--font-display);4330  font-style: italic;4331  font-weight: 300;4332  font-size: 28px;4333  color: var(--peach-t0);4334  margin: 0;4335  line-height: 1;4336}43374338.peach-pairing-subline {4339  font-size: 12px;4340  color: var(--peach-t2);4341  max-width: 220px;4342  line-height: 1.5;4343  margin: 0;4344}43454346.peach-pairing-subline--center {4347  text-align: center;4348}43494350.peach-pairing-code-display {4351  display: flex;4352  gap: 6px;4353}43544355.peach-pairing-code-digit {4356  display: flex;4357  align-items: center;4358  justify-content: center;4359  width: 36px;4360  height: 48px;4361  background: var(--peach-s2);4362  border: 1px solid var(--peach-t3);4363  border-radius: 6px;4364  font-family: var(--font-mono);4365  font-size: 22px;4366  color: var(--peach-t0);4367  letter-spacing: 0;4368}43694370.peach-pairing-countdown-ring {4371  position: relative;4372  display: inline-flex;4373  align-items: center;4374  justify-content: center;4375}43764377.peach-pairing-countdown-num {4378  position: absolute;4379  font-family: var(--font-mono);4380  font-size: 14px;4381  color: var(--peach-t1);4382}43834384.peach-pairing-ring-track {4385  fill: none;4386  stroke: var(--peach-t3);4387  stroke-width: 2;4388}43894390.peach-pairing-ring-progress {4391  fill: none;4392  stroke: var(--peach-accent);4393  stroke-width: 2;4394  stroke-linecap: round;4395  transform: rotate(-90deg);4396  transform-origin: 50% 50%;4397  transition: stroke-dashoffset 0.5s linear;4398}43994400.peach-pairing-code-inputs {4401  display: flex;4402  gap: 8px;4403}44044405.peach-pairing-code-box {4406  width: 36px;4407  height: 48px;4408  text-align: center;4409  background: var(--peach-s2);4410  border: 1px solid var(--peach-t3);4411  border-radius: 6px;4412  font-family: var(--font-mono);4413  font-size: 20px;4414  color: var(--peach-t0);4415  outline: none;4416  transition: border-color 120ms ease;4417}44184419.peach-pairing-code-box:focus {4420  border-color: var(--peach-accent);4421}44224423.peach-pairing-code-box.has-error {4424  border-color: rgba(220, 80, 60, 0.45);4425}44264427.peach-pairing-status {4428  display: flex;4429  align-items: center;4430  gap: 8px;4431  margin: 0;4432  font-size: 12px;4433  color: var(--peach-t1);4434}44354436.peach-pairing-error {4437  margin: 0;4438  font-size: 11px;4439  color: var(--peach-breach);4440}44414442.peach-pairing-error-msg {4443  color: var(--peach-t1);4444}44454446.peach-pairing-spinner {4447  width: 12px;4448  height: 12px;4449  border: 1.5px solid var(--peach-t3);4450  border-top-color: var(--peach-accent);4451  border-radius: 50%;4452  animation: peach-spin 0.8s linear infinite;4453}44544455.peach-pairing-success-icon,4456.peach-pairing-error-icon,4457.peach-pairing-hero {4458  display: inline-flex;4459  align-items: center;4460  justify-content: center;4461}44624463/* Tag chips */4464.peach-tag-chip {4465  display: inline-flex;4466  align-items: center;4467  gap: 4px;4468  padding: 3px 8px;4469  border-radius: 999px;4470  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4471  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4472  color: var(--peach-t0);4473  font-family: "IBM Plex Mono", monospace;4474  font-size: 10px;4475  letter-spacing: 0.04em;4476}44774478.peach-tag-chip-remove {4479  background: transparent;4480  border: none;4481  color: inherit;4482  opacity: 0.6;4483  cursor: pointer;4484  padding: 0;4485  font-size: 12px;4486  line-height: 1;4487}44884489.peach-tag-chip-remove:hover {4490  opacity: 1;4491}44924493/* Tag input */4494.peach-tag-input-wrap {4495  border-bottom: 1px solid var(--peach-t3);4496}44974498.peach-tag-suggestions {4499  display: flex;4500  flex-wrap: wrap;4501  gap: 4px;4502  padding: 6px 0;4503}45044505.peach-tag-suggestion {4506  padding: 2px 8px;4507  border-radius: 999px;4508  border: 1px solid var(--peach-t3);4509  background: var(--peach-s2);4510  color: var(--peach-t1);4511  font-family: "IBM Plex Mono", monospace;4512  font-size: 10px;4513  cursor: pointer;4514  transition: border-color 80ms ease, background 80ms ease;4515}45164517.peach-tag-suggestion:hover {4518  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4519  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4520}45214522/* Tag filter strip */4523.peach-tag-filter-strip {4524  border-bottom: 1px solid var(--peach-t3);4525  flex-shrink: 0;4526}45274528.peach-tag-filter-chip {4529  display: inline-flex;4530  align-items: center;4531  padding: 4px 10px;4532  border-radius: 999px;4533  border: 1px solid var(--peach-t3);4534  background: transparent;4535  color: var(--peach-t2);4536  font-family: "IBM Plex Mono", monospace;4537  font-size: 9px;4538  letter-spacing: 0.06em;4539  text-transform: uppercase;4540  cursor: pointer;4541  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4542  white-space: nowrap;4543}45444545.peach-tag-filter-chip:hover {4546  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4547  color: var(--peach-t1);4548}45494550.peach-tag-filter-chip.is-selected {4551  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4552  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4553  color: var(--peach-t0);4554}45554556/* ─────────────────────────────────────────────────────────────────────────4557   v1.4.12 additions4558   ─────────────────────────────────────────────────────────────────────── */45594560/* Sort bar */4561.peach-sort-bar {4562  display: flex;4563  align-items: center;4564  gap: 4px;4565  padding: 5px 12px;4566  border-bottom: 1px solid var(--peach-t3);4567  flex-shrink: 0;4568  overflow-x: auto;4569  scrollbar-width: none;4570}45714572.peach-sort-btn {4573  padding: 2px 9px;4574  border-radius: 999px;4575  border: 1px solid transparent;4576  background: transparent;4577  color: var(--peach-t2);4578  font-family: "IBM Plex Mono", monospace;4579  font-size: 9px;4580  letter-spacing: 0.07em;4581  text-transform: uppercase;4582  cursor: pointer;4583  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4584  white-space: nowrap;4585}45864587.peach-sort-btn:hover {4588  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4589  color: var(--peach-t1);4590}45914592.peach-sort-btn.is-active {4593  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4594  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4595  color: var(--peach-t0);4596}45974598.peach-sort-domain-hint {4599  margin-left: auto;4600  font-family: "IBM Plex Mono", monospace;4601  font-size: 9px;4602  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4603  white-space: nowrap;4604  overflow: hidden;4605  text-overflow: ellipsis;4606  max-width: 110px;4607}46084609/* Tab-match badge on entry rows */4610.peach-tab-match-badge {4611  display: inline-block;4612  width: 6px;4613  height: 6px;4614  border-radius: 50%;4615  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4616  margin-left: 5px;4617  vertical-align: middle;4618  flex-shrink: 0;4619  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4620}46214622.peach-entry-row.is-tab-match {4623  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4624  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4625}46264627.peach-entry-row.is-tab-match:hover {4628  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4629}46304631/* Entry list stagger entrance */4632@keyframes peach-entry-fadein {4633  from { opacity: 0; transform: translateY(4px); }4634  to   { opacity: 1; transform: translateY(0); }4635}46364637.peach-vault-list .peach-entry-row {4638  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4639  content-visibility: auto;4640  contain-intrinsic-size: auto 44px;4641}46424643/* Button press micro-interaction */4644.peach-btn:active {4645  transform: scale(0.95);4646  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4647}46484649.peach-sort-btn:active,4650.peach-tag-filter-chip:active {4651  transform: scale(0.93);4652  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4653}46544655/* Password strength bar (Lock view + shared) */4656.peach-password-strength {4657  display: flex;4658  align-items: center;4659  gap: 8px;4660  margin-top: 6px;4661}46624663.peach-strength-bar {4664  flex: 1;4665  height: 3px;4666  border-radius: 2px;4667  background: var(--peach-t3);4668  overflow: hidden;4669}46704671.peach-strength-fill {4672  height: 100%;4673  border-radius: 2px;4674  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4675              background 300ms ease;4676}46774678.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4679.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4680.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4681.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }46824683.peach-strength-label {4684  font-family: "IBM Plex Mono", monospace;4685  font-style: italic;4686  font-size: 9px;4687  font-weight: 300;4688  letter-spacing: 0.06em;4689  color: var(--peach-t2);4690  min-width: 36px;4691  text-align: right;4692}46934694.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4695.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4696.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4697.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }46984699/* Duress form */4700.peach-duress-status {4701  padding: 2px 8px;4702  border-radius: 999px;4703  border: 1px solid var(--peach-t3);4704  font-family: "IBM Plex Mono", monospace;4705  font-size: 9px;4706  letter-spacing: 0.07em;4707  text-transform: uppercase;4708  color: var(--peach-t2);4709  flex-shrink: 0;4710}47114712.peach-duress-status.is-active {4713  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4714  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4715  color: var(--peach-t0);4716}47174718.peach-duress-form {4719  padding: 8px 0 4px;4720  display: flex;4721  flex-direction: column;4722  gap: 6px;4723}47244725.peach-duress-form .peach-label {4726  margin-top: 4px;4727}47284729.peach-duress-actions {4730  display: flex;4731  gap: 6px;4732  align-items: center;4733  margin-top: 4px;4734}47354736.peach-duress-actions .peach-btn:first-child {4737  margin-right: auto;4738}47394740/* Improved overlay spring entrance */4741.peach-overlay-view.ov-enter-up {4742  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4743}47444745@keyframes ov-enter-up-spring {4746  from { opacity: 0; transform: translateY(16px) scale(0.98); }4747  to   { opacity: 1; transform: translateY(0) scale(1); }4748}47494750.peach-overlay-view.ov-enter-right {4751  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4752}47534754@keyframes ov-enter-right-spring {4755  from { opacity: 0; transform: translateX(18px) scale(0.98); }4756  to   { opacity: 1; transform: translateX(0) scale(1); }4757}47584759/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4760/* Used when CJKImportView or MainImportView renders during onboarding4761   (no vault yet). Animates like a lock-screen transition. */4762.peach-lock-view {4763  position: absolute;4764  inset: 0;4765  display: flex;4766  flex-direction: column;4767  background:4768    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4769    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4770    var(--peach-bg);4771  z-index: 2;4772  overflow: hidden;4773  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4774}47754776.peach-lock-view-header {4777  display: flex;4778  align-items: center;4779  justify-content: space-between;4780  padding: 16px 18px 12px;4781  flex-shrink: 0;4782}47834784/* ───────── Settings: auto-lock select ───────── */4785.peach-settings-select {4786  font-family: "IBM Plex Mono", monospace;4787  font-size: 11px;4788  background: transparent;4789  border: 1px solid var(--peach-t3);4790  border-radius: 4px;4791  color: var(--peach-t1);4792  padding: 3px 6px;4793  cursor: pointer;4794  outline: none;4795}4796.peach-settings-select:focus {4797  border-color: var(--peach-accent);4798}47994800/* ───────── Duress status pill (new polished) ───────── */4801.peach-duress-status-pill {4802  font-family: "IBM Plex Mono", monospace;4803  font-size: 9px;4804  text-transform: uppercase;4805  letter-spacing: 0.12em;4806  padding: 2px 8px;4807  border-radius: 12px;4808  background: var(--peach-t3);4809  color: var(--peach-t2);4810  flex-shrink: 0;4811}4812.peach-duress-status-pill.is-active {4813  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4814  color: var(--peach-accent);4815}48164817/* ───────── Entry advanced disclosure (canary) ───────── */4818.peach-entry-advanced {4819  margin-top: 12px;4820  border-top: 1px solid var(--peach-t3);4821  padding-top: 10px;4822  position: relative;4823  z-index: 1;4824}4825.peach-entry-advanced-toggle {4826  display: flex;4827  align-items: center;4828  justify-content: space-between;4829  width: 100%;4830  background: transparent;4831  border: none;4832  cursor: pointer;4833  padding: 0;4834  color: var(--peach-t2);4835}4836.peach-canary-section {4837  margin-top: 10px;4838  display: grid;4839  gap: 6px;4840}48414842/* ───────── Import: merge/replace radio choices ───────── */4843.peach-import-choice {4844  display: flex;4845  align-items: flex-start;4846  gap: 10px;4847  padding: 8px 10px;4848  border: 1px solid var(--peach-t3);4849  border-radius: 10px;4850  cursor: pointer;4851  margin-bottom: 6px;4852  transition: border-color 120ms ease, background 120ms ease;4853}4854.peach-import-choice:hover {4855  border-color: var(--peach-accent);4856}4857.peach-import-choice input[type="radio"] {4858  margin-top: 3px;4859  accent-color: var(--peach-accent);4860  flex-shrink: 0;4861}4862.peach-import-choice-main {4863  display: flex;4864  flex-direction: column;4865  gap: 2px;4866  min-width: 0;4867}4868.peach-import-choice-label {4869  font-size: 12px;4870  color: var(--peach-t0);4871}4872.peach-import-choice-sub {4873  font-size: 11px;4874  color: var(--peach-t2);4875  line-height: 1.5;4876}48774878/* ───────── Export: success confirmation strip ───────── */4879.peach-export-success {4880  display: flex;4881  align-items: flex-start;4882  gap: 10px;4883  padding: 12px;4884  border-radius: 12px;4885  border: 1px solid rgba(150, 175, 110, 0.3);4886  background: rgba(150, 175, 110, 0.08);4887  color: var(--peach-t0);4888  font-size: 12px;4889  line-height: 1.55;4890}4891.peach-export-success-check {4892  color: rgba(150, 175, 110, 0.9);4893  font-size: 14px;4894  flex-shrink: 0;4895}48964897/* ── Trash view ──────────────────────────────────────────────────────── */4898.peach-trash-entry-row {4899  display: flex;4900  align-items: center;4901  justify-content: space-between;4902  gap: 8px;4903  padding: 8px 0;4904  border-bottom: 1px solid var(--peach-t3);4905}4906.peach-trash-entry-row:last-child { border-bottom: none; }4907.peach-trash-entry-info {4908  flex: 1;4909  min-width: 0;4910  display: flex;4911  flex-direction: column;4912  gap: 2px;4913}4914.peach-trash-entry-title {4915  font-size: 12px;4916  color: var(--peach-t1);4917  overflow: hidden;4918  text-overflow: ellipsis;4919  white-space: nowrap;4920}4921.peach-trash-entry-meta {4922  font-family: var(--font-mono);4923  font-size: 9px;4924  color: var(--peach-t2);4925  letter-spacing: 0.06em;4926}4927.peach-trash-entry-actions {4928  display: flex;4929  align-items: center;4930  gap: 4px;4931  flex-shrink: 0;4932}4933.peach-trash-list {4934  flex: 1;4935  min-height: 0;4936  overflow-y: auto;4937}4938.peach-trash-notice {4939  margin: 0 20px 16px;4940  margin-top: auto;4941}49424943/* ── Settings shortcuts grid ─────────────────────────────────────────── */4944.peach-shortcuts-grid {4945  display: grid;4946  grid-template-columns: auto 1fr;4947  gap: 6px 12px;4948  align-items: center;4949  padding: 4px 0;4950}4951.peach-shortcut-key {4952  font-family: var(--font-mono);4953  font-size: 10px;4954  color: var(--peach-t0);4955  background: var(--peach-t3);4956  border-radius: 4px;4957  padding: 2px 6px;4958  white-space: nowrap;4959  text-align: center;4960}4961.peach-shortcut-desc {4962  font-size: 11px;4963  color: var(--peach-t1);4964}49654966/* ── Sort bar trash button ───────────────────────────────────────────── */4967.peach-sort-trash-btn {4968  display: flex;4969  align-items: center;4970  justify-content: center;4971  padding: 3px 5px;4972  background: transparent;4973  border: none;4974  cursor: pointer;4975  color: var(--peach-t2);4976  border-radius: 4px;4977  transition: color 140ms ease, background 140ms ease;4978}4979.peach-sort-trash-btn:hover {4980  color: var(--peach-t1);4981  background: var(--peach-t3);4982}4983.peach-sort-trash-btn.is-active {4984  color: var(--peach-accent);4985}49864987/* Accent color picker */4988.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4989.peach-accent-picker {4990  display: flex;4991  flex-wrap: wrap;4992  gap: 7px;4993  padding: 2px 0;4994}4995.peach-accent-swatch {4996  width: 22px;4997  height: 22px;4998  border-radius: 50%;4999  border: 2px solid transparent;5000  cursor: pointer;5001  padding: 0;5002  transition: transform 100ms;5003  outline-offset: 2px;5004}5005.peach-accent-swatch:hover { transform: scale(1.15); }5006.peach-accent-swatch.is-active {5007  border-color: var(--peach-t0);5008  transform: scale(1.1);5009}50105011/* ── Card entry styles ───────────────────────────────────────── */5012.peach-card-number {5013  font-family: var(--peach-mono);5014  letter-spacing: 0.08em;5015}50165017.peach-card-network-badge {5018  font-size: 10px;5019  padding: 1px 5px;5020  border-radius: 4px;5021  border: 0.5px solid var(--peach-border);5022  color: var(--peach-text-dim);5023  margin-left: 6px;5024  vertical-align: middle;5025}50265027.peach-card-expiry-row {5028  display: flex;5029  align-items: center;5030  gap: 8px;5031}50325033.peach-card-expiry-sep {5034  color: var(--peach-text-dim);5035}50365037/* ── Pro tier — upgrade screen ──────────────────────────────── */5038.peach-pro-mark {5039  font-size: 9px;5040  color: var(--peach-accent);5041  margin-left: 6px;5042  vertical-align: super;5043  opacity: 0.7;5044}50455046.peach-pro-mini-badge {5047  display: block;5048  font-size: 10px;5049  font-style: italic;5050  color: var(--peach-accent);5051  letter-spacing: 0.04em;5052  margin-top: -2px;5053  padding-left: 2px;5054  opacity: 0.85;5055  text-align: center;5056}50575058.peach-wordmark-stack {5059  display: inline-flex;5060  flex-direction: column;5061  align-items: center;5062}50635064.peach-pro-upgrade {5065  display: flex;5066  flex-direction: column;5067  gap: 14px;5068  padding: 4px 4px 12px;5069}50705071.peach-pro-upgrade-hero {5072  display: flex;5073  flex-direction: column;5074  align-items: center;5075  gap: 4px;5076  padding: 8px 0 4px;5077}50785079.peach-pro-upgrade-mark {5080  width: 32px;5081  height: 32px;5082}50835084.peach-pro-upgrade-title {5085  font-family: var(--font-display, var(--font-ui));5086  font-size: 22px;5087  margin: 0;5088  color: var(--peach-t0);5089  letter-spacing: 0.01em;5090}50915092.peach-pro-upgrade-tagline {5093  margin: 0;5094  font-style: italic;5095  color: var(--peach-t2);5096  font-size: 12px;5097}50985099.peach-pro-features {5100  display: flex;5101  flex-direction: column;5102  gap: 10px;5103  border-top: 1px solid var(--peach-border);5104  border-bottom: 1px solid var(--peach-border);5105  padding: 14px 4px;5106}51075108.peach-pro-feature {5109  display: flex;5110  gap: 10px;5111  align-items: flex-start;5112}51135114.peach-pro-feature-mark {5115  color: var(--peach-accent);5116  font-size: 14px;5117  line-height: 1.2;5118  flex-shrink: 0;5119  display: inline-block;5120  transform-origin: center;5121}51225123.peach-pro-feature-text {5124  display: flex;5125  flex-direction: column;5126  gap: 2px;5127}51285129.peach-pro-feature-name {5130  font-size: 13px;5131  color: var(--peach-t0);5132}51335134.peach-pro-feature-desc {5135  font-size: 11px;5136  color: var(--peach-t2);5137}51385139.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5140  animation: peach-pulse-accent 600ms ease-out forwards;5141}51425143@keyframes peach-pulse-accent {5144  0%   { opacity: 1; transform: scale(1.4); }5145  100% { opacity: 0.7; transform: scale(1); }5146}51475148.peach-pro-pricing {5149  margin: 0;5150  text-align: center;5151  font-size: 12px;5152  color: var(--peach-t2);5153}51545155.peach-pro-upgrade-cta {5156  align-self: center;5157  width: auto;5158  min-width: 160px;5159  text-align: center;5160  text-decoration: none;5161  display: inline-block;5162  padding: 8px 20px;5163  font-size: 13px;5164}51655166.peach-pro-key-link {5167  background: transparent;5168  border: 0;5169  color: var(--peach-t2);5170  font-size: 11px;5171  cursor: pointer;5172  align-self: center;5173  padding: 4px 8px;5174}51755176.peach-pro-key-link:hover {5177  color: var(--peach-accent);5178}51795180.peach-pro-key-entry {5181  display: flex;5182  flex-direction: column;5183  gap: 8px;5184}51855186.peach-pro-key-input {5187  font-family: var(--font-mono, monospace);5188  letter-spacing: 0.06em;5189  text-align: center;5190}51915192.peach-pro-key-error {5193  margin: 0;5194  font-size: 11px;5195  color: var(--peach-breach, #e55);5196}51975198/* ── Pro tier — active state ─────────────────────────────────── */5199.peach-pro-active {5200  display: flex;5201  flex-direction: column;5202  gap: 8px;5203  padding: 14px 4px;5204}52055206.peach-pro-active-head {5207  display: flex;5208  align-items: center;5209  gap: 8px;5210}52115212.peach-pro-active-mark { font-size: 16px; line-height: 1; }52135214.peach-pro-active-title {5215  margin: 0;5216  font-size: 15px;5217  font-weight: 500;5218  color: var(--peach-t0);5219}52205221.peach-pro-active-since {5222  margin: 0;5223  font-size: 12px;5224  color: var(--peach-t2);5225}52265227.peach-pro-active-divider {5228  height: 1px;5229  background: var(--peach-border);5230  margin: 8px 0 4px;5231}52325233.peach-pro-active-thanks {5234  margin: 0;5235  font-size: 12px;5236  font-style: italic;5237  color: var(--peach-t2);5238}52395240.peach-pro-deactivate {5241  align-self: flex-end;5242  background: transparent;5243  border: 0;5244  color: var(--peach-t2);5245  font-size: 11px;5246  cursor: pointer;5247  padding: 6px 0;5248  margin-top: 4px;5249}52505251.peach-pro-deactivate:hover {5252  color: var(--peach-accent);5253}52545255.peach-pro-deactivate:disabled {5256  opacity: 0.6;5257  cursor: default;5258}52595260/* ── Pro advanced health remediation queue ──────────────────── */5261.peach-health-pro-queue {5262  display: flex;5263  flex-direction: column;5264  gap: 10px;5265  padding: 12px;5266  margin: 0 0 12px;5267  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5268  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5269  border-radius: 10px;5270}52715272.peach-health-pro-queue-head {5273  display: flex;5274  justify-content: space-between;5275  align-items: baseline;5276}52775278.peach-health-pro-queue-title {5279  font-size: 12px;5280  font-weight: 500;5281  letter-spacing: 0.04em;5282  text-transform: uppercase;5283  color: var(--peach-accent);5284}52855286.peach-health-pro-queue-score {5287  font-size: 11px;5288  color: var(--peach-t2);5289}52905291.peach-health-pro-row {5292  display: flex;5293  gap: 10px;5294  align-items: center;5295  padding: 8px 0;5296  border-top: 1px solid var(--peach-border);5297}52985299.peach-health-pro-row-info {5300  flex: 1;5301  display: flex;5302  flex-direction: column;5303  gap: 4px;5304  min-width: 0;5305}53065307.peach-health-pro-row-name {5308  font-size: 13px;5309  color: var(--peach-t0);5310  overflow: hidden;5311  text-overflow: ellipsis;5312  white-space: nowrap;5313}53145315.peach-health-pro-row-meta {5316  font-size: 11px;5317  color: var(--peach-t2);5318}53195320.peach-health-pro-bar {5321  height: 2px;5322  background: var(--peach-border);5323  border-radius: 2px;5324  overflow: hidden;5325  margin-top: 2px;5326}53275328.peach-health-pro-bar-fill {5329  height: 100%;5330  background: var(--peach-accent);5331  transition: width 200ms ease-out;5332}53335334/* ── Pro activation celebration ── */5335@keyframes peach-pro-bloom {5336  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5337  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5338                 drop-shadow(0 0 48px var(--peach-glow)); }5339  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5340}53415342@keyframes peach-pro-wordmark-in {5343  from { opacity: 0; transform: translateY(4px); }5344  to   { opacity: 1; transform: translateY(0); }5345}53465347@keyframes peach-pro-fade-out {5348  from { opacity: 1; }5349  to   { opacity: 0; }5350}53515352.peach-pro-celebration {5353  background:5354    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5355    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5356    var(--peach-bg);5357  border: 1px solid var(--peach-t3);5358  box-shadow:5359    0 2px 8px rgba(0,0,0,0.55),5360    0 14px 48px rgba(0,0,0,0.7),5361    0 0 0 1px rgba(240,232,216,0.04);5362  overflow: hidden;5363  width: 320px;5364  height: 520px;5365  display: flex;5366  flex-direction: column;5367  align-items: center;5368  justify-content: center;5369  gap: 8px;5370  padding: 32px 24px;5371  text-align: center;5372}53735374.peach-pro-celebration.is-leaving {5375  animation: peach-pro-fade-out 400ms ease forwards;5376}53775378.peach-pro-bloom-target {5379  font-size: 48px;5380  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5381  margin-bottom: 12px;5382}53835384.peach-pro-wordmark {5385  font-family: "Cormorant Garamond", "Times New Roman", serif;5386  font-size: 22px;5387  font-style: italic;5388  font-weight: 400;5389  color: var(--peach-accent);5390  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5391}53925393.peach-pro-thankyou {5394  font-size: 12px;5395  font-style: italic;5396  color: var(--peach-t2);5397  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5398}539954005401/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5402.peach-pro-notice-banner {5403  display: flex;5404  align-items: center;5405  gap: 8px;5406  padding: 7px 12px;5407  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5408  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5409  font-size: 11px;5410  color: var(--peach-t2);5411  font-family: "IBM Plex Mono", monospace;5412  flex-shrink: 0;5413}54145415.peach-pro-notice-link {5416  background: none;5417  border: none;5418  padding: 0;5419  cursor: pointer;5420  font-size: 11px;5421  color: var(--peach-accent);5422  font-family: "IBM Plex Mono", monospace;5423  margin-left: auto;5424  white-space: nowrap;5425}54265427.peach-pro-notice-close {5428  background: none;5429  border: none;5430  padding: 0 0 0 4px;5431  cursor: pointer;5432  font-size: 10px;5433  color: var(--peach-t3);5434  line-height: 1;5435}