popup.css

108.5 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  font-family: "Cormorant Garamond", "Times New Roman", serif;300  font-style: italic; font-weight: 400;301  font-size: 44px; line-height: 0.95;302  color: var(--peach-t0);303  display: -webkit-box;304  -webkit-line-clamp: 2;305  -webkit-box-orient: vertical;306  overflow: hidden;307  text-wrap: balance;308}309.peach-entry-name--lg { font-size: 40px; }310.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }311.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }312.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; }313314/* Trash icon in entry header */315.peach-entry-trash-btn {316  flex-shrink: 0;317  padding: 4px;318  margin-top: 4px;319  background: transparent;320  border: none;321  cursor: pointer;322  color: var(--peach-t2);323  border-radius: 4px;324  transition: color 140ms ease, background 140ms ease;325  display: flex;326  align-items: center;327  justify-content: center;328}329.peach-entry-trash-btn:hover {330  color: var(--peach-t1);331  background: var(--peach-t3);332}333.peach-entry-trash-confirm {334  display: flex;335  align-items: center;336  gap: 6px;337  flex-shrink: 0;338  margin-top: 6px;339  flex-wrap: nowrap;340}341.peach-entry-trash-confirm-label {342  font-family: var(--font-mono);343  font-size: 9px;344  letter-spacing: 0.1em;345  color: var(--peach-t2);346  white-space: nowrap;347}348.peach-entry-name-button {349  padding: 0;350  background: transparent;351  text-align: left;352  cursor: pointer;353  max-width: 100%;354  overflow: hidden;355  display: block;356}357.peach-entry-name-char {358  display: inline-block;359  white-space: pre;360  opacity: 0;361  transform: translateY(0.22em);362  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;363  animation-delay: calc(var(--char-index, 0) * 20ms);364}365366/* Domain */367.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }368.peach-domain-row {369  width: 100%; border: 0; background: transparent; color: inherit;370  padding: 0; display: flex; justify-content: space-between; align-items: baseline;371  cursor: default;372}373.peach-domain-value {374  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;375  font-size: 10px; font-style: italic;376  letter-spacing: 0.12em; color: var(--peach-t1);377}378379/* Fields */380.peach-fields { display: grid; gap: 10px; }381.peach-field-card { display: grid; gap: 7px; }382.peach-label {383  font-family: Inter, system-ui, sans-serif;384  text-transform: uppercase; letter-spacing: 0.2em;385  font-size: 8px; color: var(--peach-t2);386}387.peach-field-value-row {388  display: flex; justify-content: space-between;389  align-items: center; gap: 8px;390  min-width: 0;391}392.peach-field-value {393  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;394  font-size: 13px; color: var(--peach-t1);395  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;396  flex: 1;397  min-width: 0;398}399.peach-password-value {400  display: inline-flex;401  align-items: center;402  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;403  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);404  overflow: hidden;405  text-overflow: ellipsis;406  white-space: nowrap;407  flex: 1;408  min-width: 0;409  max-width: 100%;410}411.peach-password-value.is-revealed {412  font-size: 14px;413  letter-spacing: 0.08em;414}415.peach-password-text,416.peach-password-mask {417  display: block;418  width: 100%;419  overflow: hidden;420  white-space: nowrap;421  /* Render as uniform mid-line bullets, not baseline periods */422  font-family: Inter, system-ui, sans-serif;423  font-size: 10px;424  letter-spacing: 3px;425  user-select: none;426}427.peach-field-actions { display: flex; gap: 4px; align-items: center; }428.peach-password-strength { display: flex; align-items: center; gap: 8px; }429.peach-strength-bar { display: flex; gap: 3px; }430.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }431.peach-strength-label {432  font-family: "IBM Plex Mono", monospace;433  font-style: italic;434  font-size: 9px;435  font-weight: 300;436  min-width: 36px;437  text-align: right;438  color: var(--peach-t2);439  letter-spacing: 0.06em;440}441442.peach-strength-hairline {443  display: flex;444  align-items: center;445  gap: 10px;446  margin-top: -2px;447}448449.peach-strength-hairline-track {450  flex: 1;451  height: 3px;452  border-radius: 2px;453  background: var(--peach-s2);454  overflow: hidden;455}456457.peach-strength-hairline-fill {458  height: 100%;459  border-radius: 2px;460  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),461    background 400ms ease;462}463464/* Note content (display) */465.peach-note-content {466  border-top: 1px solid var(--peach-t3);467  padding-top: 10px;468  font-family: "Cormorant Garamond", "Times New Roman", serif;469  font-size: 15px;470  line-height: 1.75;471  color: var(--peach-t1);472}473474/* ── Inline editing ─────────────────────────────────────────────────── */475476/* Clickable display values */477.peach-inline-clickable {478  cursor: text;479  border-radius: 3px;480  transition: background 150ms ease;481}482.peach-inline-clickable:hover {483  background: rgba(240, 232, 216, 0.05);484}485486/* Subtle "edit" hint that appears on hover */487.peach-inline-edit-hint {488  font-family: Inter, system-ui, sans-serif;489  font-size: 9px;490  text-transform: uppercase;491  letter-spacing: 0.14em;492  color: var(--peach-t2);493  opacity: 0;494  transition: opacity 120ms ease;495  pointer-events: none;496  margin-left: 6px;497  flex-shrink: 0;498}499.peach-domain-row:hover .peach-inline-edit-hint {500  opacity: 1;501}502503/* Title editing */504.peach-inline-title-wrap {505  display: flex;506  flex-direction: column;507  gap: 6px;508}509.peach-inline-title-input {510  font-family: "Cormorant Garamond", "Times New Roman", serif;511  font-style: italic;512  font-weight: 400;513  font-size: 40px;514  line-height: 0.95;515  color: var(--peach-t0);516  background: transparent;517  border: none;518  border-bottom: 1px solid var(--peach-accent);519  outline: none;520  width: 100%;521  padding: 2px 0;522}523524/* Generic inline field */525.peach-inline-field-wrap {526  display: flex;527  flex-direction: column;528  gap: 6px;529}530.peach-inline-input {531  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;532  font-size: 13px;533  color: var(--peach-t0);534  background: transparent;535  border: none;536  border-bottom: 1px solid var(--peach-accent);537  outline: none;538  width: 100%;539  padding: 3px 0;540}541.peach-inline-textarea {542  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;543  font-size: 11px;544  line-height: 1.7;545  color: var(--peach-t0);546  background: rgba(240, 232, 216, 0.04);547  border: 1px solid var(--peach-accent);548  border-radius: 4px;549  outline: none;550  width: 100%;551  padding: 8px;552  resize: vertical;553  min-height: 80px;554}555556/* Save / cancel row */557.peach-inline-actions {558  display: flex;559  gap: 6px;560  align-items: center;561}562.peach-inline-save-btn,563.peach-inline-cancel-btn {564  display: inline-flex;565  align-items: center;566  justify-content: center;567  width: 26px;568  height: 26px;569  border-radius: 4px;570  border: none;571  cursor: pointer;572  transition: background 140ms ease, opacity 140ms ease;573  flex-shrink: 0;574}575.peach-inline-save-btn {576  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);577  color: var(--peach-accent);578}579.peach-inline-save-btn:hover:not(:disabled) {580  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);581}582.peach-inline-cancel-btn {583  background: rgba(240, 232, 216, 0.06);584  color: var(--peach-t2);585}586.peach-inline-cancel-btn:hover:not(:disabled) {587  background: rgba(240, 232, 216, 0.12);588  color: var(--peach-t1);589}590.peach-inline-save-btn:disabled,591.peach-inline-cancel-btn:disabled {592  opacity: 0.4;593  cursor: not-allowed;594}595596/* Inline password generator wrapper */597.peach-inline-generator-wrap {598  margin-top: 10px;599  padding-top: 10px;600  border-top: 1px solid var(--peach-t3);601  display: flex;602  flex-direction: column;603  gap: 8px;604}605.peach-inline-generator-cancel {606  align-self: flex-start;607  font-size: 11px;608  color: var(--peach-t2);609}610611/* "is-editing" card state */612.peach-field-card.is-editing {613  background: rgba(240, 232, 216, 0.02);614  border-radius: 6px;615  padding: 8px;616  margin: -8px;617}618619/* Inline tag editor on Entry detail view */620.peach-inline-tag-editor {621  display: flex;622  flex-direction: column;623  gap: 6px;624}625626/* Quiet inline "+ add X" link in the entry detail body */627.peach-entry-add-link {628  justify-self: start;629  margin-top: 8px;630}631632/* Additional URLs editor revealed by clicking the URL field */633.peach-additional-urls {634  display: flex;635  flex-direction: column;636  gap: 6px;637  margin-top: 8px;638}639.peach-additional-urls-label {640  font-size: 9px;641  letter-spacing: 0.1em;642  text-transform: uppercase;643  color: var(--peach-t2);644  margin-bottom: 2px;645}646.peach-additional-url-row {647  display: flex;648  align-items: center;649  gap: 6px;650}651.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }652.peach-additional-url-remove {653  background: transparent;654  border: 1px solid var(--peach-t3);655  color: var(--peach-t2);656  width: 22px;657  height: 22px;658  border-radius: 4px;659  cursor: pointer;660  font-size: 14px;661  line-height: 1;662  display: inline-flex;663  align-items: center;664  justify-content: center;665  flex-shrink: 0;666  transition: color 120ms ease, border-color 120ms ease;667}668.peach-additional-url-remove:hover:not(:disabled) {669  color: var(--peach-accent);670  border-color: var(--peach-border-accent);671}672.peach-additional-urls-add { align-self: flex-start; }673674/* Delete row */675.peach-entry-delete-row {676  display: flex;677  align-items: center;678  gap: 8px;679  padding-top: 18px;680  margin-top: 8px;681  border-top: 1px solid var(--peach-t3);682}683.peach-delete-btn {684  font-size: 11px;685  color: var(--peach-t2);686  padding: 4px 0;687}688.peach-delete-confirm-text {689  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;690  font-size: 11px;691  font-style: italic;692  color: var(--peach-t2);693  flex-shrink: 0;694}695696/* TOTP band */697.peach-totp-band {698  border-top: 1px solid var(--peach-t3);699  padding: 12px 20px 14px;700  position: relative;701  display: grid;702  grid-template-columns: 1fr auto;703  gap: 10px;704}705.peach-totp-main {706  min-width: 0;707  cursor: pointer;708  user-select: none;709}710.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }711.peach-totp-code-row {712  display: flex;713  align-items: flex-end;714  gap: 10px;715  min-width: 0;716}717.peach-totp-code {718  margin: 2px 0 0;719  font-family: "Cormorant Garamond", "Times New Roman", serif;720  font-style: italic;721  font-weight: 300;722  font-size: 38px; color: var(--peach-accent);723  line-height: 0.95; min-height: 1em;724  min-width: 0;725}726.peach-totp-code-text {727  display: inline-flex;728  overflow: hidden;729  text-overflow: ellipsis;730  white-space: nowrap;731}732.peach-totp-copy-btn {733  margin-bottom: 2px;734  flex-shrink: 0;735  border-color: transparent;736}737.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }738.peach-totp-countdown {739  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;740  font-size: 22px; color: var(--peach-t1);741}742.peach-totp-ring { transform: rotate(-90deg); }743.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }744.peach-totp-ring-progress {745  fill: none; stroke: var(--peach-accent); stroke-width: 2;746  stroke-linecap: round;747  transition: stroke-dashoffset 1s linear, stroke 500ms ease;748}749/* Search bar */750.peach-search-wrap {751  border-top: 1px solid var(--peach-t3);752  background: var(--peach-s1);753  min-height: 54px; position: relative;754  box-shadow: inset 0 6px 18px transparent;755  transition: box-shadow 700ms ease;756}757.peach-search-wrap::before {758  content: "";759  position: absolute;760  left: 0;761  top: 0;762  height: 2px;763  width: var(--peach-totp-progress, 0%);764  background: var(--peach-accent);765  opacity: 0;766  transition: width 1s linear, opacity 180ms ease;767  pointer-events: none;768}769.peach-shell[data-totp-active="true"] .peach-search-wrap::before {770  opacity: 0.9;771}772.peach-shell[data-totp-active="true"] .peach-search-wrap {773  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);774}775776@keyframes peach-totp-code-flare {777  0%   { filter: brightness(1); }778  25%  { filter: brightness(1.3); }779  100% { filter: brightness(1); }780}781.peach-totp-code.is-hot {782  animation: peach-totp-code-flare 3000ms ease-in-out both;783}784.peach-search-bar {785  min-height: 54px;786  display: grid;787  grid-template-columns: auto minmax(0, 1fr) auto;788  align-items: center;789  gap: 8px; padding: 0 9px 0 12px;790}791.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }792.peach-search-input {793  border: 0; background: transparent; color: var(--peach-t0);794  font-family: "Cormorant Garamond", "Times New Roman", serif;795  font-style: italic; font-size: 18px;796  outline: none; width: 100%; min-width: 0; padding: 0;797  caret-color: var(--peach-accent);798}799.peach-search-input::placeholder { color: var(--peach-t2); }800.peach-search-meta {801  display: grid;802  grid-auto-flow: column;803  align-items: center;804  justify-content: end;805  gap: 6px;806  min-width: max-content;807}808.peach-search-counter {809  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;810  font-size: 10px; color: var(--peach-t2);811  display: inline-flex;812  align-items: center;813  line-height: 1;814}815.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }816817/* Buttons */818.peach-btn {819  border: 1px solid transparent; border-radius: 12px;820  background: transparent; color: var(--peach-t0);821  font-family: Inter, system-ui, sans-serif;822  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;823  cursor: pointer;824  transition:825    background-color var(--peach-dur-80) var(--peach-curve-arrival),826    color var(--peach-dur-80) var(--peach-curve-arrival),827    border-color var(--peach-dur-150) var(--peach-curve-arrival);828}829.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }830.peach-btn:disabled {831  opacity: 0.45;832  cursor: not-allowed;833}834.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }835.peach-btn--md { min-height: 38px; }836.peach-btn--accent {837  background: var(--peach-accent);838  color: rgba(0,0,0,0.78);839  box-shadow:840    0 1px 0 rgba(255,255,255,0.08) inset,841    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),842    0 3px 16px var(--peach-glow),843    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);844}845.peach-btn--accent:hover:not(:disabled) {846  background: var(--peach-accent);847  filter: brightness(1.10) saturate(1.05);848  box-shadow:849    0 1px 0 rgba(255,255,255,0.10) inset,850    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),851    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),852    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);853}854.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }855.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }856.peach-icon-btn {857  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;858  display: inline-flex; align-items: center; justify-content: center;859}860861.peach-btn:focus-visible {862  outline: none;863  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);864}865866/* Lock button */867.peach-lock-icon { transform-origin: center; }868.peach-lock-btn.is-locking { color: var(--peach-accent); }869.peach-lock-btn.is-locking .peach-lock-icon {870  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);871}872873/* Copy button */874.peach-copy-btn {875  position: relative; overflow: hidden;876  color: var(--peach-t2); border-color: var(--peach-t3);877}878.peach-copy-icon {879  display: inline-flex; align-items: center; justify-content: center;880  position: relative; z-index: 1;881}882.peach-copy-icon-svg { display: block; }883.peach-copy-sheen {884  position: absolute; inset: 0;885  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%);886  opacity: 0; transform: scaleX(0.15); transform-origin: left center;887}888.peach-copy-btn.is-copied {889  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;890  box-shadow:891    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),892    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),893    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);894}895.peach-copy-btn.is-copied .peach-copy-icon {896  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;897}898.peach-copy-btn.is-copied .peach-copy-sheen {899  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;900}901.peach-copy-btn.is-retreat {902  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;903}904.peach-copy-btn.is-retreat .peach-copy-sheen {905  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;906}907.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }908.peach-copy-drain-bar {909  display: block; width: 100%; height: 100%;910  background: var(--peach-accent); opacity: 0.7;911  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;912}913914/* Unlock screen elements */915.peach-unlock-headline {916  margin: 2px 0 0;917  font-family: "Cormorant Garamond", "Times New Roman", serif;918  font-size: 52px; line-height: 0.95;919  font-style: italic; font-weight: 400;920}921.peach-subline {922  margin: 0;923  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;924  font-size: 10px; color: var(--peach-t2); font-style: italic;925}926.peach-subline--lock {927  max-width: 248px;928  line-height: 1.5;929}930.peach-underline-input {931  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);932  padding: 6px 0; background: transparent; color: var(--peach-t0);933  outline: none;934  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;935  font-size: 13px;936  caret-color: var(--peach-accent);937}938.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }939.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }940.peach-hint {941  margin: 0;942  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;943  font-size: 10px; color: var(--peach-t2);944}945.peach-unlock-footer {946  margin-top: 4px; display: flex; align-items: center; gap: 7px;947  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;948  font-size: 10px; color: var(--peach-t2);949}950.peach-unlock-footer--lock {951  padding-top: 2px;952}953954/* Breach badge */955.peach-breach-badge {956  display: flex;957  position: relative;958  z-index: 1;959  align-items: center;960  gap: 7px;961  font-size: 9px;962  color: var(--peach-breach);963  padding: 5px 10px;964  margin-bottom: 4px;965  border-radius: 8px;966  background: rgba(220, 80, 60, 0.07);967  border: 1px solid rgba(220, 80, 60, 0.18);968  letter-spacing: 0.04em;969}970971.peach-breach-action {972  margin-left: auto;973  font-size: 10px;974  padding: 3px 8px;975}976977.peach-password-value.is-breached {978  color: rgba(220, 80, 60, 0.75);979  border-bottom: 1px solid rgba(220, 80, 60, 0.22);980}981982/* ── Overlay views ─────────────────────────────────────────────────── */983.peach-overlay-view {984  position: absolute;985  inset: 0;986  display: flex;987  flex-direction: column;988  background:989    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),990    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),991    var(--peach-bg);992  z-index: 2;993  overflow: hidden;994  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;995}996@keyframes overlay-in {997  from { opacity: 0; transform: translateY(8px); }998  to   { opacity: 1; transform: translateY(0); }999}1000.peach-overlay-view.ov-enter-up {1001  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1002}1003.peach-overlay-view.ov-exit-up {1004  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1005}1006.peach-overlay-view.ov-enter-right {1007  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1008}1009.peach-overlay-view.ov-exit-right {1010  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1011}10121013@keyframes ov-enter-up {1014  from { opacity: 0; transform: translateY(18px); }1015  to   { opacity: 1; transform: translateY(0); }1016}1017@keyframes ov-exit-up {1018  from { opacity: 1; transform: translateY(0); }1019  to   { opacity: 0; transform: translateY(-12px); }1020}1021@keyframes ov-enter-right {1022  from { opacity: 0; transform: translateX(20px); }1023  to   { opacity: 1; transform: translateX(0); }1024}1025@keyframes ov-exit-right {1026  from { opacity: 1; transform: translateX(0); }1027  to   { opacity: 0; transform: translateX(20px); }1028}10291030/* Overlay shared header */1031.peach-overlay-header {1032  padding: 10px 12px;1033  display: flex;1034  align-items: center;1035  gap: 8px;1036  border-bottom: 1px solid var(--peach-t3);1037  flex-shrink: 0;1038}1039.peach-overlay-title {1040  font-family: "IBM Plex Mono", monospace;1041  font-size: 9px;1042  text-transform: uppercase;1043  letter-spacing: 0.18em;1044  color: var(--peach-t2);1045  flex: 1;1046  text-align: center;1047}10481049.peach-overlay-card {1050  background: var(--peach-s1);1051  border: 1px solid var(--peach-t3);1052  border-radius: 12px;1053  overflow: hidden;1054  width: 100%;1055}10561057.peach-onboarding-alt-actions {1058  display: flex;1059  flex-direction: column;1060  gap: 4px;1061  padding: 0;1062}10631064.peach-settings-copy {1065  margin: 0 0 10px;1066  font-size: 11px;1067  line-height: 1.5;1068  color: var(--peach-t2);1069}10701071.peach-settings-copy strong {1072  color: var(--peach-t0);1073}10741075.peach-settings-copy--spacious {1076  margin-bottom: 12px;1077}10781079.peach-settings-copy--result {1080  color: var(--peach-accent);1081  font-size: 13px;1082  text-align: center;1083  padding: 8px 0;1084}10851086.peach-settings-copy--danger {1087  color: var(--peach-breach);1088}10891090.peach-settings-copy--success {1091  color: var(--peach-accent);1092}10931094.peach-inline-feedback {1095  font-size: 11px;1096  margin: 10px 0 0;1097}10981099.peach-inline-feedback--ok {1100  color: var(--peach-accent);1101}11021103.peach-inline-feedback--error {1104  color: var(--peach-breach);1105}11061107.peach-inline-feedback--muted {1108  color: var(--peach-t2);1109  font-size: 10px;1110  margin: 4px 0;1111}11121113.peach-inline-feedback--spaced {1114  margin-top: 12px;1115}11161117.peach-settings-actions--row {1118  display: flex;1119  gap: 6px;1120}11211122.peach-settings-actions--end {1123  margin-top: 14px;1124  justify-content: flex-end;1125}11261127.peach-settings-stack {1128  display: flex;1129  flex-direction: column;1130  gap: 6px;1131}11321133.peach-settings-stack--tight {1134  gap: 4px;1135}11361137.peach-settings-stack--spacious {1138  gap: 8px;1139}11401141.peach-settings-input {1142  width: 100%;1143  box-sizing: border-box;1144  padding: 8px 10px;1145  background: var(--peach-s2);1146  border: 1px solid var(--peach-t3);1147  border-radius: 6px;1148  color: var(--peach-t0);1149  font-family: var(--font-ui);1150  font-size: 12px;1151  outline: none;1152  transition: border-color 120ms ease;1153}11541155.peach-settings-input:focus {1156  border-color: var(--peach-accent);1157}11581159.peach-settings-input[type="password"] {1160  font-family: var(--font-mono);1161  letter-spacing: 0.04em;1162}11631164.peach-phrase-textarea {1165  width: 100%;1166  box-sizing: border-box;1167  min-height: 120px;1168  padding: 10px 12px;1169  background: var(--peach-s2);1170  border: 1px solid var(--peach-t3);1171  border-radius: 6px;1172  color: var(--peach-t0);1173  font-size: 12px;1174  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1175  line-height: 1.5;1176  resize: vertical;1177  outline: none;1178}11791180.peach-phrase-textarea:focus {1181  border-color: var(--peach-accent);1182}11831184.peach-hidden-file-input {1185  display: none;1186}11871188.peach-checkbox-note {1189  display: flex;1190  align-items: flex-start;1191  gap: 8px;1192  font-size: 11px;1193  color: var(--peach-t1);1194  cursor: pointer;1195  margin: 12px 0;1196}11971198.peach-checkbox-note input {1199  margin-top: 1px;1200}12011202.peach-cjk-phrase-box {1203  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1204  font-size: 13px;1205  line-height: 1.5;1206  background: var(--peach-s2);1207  border: 1px solid var(--peach-t3);1208  border-radius: 6px;1209  padding: 10px 12px;1210  margin: 0 0 10px;1211  word-break: break-all;1212  white-space: pre-wrap;1213  max-height: 220px;1214  overflow-y: auto;1215  color: var(--peach-t0);1216  user-select: all;1217  scrollbar-width: none;1218  -ms-overflow-style: none;1219}1220.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12211222.peach-danger-notice {1223  background: rgba(220, 80, 60, 0.08);1224  border: 1px solid rgba(220, 80, 60, 0.2);1225  border-radius: 6px;1226  padding: 9px 11px;1227  font-size: 11px;1228  color: var(--peach-t1);1229  line-height: 1.5;1230}12311232.peach-info-notice {1233  font-size: 11px;1234  color: var(--peach-t2);1235  line-height: 1.5;1236  background: rgba(240, 232, 216, 0.04);1237  border: 1px solid var(--peach-t3);1238  border-radius: 6px;1239  padding: 8px 10px;1240}12411242.peach-strength-row {1243  display: flex;1244  align-items: center;1245  gap: 8px;1246  margin-bottom: 10px;1247}12481249.peach-strength-track {1250  flex: 1;1251  height: 4px;1252  background: var(--peach-s2);1253  border-radius: 2px;1254  overflow: hidden;1255}12561257.peach-strength-fill {1258  height: 100%;1259  border-radius: 2px;1260  transition: width 120ms ease, background 120ms ease;1261}12621263/* ── Type selector tabs ── */1264.peach-type-tabs {1265  display: flex;1266  gap: 0;1267  background: var(--peach-t4);1268  border-radius: 8px;1269  padding: 3px;1270}12711272.peach-type-tab {1273  flex: 1;1274  display: flex;1275  align-items: center;1276  justify-content: center;1277  gap: 6px;1278  padding: 6px 10px;1279  border-radius: 6px;1280  border: none;1281  background: transparent;1282  cursor: pointer;1283  font-family: Inter, system-ui, sans-serif;1284  font-size: 11px;1285  font-weight: 400;1286  letter-spacing: 0.04em;1287  color: var(--peach-t1);1288  transition: background 150ms ease, color 150ms ease;1289}12901291.peach-type-tab.is-active {1292  background: var(--peach-s2);1293  color: var(--peach-t0);1294  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1295}12961297.peach-type-tab:not(.is-active):hover {1298  color: var(--peach-t0);1299}13001301.peach-type-tab svg {1302  opacity: 0.7;1303  flex-shrink: 0;1304}13051306.peach-type-tab.is-active svg {1307  opacity: 1;1308}13091310/* ── List view ───────────────────────────────────────────────────────── */1311.peach-list-top {1312  padding: 0 10px;1313  min-height: 46px;1314  display: flex;1315  align-items: center;1316  gap: 6px;1317  border-bottom: 1px solid var(--peach-t3);1318  flex-shrink: 0;1319  background: var(--peach-s1);1320}1321.peach-vault-list {1322  flex: 1;1323  overflow-y: auto;1324  scrollbar-width: none;1325}1326.peach-vault-list::-webkit-scrollbar { display: none; }13271328/* Scrollbar — vault list */1329.peach-vault-list {1330  scrollbar-width: thin;1331  scrollbar-color: var(--peach-t3) transparent;1332}13331334.peach-vault-list::-webkit-scrollbar {1335  width: 3px;1336}13371338.peach-vault-list::-webkit-scrollbar-thumb {1339  background: var(--peach-t3);1340  border-radius: 2px;1341}13421343.peach-entry-row {1344  width: 100%;1345  display: flex;1346  align-items: center;1347  gap: 10px;1348  padding: 9px 16px;1349  background: transparent;1350  border: none;1351  border-bottom: 1px solid var(--peach-t3);1352  cursor: pointer;1353  color: inherit;1354  text-align: left;1355  transition: background 80ms ease;1356}1357.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1358.peach-entry-row:last-child { border-bottom: none; }1359.peach-entry-row.is-active {1360  box-shadow: inset 2px 0 0 var(--peach-accent);1361  background: rgba(240,232,216,0.03);1362}1363.peach-entry-row:focus-visible {1364  outline: none;1365  box-shadow: 0 0 0 1px var(--peach-border-accent);1366  background: rgba(240,232,216,0.03);1367}1368.peach-entry-row-icon {1369  width: 26px; height: 26px;1370  border-radius: 7px;1371  border: 1px solid var(--peach-t3);1372  display: flex; align-items: center; justify-content: center;1373  color: var(--peach-t2);1374  flex-shrink: 0;1375}1376.peach-entry-row-icon.is-breach {1377  border-color: rgba(220,80,60,0.3);1378  color: rgba(220,80,60,0.7);1379}1380.peach-entry-row-info { flex: 1; min-width: 0; }1381.peach-entry-row-name {1382  display: block;1383  font-family: "Cormorant Garamond", serif;1384  font-size: 17px;1385  font-style: italic;1386  font-weight: 400;1387  color: var(--peach-t0);1388  line-height: 1.2;1389  white-space: nowrap;1390  overflow: hidden;1391  text-overflow: ellipsis;1392}1393.peach-entry-row-meta {1394  display: block;1395  font-family: "IBM Plex Mono", monospace;1396  font-size: 9px;1397  color: var(--peach-t2);1398  margin-top: 1px;1399  letter-spacing: 0.05em;1400}1401.peach-entry-row-dot {1402  width: 5px; height: 5px;1403  border-radius: 50%;1404  background: rgba(220,80,60,0.7);1405  flex-shrink: 0;1406}1407.peach-new-entry-row {1408  display: flex;1409  align-items: center;1410  justify-content: center;1411  gap: 6px;1412  width: 100%;1413  padding: 11px;1414  background: transparent;1415  border: none;1416  border-top: 1px solid var(--peach-t3);1417  color: var(--peach-t2);1418  font-family: "IBM Plex Mono", monospace;1419  font-size: 9px;1420  text-transform: uppercase;1421  letter-spacing: 0.14em;1422  cursor: pointer;1423  flex-shrink: 0;1424  transition: color 120ms ease, background 120ms ease;1425}1426.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14271428/* ── Multi-select mode ─────────────────────────────────────────────── */14291430/* Select-mode trigger button in sort bar — same shape as trash btn */1431.peach-sort-select-btn {1432  display: flex;1433  align-items: center;1434  justify-content: center;1435  padding: 3px 5px;1436  background: transparent;1437  border: none;1438  cursor: pointer;1439  color: var(--peach-t2);1440  border-radius: 4px;1441  transition: color 140ms ease, background 140ms ease;1442}1443.peach-sort-select-btn:hover {1444  color: var(--peach-t1);1445  background: var(--peach-t3);1446}14471448/* Sort bar in select mode */1449.peach-select-cancel-btn {1450  background: transparent;1451  border: none;1452  padding: 0 4px;1453  cursor: pointer;1454  font-family: "IBM Plex Mono", monospace;1455  font-size: 9px;1456  letter-spacing: 0.12em;1457  text-transform: uppercase;1458  color: var(--peach-t2);1459  transition: color 140ms ease;1460  flex-shrink: 0;1461}1462.peach-select-cancel-btn:hover { color: var(--peach-t0); }14631464.peach-select-count-label {1465  flex: 1;1466  text-align: center;1467  font-family: "IBM Plex Mono", monospace;1468  font-size: 9px;1469  letter-spacing: 0.14em;1470  text-transform: uppercase;1471  color: var(--peach-t1);1472}14731474.peach-select-all-btn {1475  background: transparent;1476  border: none;1477  padding: 0 4px;1478  cursor: pointer;1479  font-family: "IBM Plex Mono", monospace;1480  font-size: 9px;1481  letter-spacing: 0.12em;1482  text-transform: uppercase;1483  color: var(--peach-t2);1484  transition: color 140ms ease;1485  flex-shrink: 0;1486}1487.peach-select-all-btn:hover { color: var(--peach-accent); }14881489/* List in select mode */1490.peach-vault-list.is-selecting .peach-entry-row {1491  cursor: default;1492}1493.peach-vault-list.is-selecting .peach-entry-row:hover {1494  background: rgba(240,232,216,0.02);1495}1496.peach-vault-list.is-selecting .peach-entry-row.is-selected {1497  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1498}1499.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1500  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1501}15021503/* Select indicator circles in icon slot */1504.peach-entry-row-icon.is-select-icon {1505  color: var(--peach-t2);1506}1507.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1508  color: var(--peach-accent);1509}15101511/* Delete action bar at bottom (replaces new-entry row) */1512.peach-select-action-bar {1513  display: flex;1514  align-items: center;1515  justify-content: center;1516  gap: 7px;1517  width: 100%;1518  padding: 11px;1519  background: transparent;1520  border: none;1521  border-top: 1px solid var(--peach-t3);1522  color: var(--peach-t1);1523  font-family: "IBM Plex Mono", monospace;1524  font-size: 9px;1525  text-transform: uppercase;1526  letter-spacing: 0.14em;1527  cursor: pointer;1528  flex-shrink: 0;1529  transition: color 120ms ease, background 120ms ease;1530}1531.peach-select-action-bar:not(:disabled):hover {1532  color: var(--peach-t0);1533  background: rgba(220,80,60,0.06);1534}1535.peach-select-action-bar:not(:disabled):hover svg {1536  stroke: rgba(220,80,60,0.8);1537}1538.peach-select-action-bar:disabled,1539.peach-select-action-bar.is-empty {1540  color: var(--peach-t2);1541  cursor: default;1542  opacity: 0.5;1543}1544.peach-search-counter-list {1545  white-space: nowrap;1546  flex-shrink: 0;1547}1548.peach-list-empty {1549  min-height: 180px;1550  display: grid;1551  place-items: center;1552  color: var(--peach-t2);1553  font-family: "IBM Plex Mono", monospace;1554  font-size: 11px;1555}15561557/* ── Settings view ───────────────────────────────────────────────────── */1558.peach-settings-body {1559  flex: 1;1560  overflow-y: auto;1561  min-height: 0;1562  display: flex;1563  flex-direction: column;1564  padding: 2px 0 10px;1565}1566.peach-settings-group {1567  padding: 9px 16px 11px;1568  border-bottom: 1px solid var(--peach-t3);1569}1570.peach-export-intro {1571  padding-bottom: 8px;1572}1573.peach-export-card {1574  display: grid;1575  gap: 10px;1576}1577.peach-export-card--primary {1578  background:1579    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1580}1581.peach-export-card-head {1582  display: flex;1583  align-items: center;1584  justify-content: space-between;1585  gap: 10px;1586}1587.peach-export-card-copy {1588  margin: 0;1589  font-size: 12px;1590  line-height: 1.55;1591  color: var(--peach-t1);1592}1593.peach-export-note {1594  margin: 0;1595  font-size: 10px;1596  line-height: 1.5;1597  color: var(--peach-t2);1598}1599.peach-export-pill {1600  display: inline-flex;1601  align-items: center;1602  padding: 4px 8px;1603  border-radius: 999px;1604  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1605  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1606  color: var(--peach-accent);1607  font-family: "IBM Plex Mono", monospace;1608  font-size: 8px;1609  letter-spacing: 0.12em;1610  text-transform: uppercase;1611  white-space: nowrap;1612}1613.peach-export-pill--danger {1614  border-color: rgba(220,80,60,0.22);1615  background: rgba(220,80,60,0.08);1616  color: var(--peach-breach);1617}1618.peach-export-password-stack {1619  gap: 8px;1620}1621.peach-settings-label {1622  margin: 0 0 6px;1623  font-family: "IBM Plex Mono", monospace;1624  font-size: 8px;1625  text-transform: uppercase;1626  letter-spacing: 0.18em;1627  color: var(--peach-t2);1628}1629.peach-settings-row {1630  display: flex;1631  align-items: center;1632  justify-content: space-between;1633  gap: 12px;1634  min-height: 34px;1635  padding: 6px 0;1636  font-size: 13px;1637  color: var(--peach-t1);1638}1639.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1640.peach-settings-value {1641  font-family: "IBM Plex Mono", monospace;1642  font-size: 10px;1643  color: var(--peach-t2);1644}16451646.peach-settings-value--status {1647  display: flex;1648  align-items: center;1649  gap: 6px;1650}16511652.peach-settings-link {1653  font-family: "IBM Plex Mono", monospace;1654  font-size: 10px;1655  color: var(--peach-accent);1656  text-decoration: none;1657  cursor: pointer;1658}1659.peach-settings-link:hover {1660  text-decoration: underline;1661}16621663.peach-settings-row--stack {1664  flex-direction: column;1665  align-items: stretch;1666  gap: 6px;1667}16681669.peach-settings-row--top {1670  align-items: flex-start;1671}16721673.peach-settings-row-main {1674  display: flex;1675  flex-direction: column;1676  gap: 4px;1677  flex: 1;1678}1679.peach-toggle {1680  width: 28px; height: 16px;1681  border-radius: 999px;1682  background: var(--peach-t3);1683  border: 1px solid var(--peach-t3);1684  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1685  flex-shrink: 0;1686  transition: background 200ms ease, border-color 200ms ease;1687  cursor: pointer;1688}1689.peach-toggle.is-on {1690  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1691  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1692}1693.peach-toggle-knob {1694  width: 10px; height: 10px;1695  border-radius: 50%;1696  background: var(--peach-t2);1697  flex-shrink: 0;1698  transform: translateX(0px);1699  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1700}1701.peach-toggle.is-on .peach-toggle-knob {1702  background: var(--peach-accent);1703  transform: translateX(12px);1704}1705.peach-settings-footer {1706  display: flex;1707  align-items: center;1708  gap: 8px;1709  margin-top: auto;1710  padding: 14px 16px 8px;1711  font-family: "IBM Plex Mono", monospace;1712  font-size: 9px;1713  color: var(--peach-t2);1714}17151716/* ── Settings home navigation ──────────────────────────────────────────── */1717.peach-settings-nav-label {1718  margin: 0 0 2px;1719  padding: 12px 16px 4px;1720  font-family: "IBM Plex Mono", monospace;1721  font-size: 8px;1722  text-transform: uppercase;1723  letter-spacing: 0.18em;1724  color: var(--peach-t2);1725}17261727.peach-settings-cat-row {1728  display: flex;1729  align-items: center;1730  gap: 10px;1731  width: 100%;1732  padding: 9px 16px;1733  background: none;1734  border: none;1735  border-bottom: 1px solid var(--peach-t3);1736  cursor: pointer;1737  text-align: left;1738  color: inherit;1739  transition: background var(--peach-dur-80) ease;1740}1741.peach-settings-cat-row:hover {1742  background: var(--peach-t3);1743}1744.peach-settings-cat-row:last-child {1745  border-bottom: none;1746}17471748.peach-settings-cat-icon {1749  width: 28px;1750  height: 28px;1751  border-radius: 7px;1752  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1753  color: var(--peach-accent);1754  display: flex;1755  align-items: center;1756  justify-content: center;1757  flex-shrink: 0;1758}17591760.peach-settings-cat-content {1761  flex: 1;1762  display: flex;1763  flex-direction: column;1764  gap: 2px;1765  min-width: 0;1766}17671768.peach-settings-cat-name {1769  font-size: 13px;1770  font-weight: 450;1771  color: var(--peach-t0);1772  line-height: 1.2;1773}17741775.peach-settings-cat-desc {1776  font-size: 10px;1777  color: var(--peach-t2);1778  line-height: 1.3;1779  white-space: nowrap;1780  overflow: hidden;1781  text-overflow: ellipsis;1782}17831784.peach-settings-cat-chevron {1785  color: var(--peach-t2);1786  flex-shrink: 0;1787  opacity: 0.5;1788}17891790/* ── Settings sub-view section labels ──────────────────────────────────── */1791.peach-settings-sub-label {1792  margin: 12px 0 4px;1793  font-family: "IBM Plex Mono", monospace;1794  font-size: 8px;1795  text-transform: uppercase;1796  letter-spacing: 0.18em;1797  color: var(--peach-t2);1798}1799.peach-settings-sub-label:first-child {1800  margin-top: 4px;1801}18021803/* ── Feedback form ──────────────────────────────────────────────────────── */1804.peach-feedback-group {1805  flex: 1;1806  display: flex;1807  flex-direction: column;1808  border-bottom: none;1809}18101811.peach-feedback-intro {1812  margin: 4px 0 14px;1813  font-size: 12px;1814  line-height: 1.55;1815  color: var(--peach-t1);1816}18171818.peach-feedback-chips {1819  display: flex;1820  flex-wrap: wrap;1821  gap: 6px;1822  margin-bottom: 14px;1823}18241825.peach-feedback-chip {1826  padding: 4px 10px;1827  border-radius: 999px;1828  border: 1px solid var(--peach-t3);1829  background: none;1830  color: var(--peach-t2);1831  font-size: 11px;1832  font-family: var(--font-ui);1833  cursor: pointer;1834  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1835    background var(--peach-dur-80) ease;1836}1837.peach-feedback-chip:hover {1838  border-color: var(--peach-t2);1839  color: var(--peach-t1);1840}1841.peach-feedback-chip.is-active {1842  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1843  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1844  color: var(--peach-accent);1845}18461847.peach-feedback-textarea {1848  flex: 1;1849  width: 100%;1850  min-height: 120px;1851  box-sizing: border-box;1852  background: var(--peach-t3);1853  border: 1px solid var(--peach-t3);1854  border-radius: 6px;1855  color: var(--peach-t0);1856  font-size: 12px;1857  font-family: var(--font-ui);1858  line-height: 1.5;1859  padding: 8px 10px;1860  resize: none;1861  outline: none;1862  transition: border-color var(--peach-dur-150) ease;1863}1864.peach-feedback-textarea:focus {1865  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1866}1867.peach-feedback-textarea::placeholder {1868  color: var(--peach-t2);1869}18701871.peach-feedback-meta {1872  margin: 6px 0 0;1873  font-size: 10px;1874  color: var(--peach-t2);1875  font-family: "IBM Plex Mono", monospace;1876}18771878.peach-feedback-result {1879  margin: 8px 0 0;1880  font-size: 11px;1881  font-family: "IBM Plex Mono", monospace;1882}1883.peach-feedback-result--ok { color: var(--peach-sync-ok); }1884.peach-feedback-result--err { color: var(--peach-breach); }18851886.peach-feedback-submit {1887  width: 100%;1888  margin-top: 12px;1889  justify-content: center;1890}18911892.peach-feedback-anon {1893  margin: 8px 0 0;1894  font-size: 10px;1895  color: var(--peach-t2);1896  text-align: center;1897}18981899.peach-passkey-badge {1900  margin-left: 8px;1901  font-size: 10px;1902  letter-spacing: 0.06em;1903  text-transform: uppercase;1904  color: var(--peach-t2);1905  font-family: var(--font-ui);1906  vertical-align: middle;1907}19081909.peach-passkey-delete-btn {1910  color: var(--peach-breach);1911  border-color: rgba(229, 85, 85, 0.25);1912}19131914.peach-passkey-delete-confirm {1915  display: flex;1916  align-items: center;1917  gap: 8px;1918  padding: 8px 10px;1919  background: rgba(229, 85, 85, 0.06);1920  border: 1px solid rgba(229, 85, 85, 0.2);1921  border-radius: 6px;1922}19231924.peach-passkey-delete-confirm-copy {1925  flex: 1;1926  font-size: 11px;1927  color: var(--peach-t1);1928}19291930.peach-passkey-delete-btn--confirm {1931  color: var(--peach-breach);1932  border-color: rgba(229, 85, 85, 0.4);1933}19341935.peach-passkey-activity {1936  flex-direction: column;1937  align-items: flex-start;1938  gap: 4px;1939}19401941.peach-passkey-meta {1942  font-size: 11px;1943  color: var(--peach-t2);1944}19451946.peach-passkey-actions {1947  position: relative;1948  z-index: 1;1949  margin-top: 14px;1950  display: flex;1951  flex-direction: column;1952  gap: 8px;1953}19541955.peach-passkey-approval {1956  display: flex;1957  flex-direction: column;1958  align-items: center;1959  padding: 28px 22px 22px;1960  gap: 14px;1961  text-align: center;1962}19631964.peach-passkey-approval-icon {1965  width: 46px;1966  height: 46px;1967  border-radius: 12px;1968  background: var(--peach-s2);1969  border: 1px solid var(--peach-t3);1970  display: flex;1971  align-items: center;1972  justify-content: center;1973  flex-shrink: 0;1974  color: var(--peach-accent);1975}19761977.peach-passkey-approval-icon img,1978.peach-passkey-approval-icon svg {1979  width: 28px;1980  height: 28px;1981  border-radius: 6px;1982}19831984.peach-passkey-approval-rp {1985  font-family: var(--font-ui);1986  font-size: 12px;1987  color: var(--peach-t2);1988  letter-spacing: 0.03em;1989}19901991.peach-passkey-approval-action {1992  font-family: var(--font-display);1993  font-style: italic;1994  font-weight: 300;1995  font-size: 26px;1996  color: var(--peach-t0);1997  line-height: 1;1998}19992000.peach-passkey-approval-user {2001  font-family: var(--font-mono);2002  font-size: 11px;2003  color: var(--peach-t1);2004  background: var(--peach-s2);2005  border: 1px solid var(--peach-t3);2006  border-radius: 4px;2007  padding: 3px 8px;2008}20092010.peach-passkey-approval-notice {2011  font-size: 10px;2012  color: var(--peach-t2);2013  line-height: 1.5;2014  max-width: 220px;2015}20162017.peach-passkey-approval-actions {2018  display: flex;2019  gap: 8px;2020  width: 100%;2021  margin-top: 6px;2022}20232024.peach-passkey-approval-actions .peach-btn {2025  flex: 1;2026}20272028/* ── Inline generator drawer ── */2029.peach-generator-drawer {2030  display: grid;2031  grid-template-rows: 0fr;2032  transition: grid-template-rows 320ms var(--peach-curve-arrival);2033  overflow: hidden;2034}2035.peach-generator-drawer.is-open {2036  grid-template-rows: 1fr;2037}2038.peach-generator-drawer-inner {2039  min-height: 0;2040  overflow: hidden;2041}2042.peach-generator-drawer-content {2043  border-top: 1px solid var(--peach-t3);2044  padding: 8px 0 4px;2045  display: flex;2046  flex-direction: column;2047  gap: 8px;2048}20492050/* ── Compact generator (inside entry edit) ── */2051.peach-generator-drawer-content--compact {2052  border-top: 1px solid var(--peach-t3);2053  padding: 8px 0 2px;2054  gap: 7px;2055}2056.peach-pwgen-compact-display-row {2057  display: flex;2058  align-items: center;2059  gap: 6px;2060}2061.peach-pwgen-compact-output {2062  flex: 1;2063  min-width: 0;2064  font-family: "IBM Plex Mono", monospace;2065  font-size: 11px;2066  font-weight: 400;2067  letter-spacing: 0.04em;2068  color: var(--peach-t0);2069  background: rgba(240, 232, 216, 0.04);2070  border: 1px solid var(--peach-t3);2071  border-radius: 5px;2072  padding: 5px 8px;2073  word-break: break-all;2074  line-height: 1.5;2075}2076.peach-pwgen-compact-controls {2077  display: flex;2078  align-items: center;2079  gap: 6px;2080}2081.peach-pwgen-compact-slider {2082  flex: 1;2083  min-width: 0;2084  height: 2px !important;2085}2086.peach-pwgen-compact-controls .peach-pwgen-len-num {2087  flex-shrink: 0;2088  min-width: 18px;2089  text-align: right;2090}2091.peach-pwgen-compact-pills {2092  display: flex;2093  gap: 3px;2094  flex-shrink: 0;2095}2096.peach-pwgen-compact-pills .peach-pwgen-pill {2097  padding: 2px 7px;2098  font-size: 8px;2099}2100.peach-pwgen-compact-use {2101  flex-shrink: 0;2102  font-size: 10px !important;2103  padding: 3px 9px !important;2104  min-height: 22px !important;2105  border-radius: 5px !important;2106}21072108/* ── Password edit row (input + eye toggle side-by-side) ── */2109.peach-password-edit-row {2110  display: flex;2111  align-items: center;2112  gap: 6px;2113}2114.peach-password-edit-row .peach-inline-input {2115  flex: 1;2116  min-width: 0;2117}21182119/* ── Generate toggle link ── */2120.peach-generate-toggle-link {2121  display: inline-flex;2122  align-items: center;2123  gap: 5px;2124  background: none;2125  border: none;2126  padding: 0;2127  cursor: pointer;2128  font-family: "IBM Plex Mono", monospace;2129  font-size: 10px;2130  color: var(--peach-t2);2131  letter-spacing: 0.04em;2132  transition: color 120ms ease;2133  align-self: flex-start;2134}2135.peach-generate-toggle-link:hover {2136  color: var(--peach-accent);2137}21382139/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2140.peach-entry-body {2141  flex: 1;2142  overflow-y: auto;2143  overflow-x: hidden;2144  scrollbar-width: none;2145  -ms-overflow-style: none;2146  overscroll-behavior: contain;2147  display: grid;2148  gap: 10px;2149  align-content: start;2150  padding: 10px 20px 14px;2151  min-width: 0;2152  min-height: 0;2153}2154.peach-entry-body::-webkit-scrollbar { display: none; }21552156/* Type-toggle pills + inline note toolbar */2157.peach-new-type-row {2158  display: flex;2159  align-items: center;2160  gap: 6px;2161  margin-bottom: 2px;2162}2163.peach-new-type-btn {2164  background: transparent;2165  border: 1px solid var(--peach-t3);2166  border-radius: 12px;2167  padding: 3px 10px;2168  font-family: "IBM Plex Mono", monospace;2169  font-size: 9px;2170  letter-spacing: 0.12em;2171  text-transform: uppercase;2172  color: var(--peach-t2);2173  cursor: pointer;2174  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2175}2176.peach-new-type-btn.is-active {2177  color: var(--peach-t0);2178  border-color: var(--peach-accent);2179  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2180}2181.peach-new-type-btn:not(.is-active):hover {2182  color: var(--peach-t1);2183  border-color: var(--peach-t2);2184}21852186/* Editable title */2187.peach-new-title-wrap { margin: 0 0 2px; }2188.peach-new-title-input {2189  background: transparent;2190  border: none;2191  outline: none;2192  width: 100%;2193  color: var(--peach-t0);2194  font-family: "Cormorant Garamond", Georgia, serif;2195  font-style: italic;2196  font-weight: 400;2197  font-size: 40px;2198  line-height: 0.95;2199  caret-color: var(--peach-accent);2200}2201.peach-new-title-input::placeholder { color: var(--peach-t2); }22022203/* Editable domain field */2204.peach-domain-value--edit {2205  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2206  font-size: 10px;2207  font-style: italic;2208  letter-spacing: 0.12em;2209  color: var(--peach-t1);2210  background: transparent;2211  border: none;2212  border-bottom: 1px solid var(--peach-t3);2213  outline: none;2214  width: 100%;2215  padding: 2px 0;2216  caret-color: var(--peach-accent);2217  transition: border-color 140ms ease, color 140ms ease;2218}2219.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2220.peach-domain-value--edit:focus {2221  border-bottom-color: rgba(240, 232, 216, 0.28);2222  color: var(--peach-t0);2223}22242225/* Editable field values (username, password, totp) */2226.peach-field-value--edit {2227  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2228  font-size: 13px;2229  color: var(--peach-t0);2230  background: transparent;2231  border: none;2232  border-bottom: 1px solid var(--peach-t3);2233  outline: none;2234  flex: 1;2235  min-width: 0;2236  padding: 3px 0;2237  caret-color: var(--peach-accent);2238  transition: border-color 140ms ease, color 140ms ease;2239}2240.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2241.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2242.peach-field-value--edit:focus {2243  border-bottom-color: rgba(240, 232, 216, 0.28);2244  color: var(--peach-t0);2245}22462247/* "+ add optional field" links */2248.peach-entry-add-links {2249  display: flex;2250  gap: 12px;2251  flex-wrap: wrap;2252  margin-top: -2px;2253}2254.peach-add-field-link {2255  background: transparent;2256  border: none;2257  padding: 0;2258  cursor: pointer;2259  font-family: "IBM Plex Mono", monospace;2260  font-size: 9px;2261  letter-spacing: 0.1em;2262  text-transform: uppercase;2263  color: var(--peach-t2);2264  transition: color 140ms ease;2265}2266.peach-add-field-link:hover { color: var(--peach-accent); }22672268/* ── New entry form (legacy classes) ────────────────────────────────── */2269.peach-new-body {2270  flex: 1;2271  overflow-y: auto;2272  padding: 10px 20px 14px;2273}2274.peach-new-name-input {2275  background: transparent;2276  border: none;2277  outline: none;2278  width: 100%;2279  color: var(--peach-t0);2280  font-family: "Cormorant Garamond", Georgia, serif;2281  font-style: italic;2282  font-weight: 400;2283  font-size: 40px;2284  line-height: 0.95;2285  caret-color: var(--peach-accent);2286}2287.peach-new-name-input::placeholder { color: var(--peach-t2); }2288.peach-new-field-input {2289  background: transparent;2290  border: none;2291  outline: none;2292  flex: 1;2293  min-width: 0;2294  caret-color: var(--peach-accent);2295}2296.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }22972298/* ── Canary card ── */2299.peach-canary-card {2300  border: 1px solid rgba(217, 160, 48, 0.2);2301  background: rgba(217, 160, 48, 0.03);2302  border-radius: 8px;2303  padding: 12px;2304}23052306.peach-canary-settings-header {2307  display: flex;2308  align-items: center;2309  justify-content: space-between;2310  cursor: pointer;2311  user-select: none;2312}23132314.peach-canary-card .peach-label {2315  color: rgba(217, 160, 48, 0.85);2316}23172318.peach-canary-card .peach-new-field-input {2319  border-color: rgba(217, 160, 48, 0.25);2320}23212322.peach-canary-card .peach-new-field-input:focus {2323  border-color: rgba(217, 160, 48, 0.5);2324}23252326.peach-canary-body {2327  margin-top: 12px;2328  display: flex;2329  flex-direction: column;2330  gap: 10px;2331}23322333.peach-canary-explainer {2334  display: flex;2335  gap: 10px;2336  padding: 10px 12px;2337  border-radius: 10px;2338  background: rgba(217, 160, 48, 0.06);2339  border: 1px solid rgba(217, 160, 48, 0.22);2340  margin-bottom: 4px;2341}23422343.peach-canary-explainer-icon {2344  font-size: 16px;2345  flex-shrink: 0;2346  line-height: 1.2;2347}23482349.peach-canary-explainer-title {2350  font-family: var(--font-ui);2351  font-size: 11px;2352  font-weight: 500;2353  color: rgba(217, 160, 48, 0.9);2354  margin: 0 0 3px;2355}23562357.peach-canary-explainer-copy {2358  font-family: var(--font-ui);2359  font-size: 10px;2360  color: var(--peach-t2);2361  line-height: 1.55;2362  margin: 0;2363}23642365.peach-canary-hint {2366  font-size: 10px;2367  color: var(--peach-t2);2368  font-family: Inter, system-ui, sans-serif;2369  line-height: 1.5;2370  margin-top: 4px;2371}23722373.peach-canary-actions-row {2374  display: flex;2375  align-items: center;2376  gap: 8px;2377}23782379.peach-canary-test-btn {2380  border-color: rgba(217, 160, 48, 0.3);2381  color: rgba(217, 160, 48, 0.85);2382}23832384.peach-canary-test-result {2385  font-size: 10px;2386  font-family: Inter, system-ui, sans-serif;2387}23882389.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2390.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }23912392.peach-canary-badge {2393  display: flex;2394  position: relative;2395  z-index: 1;2396  align-items: center;2397  gap: 5px;2398  padding: 4px 10px;2399  background: rgba(217, 160, 48, 0.12);2400  border: 1px solid rgba(217, 160, 48, 0.35);2401  border-radius: 6px;2402  margin-bottom: 6px;2403  width: fit-content;2404}24052406.peach-canary-badge-label {2407  font-size: 10px;2408  letter-spacing: 0.06em;2409  color: rgba(217, 160, 48, 0.9);2410  font-family: var(--font-ui);2411  text-transform: uppercase;2412}24132414.peach-canary-badge-icon {2415  font-size: 11px;2416}24172418.peach-canary-suppress-row {2419  display: flex;2420  align-items: center;2421  gap: 8px;2422  padding: 6px 10px;2423  background: rgba(217, 160, 48, 0.08);2424  border-radius: 6px;2425  margin-bottom: 8px;2426}24272428.peach-canary-suppress-label {2429  font-size: 11px;2430  color: rgba(217, 160, 48, 0.85);2431  cursor: pointer;2432  font-family: var(--font-ui);2433  letter-spacing: 0.04em;2434}24352436.peach-regen-panel {2437  position: relative;2438  z-index: 1;2439  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2440  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2441  border-radius: 8px;2442  padding: 12px;2443  margin-bottom: 8px;2444}24452446.peach-regen-panel-header {2447  display: flex;2448  align-items: center;2449  justify-content: space-between;2450  margin-bottom: 10px;2451}24522453.peach-regen-panel-title {2454  font-size: 11px;2455  font-weight: 600;2456  letter-spacing: 0.06em;2457  text-transform: uppercase;2458  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2459}24602461.peach-regen-output {2462  background: rgba(0, 0, 0, 0.2);2463  border-radius: 6px;2464  padding: 10px;2465  margin-bottom: 10px;2466  font-family: var(--font-mono);2467  font-size: 13px;2468  word-break: break-all;2469  color: var(--peach-t1);2470}24712472.peach-regen-actions {2473  display: flex;2474  gap: 6px;2475}24762477.peach-regen-actions--spaced {2478  margin-bottom: 8px;2479}24802481.peach-regen-action-grow {2482  flex: 1;2483}24842485.peach-regen-copy-btn {2486  padding: 0 8px;2487}24882489.peach-regen-success {2490  position: relative;2491  z-index: 1;2492  background: rgba(40, 180, 80, 0.1);2493  border: 1px solid rgba(40, 180, 80, 0.3);2494  border-radius: 8px;2495  padding: 10px 12px;2496  margin-bottom: 8px;2497  display: flex;2498  align-items: center;2499  gap: 8px;2500  font-size: 11px;2501  color: rgba(40, 180, 80, 0.9);2502}25032504/* ── Note editor overlay ── */2505.peach-note-editor {2506  position: absolute;2507  inset: 0;2508  z-index: 200;2509  display: flex;2510  flex-direction: column;2511  background:2512    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2513    var(--peach-bg);2514  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2515}25162517.peach-note-editor-header {2518  display: flex;2519  align-items: center;2520  gap: 10px;2521  padding: 14px 16px 10px;2522  border-bottom: 1px solid var(--peach-t3);2523  flex-shrink: 0;2524}25252526.peach-note-editor-back {2527  background: transparent;2528  border: none;2529  cursor: pointer;2530  color: var(--peach-t2);2531  padding: 4px 6px;2532  border-radius: 6px;2533  display: flex;2534  align-items: center;2535  transition: color 120ms ease, background 120ms ease;2536  flex-shrink: 0;2537}2538.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }25392540.peach-note-editor-label {2541  flex: 1;2542  font-family: "Cormorant Garamond", "Times New Roman", serif;2543  font-style: italic;2544  font-size: 15px;2545  color: var(--peach-t1);2546  letter-spacing: 0.02em;2547}25482549.peach-note-editor-save-btn {2550  background: transparent;2551  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2552  border-radius: 8px;2553  color: var(--peach-accent);2554  font-family: "IBM Plex Mono", monospace;2555  font-size: 10px;2556  letter-spacing: 0.06em;2557  text-transform: uppercase;2558  padding: 3px 10px;2559  cursor: pointer;2560  transition: background 120ms ease, border-color 120ms ease;2561}2562.peach-note-editor-save-btn:hover:not(:disabled) {2563  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2564  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2565}2566.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }25672568.peach-note-toolbar {2569  display: flex;2570  align-items: center;2571  gap: 3px;2572  padding: 6px 14px 5px;2573  border-bottom: 1px solid var(--peach-t3);2574  flex-shrink: 0;2575}25762577.peach-note-tool-btn {2578  background: transparent;2579  border: 1px solid transparent;2580  border-radius: 5px;2581  color: var(--peach-t2);2582  font-family: "IBM Plex Mono", monospace;2583  font-size: 10px;2584  letter-spacing: 0.04em;2585  padding: 2px 8px;2586  cursor: pointer;2587  line-height: 1.6;2588  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2589}2590.peach-note-tool-btn:hover {2591  background: var(--peach-t4);2592  color: var(--peach-t0);2593  border-color: var(--peach-t3);2594}25952596.peach-note-tool-icon {2597  padding: 3px 7px;2598  display: inline-flex;2599  align-items: center;2600  justify-content: center;2601}26022603.peach-note-tool-divider {2604  width: 1px;2605  height: 14px;2606  background: var(--peach-t3);2607  margin: 0 4px;2608  flex-shrink: 0;2609}26102611.peach-note-editor-body {2612  flex: 1;2613  overflow-y: auto;2614  padding: 16px 20px 20px;2615  outline: none;2616  font-family: "Cormorant Garamond", "Times New Roman", serif;2617  font-size: 16px;2618  line-height: 1.75;2619  color: var(--peach-t0);2620  scrollbar-width: none;2621  word-break: break-word;2622}2623.peach-note-editor-body:empty::before {2624  content: "write your note…";2625  color: var(--peach-t3);2626  font-style: italic;2627  pointer-events: none;2628}26292630/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2631.peach-note-editor-inline {2632  display: flex;2633  flex-direction: column;2634  flex: 1;2635  min-height: 0;2636}2637.peach-note-editor-body--inline {2638  flex: 1;2639  min-height: 0;2640  font-size: 15px;2641  padding: 10px 20px 14px;2642}26432644/* Full-width toolbar row inside the body (Add.tsx note type).2645   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2646.peach-note-toolbar-body {2647  display: flex;2648  align-items: center;2649  gap: 3px;2650  padding: 5px 20px 4px;2651  margin: 2px -20px 0;2652  border-bottom: 1px solid var(--peach-t3);2653  flex-shrink: 0;2654}26552656/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2657   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2658   and .peach-note-tool-divider button-level styles. */2659.peach-note-toolbar-inline {2660  display: flex;2661  align-items: center;2662  gap: 3px;2663  margin-left: auto;2664  padding-left: 10px;2665  border-left: 1px solid var(--peach-t3);2666  min-height: 22px;2667}26682669/* Entry.tsx toolbar row (no tabs, toolbar only) */2670.peach-entry-note-toolbar-row {2671  display: flex;2672  align-items: center;2673  margin: 4px 0 6px;2674  position: relative;2675  z-index: 1;2676}2677.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2678  border-left: none;2679  padding-left: 0;2680  margin-left: 0;2681}26822683/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2684.peach-note-body {2685  display: flex;2686  flex-direction: column;2687  flex: 1;2688  min-height: 0;2689  margin: 4px 0 0;2690}2691.peach-entry-body--new .peach-note-body {2692  margin: 8px -20px 0;2693}26942695/* Add.tsx body is a grid by default; swap to a flex column when a note is2696   active so the note body can stretch and pin the tags row to the bottom. */2697.peach-entry-body--new:has(.peach-note-body) {2698  display: flex;2699  flex-direction: column;2700}27012702/* Rich content element styles (editor + display) */2703.peach-note-editor-body h2,2704.peach-note-content h2 {2705  font-family: "Cormorant Garamond", serif;2706  font-size: 20px;2707  font-weight: 600;2708  font-style: italic;2709  color: var(--peach-t0);2710  margin: 6px 0 2px;2711  line-height: 1.3;2712}2713.peach-note-editor-body ul,2714.peach-note-content ul {2715  padding-left: 18px;2716  margin: 3px 0;2717  list-style: disc;2718}2719.peach-note-editor-body ol,2720.peach-note-content ol {2721  padding-left: 18px;2722  margin: 3px 0;2723  list-style: decimal;2724}2725.peach-note-editor-body li,2726.peach-note-content li { margin: 2px 0; }2727.peach-note-editor-body hr,2728.peach-note-content hr {2729  border: none;2730  border-top: 1px solid var(--peach-t3);2731  margin: 10px 0;2732}27332734/* font size elements from execCommand */2735.peach-note-editor-body font[size="1"],2736.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2737.peach-note-editor-body font[size="2"],2738.peach-note-content font[size="2"] { font-size: 13px; }2739.peach-note-editor-body font[size="3"],2740.peach-note-content font[size="3"] { font-size: 16px; }2741.peach-note-editor-body font[size="4"],2742.peach-note-content font[size="4"] { font-size: 20px; }2743.peach-note-editor-body font[size="5"],2744.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }27452746/* bold / italic inside the editor and note display */2747.peach-note-editor-body b, .peach-note-editor-body strong,2748.peach-note-content b, .peach-note-content strong { font-weight: 700; }2749.peach-note-editor-body em, .peach-note-editor-body i,2750.peach-note-content em, .peach-note-content i { font-style: italic; }27512752/* note display — rendered HTML, no pre-wrap */2753.peach-note-content {2754  overflow: auto;2755  max-height: 340px;2756  word-break: break-word;2757}27582759/* ── Note textarea ── */2760.peach-note-textarea {2761  width: 100%;2762  min-height: 180px;2763  max-height: 280px;2764  resize: vertical;2765  background: var(--peach-t4);2766  border: 1px solid var(--peach-t3);2767  border-radius: 8px;2768  padding: 10px 12px;2769  font-family: "IBM Plex Mono", monospace;2770  font-size: 12px;2771  line-height: 1.7;2772  color: var(--peach-t1);2773  outline: none;2774  transition: border-color 150ms ease;2775}27762777.peach-note-textarea:focus {2778  border-color: var(--peach-t2);2779}27802781.peach-note-char-count {2782  font-family: "IBM Plex Mono", monospace;2783  font-size: 9px;2784  color: var(--peach-t3);2785  text-align: right;2786  margin-top: 4px;2787  letter-spacing: 0.1em;2788}27892790/* ── Field input baseline ── */2791.peach-new-field-input {2792  width: 100%;2793  background: transparent;2794  border: none;2795  border-bottom: 1px solid var(--peach-t3);2796  padding: 4px 0;2797  color: var(--peach-t1);2798  font-family: "IBM Plex Mono", monospace;2799  font-size: 13px;2800  outline: none;2801  transition: border-color 150ms ease;2802}28032804.peach-new-field-input:focus {2805  border-bottom-color: var(--peach-t0);2806  color: var(--peach-t0);2807}28082809.peach-new-name-input {2810  width: 100%;2811  background: transparent;2812  border: none;2813  border-bottom: 1px solid var(--peach-t3);2814  padding: 6px 0;2815  font-family: "Cormorant Garamond", Georgia, serif;2816  font-style: italic;2817  font-size: 28px;2818  color: var(--peach-t0);2819  outline: none;2820  transition: border-color 150ms ease;2821}28222823.peach-new-name-input:focus {2824  border-bottom-color: var(--peach-t1);2825}28262827.peach-new-name-input::placeholder {2828  color: var(--peach-t2);2829  font-style: italic;2830}28312832.peach-new-field-input::placeholder {2833  color: var(--peach-t3);2834}28352836/* ── Demo entrance animation ── */2837#hd-shell {2838  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2839}2840@keyframes hd-shell-enter {2841  from { opacity: 0; transform: scale(0.96) translateY(16px); }2842  to   { opacity: 1; transform: scale(1) translateY(0); }2843}28442845/* ── Keyframes ── */2846@keyframes peach-char-enter {2847  from { opacity: 0; transform: translateY(0.22em); }2848  to   { opacity: 1; transform: translateY(0); }2849}2850@keyframes peach-content-enter {2851  from { opacity: 0.96; transform: translateY(4px); }2852  to   { opacity: 1; transform: translateY(0); }2853}2854@keyframes peach-content-exit {2855  from { opacity: 1; transform: translateY(0); }2856  to   { opacity: 0.92; transform: translateY(-3px); }2857}2858@keyframes peach-screen-enter {2859  from { opacity: 0; transform: translateY(14px); }2860  to   { opacity: 1; transform: translateY(0); }2861}2862@keyframes peach-shell-fade-in {2863  from { opacity: 0; }2864  to   { opacity: 1; }2865}2866@keyframes peach-veil-in {2867  from { opacity: 0; }2868  to   { opacity: 1; }2869}2870@keyframes peach-lock-settle {2871  0%   { transform: scale(0.9); }2872  65%  { transform: scale(1.08); }2873  100% { transform: scale(1); }2874}2875@keyframes peach-copy-confirm {2876  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2877  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); }2878}2879@keyframes peach-copy-retreat {2880  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); }2881  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2882}2883@keyframes peach-copy-flood {2884  from { opacity: 0; transform: scaleX(0.15); }2885  to   { opacity: 1; transform: scaleX(1); }2886}2887@keyframes peach-copy-icon-settle {2888  from  { transform: scale(0.84); }2889  70%   { transform: scale(1.08); }2890  to    { transform: scale(1); }2891}2892@keyframes peach-copy-sheen-retreat {2893  from { opacity: 1; transform: scaleX(1); }2894  to   { opacity: 0; transform: scaleX(0.15); }2895}2896@keyframes peach-copy-drain {2897  from { width: 100%; }2898  to   { width: 0; }2899}2900@keyframes peach-shake {2901  0%, 100% { transform: translateX(0); }2902  20%      { transform: translateX(-6px); }2903  40%      { transform: translateX(6px); }2904  60%      { transform: translateX(-4px); }2905  80%      { transform: translateX(4px); }2906}29072908@keyframes pip-pulse {2909  0% { transform: scale(1); }2910  40% { transform: scale(2.2); }2911  100% { transform: scale(1); }2912}291329142915/* ── Password generator ── */2916.peach-pwgen-body {2917  flex: 1; overflow-y: auto;2918  display: flex; flex-direction: column;2919}2920.peach-policy-badge {2921  display: flex; align-items: center;2922  padding: 6px 20px 0;2923  font-size: 10px; font-family: Inter, sans-serif;2924  color: var(--peach-t2); letter-spacing: 0.04em;2925}2926.peach-pwgen-display {2927  padding: 14px 20px 12px;2928  border-bottom: 1px solid var(--peach-t3);2929  display: flex; align-items: flex-start; gap: 10px;2930}2931.peach-pwgen-display-row {2932  display: flex;2933  align-items: flex-start;2934  gap: 8px;2935  padding-bottom: 8px;2936  border-bottom: 1px solid var(--peach-t3);2937}2938.peach-pwgen-output {2939  flex: 1; min-width: 0; margin: 0;2940  font-family: "IBM Plex Mono", monospace;2941  font-size: 13px; color: var(--peach-t0);2942  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2943  white-space: normal;2944  padding: 10px 12px;2945  background: var(--peach-t4);2946  border-radius: 6px;2947  min-height: 36px;2948}2949.peach-pwgen-output-display {2950  flex: 1;2951  min-width: 0;2952  margin: 0;2953  font-family: "Cormorant Garamond", "Times New Roman", serif;2954  font-style: italic;2955  font-weight: 300;2956  font-size: 32px;2957  line-height: 1.05;2958  color: var(--peach-t0);2959  word-break: break-all;2960  overflow-wrap: break-word;2961  white-space: normal;2962  letter-spacing: 0.02em;2963}2964.peach-pwgen-display-actions {2965  display: flex;2966  flex-direction: column;2967  gap: 4px;2968  flex-shrink: 0;2969  margin-top: 2px;2970}2971.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2972.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2973.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2974.peach-pwgen-len-num {2975  font-family: "IBM Plex Mono", monospace;2976  font-size: 12px; color: var(--peach-accent);2977}2978.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2979.peach-pwgen-toggles { display: flex; flex-direction: column; }2980.peach-pwgen-charset-pills {2981  display: flex;2982  gap: 6px;2983  flex-wrap: wrap;2984}2985.peach-pwgen-pill {2986  padding: 4px 11px;2987  border-radius: 999px;2988  border: 1px solid var(--peach-t3);2989  background: transparent;2990  color: var(--peach-t2);2991  font-family: "IBM Plex Mono", monospace;2992  font-size: 9px;2993  letter-spacing: 0.08em;2994  cursor: pointer;2995  transition: all 150ms ease;2996}2997.peach-pwgen-pill.is-on {2998  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2999  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3000  color: var(--peach-accent);3001}3002.peach-pwgen-pill:not(.is-on):hover {3003  color: var(--peach-t1);3004  border-color: var(--peach-t2);3005}3006.peach-pwgen-use-btn {3007  width: 100%;3008  min-height: 34px;3009  border-radius: 8px;3010  margin-top: 2px;3011}3012.peach-pwgen-toggle-row {3013  display: flex; align-items: center; justify-content: space-between;3014  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3015}3016.peach-pwgen-toggle-row:last-child { border-bottom: none; }3017.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }30183019.peach-screen-prelock {3020  z-index: 10;3021}30223023.prelock-form {3024  display: grid;3025  gap: 12px;3026}30273028/* Peach popup should not expose native scrollbars on internal panels. */3029.peach-settings-body,3030.peach-new-body,3031.peach-pwgen-body,3032.lock-screen,3033.peach-import-preview {3034  scrollbar-width: none;3035  -ms-overflow-style: none;3036  overscroll-behavior: contain;3037}3038.peach-settings-body::-webkit-scrollbar,3039.peach-new-body::-webkit-scrollbar,3040.peach-pwgen-body::-webkit-scrollbar,3041.lock-screen::-webkit-scrollbar,3042.peach-import-preview::-webkit-scrollbar {3043  width: 0;3044  height: 0;3045  display: none;3046}30473048.lock-screen {3049  height: 100%;3050  min-height: 100%;3051  overflow-y: auto;3052  padding: 18px 18px 16px;3053  gap: 14px;3054  grid-template-rows: auto auto auto 1fr auto;3055  align-content: stretch;3056  position: relative;3057  isolation: isolate;3058}3059.peach-screen.lock-screen--vault-stage {3060  display: flex;3061  flex-direction: column;3062  justify-content: flex-start;3063  gap: 18px;3064  padding: 20px 18px 18px;3065  overflow: hidden;3066}3067.peach-screen.lock-screen--vault-stage .peach-lock-panel {3068  margin-top: auto;3069}3070.lock-screen--onboarding {3071  display: flex;3072  flex-direction: column;3073  gap: 12px;3074  justify-content: flex-start;3075}30763077.lock-screen::before {3078  content: "";3079  position: absolute;3080  inset: 12px 18px auto auto;3081  width: 160px;3082  height: 160px;3083  border-radius: 999px;3084  background:3085    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%);3086  filter: blur(6px);3087  opacity: 0.7;3088  pointer-events: none;3089  z-index: 0;3090}30913092.lock-screen-header {3093  display: flex;3094  align-items: center;3095  justify-content: space-between;3096  position: relative;3097  z-index: 1;3098}30993100.lock-password-input.shake {3101  animation: peach-shake 300ms ease-in-out;3102}31033104.peach-hint-error {3105  color: rgba(220, 80, 60, 0.92);3106}31073108.peach-onboarding-headline {3109  margin: 0;3110  font-family: "Cormorant Garamond", "Times New Roman", serif;3111  font-size: 35px;3112  line-height: 0.88;3113  font-style: italic;3114  font-weight: 400;3115  max-width: 252px;3116}31173118.peach-lock-copy {3119  display: grid;3120  gap: 8px;3121  position: relative;3122  z-index: 1;3123}31243125.peach-lock-copy--onboarding {3126  gap: 10px;3127}31283129.peach-lock-hero {3130  position: relative;3131  z-index: 1;3132  display: grid;3133  gap: 8px;3134  min-height: 0;3135  padding: 4px 2px 0;3136  border: none;3137  border-radius: 0;3138  background: transparent;3139  box-shadow: none;3140}3141.peach-lock-hero-art {3142  position: absolute;3143  right: -8px;3144  top: -6px;3145  width: 120px;3146  height: 120px;3147  display: flex;3148  align-items: center;3149  justify-content: center;3150  pointer-events: none;3151  opacity: 0.12;3152  filter: saturate(0.9);3153}3154.peach-lock-hero-mark {3155  width: 100%;3156  height: 100%;3157}3158/* Peach body stays brand-peach across every accent — we don't want a3159   green or blue peach when sage/sky is selected. Leaf + stem keep the3160   sage tint because a real peach has a sage leaf. */3161.peach-lock-hero-mark path:nth-child(2),3162.peach-lock-hero-mark path:nth-child(3) {3163  stroke: rgba(123, 144, 96, 0.88);3164  fill: rgba(123, 144, 96, 0.88);3165}3166.peach-lock-hero > *:not(.peach-lock-hero-art) {3167  position: relative;3168  z-index: 1;3169}31703171.peach-lock-eyebrow {3172  display: inline-flex;3173  align-items: center;3174  width: fit-content;3175  padding: 4px 9px;3176  border-radius: 999px;3177  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3178  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3179  color: var(--peach-t0);3180  font-family: "IBM Plex Mono", monospace;3181  font-size: 8px;3182  letter-spacing: 0.18em;3183  text-transform: uppercase;3184}31853186.peach-lock-label-row {3187  display: flex;3188  align-items: center;3189  justify-content: space-between;3190  margin-bottom: 0;3191}31923193.peach-lock-reveal-btn {3194  display: inline-flex;3195  align-items: center;3196  gap: 4px;3197  background: none;3198  border: none;3199  cursor: pointer;3200  font-family: "IBM Plex Mono", monospace;3201  font-size: 9px;3202  letter-spacing: 0.06em;3203  color: var(--peach-t2);3204  padding: 2px 0;3205  transition: color 150ms ease;3206}32073208.peach-lock-reveal-btn:hover {3209  color: var(--peach-t1);3210}32113212.peach-lock-warning {3213  color: rgba(220, 80, 60, 0.85) !important;3214  line-height: 1.5;3215}32163217.peach-onboarding-cards {3218  display: grid;3219  gap: 8px;3220  position: relative;3221  z-index: 1;3222}32233224.peach-lock-panel {3225  position: relative;3226  z-index: 1;3227  display: grid;3228  gap: 9px;3229  padding: 14px 16px 15px;3230  border-radius: 18px;3231  border: 1px solid var(--peach-t3);3232  background:3233    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3234  box-shadow:3235    inset 0 1px 0 rgba(240, 232, 216, 0.04),3236    0 12px 28px rgba(0, 0, 0, 0.12);3237}32383239.peach-lock-panel--secondary {3240  gap: 12px;3241}32423243.peach-lock-panel-header {3244  display: flex;3245  align-items: baseline;3246  justify-content: space-between;3247  gap: 12px;3248}32493250.peach-lock-option-grid {3251  display: grid;3252  gap: 10px;3253}32543255.peach-lock-option {3256  width: 100%;3257  display: grid;3258  gap: 6px;3259  padding: 14px 15px;3260  border-radius: 16px;3261  border: 1px solid rgba(240, 232, 216, 0.08);3262  background: rgba(240, 232, 216, 0.02);3263  color: var(--peach-t0);3264  text-align: left;3265  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3266}32673268.peach-lock-option:hover {3269  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3270  background: rgba(240, 232, 216, 0.04);3271  transform: translateY(-1px);3272}32733274.peach-lock-option-title {3275  font-size: 12px;3276  color: var(--peach-t0);3277}32783279.peach-lock-option-copy {3280  font-size: 11px;3281  line-height: 1.55;3282  color: var(--peach-t1);3283}32843285.peach-onboarding-stack {3286  margin-top: 2px;3287}3288.peach-lock-panel-footer {3289  display: grid;3290  gap: 6px;3291  margin-top: 2px;3292  padding-top: 10px;3293  border-top: 1px solid rgba(240, 232, 216, 0.06);3294}32953296/* Restore picker panel — method option cards */3297.peach-lock-panel--restore {3298  gap: 10px;3299}3300.peach-lock-option--history {3301  border-color: rgba(240, 232, 216, 0.06);3302  opacity: 0.85;3303}33043305/* Snapshot restore panel */3306.peach-snapshot-panel {3307  gap: 10px;3308  overflow-y: auto;3309  max-height: 340px;3310}3311.peach-snapshot-list {3312  display: flex;3313  flex-direction: column;3314  gap: 4px;3315}3316.peach-snapshot-row {3317  display: flex;3318  align-items: center;3319  justify-content: space-between;3320  width: 100%;3321  padding: 8px 10px;3322  border-radius: 8px;3323  border: 1px solid rgba(240, 232, 216, 0.07);3324  background: transparent;3325  cursor: pointer;3326  transition: border-color 120ms, background 120ms;3327  text-align: left;3328  gap: 8px;3329}3330.peach-snapshot-row:hover {3331  border-color: rgba(240, 232, 216, 0.14);3332  background: rgba(240, 232, 216, 0.03);3333}3334.peach-snapshot-row.is-selected {3335  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3336  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3337}3338.peach-snapshot-time {3339  font-size: 11.5px;3340  color: var(--peach-t0);3341  flex: 1;3342}3343.peach-snapshot-count {3344  font-family: "IBM Plex Mono", monospace;3345  font-size: 10px;3346  color: var(--peach-t2);3347  flex-shrink: 0;3348}3349.peach-snapshot-confirm {3350  display: flex;3351  flex-direction: column;3352  gap: 8px;3353  padding-top: 10px;3354  border-top: 1px solid rgba(240, 232, 216, 0.06);3355}3356.peach-snapshot-warning {3357  display: flex;3358  align-items: flex-start;3359  gap: 6px;3360  font-size: 10.5px;3361  color: rgba(220, 80, 60, 0.85);3362  line-height: 1.55;3363}3364.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3365.peach-snapshot-confirm-row {3366  display: flex;3367  gap: 6px;3368  align-items: center;3369}3370.peach-snapshot-restore-btn {3371  width: 100%;3372}3373.peach-lock-hero--unlock .peach-lock-hero-art {3374  width: 112px;3375  height: 112px;3376  right: 0;3377  top: 2px;3378  opacity: 0.1;3379}33803381.peach-card {3382  border: 1px solid var(--peach-t3);3383  border-radius: 18px;3384  background:3385    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3386  box-shadow:3387    inset 0 0 0 1px var(--peach-border-accent),3388    inset 0 1px 0 rgba(240, 232, 216, 0.04),3389    0 12px 32px rgba(0, 0, 0, 0.14);3390  overflow: hidden;3391}33923393.peach-card-active {3394  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3395  box-shadow:3396    inset 0 1px 0 rgba(240, 232, 216, 0.05),3397    0 16px 38px rgba(0, 0, 0, 0.18),3398    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3399}34003401.peach-card-disabled {3402  opacity: 0.72;3403}34043405.peach-card-header {3406  width: 100%;3407  padding: 13px 16px 11px;3408  background: transparent;3409  color: var(--peach-t0);3410  display: flex;3411  justify-content: space-between;3412  align-items: center;3413  text-align: left;3414  font-size: 12px;3415}34163417.peach-card-body {3418  padding: 0 16px 16px;3419  display: grid;3420  gap: 9px;3421}34223423.peach-card-tag {3424  color: var(--peach-t2);3425  font-family: "IBM Plex Mono", monospace;3426  font-size: 9px;3427  letter-spacing: 0.12em;3428  text-transform: uppercase;3429}34303431.peach-empty-copy {3432  display: grid;3433  gap: 6px;3434  color: var(--peach-t1);3435  font-size: 13px;3436}34373438.peach-lock-submit {3439  width: 100%;3440  box-shadow:3441    0 1px 0 rgba(255,255,255,0.10) inset,3442    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3443    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3444    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3445}34463447.peach-lock-secondary {3448  width: 100%;3449  border-color: var(--peach-t3);3450  background: rgba(240, 232, 216, 0.02);3451}34523453.peach-lock-secondary:hover {3454  background: rgba(240, 232, 216, 0.04);3455}34563457.peach-lock-note {3458  max-width: none;3459  line-height: 1.55;3460  margin: 0;3461}34623463.peach-overlay-action {3464  font-size: 10px;3465  padding: 4px 8px;3466  letter-spacing: 0.06em;3467  min-width: 44px;3468  text-align: center;3469}34703471.peach-overlay-spacer {3472  width: 32px;3473}34743475.peach-inline-action {3476  flex-shrink: 0;3477  font-size: 9px;3478  letter-spacing: 0.1em;3479  text-transform: uppercase;3480  padding: 4px 7px;3481}3482.peach-password-toggle-btn {3483  display: inline-flex;3484  align-items: center;3485  justify-content: center;3486  min-width: 30px;3487  min-height: 26px;3488  padding: 0 7px;3489  border: 1px solid var(--peach-t3);3490  border-radius: 999px;3491  background: rgba(240, 232, 216, 0.04);3492  color: var(--peach-t2);3493  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3494}3495.peach-password-toggle-btn:hover {3496  border-color: var(--peach-t2);3497  color: var(--peach-t0);3498  background: rgba(240, 232, 216, 0.06);3499}35003501.peach-new-textarea {3502  width: 100%;3503  min-height: 88px;3504  resize: vertical;3505  border: 0;3506  outline: none;3507  background: transparent;3508  color: var(--peach-t1);3509  font-family: "IBM Plex Mono", monospace;3510  font-size: 12px;3511  line-height: 1.65;3512  caret-color: var(--peach-accent);3513}35143515.peach-new-textarea::placeholder {3516  color: var(--peach-t2);3517  opacity: 0.7;3518}35193520.peach-settings-actions {3521  display: grid;3522  gap: 8px;3523}35243525.peach-sync-section-label {3526  font-size: 11px;3527  color: var(--peach-t2);3528  text-transform: uppercase;3529  letter-spacing: 0.05em;3530}35313532.peach-sync-device-row {3533  display: flex;3534  justify-content: space-between;3535  align-items: center;3536  padding: 6px 0;3537  border-bottom: 1px solid var(--peach-t3);3538}35393540.peach-sync-device-info {3541  display: flex;3542  flex-direction: column;3543  gap: 2px;3544}35453546.peach-sync-device-name {3547  font-size: 13px;3548  color: var(--peach-t0);3549}35503551.peach-sync-device-meta {3552  font-size: 11px;3553  color: var(--peach-t2);3554}35553556.peach-sync-status-dot {3557  display: inline-block;3558  width: 8px;3559  height: 8px;3560  border-radius: 50%;3561  vertical-align: middle;3562}35633564.peach-sync-remove-btn {3565  color: var(--peach-breach);3566}35673568.peach-import-preview {3569  margin-bottom: 12px;3570  max-height: 152px;3571  overflow-y: auto;3572  border: 1px solid var(--peach-t3);3573  border-radius: 10px;3574  padding: 8px 10px;3575  display: grid;3576  gap: 8px;3577  background: rgba(240, 232, 216, 0.02);3578}35793580.peach-import-preview-row {3581  display: flex;3582  justify-content: space-between;3583  gap: 10px;3584  font-size: 11px;3585  color: var(--peach-t1);3586}35873588.peach-import-preview-title {3589  color: var(--peach-t0);3590  flex: 1;3591  min-width: 0;3592  overflow: hidden;3593  text-overflow: ellipsis;3594  white-space: nowrap;3595}35963597.peach-import-preview-meta {3598  color: var(--peach-t2);3599  flex-shrink: 0;3600  max-width: 42%;3601  overflow: hidden;3602  text-overflow: ellipsis;3603  white-space: nowrap;3604}36053606.peach-import-preview-more {3607  color: var(--peach-t2);3608  font-size: 10px;3609}36103611.peach-restore-copy {3612  margin: 0;3613  color: var(--peach-t1);3614  font-size: 11px;3615  line-height: 1.6;3616}36173618.peach-restore-warning {3619  padding: 10px 12px;3620  border-radius: 12px;3621  border: 1px solid rgba(220, 80, 60, 0.22);3622  background: rgba(220, 80, 60, 0.08);3623  color: rgba(240, 232, 216, 0.86);3624  font-size: 11px;3625  line-height: 1.55;3626}36273628.peach-provider-chips {3629  display: flex;3630  flex-wrap: wrap;3631  gap: 6px;3632}36333634.peach-provider-chip {3635  display: inline-flex;3636  align-items: center;3637  padding: 5px 8px;3638  border-radius: 999px;3639  border: 1px solid var(--peach-t3);3640  background: rgba(240, 232, 216, 0.02);3641  color: var(--peach-t1);3642  font-family: "IBM Plex Mono", monospace;3643  font-size: 8px;3644  letter-spacing: 0.08em;3645  text-transform: uppercase;3646}36473648.peach-restore-file,3649.peach-restore-input {3650  width: 100%;3651  border-radius: 10px;3652  border: 1px solid var(--peach-t3);3653  background: var(--peach-s2);3654  color: var(--peach-t0);3655  font-size: 12px;3656}36573658.peach-restore-file {3659  padding: 9px 10px;3660}36613662.peach-restore-file::file-selector-button {3663  margin-right: 10px;3664  padding: 7px 10px;3665  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3666  border-radius: 999px;3667  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3668  color: var(--peach-t0);3669  font-size: 10px;3670  letter-spacing: 0.08em;3671  text-transform: uppercase;3672  cursor: pointer;3673}36743675.peach-restore-input {3676  padding: 10px 12px;3677}36783679.peach-auth-grid {3680  display: grid;3681  gap: 10px;3682}36833684.peach-import-summary {3685  color: var(--peach-t1);3686  font-size: 12px;3687  line-height: 1.6;3688  margin-bottom: 12px;3689}36903691.peach-restore-error {3692  color: rgba(220, 80, 60, 0.95);3693  font-size: 12px;3694  line-height: 1.55;3695}36963697.peach-cjk-qr-panel {3698  margin-top: 14px;3699  padding: 12px;3700  border-radius: 16px;3701  border: 1px solid var(--peach-t3);3702  background: rgba(240, 232, 216, 0.02);3703  display: grid;3704  gap: 10px;3705}37063707.peach-cjk-qr-frame {3708  display: grid;3709  place-items: center;3710  min-height: 212px;3711  border-radius: 14px;3712  background: #fff;3713  overflow: hidden;3714}37153716.peach-cjk-qr-frame svg {3717  display: block;3718  width: 196px;3719  height: 196px;3720}37213722.peach-cjk-qr-error,3723.peach-cjk-qr-caption {3724  color: var(--peach-t1);3725  font-size: 11px;3726  line-height: 1.55;3727}37283729.peach-cjk-qr-card {3730  max-width: 400px;3731  margin: auto;3732}37333734.peach-cjk-qr-body {3735  padding: 0 20px 20px;3736  text-align: center;3737}37383739.peach-cjk-qr-hint {3740  font-size: 11px;3741  color: var(--peach-t2);3742  margin: 0 0 14px;3743}37443745.peach-cjk-qr-image {3746  border-radius: 4px;3747  display: block;3748  margin: 0 auto;3749  width: 100%;3750  max-width: 320px;3751  height: auto;3752}37533754.peach-pro-badge {3755  padding: 2px 6px;3756  border-radius: 999px;3757  font-family: var(--font-ui);3758  font-size: 10px;3759  letter-spacing: 0.08em;3760  text-transform: uppercase;3761  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3762  color: var(--peach-accent);3763}37643765.peach-loading {3766  position: absolute;3767  inset: 0;3768  display: flex;3769  align-items: center;3770  justify-content: center;3771  background: var(--bg);3772  animation: peach-loading-pulse 1.2s ease-in-out infinite;3773}37743775@keyframes peach-loading-pulse {3776  0%, 100% { opacity: 0.6; }3777  50% { opacity: 1; }3778}37793780/* ── Health Dashboard ─────────────────────────────────────────────────── */3781.peach-health-body {3782  flex: 1;3783  overflow-y: auto;3784  display: flex;3785  flex-direction: column;3786}37873788.peach-health-summary {3789  padding: 10px 16px 6px;3790  font-family: "IBM Plex Mono", monospace;3791  font-size: 11px;3792}3793.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3794.peach-health-summary-ok { color: var(--peach-t2); }37953796.peach-health-check-row {3797  padding: 0 16px 10px;3798}3799.peach-health-check-btn {3800  width: 100%;3801  display: flex;3802  align-items: center;3803  justify-content: center;3804}38053806.peach-health-sections {3807  flex: 1;3808  display: flex;3809  flex-direction: column;3810}38113812.peach-health-section {3813  border-bottom: 1px solid var(--peach-t3);3814}38153816.peach-health-section-header {3817  width: 100%;3818  display: flex;3819  align-items: center;3820  justify-content: space-between;3821  padding: 9px 16px;3822  background: transparent;3823  cursor: pointer;3824  color: var(--peach-t0);3825}38263827.peach-health-section-title-row {3828  display: flex;3829  align-items: center;3830  gap: 8px;3831}38323833.peach-health-count-badge {3834  display: inline-flex;3835  align-items: center;3836  justify-content: center;3837  min-width: 20px;3838  height: 18px;3839  padding: 0 5px;3840  border-radius: 999px;3841  background: rgba(220,80,60,0.15);3842  border: 1px solid rgba(220,80,60,0.25);3843  font-family: "IBM Plex Mono", monospace;3844  font-size: 9px;3845  color: rgba(220,80,60,0.9);3846}38473848.peach-health-section-title {3849  font-family: "IBM Plex Mono", monospace;3850  font-size: 11px;3851  text-transform: uppercase;3852  letter-spacing: 0.1em;3853  color: var(--peach-t1);3854}38553856.peach-health-chevron {3857  color: var(--peach-t2);3858  transition: transform 200ms ease;3859  flex-shrink: 0;3860}3861.peach-health-chevron.is-expanded {3862  transform: rotate(180deg);3863}38643865.peach-health-section-body {3866  padding: 0 16px 10px;3867  display: flex;3868  flex-direction: column;3869  gap: 4px;3870}38713872.peach-health-row {3873  display: flex;3874  align-items: flex-start;3875  justify-content: space-between;3876  gap: 8px;3877  padding: 6px 8px;3878  border-radius: 8px;3879  background: rgba(240,232,216,0.02);3880}38813882.peach-health-row-info {3883  flex: 1;3884  min-width: 0;3885  display: flex;3886  flex-direction: column;3887  gap: 2px;3888}38893890.peach-health-row-name {3891  font-family: "Cormorant Garamond", serif;3892  font-size: 15px;3893  font-style: italic;3894  font-weight: 400;3895  color: var(--peach-t0);3896  white-space: nowrap;3897  overflow: hidden;3898  text-overflow: ellipsis;3899}39003901.peach-health-row-meta {3902  font-family: "IBM Plex Mono", monospace;3903  font-size: 9px;3904  color: var(--peach-t2);3905  letter-spacing: 0.05em;3906}39073908.peach-health-fix-btn {3909  font-size: 9px;3910  letter-spacing: 0.08em;3911  text-transform: uppercase;3912  padding: 4px 7px;3913  flex-shrink: 0;3914  display: flex;3915  align-items: center;3916}39173918.peach-health-empty {3919  font-family: "IBM Plex Mono", monospace;3920  font-size: 10px;3921  color: var(--peach-t2);3922  padding: 6px 0;3923}39243925.peach-health-loading {3926  font-family: "IBM Plex Mono", monospace;3927  font-size: 10px;3928  color: var(--peach-t2);3929  padding: 6px 0;3930  display: flex;3931  align-items: center;3932  gap: 6px;3933}39343935.peach-health-loading::before {3936  content: "";3937  width: 10px;3938  height: 10px;3939  border: 1.5px solid var(--peach-t3);3940  border-top-color: var(--peach-accent);3941  border-radius: 50%;3942  animation: peach-spin 600ms linear infinite;3943}39443945@keyframes peach-spin {3946  to { transform: rotate(360deg); }3947}39483949.peach-spinner {3950  width: 32px;3951  height: 32px;3952  border: 2px solid var(--peach-s2);3953  border-top-color: var(--peach-accent);3954  border-radius: 50%;3955  margin: 0 auto 16px;3956  animation: peach-spin 0.8s linear infinite;3957}39583959.peach-progress-screen {3960  text-align: center;3961  padding: 32px 16px;3962}39633964.peach-progress-screen-title {3965  font-size: 13px;3966  color: var(--peach-t0);3967  margin-bottom: 16px;3968}39693970.peach-progress-screen-stage {3971  font-size: 11px;3972  color: var(--peach-t2);3973  min-height: 14px;3974}39753976.peach-progress-screen-note {3977  font-size: 10px;3978  color: var(--peach-t2);3979  margin-top: 8px;3980}39813982.peach-pairing-body {3983  flex: 1;3984  overflow-y: auto;3985  display: flex;3986  flex-direction: column;3987}39883989.peach-pairing-content {3990  flex: 1;3991  display: flex;3992  flex-direction: column;3993  align-items: center;3994  justify-content: center;3995  gap: 14px;3996  padding: 28px 20px;3997  text-align: center;3998}39994000.peach-pairing-headline {4001  font-family: var(--font-display);4002  font-style: italic;4003  font-weight: 300;4004  font-size: 28px;4005  color: var(--peach-t0);4006  margin: 0;4007  line-height: 1;4008}40094010.peach-pairing-subline {4011  font-size: 12px;4012  color: var(--peach-t2);4013  max-width: 220px;4014  line-height: 1.5;4015  margin: 0;4016}40174018.peach-pairing-subline--center {4019  text-align: center;4020}40214022.peach-pairing-code-display {4023  display: flex;4024  gap: 6px;4025}40264027.peach-pairing-code-digit {4028  display: flex;4029  align-items: center;4030  justify-content: center;4031  width: 36px;4032  height: 48px;4033  background: var(--peach-s2);4034  border: 1px solid var(--peach-t3);4035  border-radius: 6px;4036  font-family: var(--font-mono);4037  font-size: 22px;4038  color: var(--peach-t0);4039  letter-spacing: 0;4040}40414042.peach-pairing-countdown-ring {4043  position: relative;4044  display: inline-flex;4045  align-items: center;4046  justify-content: center;4047}40484049.peach-pairing-countdown-num {4050  position: absolute;4051  font-family: var(--font-mono);4052  font-size: 14px;4053  color: var(--peach-t1);4054}40554056.peach-pairing-ring-track {4057  fill: none;4058  stroke: var(--peach-t3);4059  stroke-width: 2;4060}40614062.peach-pairing-ring-progress {4063  fill: none;4064  stroke: var(--peach-accent);4065  stroke-width: 2;4066  stroke-linecap: round;4067  transform: rotate(-90deg);4068  transform-origin: 50% 50%;4069  transition: stroke-dashoffset 0.5s linear;4070}40714072.peach-pairing-code-inputs {4073  display: flex;4074  gap: 8px;4075}40764077.peach-pairing-code-box {4078  width: 36px;4079  height: 48px;4080  text-align: center;4081  background: var(--peach-s2);4082  border: 1px solid var(--peach-t3);4083  border-radius: 6px;4084  font-family: var(--font-mono);4085  font-size: 20px;4086  color: var(--peach-t0);4087  outline: none;4088  transition: border-color 120ms ease;4089}40904091.peach-pairing-code-box:focus {4092  border-color: var(--peach-accent);4093}40944095.peach-pairing-code-box.has-error {4096  border-color: rgba(220, 80, 60, 0.45);4097}40984099.peach-pairing-status {4100  display: flex;4101  align-items: center;4102  gap: 8px;4103  margin: 0;4104  font-size: 12px;4105  color: var(--peach-t1);4106}41074108.peach-pairing-error {4109  margin: 0;4110  font-size: 11px;4111  color: var(--peach-breach);4112}41134114.peach-pairing-error-msg {4115  color: var(--peach-t1);4116}41174118.peach-pairing-spinner {4119  width: 12px;4120  height: 12px;4121  border: 1.5px solid var(--peach-t3);4122  border-top-color: var(--peach-accent);4123  border-radius: 50%;4124  animation: peach-spin 0.8s linear infinite;4125}41264127.peach-pairing-success-icon,4128.peach-pairing-error-icon,4129.peach-pairing-hero {4130  display: inline-flex;4131  align-items: center;4132  justify-content: center;4133}41344135/* Tag chips */4136.peach-tag-chip {4137  display: inline-flex;4138  align-items: center;4139  gap: 4px;4140  padding: 3px 8px;4141  border-radius: 999px;4142  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4143  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4144  color: rgba(240, 232, 216, 0.85);4145  font-family: "IBM Plex Mono", monospace;4146  font-size: 10px;4147  letter-spacing: 0.04em;4148}41494150.peach-tag-chip-remove {4151  background: transparent;4152  border: none;4153  color: inherit;4154  opacity: 0.6;4155  cursor: pointer;4156  padding: 0;4157  font-size: 12px;4158  line-height: 1;4159}41604161.peach-tag-chip-remove:hover {4162  opacity: 1;4163}41644165/* Tag input */4166.peach-tag-input-wrap {4167  border-bottom: 1px solid var(--peach-t3);4168}41694170.peach-tag-suggestions {4171  display: flex;4172  flex-wrap: wrap;4173  gap: 4px;4174  padding: 6px 0;4175}41764177.peach-tag-suggestion {4178  padding: 2px 8px;4179  border-radius: 999px;4180  border: 1px solid var(--peach-t3);4181  background: var(--peach-s2);4182  color: var(--peach-t1);4183  font-family: "IBM Plex Mono", monospace;4184  font-size: 10px;4185  cursor: pointer;4186  transition: border-color 80ms ease, background 80ms ease;4187}41884189.peach-tag-suggestion:hover {4190  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4191  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4192}41934194/* Tag filter strip */4195.peach-tag-filter-strip {4196  border-bottom: 1px solid var(--peach-t3);4197  flex-shrink: 0;4198}41994200.peach-tag-filter-chip {4201  display: inline-flex;4202  align-items: center;4203  padding: 4px 10px;4204  border-radius: 999px;4205  border: 1px solid var(--peach-t3);4206  background: transparent;4207  color: var(--peach-t2);4208  font-family: "IBM Plex Mono", monospace;4209  font-size: 9px;4210  letter-spacing: 0.06em;4211  text-transform: uppercase;4212  cursor: pointer;4213  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4214  white-space: nowrap;4215}42164217.peach-tag-filter-chip:hover {4218  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4219  color: var(--peach-t1);4220}42214222.peach-tag-filter-chip.is-selected {4223  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4224  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4225  color: rgba(240, 232, 216, 0.9);4226}42274228/* ─────────────────────────────────────────────────────────────────────────4229   v1.4.12 additions4230   ─────────────────────────────────────────────────────────────────────── */42314232/* Sort bar */4233.peach-sort-bar {4234  display: flex;4235  align-items: center;4236  gap: 4px;4237  padding: 5px 12px;4238  border-bottom: 1px solid var(--peach-t3);4239  flex-shrink: 0;4240  overflow-x: auto;4241  scrollbar-width: none;4242}42434244.peach-sort-btn {4245  padding: 2px 9px;4246  border-radius: 999px;4247  border: 1px solid transparent;4248  background: transparent;4249  color: var(--peach-t2);4250  font-family: "IBM Plex Mono", monospace;4251  font-size: 9px;4252  letter-spacing: 0.07em;4253  text-transform: uppercase;4254  cursor: pointer;4255  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4256  white-space: nowrap;4257}42584259.peach-sort-btn:hover {4260  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4261  color: var(--peach-t1);4262}42634264.peach-sort-btn.is-active {4265  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4266  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4267  color: rgba(240, 232, 216, 0.9);4268}42694270.peach-sort-domain-hint {4271  margin-left: auto;4272  font-family: "IBM Plex Mono", monospace;4273  font-size: 9px;4274  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4275  white-space: nowrap;4276  overflow: hidden;4277  text-overflow: ellipsis;4278  max-width: 110px;4279}42804281/* Tab-match badge on entry rows */4282.peach-tab-match-badge {4283  display: inline-block;4284  width: 6px;4285  height: 6px;4286  border-radius: 50%;4287  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4288  margin-left: 5px;4289  vertical-align: middle;4290  flex-shrink: 0;4291  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4292}42934294.peach-entry-row.is-tab-match {4295  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4296  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4297}42984299.peach-entry-row.is-tab-match:hover {4300  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4301}43024303/* Entry list stagger entrance */4304@keyframes peach-entry-fadein {4305  from { opacity: 0; transform: translateY(4px); }4306  to   { opacity: 1; transform: translateY(0); }4307}43084309.peach-vault-list .peach-entry-row {4310  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4311  content-visibility: auto;4312  contain-intrinsic-size: auto 44px;4313}43144315/* Button press micro-interaction */4316.peach-btn:active {4317  transform: scale(0.95);4318  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4319}43204321.peach-sort-btn:active,4322.peach-tag-filter-chip:active {4323  transform: scale(0.93);4324  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4325}43264327/* Password strength bar (Lock view + shared) */4328.peach-password-strength {4329  display: flex;4330  align-items: center;4331  gap: 8px;4332  margin-top: 6px;4333}43344335.peach-strength-bar {4336  flex: 1;4337  height: 3px;4338  border-radius: 2px;4339  background: var(--peach-t3);4340  overflow: hidden;4341}43424343.peach-strength-fill {4344  height: 100%;4345  border-radius: 2px;4346  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4347              background 300ms ease;4348}43494350.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4351.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4352.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4353.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }43544355.peach-strength-label {4356  font-family: "IBM Plex Mono", monospace;4357  font-style: italic;4358  font-size: 9px;4359  font-weight: 300;4360  letter-spacing: 0.06em;4361  color: var(--peach-t2);4362  min-width: 36px;4363  text-align: right;4364}43654366.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4367.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4368.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4369.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }43704371/* Duress form */4372.peach-duress-status {4373  padding: 2px 8px;4374  border-radius: 999px;4375  border: 1px solid var(--peach-t3);4376  font-family: "IBM Plex Mono", monospace;4377  font-size: 9px;4378  letter-spacing: 0.07em;4379  text-transform: uppercase;4380  color: var(--peach-t2);4381  flex-shrink: 0;4382}43834384.peach-duress-status.is-active {4385  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4386  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4387  color: rgba(240, 232, 216, 0.85);4388}43894390.peach-duress-form {4391  padding: 8px 0 4px;4392  display: flex;4393  flex-direction: column;4394  gap: 6px;4395}43964397.peach-duress-form .peach-label {4398  margin-top: 4px;4399}44004401.peach-duress-actions {4402  display: flex;4403  gap: 6px;4404  align-items: center;4405  margin-top: 4px;4406}44074408.peach-duress-actions .peach-btn:first-child {4409  margin-right: auto;4410}44114412/* Improved overlay spring entrance */4413.peach-overlay-view.ov-enter-up {4414  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4415}44164417@keyframes ov-enter-up-spring {4418  from { opacity: 0; transform: translateY(16px) scale(0.98); }4419  to   { opacity: 1; transform: translateY(0) scale(1); }4420}44214422.peach-overlay-view.ov-enter-right {4423  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4424}44254426@keyframes ov-enter-right-spring {4427  from { opacity: 0; transform: translateX(18px) scale(0.98); }4428  to   { opacity: 1; transform: translateX(0) scale(1); }4429}44304431/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4432/* Used when CJKImportView or MainImportView renders during onboarding4433   (no vault yet). Animates like a lock-screen transition. */4434.peach-lock-view {4435  position: absolute;4436  inset: 0;4437  display: flex;4438  flex-direction: column;4439  background:4440    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4441    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4442    var(--peach-bg);4443  z-index: 2;4444  overflow: hidden;4445  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4446}44474448.peach-lock-view-header {4449  display: flex;4450  align-items: center;4451  justify-content: space-between;4452  padding: 16px 18px 12px;4453  flex-shrink: 0;4454}44554456/* ───────── Settings: auto-lock select ───────── */4457.peach-settings-select {4458  font-family: "IBM Plex Mono", monospace;4459  font-size: 11px;4460  background: transparent;4461  border: 1px solid var(--peach-t3);4462  border-radius: 4px;4463  color: var(--peach-t1);4464  padding: 3px 6px;4465  cursor: pointer;4466  outline: none;4467}4468.peach-settings-select:focus {4469  border-color: var(--peach-accent);4470}44714472/* ───────── Duress status pill (new polished) ───────── */4473.peach-duress-status-pill {4474  font-family: "IBM Plex Mono", monospace;4475  font-size: 9px;4476  text-transform: uppercase;4477  letter-spacing: 0.12em;4478  padding: 2px 8px;4479  border-radius: 12px;4480  background: var(--peach-t3);4481  color: var(--peach-t2);4482  flex-shrink: 0;4483}4484.peach-duress-status-pill.is-active {4485  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4486  color: var(--peach-accent);4487}44884489/* ───────── Entry advanced disclosure (canary) ───────── */4490.peach-entry-advanced {4491  margin-top: 12px;4492  border-top: 1px solid var(--peach-t3);4493  padding-top: 10px;4494  position: relative;4495  z-index: 1;4496}4497.peach-entry-advanced-toggle {4498  display: flex;4499  align-items: center;4500  justify-content: space-between;4501  width: 100%;4502  background: transparent;4503  border: none;4504  cursor: pointer;4505  padding: 0;4506  color: var(--peach-t2);4507}4508.peach-canary-section {4509  margin-top: 10px;4510  display: grid;4511  gap: 6px;4512}45134514/* ───────── Import: merge/replace radio choices ───────── */4515.peach-import-choice {4516  display: flex;4517  align-items: flex-start;4518  gap: 10px;4519  padding: 8px 10px;4520  border: 1px solid var(--peach-t3);4521  border-radius: 10px;4522  cursor: pointer;4523  margin-bottom: 6px;4524  transition: border-color 120ms ease, background 120ms ease;4525}4526.peach-import-choice:hover {4527  border-color: var(--peach-accent);4528}4529.peach-import-choice input[type="radio"] {4530  margin-top: 3px;4531  accent-color: var(--peach-accent);4532  flex-shrink: 0;4533}4534.peach-import-choice-main {4535  display: flex;4536  flex-direction: column;4537  gap: 2px;4538  min-width: 0;4539}4540.peach-import-choice-label {4541  font-size: 12px;4542  color: var(--peach-t0);4543}4544.peach-import-choice-sub {4545  font-size: 11px;4546  color: var(--peach-t2);4547  line-height: 1.5;4548}45494550/* ───────── Export: success confirmation strip ───────── */4551.peach-export-success {4552  display: flex;4553  align-items: flex-start;4554  gap: 10px;4555  padding: 12px;4556  border-radius: 12px;4557  border: 1px solid rgba(150, 175, 110, 0.3);4558  background: rgba(150, 175, 110, 0.08);4559  color: var(--peach-t0);4560  font-size: 12px;4561  line-height: 1.55;4562}4563.peach-export-success-check {4564  color: rgba(150, 175, 110, 0.9);4565  font-size: 14px;4566  flex-shrink: 0;4567}45684569/* ── Trash view ──────────────────────────────────────────────────────── */4570.peach-trash-entry-row {4571  display: flex;4572  align-items: center;4573  justify-content: space-between;4574  gap: 8px;4575  padding: 8px 0;4576  border-bottom: 1px solid var(--peach-t3);4577}4578.peach-trash-entry-row:last-child { border-bottom: none; }4579.peach-trash-entry-info {4580  flex: 1;4581  min-width: 0;4582  display: flex;4583  flex-direction: column;4584  gap: 2px;4585}4586.peach-trash-entry-title {4587  font-size: 12px;4588  color: var(--peach-t1);4589  overflow: hidden;4590  text-overflow: ellipsis;4591  white-space: nowrap;4592}4593.peach-trash-entry-meta {4594  font-family: var(--font-mono);4595  font-size: 9px;4596  color: var(--peach-t2);4597  letter-spacing: 0.06em;4598}4599.peach-trash-entry-actions {4600  display: flex;4601  align-items: center;4602  gap: 4px;4603  flex-shrink: 0;4604}46054606/* ── Settings shortcuts grid ─────────────────────────────────────────── */4607.peach-shortcuts-grid {4608  display: grid;4609  grid-template-columns: auto 1fr;4610  gap: 6px 12px;4611  align-items: center;4612  padding: 4px 0;4613}4614.peach-shortcut-key {4615  font-family: var(--font-mono);4616  font-size: 10px;4617  color: var(--peach-t0);4618  background: var(--peach-t3);4619  border-radius: 4px;4620  padding: 2px 6px;4621  white-space: nowrap;4622  text-align: center;4623}4624.peach-shortcut-desc {4625  font-size: 11px;4626  color: var(--peach-t1);4627}46284629/* ── Sort bar trash button ───────────────────────────────────────────── */4630.peach-sort-trash-btn {4631  display: flex;4632  align-items: center;4633  justify-content: center;4634  padding: 3px 5px;4635  background: transparent;4636  border: none;4637  cursor: pointer;4638  color: var(--peach-t2);4639  border-radius: 4px;4640  transition: color 140ms ease, background 140ms ease;4641}4642.peach-sort-trash-btn:hover {4643  color: var(--peach-t1);4644  background: var(--peach-t3);4645}4646.peach-sort-trash-btn.is-active {4647  color: var(--peach-accent);4648}46494650/* Accent color picker */4651.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4652.peach-accent-picker {4653  display: flex;4654  flex-wrap: wrap;4655  gap: 7px;4656  padding: 2px 0;4657}4658.peach-accent-swatch {4659  width: 22px;4660  height: 22px;4661  border-radius: 50%;4662  border: 2px solid transparent;4663  cursor: pointer;4664  padding: 0;4665  transition: transform 100ms;4666  outline-offset: 2px;4667}4668.peach-accent-swatch:hover { transform: scale(1.15); }4669.peach-accent-swatch.is-active {4670  border-color: var(--peach-t0);4671  transform: scale(1.1);4672}46734674/* ── Card entry styles ───────────────────────────────────────── */4675.peach-card-number {4676  font-family: var(--peach-mono);4677  letter-spacing: 0.08em;4678}46794680.peach-card-network-badge {4681  font-size: 10px;4682  padding: 1px 5px;4683  border-radius: 4px;4684  border: 0.5px solid var(--peach-border);4685  color: var(--peach-text-dim);4686  margin-left: 6px;4687  vertical-align: middle;4688}46894690.peach-card-expiry-row {4691  display: flex;4692  align-items: center;4693  gap: 8px;4694}46954696.peach-card-expiry-sep {4697  color: var(--peach-text-dim);4698}