popup.css

111.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-t2);1236  line-height: 1.5;1237  background: rgba(240, 232, 216, 0.04);1238  border: 1px solid var(--peach-t3);1239  border-radius: 6px;1240  padding: 8px 10px;1241}12421243.peach-strength-row {1244  display: flex;1245  align-items: center;1246  gap: 8px;1247  margin-bottom: 10px;1248}12491250.peach-strength-track {1251  flex: 1;1252  height: 4px;1253  background: var(--peach-s2);1254  border-radius: 2px;1255  overflow: hidden;1256}12571258.peach-strength-fill {1259  height: 100%;1260  border-radius: 2px;1261  transition: width 120ms ease, background 120ms ease;1262}12631264/* ── Type selector tabs ── */1265.peach-type-tabs {1266  display: flex;1267  gap: 0;1268  background: var(--peach-t4);1269  border-radius: 8px;1270  padding: 3px;1271}12721273.peach-type-tab {1274  flex: 1;1275  display: flex;1276  align-items: center;1277  justify-content: center;1278  gap: 6px;1279  padding: 6px 10px;1280  border-radius: 6px;1281  border: none;1282  background: transparent;1283  cursor: pointer;1284  font-family: Inter, system-ui, sans-serif;1285  font-size: 11px;1286  font-weight: 400;1287  letter-spacing: 0.04em;1288  color: var(--peach-t1);1289  transition: background 150ms ease, color 150ms ease;1290}12911292.peach-type-tab.is-active {1293  background: var(--peach-s2);1294  color: var(--peach-t0);1295  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1296}12971298.peach-type-tab:not(.is-active):hover {1299  color: var(--peach-t0);1300}13011302.peach-type-tab svg {1303  opacity: 0.7;1304  flex-shrink: 0;1305}13061307.peach-type-tab.is-active svg {1308  opacity: 1;1309}13101311/* ── List view ───────────────────────────────────────────────────────── */1312.peach-list-top {1313  padding: 0 10px;1314  min-height: 46px;1315  display: flex;1316  align-items: center;1317  gap: 6px;1318  border-bottom: 1px solid var(--peach-t3);1319  flex-shrink: 0;1320  background: var(--peach-s1);1321}1322.peach-vault-list {1323  flex: 1;1324  overflow-y: auto;1325  scrollbar-width: none;1326}1327.peach-vault-list::-webkit-scrollbar { display: none; }13281329/* Scrollbar — vault list */1330.peach-vault-list {1331  scrollbar-width: thin;1332  scrollbar-color: var(--peach-t3) transparent;1333}13341335.peach-vault-list::-webkit-scrollbar {1336  width: 3px;1337}13381339.peach-vault-list::-webkit-scrollbar-thumb {1340  background: var(--peach-t3);1341  border-radius: 2px;1342}13431344.peach-entry-row {1345  width: 100%;1346  display: flex;1347  align-items: center;1348  gap: 10px;1349  padding: 9px 16px;1350  background: transparent;1351  border: none;1352  border-bottom: 1px solid var(--peach-t3);1353  cursor: pointer;1354  color: inherit;1355  text-align: left;1356  transition: background 80ms ease;1357}1358.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1359.peach-entry-row:last-child { border-bottom: none; }1360.peach-entry-row.is-active {1361  box-shadow: inset 2px 0 0 var(--peach-accent);1362  background: rgba(240,232,216,0.03);1363}1364.peach-entry-row:focus-visible {1365  outline: none;1366  box-shadow: 0 0 0 1px var(--peach-border-accent);1367  background: rgba(240,232,216,0.03);1368}1369.peach-entry-row-icon {1370  width: 26px; height: 26px;1371  border-radius: 7px;1372  border: 1px solid var(--peach-t3);1373  display: flex; align-items: center; justify-content: center;1374  color: var(--peach-t2);1375  flex-shrink: 0;1376}1377.peach-entry-row-icon.is-breach {1378  border-color: rgba(220,80,60,0.3);1379  color: rgba(220,80,60,0.7);1380}1381.peach-entry-row-info { flex: 1; min-width: 0; }1382.peach-entry-row-name {1383  display: block;1384  font-family: "Cormorant Garamond", serif;1385  font-size: 17px;1386  font-style: italic;1387  font-weight: 400;1388  color: var(--peach-t0);1389  line-height: 1.2;1390  white-space: nowrap;1391  overflow: hidden;1392  text-overflow: ellipsis;1393}1394.peach-entry-row-meta {1395  display: block;1396  font-family: "IBM Plex Mono", monospace;1397  font-size: 9px;1398  color: var(--peach-t2);1399  margin-top: 1px;1400  letter-spacing: 0.05em;1401}1402.peach-entry-row-dot {1403  width: 5px; height: 5px;1404  border-radius: 50%;1405  background: rgba(220,80,60,0.7);1406  flex-shrink: 0;1407}1408.peach-new-entry-row {1409  display: flex;1410  align-items: center;1411  justify-content: center;1412  gap: 6px;1413  width: 100%;1414  padding: 11px;1415  background: transparent;1416  border: none;1417  border-top: 1px solid var(--peach-t3);1418  color: var(--peach-t2);1419  font-family: "IBM Plex Mono", monospace;1420  font-size: 9px;1421  text-transform: uppercase;1422  letter-spacing: 0.14em;1423  cursor: pointer;1424  flex-shrink: 0;1425  transition: color 120ms ease, background 120ms ease;1426}1427.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14281429/* ── Multi-select mode ─────────────────────────────────────────────── */14301431/* Select-mode trigger button in sort bar — same shape as trash btn */1432.peach-sort-select-btn {1433  display: flex;1434  align-items: center;1435  justify-content: center;1436  padding: 3px 5px;1437  background: transparent;1438  border: none;1439  cursor: pointer;1440  color: var(--peach-t2);1441  border-radius: 4px;1442  transition: color 140ms ease, background 140ms ease;1443}1444.peach-sort-select-btn:hover {1445  color: var(--peach-t1);1446  background: var(--peach-t3);1447}14481449/* Sort bar in select mode */1450.peach-select-cancel-btn {1451  background: transparent;1452  border: none;1453  padding: 0 4px;1454  cursor: pointer;1455  font-family: "IBM Plex Mono", monospace;1456  font-size: 9px;1457  letter-spacing: 0.12em;1458  text-transform: uppercase;1459  color: var(--peach-t2);1460  transition: color 140ms ease;1461  flex-shrink: 0;1462}1463.peach-select-cancel-btn:hover { color: var(--peach-t0); }14641465.peach-select-count-label {1466  flex: 1;1467  text-align: center;1468  font-family: "IBM Plex Mono", monospace;1469  font-size: 9px;1470  letter-spacing: 0.14em;1471  text-transform: uppercase;1472  color: var(--peach-t1);1473}14741475.peach-select-all-btn {1476  background: transparent;1477  border: none;1478  padding: 0 4px;1479  cursor: pointer;1480  font-family: "IBM Plex Mono", monospace;1481  font-size: 9px;1482  letter-spacing: 0.12em;1483  text-transform: uppercase;1484  color: var(--peach-t2);1485  transition: color 140ms ease;1486  flex-shrink: 0;1487}1488.peach-select-all-btn:hover { color: var(--peach-accent); }14891490/* List in select mode */1491.peach-vault-list.is-selecting .peach-entry-row {1492  cursor: default;1493}1494.peach-vault-list.is-selecting .peach-entry-row:hover {1495  background: rgba(240,232,216,0.02);1496}1497.peach-vault-list.is-selecting .peach-entry-row.is-selected {1498  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1499}1500.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1501  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1502}15031504/* Select indicator circles in icon slot */1505.peach-entry-row-icon.is-select-icon {1506  color: var(--peach-t2);1507}1508.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1509  color: var(--peach-accent);1510}15111512/* Delete action bar at bottom (replaces new-entry row) */1513.peach-select-action-bar {1514  display: flex;1515  align-items: center;1516  justify-content: center;1517  gap: 7px;1518  width: 100%;1519  padding: 11px;1520  background: transparent;1521  border: none;1522  border-top: 1px solid var(--peach-t3);1523  color: var(--peach-t1);1524  font-family: "IBM Plex Mono", monospace;1525  font-size: 9px;1526  text-transform: uppercase;1527  letter-spacing: 0.14em;1528  cursor: pointer;1529  flex-shrink: 0;1530  transition: color 120ms ease, background 120ms ease;1531}1532.peach-select-action-bar:not(:disabled):hover {1533  color: var(--peach-t0);1534  background: rgba(220,80,60,0.06);1535}1536.peach-select-action-bar:not(:disabled):hover svg {1537  stroke: rgba(220,80,60,0.8);1538}1539.peach-select-action-bar:disabled,1540.peach-select-action-bar.is-empty {1541  color: var(--peach-t2);1542  cursor: default;1543  opacity: 0.5;1544}1545.peach-search-counter-list {1546  white-space: nowrap;1547  flex-shrink: 0;1548}1549.peach-list-empty {1550  min-height: 180px;1551  display: grid;1552  place-items: center;1553  color: var(--peach-t2);1554  font-family: "IBM Plex Mono", monospace;1555  font-size: 11px;1556}15571558/* ── Settings view ───────────────────────────────────────────────────── */1559.peach-settings-body {1560  flex: 1;1561  overflow-y: auto;1562  min-height: 0;1563  display: flex;1564  flex-direction: column;1565  padding: 2px 0 10px;1566}1567.peach-settings-group {1568  padding: 9px 16px 11px;1569  border-bottom: 1px solid var(--peach-t3);1570}1571.peach-export-intro {1572  padding-bottom: 8px;1573}1574.peach-export-card {1575  display: grid;1576  gap: 10px;1577}1578.peach-export-card--primary {1579  background:1580    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1581}1582.peach-export-card-head {1583  display: flex;1584  align-items: center;1585  justify-content: space-between;1586  gap: 10px;1587}1588.peach-export-card-copy {1589  margin: 0;1590  font-size: 12px;1591  line-height: 1.55;1592  color: var(--peach-t1);1593}1594.peach-export-note {1595  margin: 0;1596  font-size: 10px;1597  line-height: 1.5;1598  color: var(--peach-t2);1599}1600.peach-export-pill {1601  display: inline-flex;1602  align-items: center;1603  padding: 4px 8px;1604  border-radius: 999px;1605  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1606  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1607  color: var(--peach-accent);1608  font-family: "IBM Plex Mono", monospace;1609  font-size: 8px;1610  letter-spacing: 0.12em;1611  text-transform: uppercase;1612  white-space: nowrap;1613}1614.peach-export-pill--danger {1615  border-color: rgba(220,80,60,0.22);1616  background: rgba(220,80,60,0.08);1617  color: var(--peach-breach);1618}1619.peach-export-password-stack {1620  gap: 8px;1621}1622.peach-settings-label {1623  margin: 0 0 6px;1624  font-family: "IBM Plex Mono", monospace;1625  font-size: 8px;1626  text-transform: uppercase;1627  letter-spacing: 0.18em;1628  color: var(--peach-t2);1629}1630.peach-settings-row {1631  display: flex;1632  align-items: center;1633  justify-content: space-between;1634  gap: 12px;1635  min-height: 34px;1636  padding: 6px 0;1637  font-size: 13px;1638  color: var(--peach-t1);1639}1640.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1641.peach-settings-value {1642  font-family: "IBM Plex Mono", monospace;1643  font-size: 10px;1644  color: var(--peach-t2);1645}16461647.peach-settings-value--status {1648  display: flex;1649  align-items: center;1650  gap: 6px;1651}16521653.peach-settings-link {1654  font-family: "IBM Plex Mono", monospace;1655  font-size: 10px;1656  color: var(--peach-accent);1657  text-decoration: none;1658  cursor: pointer;1659}1660.peach-settings-link:hover {1661  text-decoration: underline;1662}16631664.peach-settings-row--stack {1665  flex-direction: column;1666  align-items: stretch;1667  gap: 6px;1668}16691670.peach-settings-row--top {1671  align-items: flex-start;1672}16731674.peach-settings-row-main {1675  display: flex;1676  flex-direction: column;1677  gap: 4px;1678  flex: 1;1679}1680.peach-toggle {1681  width: 28px; height: 16px;1682  border-radius: 999px;1683  background: var(--peach-t3);1684  border: 1px solid var(--peach-t3);1685  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1686  flex-shrink: 0;1687  transition: background 200ms ease, border-color 200ms ease;1688  cursor: pointer;1689}1690.peach-toggle.is-on {1691  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1692  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1693}1694.peach-toggle-knob {1695  width: 10px; height: 10px;1696  border-radius: 50%;1697  background: var(--peach-t2);1698  flex-shrink: 0;1699  transform: translateX(0px);1700  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1701}1702.peach-toggle.is-on .peach-toggle-knob {1703  background: var(--peach-accent);1704  transform: translateX(12px);1705}1706.peach-settings-footer {1707  display: flex;1708  align-items: center;1709  gap: 8px;1710  margin-top: auto;1711  padding: 14px 16px 8px;1712  font-family: "IBM Plex Mono", monospace;1713  font-size: 9px;1714  color: var(--peach-t2);1715}17161717/* ── Settings home navigation ──────────────────────────────────────────── */1718.peach-settings-nav-label {1719  margin: 0 0 2px;1720  padding: 12px 16px 4px;1721  font-family: "IBM Plex Mono", monospace;1722  font-size: 8px;1723  text-transform: uppercase;1724  letter-spacing: 0.18em;1725  color: var(--peach-t2);1726}17271728.peach-settings-cat-row {1729  display: flex;1730  align-items: center;1731  gap: 10px;1732  width: 100%;1733  padding: 9px 16px;1734  background: none;1735  border: none;1736  border-bottom: 1px solid var(--peach-t3);1737  cursor: pointer;1738  text-align: left;1739  color: inherit;1740  transition: background var(--peach-dur-80) ease;1741}1742.peach-settings-cat-row:hover {1743  background: var(--peach-t3);1744}1745.peach-settings-cat-row:last-child {1746  border-bottom: none;1747}17481749.peach-settings-cat-icon {1750  width: 28px;1751  height: 28px;1752  border-radius: 7px;1753  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1754  color: var(--peach-accent);1755  display: flex;1756  align-items: center;1757  justify-content: center;1758  flex-shrink: 0;1759}17601761.peach-settings-cat-content {1762  flex: 1;1763  display: flex;1764  flex-direction: column;1765  gap: 2px;1766  min-width: 0;1767}17681769.peach-settings-cat-name {1770  font-size: 13px;1771  font-weight: 450;1772  color: var(--peach-t0);1773  line-height: 1.2;1774}17751776.peach-settings-cat-desc {1777  font-size: 10px;1778  color: var(--peach-t2);1779  line-height: 1.3;1780  white-space: nowrap;1781  overflow: hidden;1782  text-overflow: ellipsis;1783}17841785.peach-settings-cat-chevron {1786  color: var(--peach-t2);1787  flex-shrink: 0;1788  opacity: 0.5;1789}17901791/* ── Settings sub-view section labels ──────────────────────────────────── */1792.peach-settings-sub-label {1793  margin: 12px 0 4px;1794  font-family: "IBM Plex Mono", monospace;1795  font-size: 8px;1796  text-transform: uppercase;1797  letter-spacing: 0.18em;1798  color: var(--peach-t2);1799}1800.peach-settings-sub-label:first-child {1801  margin-top: 4px;1802}18031804/* ── Feedback form ──────────────────────────────────────────────────────── */1805.peach-feedback-group {1806  flex: 1;1807  display: flex;1808  flex-direction: column;1809  border-bottom: none;1810}18111812.peach-feedback-intro {1813  margin: 4px 0 14px;1814  font-size: 12px;1815  line-height: 1.55;1816  color: var(--peach-t1);1817}18181819.peach-feedback-chips {1820  display: flex;1821  flex-wrap: wrap;1822  gap: 6px;1823  margin-bottom: 14px;1824}18251826.peach-feedback-chip {1827  padding: 4px 10px;1828  border-radius: 999px;1829  border: 1px solid var(--peach-t3);1830  background: none;1831  color: var(--peach-t2);1832  font-size: 11px;1833  font-family: var(--font-ui);1834  cursor: pointer;1835  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1836    background var(--peach-dur-80) ease;1837}1838.peach-feedback-chip:hover {1839  border-color: var(--peach-t2);1840  color: var(--peach-t1);1841}1842.peach-feedback-chip.is-active {1843  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1844  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1845  color: var(--peach-accent);1846}18471848.peach-feedback-textarea {1849  flex: 1;1850  width: 100%;1851  min-height: 120px;1852  box-sizing: border-box;1853  background: var(--peach-t3);1854  border: 1px solid var(--peach-t3);1855  border-radius: 6px;1856  color: var(--peach-t0);1857  font-size: 12px;1858  font-family: var(--font-ui);1859  line-height: 1.5;1860  padding: 8px 10px;1861  resize: none;1862  outline: none;1863  transition: border-color var(--peach-dur-150) ease;1864}1865.peach-feedback-textarea:focus {1866  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1867}1868.peach-feedback-textarea::placeholder {1869  color: var(--peach-t2);1870}18711872.peach-feedback-meta {1873  margin: 6px 0 0;1874  font-size: 10px;1875  color: var(--peach-t2);1876  font-family: "IBM Plex Mono", monospace;1877}18781879.peach-feedback-result {1880  margin: 8px 0 0;1881  font-size: 11px;1882  font-family: "IBM Plex Mono", monospace;1883}1884.peach-feedback-result--ok { color: var(--peach-sync-ok); }1885.peach-feedback-result--err { color: var(--peach-breach); }18861887.peach-feedback-submit {1888  width: 100%;1889  margin-top: 12px;1890  justify-content: center;1891}18921893.peach-feedback-anon {1894  margin: 8px 0 0;1895  font-size: 10px;1896  color: var(--peach-t2);1897  text-align: center;1898}18991900.peach-passkey-badge {1901  margin-left: 8px;1902  font-size: 10px;1903  letter-spacing: 0.06em;1904  text-transform: uppercase;1905  color: var(--peach-t2);1906  font-family: var(--font-ui);1907  vertical-align: middle;1908}19091910.peach-passkey-delete-btn {1911  color: var(--peach-breach);1912  border-color: rgba(229, 85, 85, 0.25);1913}19141915.peach-passkey-delete-confirm {1916  display: flex;1917  align-items: center;1918  gap: 8px;1919  padding: 8px 10px;1920  background: rgba(229, 85, 85, 0.06);1921  border: 1px solid rgba(229, 85, 85, 0.2);1922  border-radius: 6px;1923}19241925.peach-passkey-delete-confirm-copy {1926  flex: 1;1927  font-size: 11px;1928  color: var(--peach-t1);1929}19301931.peach-passkey-delete-btn--confirm {1932  color: var(--peach-breach);1933  border-color: rgba(229, 85, 85, 0.4);1934}19351936.peach-passkey-activity {1937  flex-direction: column;1938  align-items: flex-start;1939  gap: 4px;1940}19411942.peach-passkey-meta {1943  font-size: 11px;1944  color: var(--peach-t2);1945}19461947.peach-passkey-actions {1948  position: relative;1949  z-index: 1;1950  margin-top: 14px;1951  display: flex;1952  flex-direction: column;1953  gap: 8px;1954}19551956.peach-passkey-approval {1957  display: flex;1958  flex-direction: column;1959  align-items: center;1960  padding: 28px 22px 22px;1961  gap: 14px;1962  text-align: center;1963}19641965.peach-passkey-approval-icon {1966  width: 46px;1967  height: 46px;1968  border-radius: 12px;1969  background: var(--peach-s2);1970  border: 1px solid var(--peach-t3);1971  display: flex;1972  align-items: center;1973  justify-content: center;1974  flex-shrink: 0;1975  color: var(--peach-accent);1976}19771978.peach-passkey-approval-icon img,1979.peach-passkey-approval-icon svg {1980  width: 28px;1981  height: 28px;1982  border-radius: 6px;1983}19841985.peach-passkey-approval-rp {1986  font-family: var(--font-ui);1987  font-size: 12px;1988  color: var(--peach-t2);1989  letter-spacing: 0.03em;1990}19911992.peach-passkey-approval-action {1993  font-family: var(--font-display);1994  font-style: italic;1995  font-weight: 300;1996  font-size: 26px;1997  color: var(--peach-t0);1998  line-height: 1;1999}20002001.peach-passkey-approval-user {2002  font-family: var(--font-mono);2003  font-size: 11px;2004  color: var(--peach-t1);2005  background: var(--peach-s2);2006  border: 1px solid var(--peach-t3);2007  border-radius: 4px;2008  padding: 3px 8px;2009}20102011.peach-passkey-approval-notice {2012  font-size: 10px;2013  color: var(--peach-t2);2014  line-height: 1.5;2015  max-width: 220px;2016}20172018.peach-passkey-approval-actions {2019  display: flex;2020  gap: 8px;2021  width: 100%;2022  margin-top: 6px;2023}20242025.peach-passkey-approval-actions .peach-btn {2026  flex: 1;2027}20282029/* ── Inline generator drawer ── */2030.peach-generator-drawer {2031  display: grid;2032  grid-template-rows: 0fr;2033  transition: grid-template-rows 320ms var(--peach-curve-arrival);2034  overflow: hidden;2035}2036.peach-generator-drawer.is-open {2037  grid-template-rows: 1fr;2038}2039.peach-generator-drawer-inner {2040  min-height: 0;2041  overflow: hidden;2042}2043.peach-generator-drawer-content {2044  border-top: 1px solid var(--peach-t3);2045  padding: 8px 0 4px;2046  display: flex;2047  flex-direction: column;2048  gap: 8px;2049}20502051/* ── Compact generator (inside entry edit) ── */2052.peach-generator-drawer-content--compact {2053  border-top: 1px solid var(--peach-t3);2054  padding: 8px 0 2px;2055  gap: 7px;2056}2057.peach-pwgen-compact-display-row {2058  display: flex;2059  align-items: center;2060  gap: 6px;2061}2062.peach-pwgen-compact-output {2063  flex: 1;2064  min-width: 0;2065  font-family: "IBM Plex Mono", monospace;2066  font-size: 11px;2067  font-weight: 400;2068  letter-spacing: 0.04em;2069  color: var(--peach-t0);2070  background: rgba(240, 232, 216, 0.04);2071  border: 1px solid var(--peach-t3);2072  border-radius: 5px;2073  padding: 5px 8px;2074  word-break: break-all;2075  line-height: 1.5;2076}2077.peach-pwgen-compact-controls {2078  display: flex;2079  align-items: center;2080  gap: 6px;2081}2082.peach-pwgen-compact-slider {2083  flex: 1;2084  min-width: 0;2085  height: 2px !important;2086}2087.peach-pwgen-compact-controls .peach-pwgen-len-num {2088  flex-shrink: 0;2089  min-width: 18px;2090  text-align: right;2091}2092.peach-pwgen-compact-pills {2093  display: flex;2094  gap: 3px;2095  flex-shrink: 0;2096}2097.peach-pwgen-compact-pills .peach-pwgen-pill {2098  padding: 2px 7px;2099  font-size: 8px;2100}2101.peach-pwgen-compact-use {2102  flex-shrink: 0;2103  font-size: 10px !important;2104  padding: 3px 9px !important;2105  min-height: 22px !important;2106  border-radius: 5px !important;2107}21082109/* ── Password edit row (input + eye toggle side-by-side) ── */2110.peach-password-edit-row {2111  display: flex;2112  align-items: center;2113  gap: 6px;2114}2115.peach-password-edit-row .peach-inline-input {2116  flex: 1;2117  min-width: 0;2118}21192120/* ── Generate toggle link ── */2121.peach-generate-toggle-link {2122  display: inline-flex;2123  align-items: center;2124  gap: 5px;2125  background: none;2126  border: none;2127  padding: 0;2128  cursor: pointer;2129  font-family: "IBM Plex Mono", monospace;2130  font-size: 10px;2131  color: var(--peach-t2);2132  letter-spacing: 0.04em;2133  transition: color 120ms ease;2134  align-self: flex-start;2135}2136.peach-generate-toggle-link:hover {2137  color: var(--peach-accent);2138}21392140/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2141.peach-entry-body {2142  flex: 1;2143  overflow-y: auto;2144  overflow-x: hidden;2145  scrollbar-width: none;2146  -ms-overflow-style: none;2147  overscroll-behavior: contain;2148  display: grid;2149  gap: 10px;2150  align-content: start;2151  padding: 10px 20px 14px;2152  min-width: 0;2153  min-height: 0;2154}2155.peach-entry-body::-webkit-scrollbar { display: none; }21562157/* Type-toggle pills + inline note toolbar */2158.peach-new-type-row {2159  display: flex;2160  align-items: center;2161  gap: 6px;2162  margin-bottom: 2px;2163}2164.peach-new-type-btn {2165  background: transparent;2166  border: 1px solid var(--peach-t3);2167  border-radius: 12px;2168  padding: 3px 10px;2169  font-family: "IBM Plex Mono", monospace;2170  font-size: 9px;2171  letter-spacing: 0.12em;2172  text-transform: uppercase;2173  color: var(--peach-t2);2174  cursor: pointer;2175  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2176}2177.peach-new-type-btn.is-active {2178  color: var(--peach-t0);2179  border-color: var(--peach-accent);2180  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2181}2182.peach-new-type-btn:not(.is-active):hover {2183  color: var(--peach-t1);2184  border-color: var(--peach-t2);2185}21862187/* Editable title */2188.peach-new-title-wrap { margin: 0 0 2px; }2189.peach-new-title-input {2190  background: transparent;2191  border: none;2192  outline: none;2193  width: 100%;2194  color: var(--peach-t0);2195  font-family: "Cormorant Garamond", Georgia, serif;2196  font-style: italic;2197  font-weight: 400;2198  font-size: 40px;2199  line-height: 0.95;2200  caret-color: var(--peach-accent);2201}2202.peach-new-title-input::placeholder { color: var(--peach-t2); }22032204/* Editable domain field */2205.peach-domain-value--edit {2206  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2207  font-size: 10px;2208  font-style: italic;2209  letter-spacing: 0.12em;2210  color: var(--peach-t1);2211  background: transparent;2212  border: none;2213  border-bottom: 1px solid var(--peach-t3);2214  outline: none;2215  width: 100%;2216  padding: 2px 0;2217  caret-color: var(--peach-accent);2218  transition: border-color 140ms ease, color 140ms ease;2219}2220.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2221.peach-domain-value--edit:focus {2222  border-bottom-color: rgba(240, 232, 216, 0.28);2223  color: var(--peach-t0);2224}22252226/* Editable field values (username, password, totp) */2227.peach-field-value--edit {2228  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2229  font-size: 13px;2230  color: var(--peach-t0);2231  background: transparent;2232  border: none;2233  border-bottom: 1px solid var(--peach-t3);2234  outline: none;2235  flex: 1;2236  min-width: 0;2237  padding: 3px 0;2238  caret-color: var(--peach-accent);2239  transition: border-color 140ms ease, color 140ms ease;2240}2241.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2242.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2243.peach-field-value--edit:focus {2244  border-bottom-color: rgba(240, 232, 216, 0.28);2245  color: var(--peach-t0);2246}22472248/* "+ add optional field" links */2249.peach-entry-add-links {2250  display: flex;2251  gap: 12px;2252  flex-wrap: wrap;2253  margin-top: -2px;2254}2255.peach-add-field-link {2256  background: transparent;2257  border: none;2258  padding: 0;2259  cursor: pointer;2260  font-family: "IBM Plex Mono", monospace;2261  font-size: 9px;2262  letter-spacing: 0.1em;2263  text-transform: uppercase;2264  color: var(--peach-t2);2265  transition: color 140ms ease;2266}2267.peach-add-field-link:hover { color: var(--peach-accent); }22682269/* ── New entry form (legacy classes) ────────────────────────────────── */2270.peach-new-body {2271  flex: 1;2272  overflow-y: auto;2273  padding: 10px 20px 14px;2274}2275.peach-new-name-input {2276  background: transparent;2277  border: none;2278  outline: none;2279  width: 100%;2280  color: var(--peach-t0);2281  font-family: "Cormorant Garamond", Georgia, serif;2282  font-style: italic;2283  font-weight: 400;2284  font-size: 40px;2285  line-height: 0.95;2286  caret-color: var(--peach-accent);2287}2288.peach-new-name-input::placeholder { color: var(--peach-t2); }2289.peach-new-field-input {2290  background: transparent;2291  border: none;2292  outline: none;2293  flex: 1;2294  min-width: 0;2295  caret-color: var(--peach-accent);2296}2297.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }22982299/* ── Canary card ── */2300.peach-canary-card {2301  border: 1px solid rgba(217, 160, 48, 0.2);2302  background: rgba(217, 160, 48, 0.03);2303  border-radius: 8px;2304  padding: 12px;2305}23062307.peach-canary-settings-header {2308  display: flex;2309  align-items: center;2310  justify-content: space-between;2311  cursor: pointer;2312  user-select: none;2313}23142315.peach-canary-card .peach-label {2316  color: rgba(217, 160, 48, 0.85);2317}23182319.peach-canary-card .peach-new-field-input {2320  border-color: rgba(217, 160, 48, 0.25);2321}23222323.peach-canary-card .peach-new-field-input:focus {2324  border-color: rgba(217, 160, 48, 0.5);2325}23262327.peach-canary-body {2328  margin-top: 12px;2329  display: flex;2330  flex-direction: column;2331  gap: 10px;2332}23332334.peach-canary-explainer {2335  display: flex;2336  gap: 10px;2337  padding: 10px 12px;2338  border-radius: 10px;2339  background: rgba(217, 160, 48, 0.06);2340  border: 1px solid rgba(217, 160, 48, 0.22);2341  margin-bottom: 4px;2342}23432344.peach-canary-explainer-icon {2345  font-size: 16px;2346  flex-shrink: 0;2347  line-height: 1.2;2348}23492350.peach-canary-explainer-title {2351  font-family: var(--font-ui);2352  font-size: 11px;2353  font-weight: 500;2354  color: rgba(217, 160, 48, 0.9);2355  margin: 0 0 3px;2356}23572358.peach-canary-explainer-copy {2359  font-family: var(--font-ui);2360  font-size: 10px;2361  color: var(--peach-t2);2362  line-height: 1.55;2363  margin: 0;2364}23652366.peach-canary-hint {2367  font-size: 10px;2368  color: var(--peach-t2);2369  font-family: Inter, system-ui, sans-serif;2370  line-height: 1.5;2371  margin-top: 4px;2372}23732374.peach-canary-actions-row {2375  display: flex;2376  align-items: center;2377  gap: 8px;2378}23792380.peach-canary-test-btn {2381  border-color: rgba(217, 160, 48, 0.3);2382  color: rgba(217, 160, 48, 0.85);2383}23842385.peach-canary-test-result {2386  font-size: 10px;2387  font-family: Inter, system-ui, sans-serif;2388}23892390.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2391.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }23922393.peach-canary-badge {2394  display: flex;2395  position: relative;2396  z-index: 1;2397  align-items: center;2398  gap: 5px;2399  padding: 4px 10px;2400  background: rgba(217, 160, 48, 0.12);2401  border: 1px solid rgba(217, 160, 48, 0.35);2402  border-radius: 6px;2403  margin-bottom: 6px;2404  width: fit-content;2405}24062407.peach-canary-badge-label {2408  font-size: 10px;2409  letter-spacing: 0.06em;2410  color: rgba(217, 160, 48, 0.9);2411  font-family: var(--font-ui);2412  text-transform: uppercase;2413}24142415.peach-canary-badge-icon {2416  font-size: 11px;2417}24182419.peach-canary-suppress-row {2420  display: flex;2421  align-items: center;2422  gap: 8px;2423  padding: 6px 10px;2424  background: rgba(217, 160, 48, 0.08);2425  border-radius: 6px;2426  margin-bottom: 8px;2427}24282429.peach-canary-suppress-label {2430  font-size: 11px;2431  color: rgba(217, 160, 48, 0.85);2432  cursor: pointer;2433  font-family: var(--font-ui);2434  letter-spacing: 0.04em;2435}24362437.peach-regen-panel {2438  position: relative;2439  z-index: 1;2440  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2441  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2442  border-radius: 8px;2443  padding: 12px;2444  margin-bottom: 8px;2445}24462447.peach-regen-panel-header {2448  display: flex;2449  align-items: center;2450  justify-content: space-between;2451  margin-bottom: 10px;2452}24532454.peach-regen-panel-title {2455  font-size: 11px;2456  font-weight: 600;2457  letter-spacing: 0.06em;2458  text-transform: uppercase;2459  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2460}24612462.peach-regen-output {2463  background: rgba(0, 0, 0, 0.2);2464  border-radius: 6px;2465  padding: 10px;2466  margin-bottom: 10px;2467  font-family: var(--font-mono);2468  font-size: 13px;2469  word-break: break-all;2470  color: var(--peach-t1);2471}24722473.peach-regen-actions {2474  display: flex;2475  gap: 6px;2476}24772478.peach-regen-actions--spaced {2479  margin-bottom: 8px;2480}24812482.peach-regen-action-grow {2483  flex: 1;2484}24852486.peach-regen-copy-btn {2487  padding: 0 8px;2488}24892490.peach-regen-success {2491  position: relative;2492  z-index: 1;2493  background: rgba(40, 180, 80, 0.1);2494  border: 1px solid rgba(40, 180, 80, 0.3);2495  border-radius: 8px;2496  padding: 10px 12px;2497  margin-bottom: 8px;2498  display: flex;2499  align-items: center;2500  gap: 8px;2501  font-size: 11px;2502  color: rgba(40, 180, 80, 0.9);2503}25042505/* ── Note editor overlay ── */2506.peach-note-editor {2507  position: absolute;2508  inset: 0;2509  z-index: 200;2510  display: flex;2511  flex-direction: column;2512  background:2513    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2514    var(--peach-bg);2515  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2516}25172518.peach-note-editor-header {2519  display: flex;2520  align-items: center;2521  gap: 10px;2522  padding: 14px 16px 10px;2523  border-bottom: 1px solid var(--peach-t3);2524  flex-shrink: 0;2525}25262527.peach-note-editor-back {2528  background: transparent;2529  border: none;2530  cursor: pointer;2531  color: var(--peach-t2);2532  padding: 4px 6px;2533  border-radius: 6px;2534  display: flex;2535  align-items: center;2536  transition: color 120ms ease, background 120ms ease;2537  flex-shrink: 0;2538}2539.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }25402541.peach-note-editor-label {2542  flex: 1;2543  font-family: "Cormorant Garamond", "Times New Roman", serif;2544  font-style: italic;2545  font-size: 15px;2546  color: var(--peach-t1);2547  letter-spacing: 0.02em;2548}25492550.peach-note-editor-save-btn {2551  background: transparent;2552  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2553  border-radius: 8px;2554  color: var(--peach-accent);2555  font-family: "IBM Plex Mono", monospace;2556  font-size: 10px;2557  letter-spacing: 0.06em;2558  text-transform: uppercase;2559  padding: 3px 10px;2560  cursor: pointer;2561  transition: background 120ms ease, border-color 120ms ease;2562}2563.peach-note-editor-save-btn:hover:not(:disabled) {2564  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2565  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2566}2567.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }25682569.peach-note-toolbar {2570  display: flex;2571  align-items: center;2572  gap: 3px;2573  padding: 6px 14px 5px;2574  border-bottom: 1px solid var(--peach-t3);2575  flex-shrink: 0;2576}25772578.peach-note-tool-btn {2579  background: transparent;2580  border: 1px solid transparent;2581  border-radius: 5px;2582  color: var(--peach-t2);2583  font-family: "IBM Plex Mono", monospace;2584  font-size: 10px;2585  letter-spacing: 0.04em;2586  padding: 2px 8px;2587  cursor: pointer;2588  line-height: 1.6;2589  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2590}2591.peach-note-tool-btn:hover {2592  background: var(--peach-t4);2593  color: var(--peach-t0);2594  border-color: var(--peach-t3);2595}25962597.peach-note-tool-icon {2598  padding: 3px 7px;2599  display: inline-flex;2600  align-items: center;2601  justify-content: center;2602}26032604.peach-note-tool-divider {2605  width: 1px;2606  height: 14px;2607  background: var(--peach-t3);2608  margin: 0 4px;2609  flex-shrink: 0;2610}26112612.peach-note-editor-body {2613  flex: 1;2614  overflow-y: auto;2615  padding: 16px 20px 20px;2616  outline: none;2617  font-family: "Cormorant Garamond", "Times New Roman", serif;2618  font-size: 16px;2619  line-height: 1.75;2620  color: var(--peach-t0);2621  scrollbar-width: none;2622  word-break: break-word;2623}2624.peach-note-editor-body:empty::before {2625  content: "write your note…";2626  color: var(--peach-t3);2627  font-style: italic;2628  pointer-events: none;2629}26302631/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2632.peach-note-editor-inline {2633  display: flex;2634  flex-direction: column;2635  flex: 1;2636  min-height: 0;2637}2638.peach-note-editor-body--inline {2639  flex: 1;2640  min-height: 0;2641  font-size: 15px;2642  padding: 10px 20px 14px;2643}26442645/* Full-width toolbar row inside the body (Add.tsx note type).2646   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2647.peach-note-toolbar-body {2648  display: flex;2649  align-items: center;2650  gap: 3px;2651  padding: 5px 20px 4px;2652  margin: 2px -20px 0;2653  border-bottom: 1px solid var(--peach-t3);2654  flex-shrink: 0;2655}26562657/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2658   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2659   and .peach-note-tool-divider button-level styles. */2660.peach-note-toolbar-inline {2661  display: flex;2662  align-items: center;2663  gap: 3px;2664  margin-left: auto;2665  padding-left: 10px;2666  border-left: 1px solid var(--peach-t3);2667  min-height: 22px;2668}26692670/* Entry.tsx toolbar row (no tabs, toolbar only) */2671.peach-entry-note-toolbar-row {2672  display: flex;2673  align-items: center;2674  margin: 4px 0 6px;2675  position: relative;2676  z-index: 1;2677}2678.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2679  border-left: none;2680  padding-left: 0;2681  margin-left: 0;2682}26832684/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2685.peach-note-body {2686  display: flex;2687  flex-direction: column;2688  flex: 1;2689  min-height: 0;2690  margin: 4px 0 0;2691}2692.peach-entry-body--new .peach-note-body {2693  margin: 8px -20px 0;2694}26952696/* Add.tsx body is a grid by default; swap to a flex column when a note is2697   active so the note body can stretch and pin the tags row to the bottom. */2698.peach-entry-body--new:has(.peach-note-body) {2699  display: flex;2700  flex-direction: column;2701}27022703/* Rich content element styles (editor + display) */2704.peach-note-editor-body h2,2705.peach-note-content h2 {2706  font-family: "Cormorant Garamond", serif;2707  font-size: 20px;2708  font-weight: 600;2709  font-style: italic;2710  color: var(--peach-t0);2711  margin: 6px 0 2px;2712  line-height: 1.3;2713}2714.peach-note-editor-body ul,2715.peach-note-content ul {2716  padding-left: 18px;2717  margin: 3px 0;2718  list-style: disc;2719}2720.peach-note-editor-body ol,2721.peach-note-content ol {2722  padding-left: 18px;2723  margin: 3px 0;2724  list-style: decimal;2725}2726.peach-note-editor-body li,2727.peach-note-content li { margin: 2px 0; }2728.peach-note-editor-body hr,2729.peach-note-content hr {2730  border: none;2731  border-top: 1px solid var(--peach-t3);2732  margin: 10px 0;2733}27342735/* font size elements from execCommand */2736.peach-note-editor-body font[size="1"],2737.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2738.peach-note-editor-body font[size="2"],2739.peach-note-content font[size="2"] { font-size: 13px; }2740.peach-note-editor-body font[size="3"],2741.peach-note-content font[size="3"] { font-size: 16px; }2742.peach-note-editor-body font[size="4"],2743.peach-note-content font[size="4"] { font-size: 20px; }2744.peach-note-editor-body font[size="5"],2745.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }27462747/* bold / italic inside the editor and note display */2748.peach-note-editor-body b, .peach-note-editor-body strong,2749.peach-note-content b, .peach-note-content strong { font-weight: 700; }2750.peach-note-editor-body em, .peach-note-editor-body i,2751.peach-note-content em, .peach-note-content i { font-style: italic; }27522753/* note display — rendered HTML, no pre-wrap */2754.peach-note-content {2755  overflow: auto;2756  max-height: 340px;2757  word-break: break-word;2758}27592760/* ── Note textarea ── */2761.peach-note-textarea {2762  width: 100%;2763  min-height: 180px;2764  max-height: 280px;2765  resize: vertical;2766  background: var(--peach-t4);2767  border: 1px solid var(--peach-t3);2768  border-radius: 8px;2769  padding: 10px 12px;2770  font-family: "IBM Plex Mono", monospace;2771  font-size: 12px;2772  line-height: 1.7;2773  color: var(--peach-t1);2774  outline: none;2775  transition: border-color 150ms ease;2776}27772778.peach-note-textarea:focus {2779  border-color: var(--peach-t2);2780}27812782.peach-note-char-count {2783  font-family: "IBM Plex Mono", monospace;2784  font-size: 9px;2785  color: var(--peach-t3);2786  text-align: right;2787  margin-top: 4px;2788  letter-spacing: 0.1em;2789}27902791/* ── Field input baseline ── */2792.peach-new-field-input {2793  width: 100%;2794  background: transparent;2795  border: none;2796  border-bottom: 1px solid var(--peach-t3);2797  padding: 4px 0;2798  color: var(--peach-t1);2799  font-family: "IBM Plex Mono", monospace;2800  font-size: 13px;2801  outline: none;2802  transition: border-color 150ms ease;2803}28042805.peach-new-field-input:focus {2806  border-bottom-color: var(--peach-t0);2807  color: var(--peach-t0);2808}28092810.peach-new-name-input {2811  width: 100%;2812  background: transparent;2813  border: none;2814  border-bottom: 1px solid var(--peach-t3);2815  padding: 6px 0;2816  font-family: "Cormorant Garamond", Georgia, serif;2817  font-style: italic;2818  font-size: 28px;2819  color: var(--peach-t0);2820  outline: none;2821  transition: border-color 150ms ease;2822}28232824.peach-new-name-input:focus {2825  border-bottom-color: var(--peach-t1);2826}28272828.peach-new-name-input::placeholder {2829  color: var(--peach-t2);2830  font-style: italic;2831}28322833.peach-new-field-input::placeholder {2834  color: var(--peach-t3);2835}28362837/* ── Demo entrance animation ── */2838#hd-shell {2839  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2840}2841@keyframes hd-shell-enter {2842  from { opacity: 0; transform: scale(0.96) translateY(16px); }2843  to   { opacity: 1; transform: scale(1) translateY(0); }2844}28452846/* ── Keyframes ── */2847@keyframes peach-char-enter {2848  from { opacity: 0; transform: translateY(0.22em); }2849  to   { opacity: 1; transform: translateY(0); }2850}2851@keyframes peach-content-enter {2852  from { opacity: 0.96; transform: translateY(4px); }2853  to   { opacity: 1; transform: translateY(0); }2854}2855@keyframes peach-content-exit {2856  from { opacity: 1; transform: translateY(0); }2857  to   { opacity: 0.92; transform: translateY(-3px); }2858}2859@keyframes peach-screen-enter {2860  from { opacity: 0; transform: translateY(14px); }2861  to   { opacity: 1; transform: translateY(0); }2862}2863@keyframes peach-shell-fade-in {2864  from { opacity: 0; }2865  to   { opacity: 1; }2866}2867@keyframes peach-veil-in {2868  from { opacity: 0; }2869  to   { opacity: 1; }2870}2871@keyframes peach-lock-settle {2872  0%   { transform: scale(0.9); }2873  65%  { transform: scale(1.08); }2874  100% { transform: scale(1); }2875}2876@keyframes peach-copy-confirm {2877  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2878  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); }2879}2880@keyframes peach-copy-retreat {2881  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); }2882  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2883}2884@keyframes peach-copy-flood {2885  from { opacity: 0; transform: scaleX(0.15); }2886  to   { opacity: 1; transform: scaleX(1); }2887}2888@keyframes peach-copy-icon-settle {2889  from  { transform: scale(0.84); }2890  70%   { transform: scale(1.08); }2891  to    { transform: scale(1); }2892}2893@keyframes peach-copy-sheen-retreat {2894  from { opacity: 1; transform: scaleX(1); }2895  to   { opacity: 0; transform: scaleX(0.15); }2896}2897@keyframes peach-copy-drain {2898  from { width: 100%; }2899  to   { width: 0; }2900}2901@keyframes peach-shake {2902  0%, 100% { transform: translateX(0); }2903  20%      { transform: translateX(-6px); }2904  40%      { transform: translateX(6px); }2905  60%      { transform: translateX(-4px); }2906  80%      { transform: translateX(4px); }2907}29082909@keyframes pip-pulse {2910  0% { transform: scale(1); }2911  40% { transform: scale(2.2); }2912  100% { transform: scale(1); }2913}291429152916/* ── Password generator ── */2917.peach-pwgen-body {2918  flex: 1; overflow-y: auto;2919  display: flex; flex-direction: column;2920}2921.peach-policy-badge {2922  display: flex; align-items: center;2923  padding: 6px 20px 0;2924  font-size: 10px; font-family: Inter, sans-serif;2925  color: var(--peach-t2); letter-spacing: 0.04em;2926}2927.peach-pwgen-display {2928  padding: 14px 20px 12px;2929  border-bottom: 1px solid var(--peach-t3);2930  display: flex; align-items: flex-start; gap: 10px;2931}2932.peach-pwgen-display-row {2933  display: flex;2934  align-items: flex-start;2935  gap: 8px;2936  padding-bottom: 8px;2937  border-bottom: 1px solid var(--peach-t3);2938}2939.peach-pwgen-output {2940  flex: 1; min-width: 0; margin: 0;2941  font-family: "IBM Plex Mono", monospace;2942  font-size: 13px; color: var(--peach-t0);2943  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2944  white-space: normal;2945  padding: 10px 12px;2946  background: var(--peach-t4);2947  border-radius: 6px;2948  min-height: 36px;2949}2950.peach-pwgen-output-display {2951  flex: 1;2952  min-width: 0;2953  margin: 0;2954  font-family: "Cormorant Garamond", "Times New Roman", serif;2955  font-style: italic;2956  font-weight: 300;2957  font-size: 32px;2958  line-height: 1.05;2959  color: var(--peach-t0);2960  word-break: break-all;2961  overflow-wrap: break-word;2962  white-space: normal;2963  letter-spacing: 0.02em;2964}2965.peach-pwgen-display-actions {2966  display: flex;2967  flex-direction: column;2968  gap: 4px;2969  flex-shrink: 0;2970  margin-top: 2px;2971}2972.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2973.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2974.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2975.peach-pwgen-len-num {2976  font-family: "IBM Plex Mono", monospace;2977  font-size: 12px; color: var(--peach-accent);2978}2979.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2980.peach-pwgen-toggles { display: flex; flex-direction: column; }2981.peach-pwgen-charset-pills {2982  display: flex;2983  gap: 6px;2984  flex-wrap: wrap;2985}2986.peach-pwgen-pill {2987  padding: 4px 11px;2988  border-radius: 999px;2989  border: 1px solid var(--peach-t3);2990  background: transparent;2991  color: var(--peach-t2);2992  font-family: "IBM Plex Mono", monospace;2993  font-size: 9px;2994  letter-spacing: 0.08em;2995  cursor: pointer;2996  transition: all 150ms ease;2997}2998.peach-pwgen-pill.is-on {2999  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3000  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3001  color: var(--peach-accent);3002}3003.peach-pwgen-pill:not(.is-on):hover {3004  color: var(--peach-t1);3005  border-color: var(--peach-t2);3006}3007.peach-pwgen-use-btn {3008  width: 100%;3009  min-height: 34px;3010  border-radius: 8px;3011  margin-top: 2px;3012}3013.peach-pwgen-toggle-row {3014  display: flex; align-items: center; justify-content: space-between;3015  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3016}3017.peach-pwgen-toggle-row:last-child { border-bottom: none; }3018.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }30193020.peach-screen-prelock {3021  z-index: 10;3022}30233024.prelock-form {3025  display: grid;3026  gap: 12px;3027}30283029/* Peach popup should not expose native scrollbars on internal panels. */3030.peach-settings-body,3031.peach-new-body,3032.peach-pwgen-body,3033.lock-screen,3034.peach-import-preview {3035  scrollbar-width: none;3036  -ms-overflow-style: none;3037  overscroll-behavior: contain;3038}3039.peach-settings-body::-webkit-scrollbar,3040.peach-new-body::-webkit-scrollbar,3041.peach-pwgen-body::-webkit-scrollbar,3042.lock-screen::-webkit-scrollbar,3043.peach-import-preview::-webkit-scrollbar {3044  width: 0;3045  height: 0;3046  display: none;3047}30483049.lock-screen {3050  height: 100%;3051  min-height: 100%;3052  overflow-y: auto;3053  padding: 18px 18px 16px;3054  gap: 14px;3055  grid-template-rows: auto auto auto 1fr auto;3056  align-content: stretch;3057  position: relative;3058  isolation: isolate;3059}3060.peach-screen.lock-screen--vault-stage {3061  display: flex;3062  flex-direction: column;3063  justify-content: flex-start;3064  gap: 18px;3065  padding: 20px 18px 18px;3066  overflow: hidden;3067}3068.peach-screen.lock-screen--vault-stage .peach-lock-panel {3069  margin-top: auto;3070}3071.lock-screen--onboarding {3072  display: flex;3073  flex-direction: column;3074  gap: 12px;3075  justify-content: flex-start;3076}30773078.lock-screen::before {3079  content: "";3080  position: absolute;3081  inset: 12px 18px auto auto;3082  width: 160px;3083  height: 160px;3084  border-radius: 999px;3085  background:3086    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%);3087  filter: blur(6px);3088  opacity: 0.7;3089  pointer-events: none;3090  z-index: 0;3091}30923093.lock-screen-header {3094  display: flex;3095  align-items: center;3096  justify-content: space-between;3097  position: relative;3098  z-index: 1;3099}31003101.lock-password-input.shake {3102  animation: peach-shake 300ms ease-in-out;3103}31043105.peach-hint-error {3106  color: rgba(220, 80, 60, 0.92);3107}31083109.peach-onboarding-headline {3110  margin: 0;3111  font-family: "Cormorant Garamond", "Times New Roman", serif;3112  font-size: 35px;3113  line-height: 0.88;3114  font-style: italic;3115  font-weight: 400;3116  max-width: 252px;3117}31183119.peach-lock-copy {3120  display: grid;3121  gap: 8px;3122  position: relative;3123  z-index: 1;3124}31253126.peach-lock-copy--onboarding {3127  gap: 10px;3128}31293130.peach-lock-hero {3131  position: relative;3132  z-index: 1;3133  display: grid;3134  gap: 8px;3135  min-height: 0;3136  padding: 4px 2px 0;3137  border: none;3138  border-radius: 0;3139  background: transparent;3140  box-shadow: none;3141}3142.peach-lock-hero-art {3143  position: absolute;3144  right: -8px;3145  top: -6px;3146  width: 120px;3147  height: 120px;3148  display: flex;3149  align-items: center;3150  justify-content: center;3151  pointer-events: none;3152  opacity: 0.12;3153  filter: saturate(0.9);3154}3155.peach-lock-hero-mark {3156  width: 100%;3157  height: 100%;3158}3159/* Peach body stays brand-peach across every accent — we don't want a3160   green or blue peach when sage/sky is selected. Leaf + stem keep the3161   sage tint because a real peach has a sage leaf. */3162.peach-lock-hero-mark path:nth-child(2),3163.peach-lock-hero-mark path:nth-child(3) {3164  stroke: rgba(123, 144, 96, 0.88);3165  fill: rgba(123, 144, 96, 0.88);3166}3167.peach-lock-hero > *:not(.peach-lock-hero-art) {3168  position: relative;3169  z-index: 1;3170}31713172.peach-lock-eyebrow {3173  display: inline-flex;3174  align-items: center;3175  width: fit-content;3176  padding: 4px 9px;3177  border-radius: 999px;3178  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3179  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3180  color: var(--peach-t0);3181  font-family: "IBM Plex Mono", monospace;3182  font-size: 8px;3183  letter-spacing: 0.18em;3184  text-transform: uppercase;3185}31863187.peach-lock-label-row {3188  display: flex;3189  align-items: center;3190  justify-content: space-between;3191  margin-bottom: 0;3192}31933194.peach-lock-reveal-btn {3195  display: inline-flex;3196  align-items: center;3197  gap: 4px;3198  background: none;3199  border: none;3200  cursor: pointer;3201  font-family: "IBM Plex Mono", monospace;3202  font-size: 9px;3203  letter-spacing: 0.06em;3204  color: var(--peach-t2);3205  padding: 2px 0;3206  transition: color 150ms ease;3207}32083209.peach-lock-reveal-btn:hover {3210  color: var(--peach-t1);3211}32123213.peach-lock-warning {3214  color: rgba(220, 80, 60, 0.85) !important;3215  line-height: 1.5;3216}32173218.peach-onboarding-cards {3219  display: grid;3220  gap: 8px;3221  position: relative;3222  z-index: 1;3223}32243225.peach-lock-panel {3226  position: relative;3227  z-index: 1;3228  display: grid;3229  gap: 9px;3230  padding: 14px 16px 15px;3231  border-radius: 18px;3232  border: 1px solid var(--peach-t3);3233  background:3234    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3235  box-shadow:3236    inset 0 1px 0 rgba(240, 232, 216, 0.04),3237    0 12px 28px rgba(0, 0, 0, 0.12);3238}32393240.peach-lock-panel--secondary {3241  gap: 12px;3242}32433244.peach-lock-panel-header {3245  display: flex;3246  align-items: baseline;3247  justify-content: space-between;3248  gap: 12px;3249}32503251.peach-lock-option-grid {3252  display: grid;3253  gap: 10px;3254}32553256.peach-lock-option {3257  width: 100%;3258  display: grid;3259  gap: 6px;3260  padding: 14px 15px;3261  border-radius: 16px;3262  border: 1px solid rgba(240, 232, 216, 0.08);3263  background: rgba(240, 232, 216, 0.02);3264  color: var(--peach-t0);3265  text-align: left;3266  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3267}32683269.peach-lock-option:hover {3270  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3271  background: rgba(240, 232, 216, 0.04);3272  transform: translateY(-1px);3273}32743275.peach-lock-option-title {3276  font-size: 12px;3277  color: var(--peach-t0);3278}32793280.peach-lock-option-copy {3281  font-size: 11px;3282  line-height: 1.55;3283  color: var(--peach-t1);3284}32853286.peach-onboarding-stack {3287  margin-top: 2px;3288}3289.peach-lock-panel-footer {3290  display: grid;3291  gap: 6px;3292  margin-top: 2px;3293  padding-top: 10px;3294  border-top: 1px solid rgba(240, 232, 216, 0.06);3295}32963297/* Restore picker panel — method option cards */3298.peach-lock-panel--restore {3299  gap: 10px;3300}3301.peach-lock-option--history {3302  border-color: rgba(240, 232, 216, 0.06);3303  opacity: 0.85;3304}33053306/* Snapshot restore panel */3307.peach-snapshot-panel {3308  gap: 10px;3309  overflow-y: auto;3310  max-height: 340px;3311}3312.peach-snapshot-list {3313  display: flex;3314  flex-direction: column;3315  gap: 4px;3316}3317.peach-snapshot-row {3318  display: flex;3319  align-items: center;3320  justify-content: space-between;3321  width: 100%;3322  padding: 8px 10px;3323  border-radius: 8px;3324  border: 1px solid rgba(240, 232, 216, 0.07);3325  background: transparent;3326  cursor: pointer;3327  transition: border-color 120ms, background 120ms;3328  text-align: left;3329  gap: 8px;3330}3331.peach-snapshot-row:hover {3332  border-color: rgba(240, 232, 216, 0.14);3333  background: rgba(240, 232, 216, 0.03);3334}3335.peach-snapshot-row.is-selected {3336  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3337  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3338}3339.peach-snapshot-time {3340  font-size: 11.5px;3341  color: var(--peach-t0);3342  flex: 1;3343}3344.peach-snapshot-count {3345  font-family: "IBM Plex Mono", monospace;3346  font-size: 10px;3347  color: var(--peach-t2);3348  flex-shrink: 0;3349}3350.peach-snapshot-confirm {3351  display: flex;3352  flex-direction: column;3353  gap: 8px;3354  padding-top: 10px;3355  border-top: 1px solid rgba(240, 232, 216, 0.06);3356}3357.peach-snapshot-warning {3358  display: flex;3359  align-items: flex-start;3360  gap: 6px;3361  font-size: 10.5px;3362  color: rgba(220, 80, 60, 0.85);3363  line-height: 1.55;3364}3365.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3366.peach-snapshot-confirm-row {3367  display: flex;3368  gap: 6px;3369  align-items: center;3370}3371.peach-snapshot-restore-btn {3372  width: 100%;3373}3374.peach-lock-hero--unlock .peach-lock-hero-art {3375  width: 112px;3376  height: 112px;3377  right: 0;3378  top: 2px;3379  opacity: 0.1;3380}33813382.peach-card {3383  border: 1px solid var(--peach-t3);3384  border-radius: 18px;3385  background:3386    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3387  box-shadow:3388    inset 0 0 0 1px var(--peach-border-accent),3389    inset 0 1px 0 rgba(240, 232, 216, 0.04),3390    0 12px 32px rgba(0, 0, 0, 0.14);3391  overflow: hidden;3392}33933394.peach-card-active {3395  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3396  box-shadow:3397    inset 0 1px 0 rgba(240, 232, 216, 0.05),3398    0 16px 38px rgba(0, 0, 0, 0.18),3399    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3400}34013402.peach-card-disabled {3403  opacity: 0.72;3404}34053406.peach-card-header {3407  width: 100%;3408  padding: 13px 16px 11px;3409  background: transparent;3410  color: var(--peach-t0);3411  display: flex;3412  justify-content: space-between;3413  align-items: center;3414  text-align: left;3415  font-size: 12px;3416}34173418.peach-card-body {3419  padding: 0 16px 16px;3420  display: grid;3421  gap: 9px;3422}34233424.peach-card-tag {3425  color: var(--peach-t2);3426  font-family: "IBM Plex Mono", monospace;3427  font-size: 9px;3428  letter-spacing: 0.12em;3429  text-transform: uppercase;3430}34313432.peach-empty-copy {3433  display: grid;3434  gap: 6px;3435  color: var(--peach-t1);3436  font-size: 13px;3437}34383439.peach-lock-submit {3440  width: 100%;3441  box-shadow:3442    0 1px 0 rgba(255,255,255,0.10) inset,3443    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3444    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3445    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3446}34473448.peach-lock-secondary {3449  width: 100%;3450  border-color: var(--peach-t3);3451  background: rgba(240, 232, 216, 0.02);3452}34533454.peach-lock-secondary:hover {3455  background: rgba(240, 232, 216, 0.04);3456}34573458.peach-lock-note {3459  max-width: none;3460  line-height: 1.55;3461  margin: 0;3462}34633464.peach-overlay-action {3465  font-size: 10px;3466  padding: 4px 8px;3467  letter-spacing: 0.06em;3468  min-width: 44px;3469  text-align: center;3470}34713472.peach-overlay-spacer {3473  width: 32px;3474}34753476.peach-inline-action {3477  flex-shrink: 0;3478  font-size: 9px;3479  letter-spacing: 0.1em;3480  text-transform: uppercase;3481  padding: 4px 7px;3482}3483.peach-password-toggle-btn {3484  display: inline-flex;3485  align-items: center;3486  justify-content: center;3487  min-width: 30px;3488  min-height: 26px;3489  padding: 0 7px;3490  border: 1px solid var(--peach-t3);3491  border-radius: 999px;3492  background: rgba(240, 232, 216, 0.04);3493  color: var(--peach-t2);3494  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3495}3496.peach-password-toggle-btn:hover {3497  border-color: var(--peach-t2);3498  color: var(--peach-t0);3499  background: rgba(240, 232, 216, 0.06);3500}35013502.peach-new-textarea {3503  width: 100%;3504  min-height: 88px;3505  resize: vertical;3506  border: 0;3507  outline: none;3508  background: transparent;3509  color: var(--peach-t1);3510  font-family: "IBM Plex Mono", monospace;3511  font-size: 12px;3512  line-height: 1.65;3513  caret-color: var(--peach-accent);3514}35153516.peach-new-textarea::placeholder {3517  color: var(--peach-t2);3518  opacity: 0.7;3519}35203521.peach-settings-actions {3522  display: grid;3523  gap: 8px;3524}35253526.peach-sync-section-label {3527  font-size: 11px;3528  color: var(--peach-t2);3529  text-transform: uppercase;3530  letter-spacing: 0.05em;3531}35323533.peach-sync-device-row {3534  display: flex;3535  justify-content: space-between;3536  align-items: center;3537  padding: 6px 0;3538  border-bottom: 1px solid var(--peach-t3);3539}35403541.peach-sync-device-info {3542  display: flex;3543  flex-direction: column;3544  gap: 2px;3545}35463547.peach-sync-device-name {3548  font-size: 13px;3549  color: var(--peach-t0);3550}35513552.peach-sync-device-meta {3553  font-size: 11px;3554  color: var(--peach-t2);3555}35563557.peach-sync-status-dot {3558  display: inline-block;3559  width: 8px;3560  height: 8px;3561  border-radius: 50%;3562  vertical-align: middle;3563}35643565.peach-sync-remove-btn {3566  color: var(--peach-breach);3567}35683569.peach-import-preview {3570  margin-bottom: 12px;3571  max-height: 152px;3572  overflow-y: auto;3573  border: 1px solid var(--peach-t3);3574  border-radius: 10px;3575  padding: 8px 10px;3576  display: grid;3577  gap: 8px;3578  background: rgba(240, 232, 216, 0.02);3579}35803581.peach-import-preview-row {3582  display: flex;3583  justify-content: space-between;3584  gap: 10px;3585  font-size: 11px;3586  color: var(--peach-t1);3587}35883589.peach-import-preview-title {3590  color: var(--peach-t0);3591  flex: 1;3592  min-width: 0;3593  overflow: hidden;3594  text-overflow: ellipsis;3595  white-space: nowrap;3596}35973598.peach-import-preview-meta {3599  color: var(--peach-t2);3600  flex-shrink: 0;3601  max-width: 42%;3602  overflow: hidden;3603  text-overflow: ellipsis;3604  white-space: nowrap;3605}36063607.peach-import-preview-more {3608  color: var(--peach-t2);3609  font-size: 10px;3610}36113612.peach-restore-copy {3613  margin: 0;3614  color: var(--peach-t1);3615  font-size: 11px;3616  line-height: 1.6;3617}36183619.peach-restore-warning {3620  padding: 10px 12px;3621  border-radius: 12px;3622  border: 1px solid rgba(220, 80, 60, 0.22);3623  background: rgba(220, 80, 60, 0.08);3624  color: rgba(240, 232, 216, 0.86);3625  font-size: 11px;3626  line-height: 1.55;3627}36283629.peach-provider-chips {3630  display: flex;3631  flex-wrap: wrap;3632  gap: 6px;3633}36343635.peach-provider-chip {3636  display: inline-flex;3637  align-items: center;3638  padding: 5px 8px;3639  border-radius: 999px;3640  border: 1px solid var(--peach-t3);3641  background: rgba(240, 232, 216, 0.02);3642  color: var(--peach-t1);3643  font-family: "IBM Plex Mono", monospace;3644  font-size: 8px;3645  letter-spacing: 0.08em;3646  text-transform: uppercase;3647}36483649.peach-restore-file,3650.peach-restore-input {3651  width: 100%;3652  border-radius: 10px;3653  border: 1px solid var(--peach-t3);3654  background: var(--peach-s2);3655  color: var(--peach-t0);3656  font-size: 12px;3657}36583659.peach-restore-file {3660  padding: 9px 10px;3661}36623663.peach-restore-file::file-selector-button {3664  margin-right: 10px;3665  padding: 7px 10px;3666  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3667  border-radius: 999px;3668  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3669  color: var(--peach-t0);3670  font-size: 10px;3671  letter-spacing: 0.08em;3672  text-transform: uppercase;3673  cursor: pointer;3674}36753676.peach-restore-input {3677  padding: 10px 12px;3678}36793680.peach-auth-grid {3681  display: grid;3682  gap: 10px;3683}36843685.peach-import-summary {3686  color: var(--peach-t1);3687  font-size: 12px;3688  line-height: 1.6;3689  margin-bottom: 12px;3690}36913692.peach-restore-error {3693  color: rgba(220, 80, 60, 0.95);3694  font-size: 12px;3695  line-height: 1.55;3696}36973698.peach-cjk-qr-panel {3699  margin-top: 14px;3700  padding: 12px;3701  border-radius: 16px;3702  border: 1px solid var(--peach-t3);3703  background: rgba(240, 232, 216, 0.02);3704  display: grid;3705  gap: 10px;3706}37073708.peach-cjk-qr-frame {3709  display: grid;3710  place-items: center;3711  min-height: 212px;3712  border-radius: 14px;3713  background: #fff;3714  overflow: hidden;3715}37163717.peach-cjk-qr-frame svg {3718  display: block;3719  width: 196px;3720  height: 196px;3721}37223723.peach-cjk-qr-error,3724.peach-cjk-qr-caption {3725  color: var(--peach-t1);3726  font-size: 11px;3727  line-height: 1.55;3728}37293730.peach-cjk-qr-card {3731  max-width: 400px;3732  margin: auto;3733}37343735.peach-cjk-qr-body {3736  padding: 0 20px 20px;3737  text-align: center;3738}37393740.peach-cjk-qr-hint {3741  font-size: 11px;3742  color: var(--peach-t2);3743  margin: 0 0 14px;3744}37453746.peach-cjk-qr-image {3747  border-radius: 4px;3748  display: block;3749  margin: 0 auto;3750  width: 100%;3751  max-width: 320px;3752  height: auto;3753}37543755.peach-pro-badge {3756  padding: 2px 6px;3757  border-radius: 999px;3758  font-family: var(--font-ui);3759  font-size: 10px;3760  letter-spacing: 0.08em;3761  text-transform: uppercase;3762  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3763  color: var(--peach-accent);3764}37653766/* ── Pro promo on Account screen ────────────────────────────── */3767.peach-pro-promo {3768  position: relative;3769  border-radius: 14px;3770  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3771  background:3772    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),3773    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),3774    var(--surface-card);3775  overflow: hidden;3776  margin-bottom: 14px;3777}3778.peach-pro-promo-glow {3779  position: absolute;3780  inset: -40% -20% auto auto;3781  width: 220px; height: 220px;3782  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);3783  pointer-events: none;3784  filter: blur(8px);3785}3786.peach-pro-promo-inner {3787  position: relative;3788  padding: 18px 18px 16px;3789}3790.peach-pro-promo-title {3791  font-family: var(--font-display);3792  font-style: italic;3793  font-weight: 400;3794  font-size: 28px;3795  line-height: 1;3796  letter-spacing: -0.005em;3797  color: var(--peach-t0);3798  margin: 0 0 4px;3799}3800.peach-pro-promo-tagline {3801  font-family: var(--font-mono);3802  font-size: 10px;3803  letter-spacing: 0.06em;3804  color: var(--peach-t2);3805  margin: 0 0 14px;3806}3807.peach-pro-promo-list {3808  list-style: none;3809  margin: 0 0 16px;3810  padding: 0;3811  display: grid;3812  gap: 9px;3813}3814.peach-pro-promo-list li {3815  display: flex;3816  align-items: flex-start;3817  gap: 9px;3818  font-size: 12px;3819  color: var(--peach-t1);3820  line-height: 1.4;3821}3822.peach-pro-promo-list svg {3823  width: 14px;3824  height: 14px;3825  flex-shrink: 0;3826  color: var(--peach-accent);3827  margin-top: 2px;3828}3829.peach-pro-promo-list span {3830  color: var(--peach-t0);3831}3832.peach-pro-promo-cta {3833  width: 100%;3834  background: var(--peach-accent);3835  color: #fff;3836  border: none;3837  padding: 9px 12px;3838  border-radius: 9px;3839  font-size: 12px;3840  font-weight: 500;3841  font-family: var(--font-ui);3842  letter-spacing: 0.02em;3843  text-decoration: none;3844  display: inline-flex;3845  align-items: center;3846  justify-content: center;3847  cursor: pointer;3848  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;3849  box-shadow: 0 2px 16px var(--peach-glow);3850}3851.peach-pro-promo-cta:hover {3852  filter: brightness(1.07);3853  box-shadow: 0 4px 24px var(--peach-glow);3854  transform: translateY(-1px);3855}3856.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }38573858.peach-pro-or-divider {3859  display: flex;3860  align-items: center;3861  gap: 10px;3862  margin: 4px 0 12px;3863  font-family: var(--font-mono);3864  font-size: 10px;3865  letter-spacing: 0.06em;3866  color: var(--peach-t2);3867  text-transform: uppercase;3868}3869.peach-pro-or-divider::before,3870.peach-pro-or-divider::after {3871  content: "";3872  flex: 1;3873  height: 1px;3874  background: var(--peach-t3);3875}38763877.peach-loading {3878  position: absolute;3879  inset: 0;3880  display: flex;3881  align-items: center;3882  justify-content: center;3883  background: var(--bg);3884  animation: peach-loading-pulse 1.2s ease-in-out infinite;3885}38863887@keyframes peach-loading-pulse {3888  0%, 100% { opacity: 0.6; }3889  50% { opacity: 1; }3890}38913892/* ── Health Dashboard ─────────────────────────────────────────────────── */3893.peach-health-body {3894  flex: 1;3895  overflow-y: auto;3896  display: flex;3897  flex-direction: column;3898}38993900.peach-health-summary {3901  padding: 10px 16px 6px;3902  font-family: "IBM Plex Mono", monospace;3903  font-size: 11px;3904}3905.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3906.peach-health-summary-ok { color: var(--peach-t2); }39073908.peach-health-check-row {3909  padding: 0 16px 10px;3910}3911.peach-health-check-btn {3912  width: 100%;3913  display: flex;3914  align-items: center;3915  justify-content: center;3916}39173918.peach-health-sections {3919  flex: 1;3920  display: flex;3921  flex-direction: column;3922}39233924.peach-health-section {3925  border-bottom: 1px solid var(--peach-t3);3926}39273928.peach-health-section-header {3929  width: 100%;3930  display: flex;3931  align-items: center;3932  justify-content: space-between;3933  padding: 9px 16px;3934  background: transparent;3935  cursor: pointer;3936  color: var(--peach-t0);3937}39383939.peach-health-section-title-row {3940  display: flex;3941  align-items: center;3942  gap: 8px;3943}39443945.peach-health-count-badge {3946  display: inline-flex;3947  align-items: center;3948  justify-content: center;3949  min-width: 20px;3950  height: 18px;3951  padding: 0 5px;3952  border-radius: 999px;3953  background: rgba(220,80,60,0.15);3954  border: 1px solid rgba(220,80,60,0.25);3955  font-family: "IBM Plex Mono", monospace;3956  font-size: 9px;3957  color: rgba(220,80,60,0.9);3958}39593960.peach-health-section-title {3961  font-family: "IBM Plex Mono", monospace;3962  font-size: 11px;3963  text-transform: uppercase;3964  letter-spacing: 0.1em;3965  color: var(--peach-t1);3966}39673968.peach-health-chevron {3969  color: var(--peach-t2);3970  transition: transform 200ms ease;3971  flex-shrink: 0;3972}3973.peach-health-chevron.is-expanded {3974  transform: rotate(180deg);3975}39763977.peach-health-section-body {3978  padding: 0 16px 10px;3979  display: flex;3980  flex-direction: column;3981  gap: 4px;3982}39833984.peach-health-row {3985  display: flex;3986  align-items: flex-start;3987  justify-content: space-between;3988  gap: 8px;3989  padding: 6px 8px;3990  border-radius: 8px;3991  background: rgba(240,232,216,0.02);3992}39933994.peach-health-row-info {3995  flex: 1;3996  min-width: 0;3997  display: flex;3998  flex-direction: column;3999  gap: 2px;4000}40014002.peach-health-row-name {4003  font-family: "Cormorant Garamond", serif;4004  font-size: 15px;4005  font-style: italic;4006  font-weight: 400;4007  color: var(--peach-t0);4008  white-space: nowrap;4009  overflow: hidden;4010  text-overflow: ellipsis;4011}40124013.peach-health-row-meta {4014  font-family: "IBM Plex Mono", monospace;4015  font-size: 9px;4016  color: var(--peach-t2);4017  letter-spacing: 0.05em;4018}40194020.peach-health-fix-btn {4021  font-size: 9px;4022  letter-spacing: 0.08em;4023  text-transform: uppercase;4024  padding: 4px 7px;4025  flex-shrink: 0;4026  display: flex;4027  align-items: center;4028}40294030.peach-health-empty {4031  font-family: "IBM Plex Mono", monospace;4032  font-size: 10px;4033  color: var(--peach-t2);4034  padding: 6px 0;4035}40364037.peach-health-loading {4038  font-family: "IBM Plex Mono", monospace;4039  font-size: 10px;4040  color: var(--peach-t2);4041  padding: 6px 0;4042  display: flex;4043  align-items: center;4044  gap: 6px;4045}40464047.peach-health-loading::before {4048  content: "";4049  width: 10px;4050  height: 10px;4051  border: 1.5px solid var(--peach-t3);4052  border-top-color: var(--peach-accent);4053  border-radius: 50%;4054  animation: peach-spin 600ms linear infinite;4055}40564057@keyframes peach-spin {4058  to { transform: rotate(360deg); }4059}40604061.peach-spinner {4062  width: 32px;4063  height: 32px;4064  border: 2px solid var(--peach-s2);4065  border-top-color: var(--peach-accent);4066  border-radius: 50%;4067  margin: 0 auto 16px;4068  animation: peach-spin 0.8s linear infinite;4069}40704071.peach-progress-screen {4072  text-align: center;4073  padding: 32px 16px;4074}40754076.peach-progress-screen-title {4077  font-size: 13px;4078  color: var(--peach-t0);4079  margin-bottom: 16px;4080}40814082.peach-progress-screen-stage {4083  font-size: 11px;4084  color: var(--peach-t2);4085  min-height: 14px;4086}40874088.peach-progress-screen-note {4089  font-size: 10px;4090  color: var(--peach-t2);4091  margin-top: 8px;4092}40934094.peach-pairing-body {4095  flex: 1;4096  overflow-y: auto;4097  display: flex;4098  flex-direction: column;4099}41004101.peach-pairing-content {4102  flex: 1;4103  display: flex;4104  flex-direction: column;4105  align-items: center;4106  justify-content: center;4107  gap: 14px;4108  padding: 28px 20px;4109  text-align: center;4110}41114112.peach-pairing-headline {4113  font-family: var(--font-display);4114  font-style: italic;4115  font-weight: 300;4116  font-size: 28px;4117  color: var(--peach-t0);4118  margin: 0;4119  line-height: 1;4120}41214122.peach-pairing-subline {4123  font-size: 12px;4124  color: var(--peach-t2);4125  max-width: 220px;4126  line-height: 1.5;4127  margin: 0;4128}41294130.peach-pairing-subline--center {4131  text-align: center;4132}41334134.peach-pairing-code-display {4135  display: flex;4136  gap: 6px;4137}41384139.peach-pairing-code-digit {4140  display: flex;4141  align-items: center;4142  justify-content: center;4143  width: 36px;4144  height: 48px;4145  background: var(--peach-s2);4146  border: 1px solid var(--peach-t3);4147  border-radius: 6px;4148  font-family: var(--font-mono);4149  font-size: 22px;4150  color: var(--peach-t0);4151  letter-spacing: 0;4152}41534154.peach-pairing-countdown-ring {4155  position: relative;4156  display: inline-flex;4157  align-items: center;4158  justify-content: center;4159}41604161.peach-pairing-countdown-num {4162  position: absolute;4163  font-family: var(--font-mono);4164  font-size: 14px;4165  color: var(--peach-t1);4166}41674168.peach-pairing-ring-track {4169  fill: none;4170  stroke: var(--peach-t3);4171  stroke-width: 2;4172}41734174.peach-pairing-ring-progress {4175  fill: none;4176  stroke: var(--peach-accent);4177  stroke-width: 2;4178  stroke-linecap: round;4179  transform: rotate(-90deg);4180  transform-origin: 50% 50%;4181  transition: stroke-dashoffset 0.5s linear;4182}41834184.peach-pairing-code-inputs {4185  display: flex;4186  gap: 8px;4187}41884189.peach-pairing-code-box {4190  width: 36px;4191  height: 48px;4192  text-align: center;4193  background: var(--peach-s2);4194  border: 1px solid var(--peach-t3);4195  border-radius: 6px;4196  font-family: var(--font-mono);4197  font-size: 20px;4198  color: var(--peach-t0);4199  outline: none;4200  transition: border-color 120ms ease;4201}42024203.peach-pairing-code-box:focus {4204  border-color: var(--peach-accent);4205}42064207.peach-pairing-code-box.has-error {4208  border-color: rgba(220, 80, 60, 0.45);4209}42104211.peach-pairing-status {4212  display: flex;4213  align-items: center;4214  gap: 8px;4215  margin: 0;4216  font-size: 12px;4217  color: var(--peach-t1);4218}42194220.peach-pairing-error {4221  margin: 0;4222  font-size: 11px;4223  color: var(--peach-breach);4224}42254226.peach-pairing-error-msg {4227  color: var(--peach-t1);4228}42294230.peach-pairing-spinner {4231  width: 12px;4232  height: 12px;4233  border: 1.5px solid var(--peach-t3);4234  border-top-color: var(--peach-accent);4235  border-radius: 50%;4236  animation: peach-spin 0.8s linear infinite;4237}42384239.peach-pairing-success-icon,4240.peach-pairing-error-icon,4241.peach-pairing-hero {4242  display: inline-flex;4243  align-items: center;4244  justify-content: center;4245}42464247/* Tag chips */4248.peach-tag-chip {4249  display: inline-flex;4250  align-items: center;4251  gap: 4px;4252  padding: 3px 8px;4253  border-radius: 999px;4254  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4255  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4256  color: rgba(240, 232, 216, 0.85);4257  font-family: "IBM Plex Mono", monospace;4258  font-size: 10px;4259  letter-spacing: 0.04em;4260}42614262.peach-tag-chip-remove {4263  background: transparent;4264  border: none;4265  color: inherit;4266  opacity: 0.6;4267  cursor: pointer;4268  padding: 0;4269  font-size: 12px;4270  line-height: 1;4271}42724273.peach-tag-chip-remove:hover {4274  opacity: 1;4275}42764277/* Tag input */4278.peach-tag-input-wrap {4279  border-bottom: 1px solid var(--peach-t3);4280}42814282.peach-tag-suggestions {4283  display: flex;4284  flex-wrap: wrap;4285  gap: 4px;4286  padding: 6px 0;4287}42884289.peach-tag-suggestion {4290  padding: 2px 8px;4291  border-radius: 999px;4292  border: 1px solid var(--peach-t3);4293  background: var(--peach-s2);4294  color: var(--peach-t1);4295  font-family: "IBM Plex Mono", monospace;4296  font-size: 10px;4297  cursor: pointer;4298  transition: border-color 80ms ease, background 80ms ease;4299}43004301.peach-tag-suggestion:hover {4302  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4303  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4304}43054306/* Tag filter strip */4307.peach-tag-filter-strip {4308  border-bottom: 1px solid var(--peach-t3);4309  flex-shrink: 0;4310}43114312.peach-tag-filter-chip {4313  display: inline-flex;4314  align-items: center;4315  padding: 4px 10px;4316  border-radius: 999px;4317  border: 1px solid var(--peach-t3);4318  background: transparent;4319  color: var(--peach-t2);4320  font-family: "IBM Plex Mono", monospace;4321  font-size: 9px;4322  letter-spacing: 0.06em;4323  text-transform: uppercase;4324  cursor: pointer;4325  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4326  white-space: nowrap;4327}43284329.peach-tag-filter-chip:hover {4330  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4331  color: var(--peach-t1);4332}43334334.peach-tag-filter-chip.is-selected {4335  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4336  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4337  color: rgba(240, 232, 216, 0.9);4338}43394340/* ─────────────────────────────────────────────────────────────────────────4341   v1.4.12 additions4342   ─────────────────────────────────────────────────────────────────────── */43434344/* Sort bar */4345.peach-sort-bar {4346  display: flex;4347  align-items: center;4348  gap: 4px;4349  padding: 5px 12px;4350  border-bottom: 1px solid var(--peach-t3);4351  flex-shrink: 0;4352  overflow-x: auto;4353  scrollbar-width: none;4354}43554356.peach-sort-btn {4357  padding: 2px 9px;4358  border-radius: 999px;4359  border: 1px solid transparent;4360  background: transparent;4361  color: var(--peach-t2);4362  font-family: "IBM Plex Mono", monospace;4363  font-size: 9px;4364  letter-spacing: 0.07em;4365  text-transform: uppercase;4366  cursor: pointer;4367  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4368  white-space: nowrap;4369}43704371.peach-sort-btn:hover {4372  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4373  color: var(--peach-t1);4374}43754376.peach-sort-btn.is-active {4377  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4378  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4379  color: var(--peach-t0);4380}43814382.peach-sort-domain-hint {4383  margin-left: auto;4384  font-family: "IBM Plex Mono", monospace;4385  font-size: 9px;4386  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4387  white-space: nowrap;4388  overflow: hidden;4389  text-overflow: ellipsis;4390  max-width: 110px;4391}43924393/* Tab-match badge on entry rows */4394.peach-tab-match-badge {4395  display: inline-block;4396  width: 6px;4397  height: 6px;4398  border-radius: 50%;4399  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4400  margin-left: 5px;4401  vertical-align: middle;4402  flex-shrink: 0;4403  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4404}44054406.peach-entry-row.is-tab-match {4407  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4408  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4409}44104411.peach-entry-row.is-tab-match:hover {4412  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4413}44144415/* Entry list stagger entrance */4416@keyframes peach-entry-fadein {4417  from { opacity: 0; transform: translateY(4px); }4418  to   { opacity: 1; transform: translateY(0); }4419}44204421.peach-vault-list .peach-entry-row {4422  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4423  content-visibility: auto;4424  contain-intrinsic-size: auto 44px;4425}44264427/* Button press micro-interaction */4428.peach-btn:active {4429  transform: scale(0.95);4430  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4431}44324433.peach-sort-btn:active,4434.peach-tag-filter-chip:active {4435  transform: scale(0.93);4436  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4437}44384439/* Password strength bar (Lock view + shared) */4440.peach-password-strength {4441  display: flex;4442  align-items: center;4443  gap: 8px;4444  margin-top: 6px;4445}44464447.peach-strength-bar {4448  flex: 1;4449  height: 3px;4450  border-radius: 2px;4451  background: var(--peach-t3);4452  overflow: hidden;4453}44544455.peach-strength-fill {4456  height: 100%;4457  border-radius: 2px;4458  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4459              background 300ms ease;4460}44614462.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4463.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4464.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4465.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }44664467.peach-strength-label {4468  font-family: "IBM Plex Mono", monospace;4469  font-style: italic;4470  font-size: 9px;4471  font-weight: 300;4472  letter-spacing: 0.06em;4473  color: var(--peach-t2);4474  min-width: 36px;4475  text-align: right;4476}44774478.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4479.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4480.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4481.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }44824483/* Duress form */4484.peach-duress-status {4485  padding: 2px 8px;4486  border-radius: 999px;4487  border: 1px solid var(--peach-t3);4488  font-family: "IBM Plex Mono", monospace;4489  font-size: 9px;4490  letter-spacing: 0.07em;4491  text-transform: uppercase;4492  color: var(--peach-t2);4493  flex-shrink: 0;4494}44954496.peach-duress-status.is-active {4497  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4498  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4499  color: rgba(240, 232, 216, 0.85);4500}45014502.peach-duress-form {4503  padding: 8px 0 4px;4504  display: flex;4505  flex-direction: column;4506  gap: 6px;4507}45084509.peach-duress-form .peach-label {4510  margin-top: 4px;4511}45124513.peach-duress-actions {4514  display: flex;4515  gap: 6px;4516  align-items: center;4517  margin-top: 4px;4518}45194520.peach-duress-actions .peach-btn:first-child {4521  margin-right: auto;4522}45234524/* Improved overlay spring entrance */4525.peach-overlay-view.ov-enter-up {4526  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4527}45284529@keyframes ov-enter-up-spring {4530  from { opacity: 0; transform: translateY(16px) scale(0.98); }4531  to   { opacity: 1; transform: translateY(0) scale(1); }4532}45334534.peach-overlay-view.ov-enter-right {4535  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4536}45374538@keyframes ov-enter-right-spring {4539  from { opacity: 0; transform: translateX(18px) scale(0.98); }4540  to   { opacity: 1; transform: translateX(0) scale(1); }4541}45424543/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4544/* Used when CJKImportView or MainImportView renders during onboarding4545   (no vault yet). Animates like a lock-screen transition. */4546.peach-lock-view {4547  position: absolute;4548  inset: 0;4549  display: flex;4550  flex-direction: column;4551  background:4552    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4553    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4554    var(--peach-bg);4555  z-index: 2;4556  overflow: hidden;4557  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4558}45594560.peach-lock-view-header {4561  display: flex;4562  align-items: center;4563  justify-content: space-between;4564  padding: 16px 18px 12px;4565  flex-shrink: 0;4566}45674568/* ───────── Settings: auto-lock select ───────── */4569.peach-settings-select {4570  font-family: "IBM Plex Mono", monospace;4571  font-size: 11px;4572  background: transparent;4573  border: 1px solid var(--peach-t3);4574  border-radius: 4px;4575  color: var(--peach-t1);4576  padding: 3px 6px;4577  cursor: pointer;4578  outline: none;4579}4580.peach-settings-select:focus {4581  border-color: var(--peach-accent);4582}45834584/* ───────── Duress status pill (new polished) ───────── */4585.peach-duress-status-pill {4586  font-family: "IBM Plex Mono", monospace;4587  font-size: 9px;4588  text-transform: uppercase;4589  letter-spacing: 0.12em;4590  padding: 2px 8px;4591  border-radius: 12px;4592  background: var(--peach-t3);4593  color: var(--peach-t2);4594  flex-shrink: 0;4595}4596.peach-duress-status-pill.is-active {4597  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4598  color: var(--peach-accent);4599}46004601/* ───────── Entry advanced disclosure (canary) ───────── */4602.peach-entry-advanced {4603  margin-top: 12px;4604  border-top: 1px solid var(--peach-t3);4605  padding-top: 10px;4606  position: relative;4607  z-index: 1;4608}4609.peach-entry-advanced-toggle {4610  display: flex;4611  align-items: center;4612  justify-content: space-between;4613  width: 100%;4614  background: transparent;4615  border: none;4616  cursor: pointer;4617  padding: 0;4618  color: var(--peach-t2);4619}4620.peach-canary-section {4621  margin-top: 10px;4622  display: grid;4623  gap: 6px;4624}46254626/* ───────── Import: merge/replace radio choices ───────── */4627.peach-import-choice {4628  display: flex;4629  align-items: flex-start;4630  gap: 10px;4631  padding: 8px 10px;4632  border: 1px solid var(--peach-t3);4633  border-radius: 10px;4634  cursor: pointer;4635  margin-bottom: 6px;4636  transition: border-color 120ms ease, background 120ms ease;4637}4638.peach-import-choice:hover {4639  border-color: var(--peach-accent);4640}4641.peach-import-choice input[type="radio"] {4642  margin-top: 3px;4643  accent-color: var(--peach-accent);4644  flex-shrink: 0;4645}4646.peach-import-choice-main {4647  display: flex;4648  flex-direction: column;4649  gap: 2px;4650  min-width: 0;4651}4652.peach-import-choice-label {4653  font-size: 12px;4654  color: var(--peach-t0);4655}4656.peach-import-choice-sub {4657  font-size: 11px;4658  color: var(--peach-t2);4659  line-height: 1.5;4660}46614662/* ───────── Export: success confirmation strip ───────── */4663.peach-export-success {4664  display: flex;4665  align-items: flex-start;4666  gap: 10px;4667  padding: 12px;4668  border-radius: 12px;4669  border: 1px solid rgba(150, 175, 110, 0.3);4670  background: rgba(150, 175, 110, 0.08);4671  color: var(--peach-t0);4672  font-size: 12px;4673  line-height: 1.55;4674}4675.peach-export-success-check {4676  color: rgba(150, 175, 110, 0.9);4677  font-size: 14px;4678  flex-shrink: 0;4679}46804681/* ── Trash view ──────────────────────────────────────────────────────── */4682.peach-trash-entry-row {4683  display: flex;4684  align-items: center;4685  justify-content: space-between;4686  gap: 8px;4687  padding: 8px 0;4688  border-bottom: 1px solid var(--peach-t3);4689}4690.peach-trash-entry-row:last-child { border-bottom: none; }4691.peach-trash-entry-info {4692  flex: 1;4693  min-width: 0;4694  display: flex;4695  flex-direction: column;4696  gap: 2px;4697}4698.peach-trash-entry-title {4699  font-size: 12px;4700  color: var(--peach-t1);4701  overflow: hidden;4702  text-overflow: ellipsis;4703  white-space: nowrap;4704}4705.peach-trash-entry-meta {4706  font-family: var(--font-mono);4707  font-size: 9px;4708  color: var(--peach-t2);4709  letter-spacing: 0.06em;4710}4711.peach-trash-entry-actions {4712  display: flex;4713  align-items: center;4714  gap: 4px;4715  flex-shrink: 0;4716}4717.peach-trash-list {4718  flex: 1;4719  min-height: 0;4720  overflow-y: auto;4721}4722.peach-trash-notice {4723  margin: 0 20px 16px;4724  margin-top: auto;4725}47264727/* ── Settings shortcuts grid ─────────────────────────────────────────── */4728.peach-shortcuts-grid {4729  display: grid;4730  grid-template-columns: auto 1fr;4731  gap: 6px 12px;4732  align-items: center;4733  padding: 4px 0;4734}4735.peach-shortcut-key {4736  font-family: var(--font-mono);4737  font-size: 10px;4738  color: var(--peach-t0);4739  background: var(--peach-t3);4740  border-radius: 4px;4741  padding: 2px 6px;4742  white-space: nowrap;4743  text-align: center;4744}4745.peach-shortcut-desc {4746  font-size: 11px;4747  color: var(--peach-t1);4748}47494750/* ── Sort bar trash button ───────────────────────────────────────────── */4751.peach-sort-trash-btn {4752  display: flex;4753  align-items: center;4754  justify-content: center;4755  padding: 3px 5px;4756  background: transparent;4757  border: none;4758  cursor: pointer;4759  color: var(--peach-t2);4760  border-radius: 4px;4761  transition: color 140ms ease, background 140ms ease;4762}4763.peach-sort-trash-btn:hover {4764  color: var(--peach-t1);4765  background: var(--peach-t3);4766}4767.peach-sort-trash-btn.is-active {4768  color: var(--peach-accent);4769}47704771/* Accent color picker */4772.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4773.peach-accent-picker {4774  display: flex;4775  flex-wrap: wrap;4776  gap: 7px;4777  padding: 2px 0;4778}4779.peach-accent-swatch {4780  width: 22px;4781  height: 22px;4782  border-radius: 50%;4783  border: 2px solid transparent;4784  cursor: pointer;4785  padding: 0;4786  transition: transform 100ms;4787  outline-offset: 2px;4788}4789.peach-accent-swatch:hover { transform: scale(1.15); }4790.peach-accent-swatch.is-active {4791  border-color: var(--peach-t0);4792  transform: scale(1.1);4793}47944795/* ── Card entry styles ───────────────────────────────────────── */4796.peach-card-number {4797  font-family: var(--peach-mono);4798  letter-spacing: 0.08em;4799}48004801.peach-card-network-badge {4802  font-size: 10px;4803  padding: 1px 5px;4804  border-radius: 4px;4805  border: 0.5px solid var(--peach-border);4806  color: var(--peach-text-dim);4807  margin-left: 6px;4808  vertical-align: middle;4809}48104811.peach-card-expiry-row {4812  display: flex;4813  align-items: center;4814  gap: 8px;4815}48164817.peach-card-expiry-sep {4818  color: var(--peach-text-dim);4819}