popup.css

238.0 KB · raw

1html,2body,3#app,4.popup-root {5  width: 320px;6  min-height: 520px;7  height: 520px;8  margin: 0;9}1011body {12  overflow: hidden;13  background: var(--bg);14  color: var(--t0);15  font-family: var(--font-ui);16  font-weight: 300;17  position: relative;18}1920* {21  box-sizing: border-box;22}2324button,25input,26textarea,27select {28  font: inherit;29}3031button {32  border: 0;33}3435.popup-root {36  position: relative;37  overflow: hidden;38}3940.peach-theme {41  color: var(--peach-t0);42  font-family: var(--font-ui);43  font-weight: 300;44  box-sizing: border-box;45  text-align: left;46}47.peach-theme, .peach-theme * { box-sizing: inherit; }4849.peach-brand-mark {50  width: 14px;51  height: 14px;52  flex-shrink: 0;53}5455.peach-status-pip.is-hidden {56  display: none;57}5859.peach-status-pip.unlocked {60  background: var(--peach-health-ok);61  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);62}6364.peach-status-pip.pulse {65  animation: pip-pulse 400ms var(--peach-curve-settle) both;66}6768/* Shell */69.peach-shell, .peach-screen {70  background:71    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),72    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),73    var(--peach-bg);74  border: 1px solid var(--peach-t3);75  box-shadow:76    0 2px 8px rgba(0,0,0,0.55),77    0 14px 48px rgba(0,0,0,0.7),78    0 0 0 1px rgba(240,232,216,0.04);79  overflow: hidden;80}81.peach-shell {82  display: grid;83  grid-template-rows: auto 1fr;84  min-height: 520px;85  position: relative;86  isolation: isolate;87}8889.peach-shell[data-surface="extension"] {90  width: min(320px, 100vw);91  border-radius: 0;92  height: 520px;93  max-height: 520px;94  overflow: hidden;95}9697/* ── Lock screen – full-window lock/create stage ── */98.lock-screen--vault-stage {99  display: flex;100  flex-direction: column;101  gap: 18px;102  padding: 20px 18px 18px;103  justify-content: flex-start;104}105.lock-screen--vault-stage .peach-lock-panel {106  margin-top: auto;107}108.peach-lock-headline--unlock {109  max-width: 220px;110}111.peach-lock-hero--unlock {112  padding-top: 14px;113}114.peach-lock-panel--unlock {115  gap: 10px;116}117118.peach-lock-restore-link {119  background: transparent;120  border: none;121  cursor: pointer;122  font-family: var(--font-mono);123  font-size: 0.625rem;124  letter-spacing: 0.08em;125  color: var(--t1);126  padding: 5px 0;127  text-align: left;128  transition: color 150ms ease;129}130131.peach-lock-restore-link:hover {132  color: var(--t0);133}134.peach-shell[data-surface="extension"] .peach-stage {135  min-height: 250px;136}137138/* Screen (unlock) */139.peach-screen {140  width: min(320px, 100vw);141  min-height: 100%;142  height: 100%;143  border-radius: 0;144  padding: 16px 20px 18px;145  display: grid;146  gap: 14px;147}148.peach-screen[data-motion-phase="enter"] {149  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;150}151.peach-screen-header { min-height: 20px; }152153/* Wordmark */154.peach-wordmark {155  margin: 0;156  font-family: var(--font-display);157  font-size: 0.9375rem;158  font-style: italic;159  letter-spacing: 0.03em;160  color: var(--peach-t0);161  display: inline-flex;162  min-height: 1em;163}164165/* Motion text / char animation */166.peach-motion-text { display: inline-flex; min-height: 1em; }167.peach-motion-char {168  display: inline-block;169  white-space: pre;170  opacity: 0;171  transform: translateY(0.22em);172  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;173  animation-delay: calc(var(--peach-char-index, 0) * 20ms);174}175176/* Chrome */177.peach-chrome {178  position: relative;179  z-index: 10;180  padding: 16px 20px 0;181  display: flex;182  justify-content: space-between;183  align-items: center;184  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense185     fallback) per §15 regression guard. Without pointer-events:none, the186     empty header strip also sits above `.peach-overlay-view` (z-index:2)187     and swallows clicks meant for an overlay's back button / top search. */188  pointer-events: none;189}190.peach-chrome .peach-btn { pointer-events: auto; }191.peach-chrome.is-hidden-for-overlay,192.peach-search-wrap.is-hidden-for-overlay {193  opacity: 0;194  visibility: hidden;195  pointer-events: none;196}197/* Chirp-sync owns its own surface and header — fully collapse the global198   chrome row so the warm gradient reaches the popup edge. */199.peach-chrome.is-collapsed,200.peach-search-wrap.is-collapsed {201  display: none;202}203.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }204.peach-status-pip {205  width: 5px;206  height: 5px;207  border-radius: 50%;208  background: var(--peach-t3);209  display: inline-flex;210  flex-shrink: 0;211  transition: background 400ms ease, box-shadow 400ms ease;212}213.peach-chrome-actions { display: flex; gap: 6px; }214215/* Shell body */216.peach-shell-body {217  position: relative;218  display: grid;219  grid-template-rows: 1fr auto;220  min-height: 0;221  min-width: 0;222  width: 100%;223  overflow: hidden;224  height: 100%;225}226.peach-shell-veil {227  position: absolute; inset: 0;228  background: #000; opacity: 0;229  pointer-events: none; z-index: 1;230}231.peach-shell[data-motion-phase="enter"] .peach-shell-body {232  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;233}234.peach-shell[data-motion-phase="exit"] .peach-shell-veil {235  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;236}237238/* Content frame */239.peach-content-frame {240  display: grid;241  grid-template-rows: 1fr auto;242  grid-template-columns: minmax(0, 1fr);243  align-content: start;244  min-height: 0;245  min-width: 0;246  overflow: hidden;247  transition: opacity 80ms ease, transform 80ms ease;248}249.peach-content-frame.navigating {250  opacity: 0.93;251  transform: translateX(2px);252}253.peach-content-frame[data-content-phase="enter"] {254  animation: peach-content-enter 135ms ease-out both;255}256.peach-content-frame[data-content-phase="exit"] {257  animation: peach-content-exit 95ms ease-in forwards;258}259.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }260261/* Stage */262.peach-stage {263  padding: 10px 20px 12px;264  display: grid;265  gap: 12px;266  align-content: start;267  min-width: 0;268  min-height: 0;269  max-width: 100%;270  overflow-y: auto;271  overflow-x: hidden;272  scrollbar-width: none;273  -ms-overflow-style: none;274  overscroll-behavior: contain;275}276.peach-stage::-webkit-scrollbar { display: none; }277278/* Entry name */279.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }280.peach-entry-header {281  position: relative;282  z-index: 1;283  display: flex;284  align-items: flex-start;285  gap: 6px;286  min-width: 0;287}288.peach-entry-header-name {289  flex: 1;290  min-width: 0;291}292.peach-entry-name {293  margin: 0;294  padding-bottom: 0.12em;295  font-family: var(--font-display);296  font-style: italic; font-weight: 400;297  font-size: 44px; line-height: 0.95;298  color: var(--peach-t0);299  display: -webkit-box;300  -webkit-line-clamp: 2;301  -webkit-box-orient: vertical;302  overflow: hidden;303  text-wrap: balance;304}305.peach-entry-name--lg { font-size: 40px; }306.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }307.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }308.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }309310/* Trash icon in entry header */311.peach-entry-trash-btn {312  flex-shrink: 0;313  padding: 4px;314  margin-top: 4px;315  background: transparent;316  border: none;317  cursor: pointer;318  color: var(--peach-t2);319  border-radius: 4px;320  transition: color 140ms ease, background 140ms ease;321  display: flex;322  align-items: center;323  justify-content: center;324}325.peach-entry-trash-btn:hover {326  color: var(--peach-t1);327  background: var(--peach-t3);328}329.peach-entry-trash-confirm {330  display: flex;331  align-items: center;332  gap: 6px;333  flex-shrink: 0;334  margin-top: 6px;335  flex-wrap: nowrap;336}337.peach-entry-trash-confirm-label {338  font-family: var(--font-mono);339  font-size: 0.5625rem;340  letter-spacing: 0.1em;341  color: var(--peach-t2);342  white-space: nowrap;343}344.peach-entry-name-button {345  padding: 0;346  background: transparent;347  text-align: left;348  cursor: pointer;349  max-width: 100%;350  overflow: hidden;351  display: block;352}353.peach-entry-name-char {354  display: inline-block;355  white-space: pre;356  opacity: 0;357  transform: translateY(0.22em);358  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;359  animation-delay: calc(var(--char-index, 0) * 20ms);360}361362/* Domain */363.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }364.peach-domain-row {365  width: 100%; border: 0; background: transparent; color: inherit;366  padding: 0; display: flex; justify-content: space-between; align-items: baseline;367  cursor: default;368}369.peach-domain-value {370  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;371  font-size: 0.625rem; font-style: italic;372  letter-spacing: 0.12em; color: var(--peach-t1);373}374375/* Fields */376.peach-fields { display: grid; gap: 10px; }377.peach-field-card { display: grid; gap: 7px; }378.peach-label {379  font-family: Inter, system-ui, sans-serif;380  text-transform: uppercase; letter-spacing: 0.2em;381  font-size: 0.5rem; color: var(--peach-t2);382}383.peach-add-field-btn {384  align-self: flex-start;385  background: none; border: none; padding: 2px 0;386  font-family: Inter, system-ui, sans-serif;387  font-size: 0.6875rem; color: var(--peach-accent);388  cursor: pointer; opacity: 0.75;389  letter-spacing: 0.02em;390}391.peach-add-field-btn:hover { opacity: 1; }392.peach-field-value-row {393  display: flex; justify-content: space-between;394  align-items: center; gap: 8px;395  min-width: 0;396}397.peach-field-value {398  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;399  font-size: 0.8125rem; color: var(--peach-t1);400  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;401  flex: 1;402  min-width: 0;403}404.peach-password-value {405  display: inline-flex;406  align-items: center;407  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;408  font-size: 1rem; letter-spacing: 0.3em; color: var(--peach-t0);409  overflow: hidden;410  text-overflow: ellipsis;411  white-space: nowrap;412  flex: 1;413  min-width: 0;414  max-width: 100%;415}416.peach-password-value.is-revealed {417  font-size: 0.875rem;418  letter-spacing: 0.08em;419}420.peach-password-text,421.peach-password-mask {422  display: block;423  width: 100%;424  overflow: hidden;425  white-space: nowrap;426  /* Render as uniform mid-line bullets, not baseline periods */427  font-family: Inter, system-ui, sans-serif;428  font-size: 0.625rem;429  letter-spacing: 3px;430  user-select: none;431}432.peach-field-actions { display: flex; gap: 4px; align-items: center; }433.peach-password-strength { display: flex; align-items: center; gap: 8px; }434.peach-strength-bar { display: flex; gap: 3px; }435.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }436.peach-strength-label {437  font-family: "IBM Plex Mono", monospace;438  font-style: italic;439  font-size: 0.5625rem;440  font-weight: 300;441  min-width: 36px;442  text-align: right;443  color: var(--peach-t2);444  letter-spacing: 0.06em;445}446447.peach-strength-hairline {448  display: flex;449  align-items: center;450  gap: 10px;451  margin-top: -2px;452}453454.peach-strength-hairline-track {455  flex: 1;456  height: 3px;457  border-radius: 2px;458  background: var(--peach-s2);459  overflow: hidden;460}461462.peach-strength-hairline-fill {463  height: 100%;464  border-radius: 2px;465  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),466    background 400ms ease;467}468469/* Note content (display) */470.peach-note-content {471  border-top: 1px solid var(--peach-t3);472  padding-top: 10px;473  font-family: var(--font-display);474  font-size: 0.9375rem;475  line-height: 1.75;476  color: var(--peach-t1);477}478479/* ── Inline editing ─────────────────────────────────────────────────── */480481/* Clickable display values */482.peach-inline-clickable {483  cursor: text;484  border-radius: 3px;485  transition: background 150ms ease;486}487.peach-inline-clickable:hover {488  background: rgba(240, 232, 216, 0.05);489}490491/* Subtle "edit" hint that appears on hover */492.peach-inline-edit-hint {493  font-family: Inter, system-ui, sans-serif;494  font-size: 0.5625rem;495  text-transform: uppercase;496  letter-spacing: 0.14em;497  color: var(--peach-t2);498  opacity: 0;499  transition: opacity 120ms ease;500  pointer-events: none;501  margin-left: 6px;502  flex-shrink: 0;503}504.peach-domain-row:hover .peach-inline-edit-hint {505  opacity: 1;506}507508/* Title editing */509.peach-inline-title-wrap {510  display: flex;511  flex-direction: column;512  gap: 6px;513}514.peach-inline-title-input {515  font-family: var(--font-display);516  font-style: italic;517  font-weight: 400;518  font-size: 40px;519  line-height: 0.95;520  color: var(--peach-t0);521  background: transparent;522  border: none;523  border-bottom: 1px solid var(--peach-accent);524  outline: none;525  width: 100%;526  padding: 2px 0;527}528529/* Generic inline field */530.peach-inline-field-wrap {531  display: flex;532  flex-direction: column;533  gap: 6px;534}535.peach-inline-input {536  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;537  font-size: 0.8125rem;538  color: var(--peach-t0);539  background: transparent;540  border: none;541  border-bottom: 1px solid var(--peach-accent);542  outline: none;543  width: 100%;544  padding: 3px 0;545}546.peach-inline-textarea {547  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;548  font-size: 0.6875rem;549  line-height: 1.7;550  color: var(--peach-t0);551  background: rgba(240, 232, 216, 0.04);552  border: 1px solid var(--peach-accent);553  border-radius: 4px;554  outline: none;555  width: 100%;556  padding: 8px;557  resize: vertical;558  min-height: 80px;559}560561/* Save / cancel row */562.peach-inline-actions {563  display: flex;564  gap: 6px;565  align-items: center;566}567.peach-inline-save-btn,568.peach-inline-cancel-btn {569  display: inline-flex;570  align-items: center;571  justify-content: center;572  width: 26px;573  height: 26px;574  border-radius: 4px;575  border: none;576  cursor: pointer;577  transition: background 140ms ease, opacity 140ms ease;578  flex-shrink: 0;579}580.peach-inline-save-btn {581  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);582  color: var(--peach-accent);583}584.peach-inline-save-btn:hover:not(:disabled) {585  background: color-mix(in srgb, var(--peach-accent) 30%, transparent);586}587.peach-inline-cancel-btn {588  background: rgba(240, 232, 216, 0.06);589  color: var(--peach-t2);590}591.peach-inline-cancel-btn:hover:not(:disabled) {592  background: rgba(240, 232, 216, 0.12);593  color: var(--peach-t1);594}595.peach-inline-save-btn:disabled,596.peach-inline-cancel-btn:disabled {597  opacity: 0.4;598  cursor: not-allowed;599}600601/* Inline password generator wrapper */602.peach-inline-generator-wrap {603  margin-top: 10px;604  padding-top: 10px;605  border-top: 1px solid var(--peach-t3);606  display: flex;607  flex-direction: column;608  gap: 8px;609}610.peach-inline-generator-cancel {611  align-self: flex-start;612  font-size: 0.6875rem;613  color: var(--peach-t2);614}615616/* "is-editing" card state */617.peach-field-card.is-editing {618  background: rgba(240, 232, 216, 0.02);619  border-radius: 6px;620  padding: 8px;621  margin: -8px;622}623624/* Inline tag editor on Entry detail view */625.peach-inline-tag-editor {626  display: flex;627  flex-direction: column;628  gap: 6px;629}630631/* Quiet inline "+ add X" link in the entry detail body */632.peach-entry-add-link {633  justify-self: start;634  margin-top: 8px;635}636637/* Additional URLs editor revealed by clicking the URL field */638.peach-additional-urls {639  display: flex;640  flex-direction: column;641  gap: 6px;642  margin-top: 8px;643}644.peach-additional-urls-label {645  font-size: 0.5625rem;646  letter-spacing: 0.1em;647  text-transform: uppercase;648  color: var(--peach-t2);649  margin-bottom: 2px;650}651/* UI-1 / HV-1b: dismissible sync alert banners at the top of the vault view. */652.peach-sync-alerts {653  display: flex;654  flex-direction: column;655  gap: 6px;656  padding: 8px 12px 0;657}658.peach-sync-alert {659  display: flex;660  align-items: flex-start;661  gap: 8px;662  padding: 8px 10px;663  border-radius: 7px;664  background: color-mix(in srgb, #C8A840 14%, transparent);665  border: 1px solid color-mix(in srgb, #C8A840 38%, transparent);666}667.peach-sync-alert-text {668  flex: 1;669  font-family: "IBM Plex Mono", "SFMono-Regular", monospace;670  font-size: 10px;671  line-height: 1.45;672  color: var(--peach-t0);673}674.peach-sync-alert-dismiss {675  flex-shrink: 0;676  background: none;677  border: none;678  color: var(--peach-t2);679  font-size: 14px;680  line-height: 1;681  cursor: pointer;682  padding: 0 2px;683}684.peach-sync-alert-dismiss:hover { color: var(--peach-t0); }685686/* UI-8 / LV-2: non-blocking homograph warning under the URL editor. */687.peach-homograph-warning {688  margin: 4px 0 2px;689  padding: 6px 8px;690  border-radius: 6px;691  background: color-mix(in srgb, var(--peach-breach) 12%, transparent);692  border: 1px solid color-mix(in srgb, var(--peach-breach) 36%, transparent);693  color: var(--peach-t1);694  font-size: 0.6875rem;695  line-height: 1.4;696}697.peach-additional-url-row {698  display: flex;699  align-items: center;700  gap: 6px;701}702.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }703.peach-additional-url-remove {704  background: transparent;705  border: 1px solid var(--peach-t3);706  color: var(--peach-t2);707  width: 22px;708  height: 22px;709  border-radius: 4px;710  cursor: pointer;711  font-size: 0.875rem;712  line-height: 1;713  display: inline-flex;714  align-items: center;715  justify-content: center;716  flex-shrink: 0;717  transition: color 120ms ease, border-color 120ms ease;718}719.peach-additional-url-remove:hover:not(:disabled) {720  color: var(--peach-accent);721  border-color: var(--peach-border-accent);722}723.peach-additional-urls-add { align-self: flex-start; }724725/* Delete row */726.peach-entry-delete-row {727  display: flex;728  align-items: center;729  gap: 8px;730  padding-top: 18px;731  margin-top: 8px;732  border-top: 1px solid var(--peach-t3);733}734.peach-delete-btn {735  font-size: 0.6875rem;736  color: var(--peach-t2);737  padding: 4px 0;738}739.peach-delete-confirm-text {740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;741  font-size: 0.6875rem;742  font-style: italic;743  color: var(--peach-t2);744  flex-shrink: 0;745}746747/* TOTP band */748.peach-totp-band {749  border-top: 1px solid var(--peach-t3);750  padding: 12px 20px 14px;751  position: relative;752  display: grid;753  grid-template-columns: 1fr auto;754  gap: 10px;755}756.peach-totp-main {757  min-width: 0;758  cursor: pointer;759  user-select: none;760}761.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }762.peach-totp-code-row {763  display: flex;764  align-items: flex-end;765  gap: 10px;766  min-width: 0;767}768.peach-totp-code {769  margin: 2px 0 0;770  font-family: var(--font-display);771  font-style: italic;772  font-weight: 300;773  font-size: 38px; color: var(--peach-accent);774  line-height: 0.95; min-height: 1em;775  min-width: 0;776}777.peach-totp-code-text {778  display: inline-flex;779  overflow: hidden;780  text-overflow: ellipsis;781  white-space: nowrap;782}783.peach-totp-copy-btn {784  margin-bottom: 2px;785  flex-shrink: 0;786  border-color: transparent;787}788.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }789.peach-totp-countdown {790  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;791  font-size: 22px; color: var(--peach-t1);792}793.peach-totp-ring { transform: rotate(-90deg); }794.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }795.peach-totp-ring-progress {796  fill: none; stroke: var(--peach-accent); stroke-width: 2;797  stroke-linecap: round;798  transition: stroke-dashoffset 1s linear, stroke 500ms ease;799}800/* Search bar */801.peach-search-wrap {802  border-top: 1px solid var(--peach-t3);803  background: var(--peach-s1);804  min-height: 54px; position: relative;805  box-shadow: inset 0 6px 18px transparent;806  transition: box-shadow 700ms ease;807}808.peach-search-wrap::before {809  content: "";810  position: absolute;811  left: 0;812  top: 0;813  height: 2px;814  width: var(--peach-totp-progress, 0%);815  background: var(--peach-accent);816  opacity: 0;817  transition: width 1s linear, opacity 180ms ease;818  pointer-events: none;819}820.peach-shell[data-totp-active="true"] .peach-search-wrap::before {821  opacity: 0.9;822}823.peach-shell[data-totp-active="true"] .peach-search-wrap {824  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);825}826827@keyframes peach-totp-code-flare {828  0%   { filter: brightness(1); }829  25%  { filter: brightness(1.3); }830  100% { filter: brightness(1); }831}832.peach-totp-code.is-hot {833  animation: peach-totp-code-flare 3000ms ease-in-out both;834}835.peach-search-bar {836  min-height: 54px;837  display: grid;838  grid-template-columns: auto minmax(0, 1fr) auto;839  align-items: center;840  gap: 8px; padding: 0 9px 0 12px;841}842.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }843.peach-search-input {844  border: 0; background: transparent; color: var(--peach-t0);845  font-family: var(--font-display);846  font-style: italic; font-size: 18px;847  outline: none; width: 100%; min-width: 0; padding: 0;848  caret-color: var(--peach-accent);849}850.peach-search-input::placeholder { color: var(--peach-t2); }851.peach-search-meta {852  display: grid;853  grid-auto-flow: column;854  align-items: center;855  justify-content: end;856  gap: 6px;857  min-width: max-content;858}859.peach-search-counter {860  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;861  font-size: 0.625rem; color: var(--peach-t2);862  display: inline-flex;863  align-items: center;864  line-height: 1;865}866.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }867868/* Buttons */869.peach-btn {870  border: 1px solid transparent; border-radius: 12px;871  background: transparent; color: var(--peach-t0);872  font-family: Inter, system-ui, sans-serif;873  font-size: 0.75rem; letter-spacing: 0.02em; padding: 8px 12px;874  cursor: pointer;875  transition:876    background-color var(--peach-dur-80) var(--peach-curve-arrival),877    color var(--peach-dur-80) var(--peach-curve-arrival),878    border-color var(--peach-dur-150) var(--peach-curve-arrival);879}880.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }881.peach-btn:disabled {882  opacity: 0.45;883  cursor: not-allowed;884}885.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 0.6875rem; }886.peach-btn--md { min-height: 38px; }887.peach-btn--accent {888  background: var(--peach-accent);889  color: rgba(0,0,0,0.92);890  font-weight: 500;891  box-shadow:892    0 1px 0 rgba(255,255,255,0.08) inset,893    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),894    0 3px 16px var(--peach-glow),895    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);896}897.peach-btn--accent:hover:not(:disabled) {898  background: var(--peach-accent);899  filter: brightness(1.10) saturate(1.05);900  box-shadow:901    0 1px 0 rgba(255,255,255,0.10) inset,902    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),903    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),904    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);905}906.peach-btn--ghost:not(.peach-icon-btn) { border-color: var(--peach-t3); color: var(--peach-t1); }907.peach-btn--ghost.peach-icon-btn { color: var(--peach-t1); }908.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }909.peach-icon-btn {910  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;911  display: inline-flex; align-items: center; justify-content: center;912  border-color: transparent;913  transition:914    color var(--peach-dur-80) var(--peach-curve-arrival),915    box-shadow var(--peach-dur-150) var(--peach-curve-arrival),916    background-color var(--peach-dur-80) var(--peach-curve-arrival);917}918.peach-icon-btn:hover:not(:disabled) {919  background: transparent;920  color: var(--peach-accent);921  box-shadow: 0 0 12px color-mix(in srgb, var(--peach-accent) 28%, transparent),922              0 0 4px color-mix(in srgb, var(--peach-accent) 16%, transparent);923}924925.peach-btn:focus-visible {926  outline: none;927  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);928}929930/* Lock button */931.peach-lock-icon { transform-origin: center; }932.peach-lock-btn { color: var(--peach-accent); }933.peach-lock-btn.is-locking .peach-lock-icon {934  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);935}936937/* Biometric unlock button */938.peach-biometric-btn {939  display: flex;940  align-items: center;941  justify-content: center;942  gap: 6px;943  margin-top: 8px;944  width: 100%;945}946947/* Copy button */948.peach-copy-btn {949  position: relative; overflow: hidden;950  color: var(--peach-t2); border-color: var(--peach-t3);951}952.peach-copy-icon {953  display: inline-flex; align-items: center; justify-content: center;954  position: relative; z-index: 1;955}956.peach-copy-icon-svg { display: block; }957.peach-copy-sheen {958  position: absolute; inset: 0;959  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%);960  opacity: 0; transform: scaleX(0.15); transform-origin: left center;961}962.peach-copy-btn.is-copied {963  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;964  box-shadow:965    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),966    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),967    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);968}969.peach-copy-btn.is-copied .peach-copy-icon {970  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;971}972.peach-copy-btn.is-copied .peach-copy-sheen {973  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;974}975.peach-copy-btn.is-retreat {976  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;977}978.peach-copy-btn.is-retreat .peach-copy-sheen {979  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;980}981.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }982.peach-copy-drain-bar {983  display: block; width: 100%; height: 100%;984  background: var(--peach-accent); opacity: 0.7;985  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;986}987988/* Unlock screen elements */989.peach-underline-input {990  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);991  padding: 6px 0; background: transparent; color: var(--peach-t0);992  outline: none;993  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;994  font-size: 0.8125rem;995  caret-color: var(--peach-accent);996}997.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }998.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }999.peach-hint {1000  margin: 0;1001  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1002  font-size: 0.625rem; color: var(--peach-t2);1003}1004.peach-unlock-footer {1005  margin-top: 4px; display: flex; align-items: center; gap: 7px;1006  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1007  font-size: 0.625rem; color: var(--peach-t2);1008}1009.peach-unlock-footer--lock {1010  padding-top: 2px;1011}10121013/* Breach badge */1014.peach-breach-badge {1015  display: flex;1016  position: relative;1017  z-index: 1;1018  align-items: center;1019  gap: 7px;1020  font-size: 0.5625rem;1021  color: var(--peach-breach);1022  padding: 5px 10px;1023  margin-bottom: 4px;1024  border-radius: 8px;1025  background: rgba(220, 80, 60, 0.07);1026  border: 1px solid rgba(220, 80, 60, 0.18);1027  letter-spacing: 0.04em;1028}10291030.peach-password-value.is-breached {1031  color: rgba(220, 80, 60, 0.75);1032  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1033}10341035/* ── Overlay views ─────────────────────────────────────────────────── */1036.peach-overlay-view {1037  position: absolute;1038  inset: 0;1039  display: flex;1040  flex-direction: column;1041  background:1042    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1043    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1044    var(--peach-bg);1045  z-index: 2;1046  overflow: hidden;1047  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1048}10491050.peach-overlay-view:has(.stk-shell) {1051  background: var(--peach-bg);1052}1053@keyframes overlay-in {1054  from { opacity: 0; transform: translateY(8px); }1055  to   { opacity: 1; transform: translateY(0); }1056}1057.peach-overlay-view.ov-enter-up {1058  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1059}1060.peach-overlay-view.ov-exit-up {1061  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1062}1063.peach-overlay-view.ov-enter-right {1064  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1065}1066.peach-overlay-view.ov-exit-right {1067  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1068}10691070@keyframes ov-enter-up {1071  from { opacity: 0; transform: translateY(18px); }1072  to   { opacity: 1; transform: translateY(0); }1073}1074@keyframes ov-exit-up {1075  from { opacity: 1; transform: translateY(0); }1076  to   { opacity: 0; transform: translateY(-12px); }1077}1078@keyframes ov-enter-right {1079  from { opacity: 0; transform: translateX(20px); }1080  to   { opacity: 1; transform: translateX(0); }1081}1082@keyframes ov-exit-right {1083  from { opacity: 1; transform: translateX(0); }1084  to   { opacity: 0; transform: translateX(20px); }1085}10861087/* Overlay shared header */1088.peach-overlay-header {1089  padding: 10px 12px 8px;1090  display: flex;1091  align-items: center;1092  gap: 10px;1093  flex-shrink: 0;1094}1095/* Back button — circular pill matching the settings stack masthead (.stk-back) */1096.peach-overlay-header .peach-btn--ghost.peach-icon-btn {1097  width: 28px;1098  height: 28px;1099  flex: 0 0 28px;1100  border-radius: 999px;1101  border: 1px solid var(--peach-border);1102  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);1103  color: var(--peach-t1);1104  padding: 0;1105}1106.peach-overlay-header .peach-btn--ghost.peach-icon-btn:hover {1107  color: var(--peach-t0);1108  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);1109  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1110}1111.peach-overlay-title {1112  font-family: var(--font-display);1113  font-style: italic;1114  font-weight: 400;1115  font-size: 20px;1116  line-height: 1;1117  color: var(--peach-t0);1118  flex: 1;1119  text-align: center;1120}1121/* Balances the 28px back button so the title stays visually centred */1122.peach-overlay-spacer {1123  width: 28px;1124  flex: 0 0 28px;1125}11261127.peach-overlay-card {1128  background: var(--peach-s1);1129  border: 1px solid var(--peach-t3);1130  border-radius: 12px;1131  overflow: hidden;1132  width: 100%;1133}11341135.peach-onboarding-alt-actions {1136  display: flex;1137  flex-direction: column;1138  gap: 4px;1139  padding: 0;1140}11411142.peach-settings-copy {1143  margin: 0 0 10px;1144  font-size: 0.6875rem;1145  line-height: 1.5;1146  color: var(--peach-t2);1147}11481149.peach-settings-copy strong {1150  color: var(--peach-t0);1151}11521153.peach-settings-copy--spacious {1154  margin-bottom: 12px;1155}11561157.peach-settings-copy--result {1158  color: var(--peach-accent);1159  font-size: 0.8125rem;1160  text-align: center;1161  padding: 8px 0;1162}11631164.peach-settings-copy--danger {1165  color: var(--peach-breach);1166}11671168.peach-settings-copy--success {1169  color: var(--peach-accent);1170}11711172.peach-inline-feedback {1173  font-size: 0.6875rem;1174  margin: 10px 0 0;1175}11761177.peach-inline-feedback--ok {1178  color: var(--peach-accent);1179}11801181.peach-inline-feedback--error {1182  color: var(--peach-breach);1183}11841185.peach-inline-feedback--muted {1186  color: var(--peach-t2);1187  font-size: 0.625rem;1188  margin: 4px 0;1189}11901191.peach-inline-feedback--spaced {1192  margin-top: 12px;1193}11941195.peach-settings-actions--row {1196  display: flex;1197  gap: 6px;1198}11991200.peach-settings-actions--end {1201  margin-top: 14px;1202  justify-content: flex-end;1203}12041205.peach-settings-stack {1206  display: flex;1207  flex-direction: column;1208  gap: 6px;1209}12101211.peach-settings-stack--tight {1212  gap: 4px;1213}12141215.peach-settings-stack--spacious {1216  gap: 8px;1217}12181219.peach-settings-input {1220  width: 100%;1221  box-sizing: border-box;1222  padding: 8px 10px;1223  background: rgba(0, 0, 0, 0.22);1224  border: 1px solid transparent;1225  border-radius: 6px;1226  color: var(--peach-t0);1227  font-family: var(--font-ui);1228  font-size: 0.75rem;1229  outline: none;1230  transition: border-color 120ms ease, background 120ms ease;1231}12321233.peach-settings-input:focus {1234  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1235  background: rgba(0, 0, 0, 0.28);1236}12371238.peach-settings-input[type="password"] {1239  font-family: var(--font-mono);1240  letter-spacing: 0.04em;1241}12421243.peach-hidden-file-input {1244  display: none;1245}12461247.peach-checkbox-note {1248  display: flex;1249  align-items: flex-start;1250  gap: 8px;1251  font-size: 0.6875rem;1252  color: var(--peach-t1);1253  cursor: pointer;1254  margin: 12px 0;1255}12561257.peach-checkbox-note input {1258  margin-top: 1px;1259}12601261.peach-danger-notice {1262  background: rgba(220, 80, 60, 0.08);1263  border: 1px solid rgba(220, 80, 60, 0.2);1264  border-radius: 6px;1265  padding: 9px 11px;1266  font-size: 0.6875rem;1267  color: var(--peach-t1);1268  line-height: 1.5;1269}12701271.peach-info-notice {1272  font-size: 0.6875rem;1273  color: var(--peach-t1);1274  line-height: 1.5;1275  background: var(--surface-card);1276  border: 1px solid var(--peach-t3);1277  border-radius: 6px;1278  padding: 8px 10px;1279}12801281.peach-info-notice--warn {1282  border-color: rgba(220, 38, 38, 0.4);1283  background: rgba(220, 38, 38, 0.06);1284  color: rgba(220, 38, 38, 0.92);1285  margin-bottom: 8px;1286}12871288.peach-strength-row {1289  display: flex;1290  align-items: center;1291  gap: 8px;1292  margin-bottom: 10px;1293}12941295.peach-strength-track {1296  flex: 1;1297  height: 4px;1298  background: var(--peach-s2);1299  border-radius: 2px;1300  overflow: hidden;1301}13021303.peach-strength-fill {1304  height: 100%;1305  border-radius: 2px;1306  transition: width 120ms ease, background 120ms ease;1307}13081309/* ── Type selector tabs ── */1310.peach-type-tabs {1311  display: flex;1312  gap: 0;1313  background: var(--peach-t4);1314  border-radius: 8px;1315  padding: 3px;1316}13171318.peach-type-tab {1319  flex: 1;1320  display: flex;1321  align-items: center;1322  justify-content: center;1323  gap: 6px;1324  padding: 6px 10px;1325  border-radius: 6px;1326  border: none;1327  background: transparent;1328  cursor: pointer;1329  font-family: Inter, system-ui, sans-serif;1330  font-size: 0.6875rem;1331  font-weight: 400;1332  letter-spacing: 0.04em;1333  color: var(--peach-t1);1334  transition: background 150ms ease, color 150ms ease;1335}13361337.peach-type-tab.is-active {1338  background: var(--peach-s2);1339  color: var(--peach-t0);1340  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1341}13421343.peach-type-tab:not(.is-active):hover {1344  color: var(--peach-t0);1345}13461347.peach-type-tab svg {1348  opacity: 0.7;1349  flex-shrink: 0;1350}13511352.peach-type-tab.is-active svg {1353  opacity: 1;1354}13551356/* ── List view ───────────────────────────────────────────────────────── */1357.peach-list-top {1358  padding: 0 10px;1359  min-height: 46px;1360  display: flex;1361  align-items: center;1362  gap: 6px;1363  border-bottom: 1px solid var(--peach-t3);1364  flex-shrink: 0;1365  background: var(--peach-s1);1366}13671368.peach-vault-list {1369  flex: 1;1370  overflow-y: auto;1371  scrollbar-width: none;1372}1373.peach-vault-list::-webkit-scrollbar { display: none; }13741375/* Scrollbar — vault list */1376.peach-vault-list {1377  scrollbar-width: thin;1378  scrollbar-color: var(--peach-t3) transparent;1379}13801381.peach-vault-list::-webkit-scrollbar {1382  width: 3px;1383}13841385.peach-vault-list::-webkit-scrollbar-thumb {1386  background: var(--peach-t3);1387  border-radius: 2px;1388}13891390.peach-entry-row {1391  width: 100%;1392  display: flex;1393  align-items: center;1394  gap: 10px;1395  padding: 9px 16px;1396  background: transparent;1397  border: none;1398  border-bottom: 1px solid var(--peach-t3);1399  cursor: pointer;1400  color: inherit;1401  text-align: left;1402  transition: background 80ms ease;1403}1404.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1405.peach-entry-row:last-child { border-bottom: none; }1406.peach-entry-row.is-active {1407  box-shadow: inset 2px 0 0 var(--peach-accent);1408  background: rgba(240,232,216,0.03);1409}1410.peach-entry-row:focus-visible {1411  outline: none;1412  box-shadow: 0 0 0 1px var(--peach-border-accent);1413  background: rgba(240,232,216,0.03);1414}1415.peach-entry-row-icon {1416  width: 26px; height: 26px;1417  border-radius: 7px;1418  border: 1px solid var(--peach-t3);1419  display: flex; align-items: center; justify-content: center;1420  color: var(--peach-t2);1421  flex-shrink: 0;1422}1423.peach-entry-row-icon.is-breach {1424  border-color: rgba(220,80,60,0.3);1425  color: rgba(220,80,60,0.7);1426}14271428/* Title-initials chip used as the favicon fallback for login entries whose1429 * real favicon hasn't been cached by the browser yet (freshly-imported,1430 * never-visited domains). Background colour is hashed from the title so1431 * the same entry always shows the same chip. The chip fits the same1432 * 26×26 row icon slot the favicon would take. */1433.peach-favicon-initials {1434  display: inline-flex;1435  align-items: center;1436  justify-content: center;1437  width: 100%;1438  height: 100%;1439  border-radius: 4px;1440  font-family: "IBM Plex Mono", monospace;1441  font-size: 0.5625rem;1442  font-weight: 600;1443  letter-spacing: 0.04em;1444  color: rgba(240, 232, 216, 0.92);1445  text-transform: uppercase;1446  user-select: none;1447}1448.peach-entry-row-info { flex: 1; min-width: 0; }1449.peach-entry-row-name {1450  display: block;1451  font-family: var(--font-display);1452  font-size: 1.0625rem;1453  font-style: italic;1454  font-weight: 400;1455  color: var(--peach-t0);1456  line-height: 1.2;1457  white-space: nowrap;1458  overflow: hidden;1459  text-overflow: ellipsis;1460}1461.peach-entry-row-meta {1462  display: block;1463  font-family: "IBM Plex Mono", monospace;1464  font-size: 0.5625rem;1465  color: var(--peach-t2);1466  margin-top: 1px;1467  letter-spacing: 0.05em;1468}1469.peach-entry-row-dot {1470  width: 5px; height: 5px;1471  border-radius: 50%;1472  background: rgba(220,80,60,0.7);1473  flex-shrink: 0;1474}1475.peach-new-entry-row {1476  display: flex;1477  align-items: center;1478  justify-content: center;1479  gap: 6px;1480  width: 100%;1481  padding: 11px;1482  background: transparent;1483  border: none;1484  border-top: 1px solid var(--peach-t3);1485  color: var(--peach-t2);1486  font-family: "IBM Plex Mono", monospace;1487  font-size: 0.5625rem;1488  text-transform: uppercase;1489  letter-spacing: 0.14em;1490  cursor: pointer;1491  flex-shrink: 0;1492  transition: color 120ms ease, background 120ms ease;1493}1494.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14951496/* ── Multi-select mode ─────────────────────────────────────────────── */14971498/* Select-mode trigger button in sort bar — same shape as trash btn */1499.peach-sort-select-btn {1500  display: flex;1501  align-items: center;1502  justify-content: center;1503  padding: 3px 5px;1504  background: transparent;1505  border: none;1506  cursor: pointer;1507  color: var(--peach-t2);1508  border-radius: 4px;1509  transition: color 140ms ease, background 140ms ease;1510}1511.peach-sort-select-btn:hover {1512  color: var(--peach-t1);1513  background: var(--peach-t3);1514}15151516/* Sort bar in select mode */1517.peach-select-cancel-btn {1518  background: transparent;1519  border: none;1520  padding: 0 4px;1521  cursor: pointer;1522  font-family: "IBM Plex Mono", monospace;1523  font-size: 0.5625rem;1524  letter-spacing: 0.12em;1525  text-transform: uppercase;1526  color: var(--peach-t2);1527  transition: color 140ms ease;1528  flex-shrink: 0;1529}1530.peach-select-cancel-btn:hover { color: var(--peach-t0); }15311532.peach-select-count-label {1533  flex: 1;1534  text-align: center;1535  font-family: "IBM Plex Mono", monospace;1536  font-size: 0.5625rem;1537  letter-spacing: 0.14em;1538  text-transform: uppercase;1539  color: var(--peach-t1);1540}15411542.peach-select-all-btn {1543  background: transparent;1544  border: none;1545  padding: 0 4px;1546  cursor: pointer;1547  font-family: "IBM Plex Mono", monospace;1548  font-size: 0.5625rem;1549  letter-spacing: 0.12em;1550  text-transform: uppercase;1551  color: var(--peach-t2);1552  transition: color 140ms ease;1553  flex-shrink: 0;1554}1555.peach-select-all-btn:hover { color: var(--peach-accent); }15561557/* List in select mode */1558.peach-vault-list.is-selecting .peach-entry-row {1559  cursor: default;1560}1561.peach-vault-list.is-selecting .peach-entry-row:hover {1562  background: rgba(240,232,216,0.02);1563}1564.peach-vault-list.is-selecting .peach-entry-row.is-selected {1565  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1566}1567.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1568  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1569}15701571/* Select indicator circles in icon slot */1572.peach-entry-row-icon.is-select-icon {1573  color: var(--peach-t2);1574}1575.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1576  color: var(--peach-accent);1577}15781579/* Delete action bar at bottom (replaces new-entry row) */1580.peach-select-action-bar {1581  display: flex;1582  align-items: center;1583  justify-content: center;1584  gap: 7px;1585  width: 100%;1586  padding: 11px;1587  background: transparent;1588  border: none;1589  border-top: 1px solid var(--peach-t3);1590  color: var(--peach-t1);1591  font-family: "IBM Plex Mono", monospace;1592  font-size: 0.5625rem;1593  text-transform: uppercase;1594  letter-spacing: 0.14em;1595  cursor: pointer;1596  flex-shrink: 0;1597  transition: color 120ms ease, background 120ms ease;1598}1599.peach-select-action-bar:not(:disabled):hover {1600  color: var(--peach-t0);1601  background: rgba(220,80,60,0.06);1602}1603.peach-select-action-bar:not(:disabled):hover svg {1604  stroke: rgba(220,80,60,0.8);1605}1606.peach-select-action-bar:disabled,1607.peach-select-action-bar.is-empty {1608  color: var(--peach-t2);1609  cursor: default;1610  opacity: 0.5;1611}1612.peach-search-counter-list {1613  white-space: nowrap;1614  flex-shrink: 0;1615}1616.peach-list-empty {1617  min-height: 180px;1618  display: grid;1619  place-items: center;1620  color: var(--peach-t2);1621  font-family: "IBM Plex Mono", monospace;1622  font-size: 0.6875rem;1623}16241625/* ── Settings view ───────────────────────────────────────────────────── */1626.peach-settings-body {1627  flex: 1;1628  overflow-y: auto;1629  min-height: 0;1630  display: flex;1631  flex-direction: column;1632  padding: 2px 0 10px;1633}1634.peach-settings-group {1635  margin: 4px 10px;1636  padding: 9px 14px 11px;1637  border-radius: 12px;1638  border: 1px solid rgba(255, 255, 255, 0.07);1639  background: rgba(26, 20, 16, 0.60);1640  backdrop-filter: blur(10px) saturate(1.3);1641  -webkit-backdrop-filter: blur(10px) saturate(1.3);1642}16431644.peach-settings-group + .peach-settings-group {1645  margin-top: 6px;1646}16471648@supports not (backdrop-filter: blur(1px)) {1649  .peach-settings-group {1650    background: rgba(26, 20, 16, 0.90);1651    border-color: rgba(255, 255, 255, 0.09);1652    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1653  }1654}16551656.light .peach-settings-group,1657[data-theme="light"] .peach-settings-group {1658  background: rgba(245, 237, 226, 0.70);1659  border-color: rgba(26, 18, 8, 0.08);1660  backdrop-filter: blur(10px) saturate(1.2);1661  -webkit-backdrop-filter: blur(10px) saturate(1.2);1662}16631664@supports not (backdrop-filter: blur(1px)) {1665  .light .peach-settings-group,1666  [data-theme="light"] .peach-settings-group {1667    background: rgba(245, 237, 226, 0.97);1668    border-color: rgba(26, 18, 8, 0.10);1669  }1670}1671.peach-export-intro {1672  padding-bottom: 8px;1673}1674.peach-export-card {1675  display: grid;1676  gap: 10px;1677}1678.peach-rune-canvas {1679  border-radius: 8px;1680  background: rgba(0, 0, 0, 0.22);1681  flex: 1;1682  align-self: center;1683}1684.peach-script-input {1685  font-family: "PeachScript", monospace;1686  font-size: 0.6875rem;1687  line-height: 1.9;1688  letter-spacing: 0.06em;1689  color: var(--peach-t0);1690  background: rgba(0, 0, 0, 0.22);1691  border: none;1692  border-radius: 6px;1693  padding: 12px;1694  width: 100%;1695  min-height: 96px;1696  resize: vertical;1697  word-break: break-all;1698  scrollbar-width: none;1699  -ms-overflow-style: none;1700}17011702.peach-script-input::-webkit-scrollbar { display: none; }1703.peach-csv-warning {1704  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1705  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1706  color: var(--peach-t0);1707  border-radius: 6px;1708  padding: 10px 12px;1709  margin-bottom: 8px;1710  font-size: 0.75rem;1711  line-height: 1.45;1712}1713.peach-export-card--primary {1714  background:1715    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1716}17171718/* Export menu — distribute the three format cards across the popup. */1719.peach-export-menu {1720  display: flex;1721  flex-direction: column;1722  flex: 1;1723  min-height: 0;1724}1725.peach-export-menu .peach-settings-group {1726  flex: 1;1727  display: flex;1728  flex-direction: column;1729  justify-content: center;1730  gap: 10px;1731}17321733/* Result view — the script-string fills the remaining vertical surface. */1734.peach-export-result-group {1735  flex: 1;1736  display: flex;1737  flex-direction: column;1738  min-height: 0;1739  border-bottom: none;1740}1741.peach-export-result-group .peach-export-card {1742  flex: 1;1743  min-height: 0;1744  display: flex;1745  flex-direction: column;1746  gap: 10px;1747}1748.peach-export-result-group .peach-export-card-copy {1749  flex-shrink: 0;1750}1751.peach-export-result-group .peach-settings-label {1752  flex-shrink: 0;1753}1754.peach-export-result-group button {1755  flex-shrink: 0;1756}1757.peach-export-card-head {1758  display: flex;1759  align-items: center;1760  justify-content: space-between;1761  gap: 10px;1762}1763.peach-export-card-copy {1764  margin: 0;1765  font-size: 0.75rem;1766  line-height: 1.55;1767  color: var(--peach-t1);1768}1769.peach-export-note {1770  margin: 0;1771  font-size: 0.625rem;1772  line-height: 1.5;1773  color: var(--peach-t2);1774}1775.peach-export-strength-track {1776  height: 3px;1777  background: var(--peach-border);1778  border-radius: 2px;1779  margin: 4px 0 2px;1780  overflow: hidden;1781}1782.peach-export-strength-fill {1783  height: 100%;1784  border-radius: 2px;1785  transition: width 250ms ease, background 250ms ease;1786}1787.peach-export-strength-warn {1788  margin: 0;1789  font-size: 0.625rem;1790  line-height: 1.5;1791  color: #e84040;1792  font-family: "IBM Plex Mono", monospace;1793}1794.peach-export-strength-hint {1795  margin: 0;1796  font-size: 0.625rem;1797  line-height: 1.5;1798  color: var(--peach-t2);1799  font-family: "IBM Plex Mono", monospace;1800}1801.peach-export-pill {1802  display: inline-flex;1803  align-items: center;1804  padding: 4px 8px;1805  border-radius: 999px;1806  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1807  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1808  color: var(--peach-accent);1809  font-family: "IBM Plex Mono", monospace;1810  font-size: 0.5rem;1811  letter-spacing: 0.12em;1812  text-transform: uppercase;1813  white-space: nowrap;1814}1815.peach-export-pill--danger {1816  border-color: rgba(220,80,60,0.22);1817  background: rgba(220,80,60,0.08);1818  color: var(--peach-breach);1819}1820.peach-settings-label {1821  margin: 0 0 6px;1822  font-family: "IBM Plex Mono", monospace;1823  font-size: 0.5rem;1824  text-transform: uppercase;1825  letter-spacing: 0.18em;1826  color: var(--peach-t2);1827}1828.peach-settings-row {1829  display: flex;1830  align-items: center;1831  justify-content: space-between;1832  gap: 12px;1833  min-height: 34px;1834  padding: 6px 0;1835  font-size: 0.8125rem;1836  color: var(--peach-t1);1837}1838.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1839.peach-settings-value {1840  font-family: "IBM Plex Mono", monospace;1841  font-size: 0.625rem;1842  color: var(--peach-t2);1843}18441845.peach-settings-value--status {1846  display: flex;1847  align-items: center;1848  gap: 6px;1849}18501851.peach-settings-link {1852  font-family: "IBM Plex Mono", monospace;1853  font-size: 0.625rem;1854  color: var(--peach-accent);1855  text-decoration: none;1856  cursor: pointer;1857}1858.peach-settings-link:hover {1859  text-decoration: underline;1860}18611862.peach-settings-row--stack {1863  flex-direction: column;1864  align-items: stretch;1865  gap: 6px;1866}18671868.peach-settings-row--top {1869  align-items: flex-start;1870}18711872.peach-settings-row-main {1873  display: flex;1874  flex-direction: column;1875  gap: 4px;1876  flex: 1;1877}1878.peach-toggle {1879  width: 28px; height: 16px;1880  border-radius: 999px;1881  background: var(--peach-t3);1882  border: 1px solid var(--peach-t3);1883  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1884  flex-shrink: 0;1885  transition: background 200ms ease, border-color 200ms ease;1886  cursor: pointer;1887}1888.peach-toggle.is-on {1889  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1890  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1891}1892.peach-toggle-knob {1893  width: 10px; height: 10px;1894  border-radius: 50%;1895  background: var(--peach-t2);1896  flex-shrink: 0;1897  transform: translateX(0px);1898  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1899}1900.peach-toggle.is-on .peach-toggle-knob {1901  background: var(--peach-accent);1902  transform: translateX(12px);1903}1904.peach-settings-footer {1905  display: flex;1906  align-items: center;1907  gap: 8px;1908  margin-top: auto;1909  padding: 14px 16px 8px;1910  font-family: "IBM Plex Mono", monospace;1911  font-size: 0.5625rem;1912  color: var(--peach-t2);1913}19141915/* ── Settings home navigation ──────────────────────────────────────────── */1916.peach-settings-nav-label {1917  margin: 0 0 2px;1918  padding: 12px 16px 4px;1919  font-family: "IBM Plex Mono", monospace;1920  font-size: 0.5rem;1921  text-transform: uppercase;1922  letter-spacing: 0.18em;1923  color: var(--peach-t2);1924}19251926.peach-settings-cat-row {1927  display: flex;1928  align-items: center;1929  gap: 10px;1930  width: 100%;1931  padding: 9px 16px;1932  background: none;1933  border: none;1934  border-bottom: 1px solid var(--peach-t3);1935  cursor: pointer;1936  text-align: left;1937  color: inherit;1938  transition: background var(--peach-dur-80) ease;1939}1940.peach-settings-cat-row:hover {1941  background: var(--peach-t3);1942}1943.peach-settings-cat-row:last-child {1944  border-bottom: none;1945}19461947.peach-settings-cat-icon {1948  width: 28px;1949  height: 28px;1950  border-radius: 7px;1951  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1952  color: var(--peach-accent);1953  display: flex;1954  align-items: center;1955  justify-content: center;1956  flex-shrink: 0;1957}1958/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1959   Darken the icon stroke to ink and bump the bg tint so the icon reads1960   sharply while the cell still feels accent-tinted. */1961.light .peach-settings-cat-icon {1962  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1963  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1964}19651966.peach-settings-cat-content {1967  flex: 1;1968  display: flex;1969  flex-direction: column;1970  gap: 2px;1971  min-width: 0;1972}19731974.peach-settings-cat-name {1975  font-size: 0.8125rem;1976  font-weight: 450;1977  color: var(--peach-t0);1978  line-height: 1.2;1979}19801981.peach-settings-cat-desc {1982  font-size: 0.625rem;1983  color: var(--peach-t2);1984  line-height: 1.3;1985  white-space: nowrap;1986  overflow: hidden;1987  text-overflow: ellipsis;1988}19891990.peach-settings-cat-chevron {1991  color: var(--peach-t2);1992  flex-shrink: 0;1993  opacity: 0.5;1994}19951996/* ── Settings sub-view section labels ──────────────────────────────────── */1997.peach-settings-sub-label {1998  margin: 12px 0 4px;1999  font-family: "IBM Plex Mono", monospace;2000  font-size: 0.5rem;2001  text-transform: uppercase;2002  letter-spacing: 0.18em;2003  color: var(--peach-t2);2004}2005.peach-settings-sub-label:first-child {2006  margin-top: 4px;2007}20082009/* ── Settings: collapsible Advanced section ─────────────────────────────── */2010.peach-settings-advanced-toggle {2011  display: flex;2012  align-items: center;2013  justify-content: space-between;2014  width: 100%;2015  background: none;2016  border: none;2017  cursor: pointer;2018  padding: 12px 0 4px;2019  margin: 0;2020  color: inherit;2021}2022.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {2023  color: var(--peach-t1);2024}2025.peach-settings-advanced-chevron {2026  font-size: 0.5625rem;2027  color: var(--peach-t3);2028  letter-spacing: 0;2029  transition: color 120ms ease;2030}20312032/* ── Feedback form ──────────────────────────────────────────────────────── */2033.peach-feedback-group {2034  flex: 1;2035  display: flex;2036  flex-direction: column;2037  border-bottom: none;2038}20392040.peach-feedback-intro {2041  margin: 4px 0 14px;2042  font-size: 0.75rem;2043  line-height: 1.55;2044  color: var(--peach-t1);2045}20462047.peach-feedback-chips {2048  display: flex;2049  flex-wrap: wrap;2050  gap: 6px;2051  margin-bottom: 14px;2052}20532054.peach-feedback-chip {2055  padding: 4px 10px;2056  border-radius: 999px;2057  border: 1px solid var(--peach-t3);2058  background: none;2059  color: var(--peach-t2);2060  font-size: 0.6875rem;2061  font-family: var(--font-ui);2062  cursor: pointer;2063  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2064    background var(--peach-dur-80) ease;2065}2066.peach-feedback-chip:hover {2067  border-color: var(--peach-t2);2068  color: var(--peach-t1);2069}2070.peach-feedback-chip.is-active {2071  border-color: color-mix(in srgb, var(--peach-accent) 82%, white 18%);2072  background: color-mix(in srgb, var(--peach-accent) 22%, rgba(255, 255, 255, 0.08));2073  color: color-mix(in srgb, var(--peach-accent) 86%, white 14%);2074  box-shadow:2075    0 0 0 1px color-mix(in srgb, var(--peach-accent) 42%, transparent),2076    0 0 14px color-mix(in srgb, var(--peach-accent) 22%, transparent);2077  font-weight: 700;2078}20792080.peach-feedback-textarea {2081  flex: 1;2082  width: 100%;2083  min-height: 120px;2084  box-sizing: border-box;2085  background: rgba(0, 0, 0, 0.22);2086  border: 1px solid transparent;2087  border-radius: 6px;2088  color: var(--peach-t0);2089  font-size: 0.75rem;2090  font-family: var(--font-ui);2091  line-height: 1.5;2092  padding: 8px 10px;2093  resize: none;2094  outline: none;2095  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2096}2097.peach-feedback-textarea:focus {2098  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2099  background: rgba(0, 0, 0, 0.28);2100}2101.peach-feedback-textarea:focus {2102  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2103}2104.peach-feedback-textarea::placeholder {2105  color: var(--peach-t2);2106}21072108.peach-feedback-meta {2109  margin: 6px 0 0;2110  font-size: 0.625rem;2111  color: var(--peach-t2);2112  font-family: "IBM Plex Mono", monospace;2113}21142115.peach-feedback-result {2116  margin: 8px 0 0;2117  font-size: 0.6875rem;2118  font-family: "IBM Plex Mono", monospace;2119}2120.peach-feedback-result--ok { color: var(--peach-sync-ok); }2121.peach-feedback-result--err { color: var(--peach-breach); }21222123.peach-feedback-submit {2124  width: 100%;2125  margin-top: 12px;2126  justify-content: center;2127}21282129.peach-feedback-anon {2130  margin: 8px 0 0;2131  font-size: 0.625rem;2132  color: var(--peach-t2);2133  text-align: center;2134}21352136.peach-feedback-thanks {2137  margin: auto 0;2138  padding: 18px 14px;2139  border: 1px solid color-mix(in srgb, var(--peach-accent) 42%, transparent);2140  border-radius: 8px;2141  background:2142    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 16%, transparent), transparent),2143    rgba(0, 0, 0, 0.18);2144  color: var(--peach-t1);2145  text-align: center;2146}21472148.peach-feedback-thanks p {2149  margin: 0;2150  font-size: 0.75rem;2151  line-height: 1.5;2152}21532154.peach-feedback-thanks-title {2155  color: var(--peach-t0);2156  font-family: "Cormorant Garamond", serif;2157  font-size: 1.375rem !important;2158  line-height: 1.1 !important;2159  margin-bottom: 8px !important;2160}21612162.peach-passkey-badge {2163  margin-left: 8px;2164  font-size: 0.625rem;2165  letter-spacing: 0.06em;2166  text-transform: uppercase;2167  color: var(--peach-t2);2168  font-family: var(--font-ui);2169  vertical-align: middle;2170}21712172.peach-passkey-delete-btn {2173  color: var(--peach-breach);2174  border-color: rgba(229, 85, 85, 0.25);2175}21762177.peach-passkey-delete-confirm {2178  display: flex;2179  align-items: center;2180  gap: 8px;2181  padding: 8px 10px;2182  background: rgba(229, 85, 85, 0.06);2183  border: 1px solid rgba(229, 85, 85, 0.2);2184  border-radius: 6px;2185}21862187.peach-passkey-delete-confirm-copy {2188  flex: 1;2189  font-size: 0.6875rem;2190  color: var(--peach-t1);2191}21922193.peach-passkey-delete-btn--confirm {2194  color: var(--peach-breach);2195  border-color: rgba(229, 85, 85, 0.4);2196}21972198.peach-passkey-activity {2199  flex-direction: column;2200  align-items: flex-start;2201  gap: 4px;2202}22032204.peach-passkey-meta {2205  font-size: 0.6875rem;2206  color: var(--peach-t2);2207}22082209.peach-passkey-actions {2210  position: relative;2211  z-index: 1;2212  margin-top: 14px;2213  display: flex;2214  flex-direction: column;2215  gap: 8px;2216}22172218.peach-passkey-approval {2219  display: flex;2220  flex-direction: column;2221  align-items: center;2222  padding: 16px 20px 14px;2223  gap: 8px;2224  text-align: center;2225}22262227.peach-passkey-approval-icon {2228  width: 36px;2229  height: 36px;2230  border-radius: 10px;2231  background: var(--peach-s2);2232  border: 1px solid var(--peach-t3);2233  display: flex;2234  align-items: center;2235  justify-content: center;2236  flex-shrink: 0;2237  color: var(--peach-accent);2238}22392240.peach-passkey-approval-icon img,2241.peach-passkey-approval-icon svg {2242  width: 22px;2243  height: 22px;2244  border-radius: 5px;2245}22462247.peach-passkey-approval-rp {2248  font-family: var(--font-ui);2249  font-size: 0.75rem;2250  color: var(--peach-t2);2251  letter-spacing: 0.03em;2252}22532254.peach-passkey-approval-action {2255  font-family: var(--font-display);2256  font-style: italic;2257  font-weight: 300;2258  font-size: 18px;2259  color: var(--peach-t0);2260  line-height: 1.1;2261  margin: 1px 0;2262}22632264.peach-passkey-approval-user {2265  font-family: var(--font-mono);2266  font-size: 0.6875rem;2267  color: var(--peach-t1);2268  background: var(--peach-s2);2269  border: 1px solid var(--peach-t3);2270  border-radius: 4px;2271  padding: 3px 8px;2272}22732274.peach-passkey-approval-notice {2275  font-size: 0.625rem;2276  color: var(--peach-t2);2277  line-height: 1.5;2278  max-width: 220px;2279}22802281.peach-passkey-approval-actions {2282  display: flex;2283  gap: 8px;2284  width: 100%;2285  margin-top: 6px;2286}22872288.peach-passkey-approval-actions .peach-btn {2289  flex: 1;2290}22912292/* ── Inline generator drawer ── */2293.peach-generator-drawer {2294  display: grid;2295  grid-template-rows: 0fr;2296  transition: grid-template-rows 320ms var(--peach-curve-arrival);2297  overflow: hidden;2298}2299.peach-generator-drawer.is-open {2300  grid-template-rows: 1fr;2301}2302.peach-generator-drawer-inner {2303  min-height: 0;2304  overflow: hidden;2305}2306.peach-generator-drawer-content {2307  border-top: 1px solid var(--peach-t3);2308  padding: 8px 0 4px;2309  display: flex;2310  flex-direction: column;2311  gap: 8px;2312}23132314/* ── Compact generator (inside entry edit) ── */2315.peach-generator-drawer-content--compact {2316  border-top: 1px solid var(--peach-t3);2317  padding: 8px 0 2px;2318  gap: 7px;2319}2320.peach-pwgen-compact-display-row {2321  display: flex;2322  align-items: center;2323  gap: 6px;2324}2325.peach-pwgen-compact-output {2326  flex: 1;2327  min-width: 0;2328  font-family: "IBM Plex Mono", monospace;2329  font-size: 0.6875rem;2330  font-weight: 400;2331  letter-spacing: 0.04em;2332  color: var(--peach-t0);2333  background: rgba(240, 232, 216, 0.04);2334  border: 1px solid var(--peach-t3);2335  border-radius: 5px;2336  padding: 5px 8px;2337  line-height: 1.5;2338  outline: none;2339  transition: border-color 120ms ease;2340}23412342.peach-pwgen-compact-output:focus {2343  border-color: var(--peach-t1);2344}2345.peach-pwgen-compact-controls {2346  display: flex;2347  align-items: center;2348  gap: 6px;2349}2350.peach-pwgen-compact-slider {2351  flex: 1;2352  min-width: 0;2353  height: 2px !important;2354}2355.peach-pwgen-compact-controls .peach-pwgen-len-num {2356  flex-shrink: 0;2357  min-width: 18px;2358  text-align: right;2359}2360.peach-pwgen-compact-pills {2361  display: flex;2362  gap: 3px;2363  flex-shrink: 0;2364}2365.peach-pwgen-compact-pills .peach-pwgen-pill {2366  padding: 2px 7px;2367  font-size: 0.5rem;2368}2369.peach-pwgen-compact-use {2370  flex-shrink: 0;2371  font-size: 0.625rem !important;2372  padding: 3px 9px !important;2373  min-height: 22px !important;2374  border-radius: 5px !important;2375}23762377/* ── Password edit row (input + eye toggle side-by-side) ── */2378.peach-password-edit-row {2379  display: flex;2380  align-items: center;2381  gap: 6px;2382}2383.peach-password-edit-row .peach-inline-input {2384  flex: 1;2385  min-width: 0;2386}23872388/* ── Generate toggle link ── */2389.peach-generate-toggle-link {2390  display: inline-flex;2391  align-items: center;2392  gap: 5px;2393  background: none;2394  border: none;2395  padding: 0;2396  cursor: pointer;2397  font-family: "IBM Plex Mono", monospace;2398  font-size: 0.625rem;2399  color: var(--peach-t2);2400  letter-spacing: 0.04em;2401  transition: color 120ms ease;2402  align-self: flex-start;2403}2404.peach-generate-toggle-link:hover {2405  color: var(--peach-accent);2406}24072408/* Holds the generate + history toggle links on one row under the editor. */2409.peach-password-edit-links {2410  display: flex;2411  align-items: center;2412  gap: 14px;2413  flex-wrap: wrap;2414}24152416/* ── Past-password history list ── */2417.peach-password-history {2418  display: grid;2419  gap: 4px;2420  margin-top: 2px;2421  max-height: 168px;2422  overflow-y: auto;2423  scrollbar-width: thin;2424}2425.peach-history-row {2426  display: flex;2427  align-items: center;2428  justify-content: space-between;2429  gap: 8px;2430  padding: 5px 7px;2431  border-radius: 7px;2432  background: color-mix(in srgb, var(--peach-accent) 5%, transparent);2433  border: 1px solid color-mix(in srgb, var(--peach-accent) 9%, transparent);2434}2435.peach-history-main {2436  display: flex;2437  flex-direction: column;2438  gap: 1px;2439  min-width: 0;2440  flex: 1;2441}2442.peach-history-pw {2443  font-family: "IBM Plex Mono", monospace;2444  font-size: 0.6875rem;2445  color: var(--peach-t1);2446  white-space: nowrap;2447  overflow: hidden;2448  text-overflow: ellipsis;2449}2450.peach-history-pw .peach-password-mask {2451  letter-spacing: 0.08em;2452  color: var(--peach-t2);2453}2454.peach-history-age {2455  font-family: "IBM Plex Mono", monospace;2456  font-size: 0.5625rem;2457  color: var(--peach-t3, var(--peach-t2));2458  letter-spacing: 0.03em;2459}2460.peach-history-actions {2461  display: flex;2462  align-items: center;2463  gap: 2px;2464  flex-shrink: 0;2465}2466.peach-history-use {2467  font-family: "IBM Plex Mono", monospace;2468  font-size: 0.5625rem;2469  letter-spacing: 0.05em;2470  padding: 3px 7px;2471}2472.peach-history-empty {2473  font-family: "IBM Plex Mono", monospace;2474  font-size: 0.625rem;2475  line-height: 1.45;2476  color: var(--peach-t2);2477  padding: 6px 8px;2478  border-radius: 7px;2479  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);2480  border: 1px solid color-mix(in srgb, var(--peach-accent) 8%, transparent);2481}24822483/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2484.peach-entry-body {2485  flex: 1;2486  overflow-y: auto;2487  overflow-x: hidden;2488  scrollbar-width: none;2489  -ms-overflow-style: none;2490  overscroll-behavior: contain;2491  display: grid;2492  gap: 10px;2493  align-content: start;2494  padding: 10px 20px 14px;2495  min-width: 0;2496  min-height: 0;2497}2498.peach-entry-body::-webkit-scrollbar { display: none; }24992500/* Type-toggle pills + inline note toolbar */2501.peach-new-type-row {2502  display: flex;2503  align-items: center;2504  gap: 6px;2505  margin-bottom: 2px;2506}2507.peach-new-type-btn {2508  background: transparent;2509  border: 1px solid var(--peach-t3);2510  border-radius: 12px;2511  padding: 3px 10px;2512  font-family: "IBM Plex Mono", monospace;2513  font-size: 0.5625rem;2514  letter-spacing: 0.12em;2515  text-transform: uppercase;2516  color: var(--peach-t2);2517  cursor: pointer;2518  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2519}2520.peach-new-type-btn.is-active {2521  color: var(--peach-t0);2522  border-color: var(--peach-accent);2523  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2524}2525.peach-new-type-btn:not(.is-active):hover {2526  color: var(--peach-t1);2527  border-color: var(--peach-t2);2528}25292530/* Editable title */2531.peach-new-title-wrap { margin: 0 0 2px; }2532.peach-new-title-input {2533  background: transparent;2534  border: none;2535  outline: none;2536  width: 100%;2537  color: var(--peach-t0);2538  font-family: var(--font-display);2539  font-style: italic;2540  font-weight: 400;2541  font-size: 40px;2542  line-height: 0.95;2543  caret-color: var(--peach-accent);2544}2545.peach-new-title-input::placeholder { color: var(--peach-t2); }25462547/* Editable domain field */2548.peach-domain-edit-row {2549  display: flex;2550  align-items: center;2551  gap: 6px;2552}25532554.peach-domain-edit-row .peach-domain-value--edit {2555  flex: 1;2556  width: 0;2557}25582559.peach-domain-url-btn {2560  flex-shrink: 0;2561  background: transparent;2562  border: none;2563  cursor: pointer;2564  color: var(--peach-t3);2565  padding: 2px 3px;2566  display: flex;2567  align-items: center;2568  line-height: 0;2569  border-radius: 3px;2570  transition: color 120ms ease;2571}25722573.peach-domain-url-btn:hover {2574  color: var(--peach-accent);2575}25762577.peach-domain-value--edit {2578  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2579  font-size: 0.625rem;2580  font-style: italic;2581  letter-spacing: 0.12em;2582  color: var(--peach-t1);2583  background: transparent;2584  border: none;2585  border-bottom: 1px solid var(--peach-t3);2586  outline: none;2587  width: 100%;2588  padding: 2px 0;2589  caret-color: var(--peach-accent);2590  transition: border-color 140ms ease, color 140ms ease;2591}2592.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2593.peach-domain-value--edit:focus {2594  border-bottom-color: rgba(240, 232, 216, 0.28);2595  color: var(--peach-t0);2596}25972598/* Editable field values (username, password, totp) */2599.peach-field-value--edit {2600  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2601  font-size: 0.8125rem;2602  color: var(--peach-t0);2603  background: transparent;2604  border: none;2605  border-bottom: 1px solid var(--peach-t3);2606  outline: none;2607  flex: 1;2608  min-width: 0;2609  padding: 3px 0;2610  caret-color: var(--peach-accent);2611  transition: border-color 140ms ease, color 140ms ease;2612}2613.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2614.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2615.peach-field-value--edit:focus {2616  border-bottom-color: rgba(240, 232, 216, 0.28);2617  color: var(--peach-t0);2618}26192620/* "+ add optional field" links */2621.peach-entry-add-links {2622  display: flex;2623  gap: 12px;2624  flex-wrap: wrap;2625  margin-top: -2px;2626}2627.peach-add-field-link {2628  background: transparent;2629  border: none;2630  padding: 0;2631  cursor: pointer;2632  font-family: "IBM Plex Mono", monospace;2633  font-size: 0.5625rem;2634  letter-spacing: 0.1em;2635  text-transform: uppercase;2636  color: var(--peach-t2);2637  transition: color 140ms ease;2638}2639.peach-add-field-link:hover { color: var(--peach-accent); }26402641/* ── New entry form (legacy classes) ────────────────────────────────── */2642.peach-new-body {2643  flex: 1;2644  overflow-y: auto;2645  padding: 10px 20px 14px;2646}2647.peach-new-name-input {2648  background: transparent;2649  border: none;2650  outline: none;2651  width: 100%;2652  color: var(--peach-t0);2653  font-family: var(--font-display);2654  font-style: italic;2655  font-weight: 400;2656  font-size: 40px;2657  line-height: 0.95;2658  caret-color: var(--peach-accent);2659}2660.peach-new-name-input::placeholder { color: var(--peach-t2); }2661.peach-new-field-input {2662  background: transparent;2663  border: none;2664  outline: none;2665  flex: 1;2666  min-width: 0;2667  caret-color: var(--peach-accent);2668}2669.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }26702671/* ── Canary card ── */2672.peach-canary-card {2673  border: 1px solid rgba(217, 160, 48, 0.2);2674  background: rgba(217, 160, 48, 0.03);2675  border-radius: 8px;2676  padding: 12px;2677}26782679.peach-canary-settings-header {2680  display: flex;2681  align-items: center;2682  justify-content: space-between;2683  cursor: pointer;2684  user-select: none;2685}26862687.peach-canary-card .peach-label {2688  color: rgba(217, 160, 48, 0.85);2689}26902691.peach-canary-card .peach-new-field-input {2692  border-color: rgba(217, 160, 48, 0.25);2693}26942695.peach-canary-card .peach-new-field-input:focus {2696  border-color: rgba(217, 160, 48, 0.5);2697}26982699.peach-canary-body {2700  margin-top: 12px;2701  display: flex;2702  flex-direction: column;2703  gap: 10px;2704}27052706.peach-canary-explainer {2707  display: flex;2708  gap: 10px;2709  padding: 10px 12px;2710  border-radius: 10px;2711  background: rgba(217, 160, 48, 0.06);2712  border: 1px solid rgba(217, 160, 48, 0.22);2713  margin-bottom: 4px;2714}27152716.peach-canary-explainer-icon {2717  font-size: 1rem;2718  flex-shrink: 0;2719  line-height: 1.2;2720}27212722.peach-canary-explainer-title {2723  font-family: var(--font-ui);2724  font-size: 0.6875rem;2725  font-weight: 500;2726  color: rgba(217, 160, 48, 0.9);2727  margin: 0 0 3px;2728}27292730.peach-canary-explainer-copy {2731  font-family: var(--font-ui);2732  font-size: 0.625rem;2733  color: var(--peach-t2);2734  line-height: 1.55;2735  margin: 0;2736}27372738.peach-canary-hint {2739  font-size: 0.625rem;2740  color: var(--peach-t2);2741  font-family: Inter, system-ui, sans-serif;2742  line-height: 1.5;2743  margin-top: 4px;2744}27452746.peach-canary-actions-row {2747  display: flex;2748  align-items: center;2749  gap: 8px;2750}27512752.peach-canary-test-btn {2753  border-color: rgba(217, 160, 48, 0.3);2754  color: rgba(217, 160, 48, 0.85);2755}27562757.peach-canary-test-result {2758  font-size: 0.625rem;2759  font-family: Inter, system-ui, sans-serif;2760}27612762.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2763.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }27642765.peach-canary-badge {2766  display: flex;2767  position: relative;2768  z-index: 1;2769  align-items: center;2770  gap: 5px;2771  padding: 4px 10px;2772  background: rgba(217, 160, 48, 0.12);2773  border: 1px solid rgba(217, 160, 48, 0.35);2774  border-radius: 6px;2775  margin-bottom: 6px;2776  width: fit-content;2777}27782779.peach-canary-badge-label {2780  font-size: 0.625rem;2781  letter-spacing: 0.06em;2782  color: rgba(217, 160, 48, 0.9);2783  font-family: var(--font-ui);2784  text-transform: uppercase;2785}27862787.peach-canary-badge-icon {2788  font-size: 0.6875rem;2789}27902791.peach-canary-suppress-row {2792  display: flex;2793  align-items: center;2794  gap: 8px;2795  padding: 6px 10px;2796  background: rgba(217, 160, 48, 0.08);2797  border-radius: 6px;2798  margin-bottom: 8px;2799}28002801.peach-canary-suppress-label {2802  font-size: 0.6875rem;2803  color: rgba(217, 160, 48, 0.85);2804  cursor: pointer;2805  font-family: var(--font-ui);2806  letter-spacing: 0.04em;2807}28082809.peach-regen-panel {2810  position: relative;2811  z-index: 1;2812  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2813  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2814  border-radius: 8px;2815  padding: 12px;2816  margin-bottom: 8px;2817}28182819.peach-regen-panel-header {2820  display: flex;2821  align-items: center;2822  justify-content: space-between;2823  margin-bottom: 10px;2824}28252826.peach-regen-panel-title {2827  font-size: 0.6875rem;2828  font-weight: 600;2829  letter-spacing: 0.06em;2830  text-transform: uppercase;2831  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2832}28332834.peach-regen-output {2835  background: rgba(0, 0, 0, 0.2);2836  border-radius: 6px;2837  padding: 10px;2838  margin-bottom: 10px;2839  font-family: var(--font-mono);2840  font-size: 0.8125rem;2841  word-break: break-all;2842  color: var(--peach-t1);2843}28442845.peach-regen-actions {2846  display: flex;2847  gap: 6px;2848}28492850.peach-regen-actions--spaced {2851  margin-bottom: 8px;2852}28532854.peach-regen-action-grow {2855  flex: 1;2856}28572858.peach-regen-copy-btn {2859  padding: 0 8px;2860}28612862.peach-regen-success {2863  position: relative;2864  z-index: 1;2865  background: rgba(40, 180, 80, 0.1);2866  border: 1px solid rgba(40, 180, 80, 0.3);2867  border-radius: 8px;2868  padding: 10px 12px;2869  margin-bottom: 8px;2870  display: flex;2871  align-items: center;2872  gap: 8px;2873  font-size: 0.6875rem;2874  color: rgba(40, 180, 80, 0.9);2875}28762877/* ── Note editor overlay ── */2878.peach-note-editor {2879  position: absolute;2880  inset: 0;2881  z-index: 200;2882  display: flex;2883  flex-direction: column;2884  background:2885    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2886    var(--peach-bg);2887  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2888}28892890.peach-note-editor-header {2891  display: flex;2892  align-items: center;2893  gap: 10px;2894  padding: 14px 16px 10px;2895  border-bottom: 1px solid var(--peach-t3);2896  flex-shrink: 0;2897}28982899.peach-note-editor-back {2900  background: transparent;2901  border: none;2902  cursor: pointer;2903  color: var(--peach-t2);2904  padding: 4px 6px;2905  border-radius: 6px;2906  display: flex;2907  align-items: center;2908  transition: color 120ms ease, background 120ms ease;2909  flex-shrink: 0;2910}2911.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }29122913.peach-note-editor-label {2914  flex: 1;2915  font-family: var(--font-display);2916  font-style: italic;2917  font-size: 0.9375rem;2918  color: var(--peach-t1);2919  letter-spacing: 0.02em;2920}29212922.peach-note-editor-save-btn {2923  background: transparent;2924  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2925  border-radius: 8px;2926  color: var(--peach-accent);2927  font-family: "IBM Plex Mono", monospace;2928  font-size: 0.625rem;2929  letter-spacing: 0.06em;2930  text-transform: uppercase;2931  padding: 3px 10px;2932  cursor: pointer;2933  transition: background 120ms ease, border-color 120ms ease;2934}2935.peach-note-editor-save-btn:hover:not(:disabled) {2936  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2937  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2938}2939.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }29402941.peach-note-toolbar {2942  display: flex;2943  align-items: center;2944  gap: 3px;2945  padding: 6px 14px 5px;2946  border-bottom: 1px solid var(--peach-t3);2947  flex-shrink: 0;2948}29492950.peach-note-tool-btn {2951  background: transparent;2952  border: 1px solid transparent;2953  border-radius: 5px;2954  color: var(--peach-t2);2955  font-family: "IBM Plex Mono", monospace;2956  font-size: 0.625rem;2957  letter-spacing: 0.04em;2958  padding: 2px 8px;2959  cursor: pointer;2960  line-height: 1.6;2961  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2962}2963.peach-note-tool-btn:hover {2964  background: var(--peach-t4);2965  color: var(--peach-t0);2966  border-color: var(--peach-t3);2967}29682969.peach-note-tool-icon {2970  padding: 3px 7px;2971  display: inline-flex;2972  align-items: center;2973  justify-content: center;2974}29752976.peach-note-tool-divider {2977  width: 1px;2978  height: 14px;2979  background: var(--peach-t3);2980  margin: 0 4px;2981  flex-shrink: 0;2982}29832984.peach-note-editor-body {2985  flex: 1;2986  overflow-y: auto;2987  padding: 16px 20px 20px;2988  outline: none;2989  font-family: var(--font-display);2990  font-size: 1rem;2991  line-height: 1.75;2992  color: var(--peach-t0);2993  scrollbar-width: none;2994  word-break: break-word;2995}2996.peach-note-editor-body:empty::before {2997  content: "write your note…";2998  color: var(--peach-t3);2999  font-style: italic;3000  pointer-events: none;3001}30023003/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */3004.peach-note-editor-inline {3005  display: flex;3006  flex-direction: column;3007  flex: 1;3008  min-height: 0;3009}3010.peach-note-editor-body--inline {3011  flex: 1;3012  min-height: 0;3013  font-size: 0.9375rem;3014  padding: 10px 20px 14px;3015}30163017/* Full-width toolbar row inside the body (Add.tsx note type).3018   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */3019.peach-note-toolbar-body {3020  display: flex;3021  align-items: center;3022  gap: 3px;3023  padding: 5px 20px 4px;3024  margin: 2px -20px 0;3025  border-bottom: 1px solid var(--peach-t3);3026  flex-shrink: 0;3027}30283029/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)3030   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn3031   and .peach-note-tool-divider button-level styles. */3032.peach-note-toolbar-inline {3033  display: flex;3034  align-items: center;3035  gap: 3px;3036  margin-left: auto;3037  padding-left: 10px;3038  border-left: 1px solid var(--peach-t3);3039  min-height: 22px;3040}30413042/* Entry.tsx toolbar row (no tabs, toolbar only) */3043.peach-entry-note-toolbar-row {3044  display: flex;3045  align-items: center;3046  margin: 4px 0 6px;3047  position: relative;3048  z-index: 1;3049}3050.peach-entry-note-toolbar-row .peach-note-toolbar-inline {3051  border-left: none;3052  padding-left: 0;3053  margin-left: 0;3054}30553056/* Note body — fills available vertical space in Add.tsx and Entry.tsx */3057.peach-note-body {3058  display: flex;3059  flex-direction: column;3060  flex: 1;3061  min-height: 0;3062  margin: 4px 0 0;3063}3064.peach-entry-body--new .peach-note-body {3065  margin: 8px -20px 0;3066}30673068/* Add.tsx body is a grid by default; swap to a flex column when a note is3069   active so the note body can stretch and pin the tags row to the bottom. */3070.peach-entry-body--new:has(.peach-note-body) {3071  display: flex;3072  flex-direction: column;3073}30743075/* Rich content element styles (editor + display) */3076.peach-note-editor-body h2,3077.peach-note-content h2 {3078  font-family: var(--font-display);3079  font-size: 20px;3080  font-weight: 600;3081  font-style: italic;3082  color: var(--peach-t0);3083  margin: 6px 0 2px;3084  line-height: 1.3;3085}3086.peach-note-editor-body ul,3087.peach-note-content ul {3088  padding-left: 18px;3089  margin: 3px 0;3090  list-style: disc;3091}3092.peach-note-editor-body ol,3093.peach-note-content ol {3094  padding-left: 18px;3095  margin: 3px 0;3096  list-style: decimal;3097}3098.peach-note-editor-body li,3099.peach-note-content li { margin: 2px 0; }3100.peach-note-editor-body hr,3101.peach-note-content hr {3102  border: none;3103  border-top: 1px solid var(--peach-t3);3104  margin: 10px 0;3105}31063107/* font size elements from execCommand */3108.peach-note-editor-body font[size="1"],3109.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }3110.peach-note-editor-body font[size="2"],3111.peach-note-content font[size="2"] { font-size: 0.8125rem; }3112.peach-note-editor-body font[size="3"],3113.peach-note-content font[size="3"] { font-size: 1rem; }3114.peach-note-editor-body font[size="4"],3115.peach-note-content font[size="4"] { font-size: 20px; }3116.peach-note-editor-body font[size="5"],3117.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }31183119/* bold / italic inside the editor and note display */3120.peach-note-editor-body b, .peach-note-editor-body strong,3121.peach-note-content b, .peach-note-content strong { font-weight: 700; }3122.peach-note-editor-body em, .peach-note-editor-body i,3123.peach-note-content em, .peach-note-content i { font-style: italic; }31243125/* note display — rendered HTML, no pre-wrap */3126.peach-note-content {3127  overflow: auto;3128  max-height: 340px;3129  word-break: break-word;3130}31313132/* ── Note textarea ── */3133.peach-note-textarea {3134  width: 100%;3135  min-height: 180px;3136  max-height: 280px;3137  resize: vertical;3138  background: var(--peach-t4);3139  border: 1px solid var(--peach-t3);3140  border-radius: 8px;3141  padding: 10px 12px;3142  font-family: "IBM Plex Mono", monospace;3143  font-size: 0.75rem;3144  line-height: 1.7;3145  color: var(--peach-t1);3146  outline: none;3147  transition: border-color 150ms ease;3148}31493150.peach-note-textarea:focus {3151  border-color: var(--peach-t2);3152}31533154.peach-note-char-count {3155  font-family: "IBM Plex Mono", monospace;3156  font-size: 0.5625rem;3157  color: var(--peach-t3);3158  text-align: right;3159  margin-top: 4px;3160  letter-spacing: 0.1em;3161}31623163/* ── Field input baseline ── */3164.peach-new-field-input {3165  width: 100%;3166  background: transparent;3167  border: none;3168  border-bottom: 1px solid var(--peach-t3);3169  padding: 4px 0;3170  color: var(--peach-t1);3171  font-family: "IBM Plex Mono", monospace;3172  font-size: 0.8125rem;3173  outline: none;3174  transition: border-color 150ms ease;3175}31763177.peach-new-field-input:focus {3178  border-bottom-color: var(--peach-t0);3179  color: var(--peach-t0);3180}31813182.peach-new-name-input {3183  width: 100%;3184  background: transparent;3185  border: none;3186  border-bottom: 1px solid var(--peach-t3);3187  padding: 6px 0;3188  font-family: var(--font-display);3189  font-style: italic;3190  font-size: 28px;3191  color: var(--peach-t0);3192  outline: none;3193  transition: border-color 150ms ease;3194}31953196.peach-new-name-input:focus {3197  border-bottom-color: var(--peach-t1);3198}31993200.peach-new-name-input::placeholder {3201  color: var(--peach-t2);3202  font-style: italic;3203}32043205.peach-new-field-input::placeholder {3206  color: var(--peach-t3);3207}32083209/* ── Demo entrance animation ── */3210#hd-shell {3211  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3212}3213@keyframes hd-shell-enter {3214  from { opacity: 0; transform: scale(0.96) translateY(16px); }3215  to   { opacity: 1; transform: scale(1) translateY(0); }3216}32173218/* ── Keyframes ── */3219@keyframes peach-char-enter {3220  from { opacity: 0; transform: translateY(0.22em); }3221  to   { opacity: 1; transform: translateY(0); }3222}3223@keyframes peach-content-enter {3224  from { opacity: 0.96; transform: translateY(4px); }3225  to   { opacity: 1; transform: translateY(0); }3226}3227@keyframes peach-content-exit {3228  from { opacity: 1; transform: translateY(0); }3229  to   { opacity: 0.92; transform: translateY(-3px); }3230}3231@keyframes peach-screen-enter {3232  from { opacity: 0; transform: translateY(14px); }3233  to   { opacity: 1; transform: translateY(0); }3234}3235@keyframes peach-shell-fade-in {3236  from { opacity: 0; }3237  to   { opacity: 1; }3238}3239@keyframes peach-veil-in {3240  from { opacity: 0; }3241  to   { opacity: 1; }3242}3243@keyframes peach-lock-settle {3244  0%   { transform: scale(0.9); }3245  65%  { transform: scale(1.08); }3246  100% { transform: scale(1); }3247}3248@keyframes peach-copy-confirm {3249  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3250  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); }3251}3252@keyframes peach-copy-retreat {3253  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); }3254  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3255}3256@keyframes peach-copy-flood {3257  from { opacity: 0; transform: scaleX(0.15); }3258  to   { opacity: 1; transform: scaleX(1); }3259}3260@keyframes peach-copy-icon-settle {3261  from  { transform: scale(0.84); }3262  70%   { transform: scale(1.08); }3263  to    { transform: scale(1); }3264}3265@keyframes peach-copy-sheen-retreat {3266  from { opacity: 1; transform: scaleX(1); }3267  to   { opacity: 0; transform: scaleX(0.15); }3268}3269@keyframes peach-copy-drain {3270  from { width: 100%; }3271  to   { width: 0; }3272}3273@keyframes peach-shake {3274  0%, 100% { transform: translateX(0); }3275  20%      { transform: translateX(-6px); }3276  40%      { transform: translateX(6px); }3277  60%      { transform: translateX(-4px); }3278  80%      { transform: translateX(4px); }3279}32803281@keyframes pip-pulse {3282  0% { transform: scale(1); }3283  40% { transform: scale(2.2); }3284  100% { transform: scale(1); }3285}328632873288/* ── Password generator ── */3289.peach-pwgen-body {3290  flex: 1; overflow-y: auto;3291  display: flex; flex-direction: column;3292}3293.peach-policy-badge {3294  display: flex; align-items: center;3295  padding: 6px 20px 0;3296  font-size: 0.625rem; font-family: Inter, sans-serif;3297  color: var(--peach-t2); letter-spacing: 0.04em;3298}3299.peach-pwgen-display {3300  padding: 14px 20px 12px;3301  border-bottom: 1px solid var(--peach-t3);3302  display: flex; align-items: flex-start; gap: 10px;3303}3304.peach-pwgen-display-row {3305  display: flex;3306  align-items: flex-start;3307  gap: 8px;3308  padding-bottom: 8px;3309  border-bottom: 1px solid var(--peach-t3);3310}3311.peach-pwgen-output {3312  flex: 1; min-width: 0; margin: 0;3313  font-family: "IBM Plex Mono", monospace;3314  font-size: 0.8125rem; color: var(--peach-t0);3315  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3316  white-space: normal;3317  padding: 10px 12px;3318  background: var(--peach-t4);3319  border-radius: 6px;3320  min-height: 36px;3321}3322.peach-pwgen-output-display {3323  flex: 1;3324  min-width: 0;3325  margin: 0;3326  font-family: var(--font-display);3327  font-style: italic;3328  font-weight: 300;3329  font-size: 32px;3330  line-height: 1.05;3331  color: var(--peach-t0);3332  word-break: break-all;3333  overflow-wrap: break-word;3334  white-space: normal;3335  letter-spacing: 0.02em;3336}3337.peach-pwgen-display-actions {3338  display: flex;3339  flex-direction: column;3340  gap: 4px;3341  flex-shrink: 0;3342  margin-top: 2px;3343}3344.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3345.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3346.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3347.peach-pwgen-len-num {3348  font-family: "IBM Plex Mono", monospace;3349  font-size: 0.75rem; color: var(--peach-accent);3350}3351.peach-pwgen-len-num--edit {3352  cursor: text;3353  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3354}3355.peach-pwgen-len-input {3356  font-family: "IBM Plex Mono", monospace;3357  font-size: 0.75rem;3358  color: var(--peach-accent);3359  background: transparent;3360  border: none;3361  border-bottom: 1px solid var(--peach-accent);3362  outline: none;3363  width: 32px;3364  text-align: right;3365  padding: 0;3366}3367.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3368.peach-pwgen-toggles { display: flex; flex-direction: column; }3369.peach-pwgen-charset-pills {3370  display: flex;3371  gap: 6px;3372  flex-wrap: wrap;3373}3374.peach-pwgen-pill {3375  padding: 4px 11px;3376  border-radius: 999px;3377  border: 1px solid var(--peach-t3);3378  background: transparent;3379  color: var(--peach-t2);3380  font-family: "IBM Plex Mono", monospace;3381  font-size: 0.5625rem;3382  letter-spacing: 0.08em;3383  cursor: pointer;3384  transition: all 150ms ease;3385}3386.peach-pwgen-pill.is-on {3387  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3388  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3389  color: var(--peach-accent);3390}3391.peach-pwgen-pill:not(.is-on):hover {3392  color: var(--peach-t1);3393  border-color: var(--peach-t2);3394}3395.peach-pwgen-use-btn {3396  width: 100%;3397  min-height: 34px;3398  border-radius: 8px;3399  margin-top: 2px;3400}3401.peach-generator-constraint-note {3402  font-family: 'IBM Plex Mono', monospace;3403  font-size: 10px;3404  color: var(--peach-t3);3405  letter-spacing: 0.04em;3406  margin: 0;3407  transition: opacity 200ms ease;3408}3409.peach-pwgen-toggle-row {3410  display: flex; align-items: center; justify-content: space-between;3411  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3412}3413.peach-pwgen-toggle-row:last-child { border-bottom: none; }3414.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }34153416/* Peach popup should not expose native scrollbars on internal panels. */3417.peach-settings-body,3418.peach-new-body,3419.peach-pwgen-body,3420.lock-screen,3421.peach-import-preview {3422  scrollbar-width: none;3423  -ms-overflow-style: none;3424  overscroll-behavior: contain;3425}3426.peach-settings-body::-webkit-scrollbar,3427.peach-new-body::-webkit-scrollbar,3428.peach-pwgen-body::-webkit-scrollbar,3429.lock-screen::-webkit-scrollbar,3430.peach-import-preview::-webkit-scrollbar {3431  width: 0;3432  height: 0;3433  display: none;3434}34353436.lock-screen {3437  height: 100%;3438  min-height: 100%;3439  overflow-y: auto;3440  padding: 18px 18px 16px;3441  gap: 14px;3442  grid-template-rows: auto auto auto 1fr auto;3443  align-content: stretch;3444  position: relative;3445  isolation: isolate;3446}3447.peach-screen.lock-screen--vault-stage {3448  display: flex;3449  flex-direction: column;3450  justify-content: flex-start;3451  gap: 18px;3452  padding: 20px 18px 18px;3453  overflow: hidden;3454}3455.peach-screen.lock-screen--vault-stage .peach-lock-panel {3456  margin-top: 0;3457}3458.lock-screen--onboarding {3459  display: flex;3460  flex-direction: column;3461  gap: 12px;3462  justify-content: flex-start;3463}34643465.lock-screen::before {3466  content: "";3467  position: absolute;3468  inset: 12px 18px auto auto;3469  width: 160px;3470  height: 160px;3471  border-radius: 999px;3472  background:3473    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%);3474  filter: blur(6px);3475  opacity: 0.7;3476  pointer-events: none;3477  z-index: 0;3478}34793480.peach-lock-rune-string {3481  flex: 1;3482  display: flex;3483  align-items: center;3484  justify-content: center;3485  gap: 6px;3486  font-family: PeachScript, monospace;3487  font-size: 0.8125rem;3488  letter-spacing: 0.05em;3489  pointer-events: none;3490  user-select: none;3491  position: relative;3492  z-index: 1;3493}34943495.peach-lock-rune-string span {3496  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3497  text-shadow:3498    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3499    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3500  transition: color 0.9s ease, text-shadow 0.9s ease;3501}35023503.peach-lock-rune-string span.is-glowing {3504  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3505  text-shadow:3506    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3507    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3508}35093510.lock-screen-header {3511  display: flex;3512  align-items: center;3513  justify-content: space-between;3514  position: relative;3515  z-index: 1;3516}35173518.lock-password-input.shake {3519  animation: peach-shake 300ms ease-in-out;3520}35213522.peach-hint-error {3523  color: rgba(220, 80, 60, 0.92);3524}35253526.peach-onboarding-headline {3527  margin: 0;3528  font-family: var(--font-display);3529  font-size: 35px;3530  line-height: 0.88;3531  font-style: italic;3532  font-weight: 400;3533  max-width: 252px;3534}35353536.peach-lock-copy {3537  display: grid;3538  gap: 8px;3539  position: relative;3540  z-index: 1;3541}35423543.peach-lock-copy--onboarding {3544  gap: 10px;3545}35463547.peach-lock-hero {3548  position: relative;3549  z-index: 1;3550  display: grid;3551  gap: 8px;3552  min-height: 0;3553  padding: 4px 2px 0;3554  border: none;3555  border-radius: 0;3556  background: transparent;3557  box-shadow: none;3558}3559.peach-lock-hero-art {3560  position: absolute;3561  right: -8px;3562  top: -6px;3563  width: 120px;3564  height: 120px;3565  display: flex;3566  align-items: center;3567  justify-content: center;3568  pointer-events: none;3569  opacity: 0.12;3570  filter: saturate(0.9);3571}3572.peach-lock-hero-mark {3573  width: 100%;3574  height: 100%;3575}3576/* Peach body stays brand-peach across every accent — we don't want a3577   green or blue peach when sage/sky is selected. Leaf + vein keep the3578   sage tint because a real peach has a sage leaf. In the new brand-kit3579   mark the leaf is path 1 and the vein stroke is path 2; the body and3580   back-lobe (paths 3 + 4) must stay untouched. */3581.peach-lock-hero-mark path:nth-child(1) {3582  fill: rgba(123, 144, 96, 0.88);3583}3584.peach-lock-hero-mark path:nth-child(2) {3585  stroke: rgba(94, 122, 66, 0.95);3586}3587.peach-lock-hero > *:not(.peach-lock-hero-art) {3588  position: relative;3589  z-index: 1;3590}35913592.peach-lock-eyebrow {3593  display: inline-flex;3594  align-items: center;3595  width: fit-content;3596  padding: 4px 9px;3597  border-radius: 999px;3598  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3599  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3600  color: var(--peach-t0);3601  font-family: "IBM Plex Mono", monospace;3602  font-size: 0.5rem;3603  letter-spacing: 0.18em;3604  text-transform: uppercase;3605}36063607.peach-lock-label-row {3608  display: flex;3609  align-items: center;3610  justify-content: space-between;3611  margin-bottom: 0;3612}36133614.peach-lock-reveal-btn {3615  display: inline-flex;3616  align-items: center;3617  gap: 4px;3618  background: none;3619  border: none;3620  cursor: pointer;3621  font-family: "IBM Plex Mono", monospace;3622  font-size: 0.5625rem;3623  letter-spacing: 0.06em;3624  color: var(--peach-t2);3625  padding: 2px 0;3626  transition: color 150ms ease;3627}36283629.peach-lock-reveal-btn:hover {3630  color: var(--peach-t1);3631}36323633.peach-lock-warning {3634  color: rgba(220, 80, 60, 0.85) !important;3635  line-height: 1.5;3636}36373638.peach-onboarding-cards {3639  display: grid;3640  gap: 8px;3641  position: relative;3642  z-index: 1;3643}36443645.peach-lock-panel {3646  position: relative;3647  z-index: 1;3648  display: grid;3649  gap: 9px;3650  padding: 14px 16px 15px;3651  border-radius: 18px;3652  border: 1px solid var(--peach-t3);3653  background:3654    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3655  box-shadow:3656    inset 0 1px 0 rgba(240, 232, 216, 0.04),3657    0 12px 28px rgba(0, 0, 0, 0.12);3658}36593660/* Glass surface — lock panel and settings groups */3661.peach-glass {3662  background: rgba(26, 20, 16, 0.65);3663  border: 1px solid rgba(255, 255, 255, 0.08);3664  border-radius: 12px;3665  backdrop-filter: blur(12px) saturate(1.4);3666  -webkit-backdrop-filter: blur(12px) saturate(1.4);3667}36683669@supports not (backdrop-filter: blur(1px)) {3670  .peach-glass {3671    background: rgba(26, 20, 16, 0.92);3672    border: 1px solid rgba(255, 255, 255, 0.10);3673    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3674  }3675}36763677.light .peach-glass,3678[data-theme="light"] .peach-glass {3679  background: rgba(240, 233, 223, 0.72);3680  border: 1px solid rgba(26, 18, 8, 0.08);3681  backdrop-filter: blur(12px) saturate(1.2);3682  -webkit-backdrop-filter: blur(12px) saturate(1.2);3683}36843685@supports not (backdrop-filter: blur(1px)) {3686  .light .peach-glass,3687  [data-theme="light"] .peach-glass {3688    background: rgba(240, 233, 223, 0.97);3689    border: 1px solid rgba(26, 18, 8, 0.10);3690  }3691}36923693/* Lock panel keeps its own border-radius over the generic glass token */3694.peach-lock-panel.peach-glass {3695  border-radius: 18px;3696  background: rgba(26, 20, 16, 0.65);3697  border: 1px solid rgba(255, 255, 255, 0.08);3698  box-shadow:3699    inset 0 1px 0 rgba(255, 255, 255, 0.05),3700    0 12px 28px rgba(0, 0, 0, 0.3);3701}37023703.light .peach-lock-panel.peach-glass,3704[data-theme="light"] .peach-lock-panel.peach-glass {3705  background: rgba(240, 233, 223, 0.82);3706  border: 1px solid rgba(26, 18, 8, 0.08);3707  box-shadow:3708    inset 0 1px 0 rgba(255, 255, 255, 0.4),3709    0 8px 24px rgba(80, 56, 32, 0.15);3710}37113712@supports not (backdrop-filter: blur(1px)) {3713  .peach-lock-panel.peach-glass {3714    background: rgba(26, 20, 16, 0.92);3715    box-shadow:3716      inset 0 1px 0 rgba(255, 255, 255, 0.05),3717      0 12px 28px rgba(0, 0, 0, 0.4);3718  }3719  .light .peach-lock-panel.peach-glass,3720  [data-theme="light"] .peach-lock-panel.peach-glass {3721    background: rgba(240, 233, 223, 0.98);3722  }3723}37243725.peach-lock-panel--secondary {3726  gap: 12px;3727}37283729.peach-lock-panel-header {3730  display: flex;3731  align-items: baseline;3732  justify-content: space-between;3733  gap: 12px;3734}37353736.peach-lock-option-grid {3737  display: grid;3738  gap: 10px;3739}37403741.peach-lock-option {3742  width: 100%;3743  display: grid;3744  gap: 6px;3745  padding: 14px 15px;3746  border-radius: 16px;3747  border: 1px solid rgba(240, 232, 216, 0.08);3748  background: rgba(240, 232, 216, 0.02);3749  color: var(--peach-t0);3750  text-align: left;3751  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3752}37533754.peach-lock-option:hover {3755  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3756  background: rgba(240, 232, 216, 0.04);3757  transform: translateY(-1px);3758}37593760.peach-lock-option-title {3761  font-size: 0.75rem;3762  color: var(--peach-t0);3763}37643765.peach-lock-option-copy {3766  font-size: 0.6875rem;3767  line-height: 1.55;3768  color: var(--peach-t1);3769}37703771.peach-onboarding-stack {3772  margin-top: 2px;3773}3774.peach-lock-panel-footer {3775  display: grid;3776  gap: 6px;3777  margin-top: 2px;3778  padding-top: 10px;3779  border-top: 1px solid rgba(240, 232, 216, 0.06);3780}37813782/* ── Restore tab view ─────────────────────────────────────────────────────3783   Tab-based restore screen replacing the old three-card picker. */37843785.peach-restore-tabview {3786  overflow: hidden;3787}37883789.peach-restore-tabcard {3790  flex: 1;3791  display: flex;3792  flex-direction: column;3793  gap: 0;3794  padding: 0;3795  overflow: hidden;3796  cursor: default;3797  user-select: none;3798  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3799}38003801/* ── Tab selector ─────────────────────────────────────────────────────── */38023803.peach-restore-tabs {3804  display: flex;3805  justify-content: space-around;3806  padding: 14px 10px 10px;3807  border-bottom: 1px solid var(--peach-t3);3808  gap: 2px;3809  overflow: hidden;3810  scrollbar-width: none;3811}3812.peach-restore-tabs::-webkit-scrollbar { display: none; }38133814.peach-restore-tab {3815  background: none;3816  border: none;3817  cursor: pointer;3818  padding: 3px 2px;3819  font-family: 'Cormorant Garamond', Georgia, serif;3820  font-style: italic;3821  font-size: 11px;3822  color: var(--peach-t2);3823  transition: color 150ms ease, text-shadow 150ms ease;3824  flex: 1;3825  min-width: 0;3826  text-align: center;3827  white-space: nowrap;3828  overflow: hidden;3829  text-overflow: ellipsis;3830}3831.peach-restore-tab:hover {3832  color: var(--peach-accent);3833  text-shadow:3834    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3835    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3836}3837.peach-restore-tab.is-active {3838  color: var(--peach-accent);3839  text-shadow:3840    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3841    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3842}38433844/* ── Content area ─────────────────────────────────────────────────────── */38453846.peach-restore-content {3847  padding: 16px 16px 14px;3848  display: flex;3849  flex-direction: column;3850  gap: 8px;3851  overflow: hidden;3852  scrollbar-width: none;3853  flex: 1;3854}3855.peach-restore-content::-webkit-scrollbar { display: none; }3856.peach-restore-content > * {3857  overflow: hidden;3858  scrollbar-width: none;3859}3860.peach-restore-content > *::-webkit-scrollbar { display: none; }38613862/* ── Shared tab inner layout ──────────────────────────────────────────── */38633864.peach-rt-symbols,3865.peach-rt-csv,3866.peach-rt-phone,3867.peach-restore-codex {3868  display: flex;3869  flex-direction: column;3870  gap: 8px;3871  overflow: hidden;3872}38733874.peach-restore-codex {3875  min-height: 0;3876  justify-content: center;3877}38783879.peach-restore-codex-title {3880  margin: 0;3881  font-family: var(--font-display);3882  font-size: 1rem;3883  font-style: italic;3884  color: var(--peach-t0);3885}38863887.peach-restore-codex-copy {3888  margin: 0;3889  font-size: 0.75rem;3890  line-height: 1.5;3891  color: var(--peach-t1);3892}38933894.peach-restore-codex-button {3895  width: 100%;3896  justify-content: center;3897}38983899.peach-rt-submit {3900  width: 100%;3901}39023903.peach-rt-error {3904  margin: 0;3905  font-size: 0.6875rem;3906  color: var(--peach-breach);3907  line-height: 1.4;3908}39093910/* ── PeachScript tab ──────────────────────────────────────────────────── */39113912.peach-restore-symbols-textarea {3913  font-family: 'PeachScript', monospace;3914  font-size: 13px;3915  line-height: 1.9;3916  letter-spacing: 0.1em;3917  word-break: break-all;3918  resize: none;3919  width: 100%;3920  min-height: 56px;3921  max-height: 72px;3922  overflow: hidden;3923  scrollbar-width: none;3924  -ms-overflow-style: none;3925  box-sizing: border-box;3926  padding: 6px 8px;3927  border-radius: 8px;3928  border: 1px solid var(--peach-t3);3929  background: rgba(240, 232, 216, 0.03);3930  color: var(--peach-t0);3931}3932.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }3933.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }39343935.peach-restore-symbols-pass {3936  width: 100%;3937  box-sizing: border-box;3938  padding: 7px 10px;3939  border-radius: 8px;3940  border: 1px solid var(--peach-t3);3941  background: rgba(240, 232, 216, 0.03);3942  color: var(--peach-t0);3943  font-size: 0.8125rem;3944}3945.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }3946.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }39473948.peach-rt-divider {3949  text-align: center;3950  font-size: 0.6875rem;3951  color: var(--peach-t2);3952  font-style: italic;3953}39543955.peach-rt-file-label {3956  width: 100%;3957  justify-content: center;3958}39593960.peach-rt-anim-canvas {3961  width: 100%;3962  height: 180px;3963  border-radius: 10px;3964  overflow: hidden;3965  display: block;3966}39673968/* ── CSV tab ──────────────────────────────────────────────────────────── */39693970.peach-rt-csv-sources {3971  margin: 0;3972  font-size: 0.6875rem;3973  color: var(--peach-t2);3974  line-height: 1.5;3975  text-align: center;3976}39773978.peach-rt-csv-warning {3979  margin: 0;3980  font-family: "IBM Plex Mono", monospace;3981  font-size: 0.5625rem;3982  letter-spacing: 0.12em;3983  color: var(--peach-breach);3984  text-align: center;3985}39863987/* ── From Phone tab ───────────────────────────────────────────────────── */39883989.peach-rt-phone-code {3990  margin: 0;3991  text-align: center;3992  font-family: "IBM Plex Mono", monospace;3993  font-size: 22px;3994  letter-spacing: 0.18em;3995  color: var(--peach-t0);3996}39973998.peach-rt-phone-qr {3999  display: block;4000  width: 96px;4001  height: 96px;4002  margin: 0 auto;4003  border-radius: 6px;4004  image-rendering: pixelated;4005  overflow: hidden;4006}40074008.peach-rt-phone-hint {4009  margin: 0;4010  font-size: 0.6875rem;4011  color: var(--peach-t2);4012  line-height: 1.55;4013  text-align: center;4014}40154016/* ── Intro popup ──────────────────────────────────────────────────────── */40174018.peach-restore-intro-overlay {4019  position: absolute;4020  inset: 0;4021  z-index: 100;4022  display: flex;4023  align-items: center;4024  justify-content: center;4025  padding: 20px;4026  background: rgba(12, 10, 6, 0.7);4027  backdrop-filter: blur(4px);4028  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4029}40304031.peach-restore-intro-card {4032  width: 100%;4033  display: flex;4034  flex-direction: column;4035  gap: 12px;4036  padding: 22px 20px 20px;4037  border-radius: 16px;4038  border: 1px solid var(--peach-t3);4039  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4040  backdrop-filter: blur(4px);4041  -webkit-backdrop-filter: blur(4px);4042  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4043}40444045.peach-restore-intro-headline {4046  margin: 0;4047  font-family: var(--font-display);4048  font-style: italic;4049  font-size: 20px;4050  font-weight: 400;4051  color: var(--peach-t0);4052}40534054.peach-restore-intro-body {4055  display: flex;4056  flex-direction: column;4057  gap: 8px;4058}4059.peach-restore-intro-body p {4060  margin: 0;4061  font-size: 0.75rem;4062  color: var(--peach-t1);4063  line-height: 1.5;4064}40654066.peach-restore-intro-btn {4067  width: 100%;4068  margin-top: 4px;4069}40704071/* Snapshot restore panel */4072.peach-snapshot-panel {4073  gap: 10px;4074  overflow-y: auto;4075  max-height: 340px;4076}4077.peach-snapshot-list {4078  display: flex;4079  flex-direction: column;4080  gap: 4px;4081}4082.peach-snapshot-row {4083  display: flex;4084  align-items: center;4085  justify-content: space-between;4086  width: 100%;4087  padding: 8px 10px;4088  border-radius: 8px;4089  border: 1px solid rgba(240, 232, 216, 0.07);4090  background: transparent;4091  cursor: pointer;4092  transition: border-color 120ms, background 120ms;4093  text-align: left;4094  gap: 8px;4095}4096.peach-snapshot-row:hover {4097  border-color: rgba(240, 232, 216, 0.14);4098  background: rgba(240, 232, 216, 0.03);4099}4100.peach-snapshot-row.is-selected {4101  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4102  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4103}4104.peach-snapshot-time {4105  font-size: 11.5px;4106  color: var(--peach-t0);4107  flex: 1;4108}4109.peach-snapshot-count {4110  font-family: "IBM Plex Mono", monospace;4111  font-size: 0.625rem;4112  color: var(--peach-t2);4113  flex-shrink: 0;4114}4115.peach-snapshot-confirm {4116  display: flex;4117  flex-direction: column;4118  gap: 8px;4119  padding-top: 10px;4120  border-top: 1px solid rgba(240, 232, 216, 0.06);4121}4122.peach-snapshot-warning {4123  display: flex;4124  align-items: flex-start;4125  gap: 6px;4126  font-size: 10.5px;4127  color: rgba(220, 80, 60, 0.85);4128  line-height: 1.55;4129}4130.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4131.peach-snapshot-confirm-row {4132  display: flex;4133  gap: 6px;4134  align-items: center;4135}4136.peach-snapshot-restore-btn {4137  width: 100%;4138}4139.peach-lock-hero--unlock .peach-lock-hero-art {4140  width: 112px;4141  height: 112px;4142  right: 0;4143  top: 2px;4144  opacity: 0.1;4145}41464147.peach-card {4148  border: 1px solid var(--peach-t3);4149  border-radius: 18px;4150  background:4151    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4152  box-shadow:4153    inset 0 0 0 1px var(--peach-border-accent),4154    inset 0 1px 0 rgba(240, 232, 216, 0.04),4155    0 12px 32px rgba(0, 0, 0, 0.14);4156  overflow: hidden;4157}41584159.peach-card-active {4160  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4161  box-shadow:4162    inset 0 1px 0 rgba(240, 232, 216, 0.05),4163    0 16px 38px rgba(0, 0, 0, 0.18),4164    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4165}41664167.peach-card-disabled {4168  opacity: 0.72;4169}41704171.peach-card-header {4172  width: 100%;4173  padding: 13px 16px 11px;4174  background: transparent;4175  color: var(--peach-t0);4176  display: flex;4177  justify-content: space-between;4178  align-items: center;4179  text-align: left;4180  font-size: 0.75rem;4181}41824183.peach-card-body {4184  padding: 0 16px 16px;4185  display: grid;4186  gap: 9px;4187}41884189.peach-card-tag {4190  color: var(--peach-t2);4191  font-family: "IBM Plex Mono", monospace;4192  font-size: 0.5625rem;4193  letter-spacing: 0.12em;4194  text-transform: uppercase;4195}41964197.peach-empty-copy {4198  display: grid;4199  gap: 6px;4200  color: var(--peach-t1);4201  font-size: 0.8125rem;4202}42034204.peach-lock-submit {4205  width: 100%;4206  box-shadow:4207    0 1px 0 rgba(255,255,255,0.10) inset,4208    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4209    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4210    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4211}42124213.peach-lock-secondary {4214  width: 100%;4215  border-color: var(--peach-t3);4216  background: rgba(240, 232, 216, 0.02);4217}42184219.peach-lock-secondary:hover {4220  background: rgba(240, 232, 216, 0.04);4221}42224223.peach-lock-note {4224  max-width: none;4225  line-height: 1.55;4226  margin: 0;4227}42284229.peach-overlay-action {4230  font-size: 0.625rem;4231  padding: 4px 8px;4232  letter-spacing: 0.06em;4233  min-width: 44px;4234  text-align: center;4235}42364237.peach-inline-action {4238  flex-shrink: 0;4239  font-size: 0.5625rem;4240  letter-spacing: 0.1em;4241  text-transform: uppercase;4242  padding: 4px 7px;4243}4244.peach-password-toggle-btn {4245  display: inline-flex;4246  align-items: center;4247  justify-content: center;4248  min-width: 30px;4249  min-height: 26px;4250  padding: 0 7px;4251  border: 1px solid var(--peach-t3);4252  border-radius: 999px;4253  background: rgba(240, 232, 216, 0.04);4254  color: var(--peach-t2);4255  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4256}4257.peach-password-toggle-btn:hover {4258  border-color: var(--peach-t2);4259  color: var(--peach-t0);4260  background: rgba(240, 232, 216, 0.06);4261}42624263.peach-new-textarea {4264  width: 100%;4265  min-height: 88px;4266  resize: vertical;4267  border: 0;4268  outline: none;4269  background: transparent;4270  color: var(--peach-t1);4271  font-family: "IBM Plex Mono", monospace;4272  font-size: 0.75rem;4273  line-height: 1.65;4274  caret-color: var(--peach-accent);4275}42764277.peach-new-textarea::placeholder {4278  color: var(--peach-t2);4279  opacity: 0.7;4280}42814282.peach-settings-actions {4283  display: grid;4284  gap: 8px;4285}42864287.peach-sync-section-label {4288  font-size: 0.6875rem;4289  color: var(--peach-t2);4290  text-transform: uppercase;4291  letter-spacing: 0.05em;4292}42934294.peach-sync-network-note {4295  margin: 0 0 6px;4296  font-size: 0.75rem;4297  color: var(--peach-t2);4298  line-height: 1.4;4299}43004301.peach-settings-row--tappable {4302  background: none;4303  border: none;4304  width: 100%;4305  text-align: left;4306  cursor: pointer;4307  color: var(--peach-t1);4308  font-size: 0.8125rem;4309}4310.peach-settings-row--tappable:hover {4311  color: var(--peach-t0);4312}43134314.peach-sync-pro-hint {4315  display: flex;4316  flex-direction: column;4317  align-items: flex-start;4318  gap: 8px;4319  padding: 12px 0 4px;4320}43214322.peach-sync-device-row {4323  display: flex;4324  justify-content: space-between;4325  align-items: center;4326  padding: 6px 0;4327  border-bottom: 1px solid var(--peach-t3);4328}43294330.peach-sync-device-info {4331  display: flex;4332  flex-direction: column;4333  gap: 2px;4334}43354336.peach-sync-device-name {4337  font-size: 0.8125rem;4338  color: var(--peach-t0);4339}43404341.peach-sync-device-meta {4342  font-size: 0.6875rem;4343  color: var(--peach-t2);4344}43454346.peach-sync-status-dot {4347  display: inline-block;4348  width: 8px;4349  height: 8px;4350  border-radius: 50%;4351  vertical-align: middle;4352}43534354.peach-sync-remove-btn {4355  color: var(--peach-breach);4356}43574358.peach-sync-advanced-row {4359  display: flex;4360  justify-content: space-between;4361  align-items: center;4362  padding: 6px 0;4363  gap: 12px;4364}43654366.peach-sync-advanced-info {4367  display: flex;4368  flex-direction: column;4369  gap: 2px;4370  flex: 1;4371}43724373.peach-sync-advanced-name {4374  font-size: 0.8125rem;4375  color: var(--peach-t0);4376}43774378.peach-sync-reset-confirm {4379  display: flex;4380  flex-direction: column;4381  gap: 8px;4382  padding: 10px;4383  border: 1px solid var(--peach-breach);4384  border-radius: 10px;4385  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4386}43874388.peach-sync-reset-confirm-headline {4389  font-size: 0.8125rem;4390  font-weight: 600;4391  color: var(--peach-t0);4392  margin: 0;4393}43944395.peach-sync-reset-confirm-body {4396  font-size: 0.75rem;4397  color: var(--peach-t1);4398  margin: 0;4399  line-height: 1.4;4400}44014402.peach-btn--danger {4403  background: var(--peach-breach);4404  color: #fff;4405  border-color: var(--peach-breach);4406}4407.peach-btn--danger:hover:not(:disabled) {4408  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4409}4410.peach-btn--danger:disabled {4411  opacity: 0.55;4412  cursor: not-allowed;4413}44144415.peach-sync-hero-icon {4416  color: var(--peach-t1);4417  opacity: 0.85;4418}44194420.peach-import-preview {4421  margin-bottom: 12px;4422  max-height: 152px;4423  overflow-y: auto;4424  border: 1px solid var(--peach-t3);4425  border-radius: 10px;4426  padding: 8px 10px;4427  display: grid;4428  gap: 8px;4429  background: rgba(240, 232, 216, 0.02);4430}44314432.peach-import-preview-row {4433  display: flex;4434  justify-content: space-between;4435  gap: 10px;4436  font-size: 0.6875rem;4437  color: var(--peach-t1);4438}44394440.peach-import-preview-title {4441  color: var(--peach-t0);4442  flex: 1;4443  min-width: 0;4444  overflow: hidden;4445  text-overflow: ellipsis;4446  white-space: nowrap;4447}44484449.peach-import-preview-meta {4450  color: var(--peach-t2);4451  flex-shrink: 0;4452  max-width: 42%;4453  overflow: hidden;4454  text-overflow: ellipsis;4455  white-space: nowrap;4456}44574458.peach-import-preview-more {4459  color: var(--peach-t2);4460  font-size: 0.625rem;4461}44624463.peach-restore-copy {4464  margin: 0;4465  color: var(--peach-t1);4466  font-size: 0.6875rem;4467  line-height: 1.6;4468}44694470.peach-restore-warning {4471  padding: 10px 12px;4472  border-radius: 12px;4473  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4474  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4475  color: var(--peach-t0);4476  font-size: 0.6875rem;4477  line-height: 1.55;4478}44794480.peach-provider-chips {4481  display: flex;4482  flex-wrap: wrap;4483  gap: 6px;4484}44854486.peach-provider-chip {4487  display: inline-flex;4488  align-items: center;4489  padding: 5px 8px;4490  border-radius: 999px;4491  border: 1px solid var(--peach-t3);4492  background: rgba(240, 232, 216, 0.02);4493  color: var(--peach-t1);4494  font-family: "IBM Plex Mono", monospace;4495  font-size: 0.5rem;4496  letter-spacing: 0.08em;4497  text-transform: uppercase;4498}44994500.peach-restore-file,4501.peach-restore-input {4502  width: 100%;4503  border-radius: 10px;4504  border: 1px solid var(--peach-t3);4505  background: var(--peach-s2);4506  color: var(--peach-t0);4507  font-size: 0.75rem;4508}45094510.peach-restore-file {4511  padding: 9px 10px;4512}45134514.peach-restore-file::file-selector-button {4515  margin-right: 10px;4516  padding: 7px 10px;4517  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4518  border-radius: 999px;4519  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4520  color: var(--peach-t0);4521  font-size: 0.625rem;4522  letter-spacing: 0.08em;4523  text-transform: uppercase;4524  cursor: pointer;4525}45264527.peach-restore-input {4528  padding: 10px 12px;4529}45304531.peach-auth-grid {4532  display: grid;4533  gap: 10px;4534}45354536.peach-import-summary {4537  color: var(--peach-t1);4538  font-size: 0.75rem;4539  line-height: 1.6;4540  margin-bottom: 12px;4541}45424543.peach-restore-error {4544  color: rgba(220, 80, 60, 0.95);4545  font-size: 0.75rem;4546  line-height: 1.55;4547}45484549.peach-passkey-card {4550  max-width: 400px;4551  margin: auto 16px;4552  align-self: center;4553  width: calc(100% - 32px);4554}45554556/* Center the approval card vertically inside the overlay-view (which sets4557 * flex-direction: column without justify-content). Without this, the card4558 * sits at the top with a tall empty band below — looks unfinished on the4559 * 320px popup. */4560.peach-overlay-view:has(.peach-passkey-card) {4561  justify-content: center;4562}45634564.peach-pro-badge {4565  padding: 2px 6px;4566  border-radius: 999px;4567  font-family: var(--font-ui);4568  font-size: 0.625rem;4569  letter-spacing: 0.08em;4570  text-transform: uppercase;4571  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4572  color: var(--peach-accent);4573}45744575/* ── Shortcuts rebind table ─────────────────────────────────── */4576.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4577.peach-shortcut-row {4578  display: flex;4579  align-items: center;4580  gap: 10px;4581  padding: 6px 0;4582}4583.peach-shortcut-row-label {4584  flex: 1;4585  font-size: 0.75rem;4586  color: var(--peach-t0);4587}4588.peach-shortcut-chip {4589  min-width: 64px;4590  padding: 4px 10px;4591  border-radius: 6px;4592  border: 1px solid var(--peach-t3);4593  background: var(--peach-input-bg, var(--surface-card));4594  color: var(--peach-t0);4595  font-family: var(--font-mono);4596  font-size: 0.6875rem;4597  letter-spacing: 0.04em;4598  cursor: pointer;4599  text-align: center;4600  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4601}4602.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4603.peach-shortcut-chip.is-custom {4604  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4605  color: var(--peach-accent);4606}4607.peach-shortcut-chip.is-capturing {4608  border-color: var(--peach-accent);4609  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4610  color: var(--peach-accent);4611  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4612}4613@keyframes peach-shortcut-capture-pulse {4614  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4615  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4616}4617.peach-shortcut-reset {4618  background: transparent;4619  border: none;4620  cursor: pointer;4621  color: var(--peach-t2);4622  padding: 4px 6px;4623  border-radius: 5px;4624  font-size: 0.875rem;4625  line-height: 1;4626  transition: color 120ms ease, background 120ms ease;4627}4628.peach-shortcut-reset:hover {4629  color: var(--peach-t0);4630  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4631}4632.peach-shortcuts-conflict {4633  margin: 4px 0 0;4634  padding: 8px 10px;4635  border-radius: 7px;4636  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4637  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4638  font-family: var(--font-mono);4639  font-size: 0.6875rem;4640  color: var(--peach-t0);4641}46424643/* ── Help dialog overlay (? to open) ────────────────────────── */4644.peach-shortcuts-help-backdrop {4645  position: fixed;4646  inset: 0;4647  background: rgba(0, 0, 0, 0.55);4648  backdrop-filter: blur(2px);4649  display: flex;4650  align-items: center;4651  justify-content: center;4652  z-index: 1000;4653  animation: peach-help-fade-in 140ms ease forwards;4654}4655@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4656.peach-shortcuts-help-card {4657  width: min(320px, 92vw);4658  max-height: 80vh;4659  overflow-y: auto;4660  border-radius: 14px;4661  border: 1px solid var(--peach-t3);4662  background: var(--peach-bg);4663  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4664  padding: 16px 18px 18px;4665  display: flex;4666  flex-direction: column;4667  gap: 12px;4668}4669.peach-shortcuts-help-head {4670  display: flex; align-items: center; justify-content: space-between;4671}4672.peach-shortcuts-help-head h3 {4673  margin: 0;4674  font-family: var(--font-display);4675  font-style: italic;4676  font-weight: 400;4677  font-size: 22px;4678  color: var(--peach-t0);4679}4680.peach-shortcuts-help-close {4681  background: transparent;4682  border: none;4683  color: var(--peach-t2);4684  cursor: pointer;4685  font-size: 0.875rem;4686  padding: 4px 8px;4687  border-radius: 5px;4688}4689.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4690.peach-shortcuts-help-body ul {4691  list-style: none; padding: 0; margin: 4px 0 12px;4692  display: grid; gap: 8px;4693}4694.peach-shortcuts-help-body li {4695  display: flex; align-items: center; justify-content: space-between; gap: 12px;4696  font-size: 0.75rem; color: var(--peach-t0);4697}4698.peach-shortcuts-help-body kbd {4699  font-family: var(--font-mono);4700  font-size: 0.6875rem;4701  padding: 3px 8px;4702  border-radius: 6px;4703  background: var(--surface-card);4704  border: 1px solid var(--peach-t3);4705  color: var(--peach-accent);4706  letter-spacing: 0.04em;4707}47084709/* ── Pro promo on Account screen ────────────────────────────── */4710.peach-pro-promo {4711  position: relative;4712  border-radius: 14px;4713  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4714  background:4715    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4716    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4717    var(--surface-card);4718  overflow: hidden;4719  margin-bottom: 14px;4720}4721.peach-pro-promo-glow {4722  position: absolute;4723  inset: -40% -20% auto auto;4724  width: 220px; height: 220px;4725  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4726  pointer-events: none;4727  filter: blur(8px);4728}4729.peach-pro-promo-inner {4730  position: relative;4731  padding: 18px 18px 16px;4732}4733.peach-pro-promo-title {4734  font-family: var(--font-display);4735  font-style: italic;4736  font-weight: 400;4737  font-size: 28px;4738  line-height: 1;4739  letter-spacing: -0.005em;4740  color: var(--peach-t0);4741  margin: 0 0 4px;4742}4743.peach-pro-promo-tagline {4744  font-family: var(--font-mono);4745  font-size: 0.625rem;4746  letter-spacing: 0.06em;4747  color: var(--peach-t2);4748  margin: 0 0 14px;4749}4750.peach-pro-promo-list {4751  list-style: none;4752  margin: 0 0 16px;4753  padding: 0;4754  display: grid;4755  gap: 9px;4756}4757.peach-pro-promo-list li {4758  display: flex;4759  align-items: flex-start;4760  gap: 9px;4761  font-size: 0.75rem;4762  color: var(--peach-t1);4763  line-height: 1.4;4764}4765.peach-pro-promo-list svg {4766  width: 14px;4767  height: 14px;4768  flex-shrink: 0;4769  color: var(--peach-accent);4770  margin-top: 2px;4771}4772.peach-pro-promo-list span {4773  color: var(--peach-t0);4774}4775.peach-pro-promo-cta {4776  width: 100%;4777  background: var(--peach-accent);4778  color: #fff;4779  border: none;4780  padding: 9px 12px;4781  border-radius: 9px;4782  font-size: 0.75rem;4783  font-weight: 500;4784  font-family: var(--font-ui);4785  letter-spacing: 0.02em;4786  text-decoration: none;4787  display: inline-flex;4788  align-items: center;4789  justify-content: center;4790  cursor: pointer;4791  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4792  box-shadow: 0 2px 16px var(--peach-glow);4793}4794.peach-pro-promo-cta:hover {4795  filter: brightness(1.07);4796  box-shadow: 0 4px 24px var(--peach-glow);4797  transform: translateY(-1px);4798}4799.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }48004801.peach-pro-or-divider {4802  display: flex;4803  align-items: center;4804  gap: 10px;4805  margin: 4px 0 12px;4806  font-family: var(--font-mono);4807  font-size: 0.625rem;4808  letter-spacing: 0.06em;4809  color: var(--peach-t2);4810  text-transform: uppercase;4811}4812.peach-pro-or-divider::before,4813.peach-pro-or-divider::after {4814  content: "";4815  flex: 1;4816  height: 1px;4817  background: var(--peach-t3);4818}48194820.peach-loading {4821  position: absolute;4822  inset: 0;4823  display: flex;4824  align-items: center;4825  justify-content: center;4826  background: var(--bg);4827  animation: peach-loading-pulse 1.2s ease-in-out infinite;4828}48294830@keyframes peach-loading-pulse {4831  0%, 100% { opacity: 0.6; }4832  50% { opacity: 1; }4833}48344835/* ── Health Dashboard ─────────────────────────────────────────────────── */4836.peach-health-body {4837  flex: 1;4838  overflow-y: auto;4839  display: flex;4840  flex-direction: column;4841  /* Hide the platform scrollbar — every other scrollable surface in the4842   * popup hides it; the Health view was the one outlier and it ruined the4843   * polish. Behavior unchanged, just no rail rendered. */4844  scrollbar-width: none;4845  -ms-overflow-style: none;4846}4847.peach-health-body::-webkit-scrollbar { display: none; }48484849/* Loading screen for the Vault Health view. The advanced report computation4850 * can run for a few seconds on a large vault — without a clear loading4851 * screen the surface looked broken (the entry view bleeds through the4852 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4853.peach-health-loading-screen {4854  flex: 1;4855  display: flex;4856  flex-direction: column;4857  align-items: center;4858  justify-content: center;4859  gap: 14px;4860  padding: 32px 28px;4861  text-align: center;4862}48634864.peach-health-loading-glyph {4865  width: 48px;4866  height: 48px;4867  display: flex;4868  align-items: center;4869  justify-content: center;4870  border-radius: 14px;4871  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4872  color: var(--peach-accent);4873}48744875.peach-health-loading-title {4876  margin: 0;4877  font-family: var(--font-display);4878  font-style: italic;4879  font-weight: 300;4880  font-size: 19px;4881  line-height: 1.2;4882  color: var(--peach-t0);4883}48844885.peach-health-loading-copy {4886  margin: 0;4887  max-width: 240px;4888  font-size: 0.75rem;4889  line-height: 1.55;4890  color: var(--peach-t2);4891}48924893.peach-health-loading-track {4894  width: 200px;4895  height: 3px;4896  margin-top: 6px;4897  border-radius: 999px;4898  background: rgba(240, 232, 216, 0.06);4899  overflow: hidden;4900}49014902.peach-health-loading-fill {4903  width: 40%;4904  height: 100%;4905  border-radius: inherit;4906  background: linear-gradient(4907    90deg,4908    transparent 0%,4909    var(--peach-accent) 50%,4910    transparent 100%4911  );4912  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4913}49144915@keyframes peach-health-loading-sweep {4916  0%   { transform: translateX(-100%); }4917  100% { transform: translateX(350%); }4918}49194920[data-motion="reduce"] .peach-health-loading-fill,4921[data-motion="reduce"] .peach-health-loading-glyph svg path {4922  animation: none;4923}49244925.peach-health-summary {4926  padding: 10px 16px 6px;4927  font-family: "IBM Plex Mono", monospace;4928  font-size: 0.6875rem;4929}4930.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4931.peach-health-summary-ok { color: var(--peach-t2); }49324933.peach-health-check-row {4934  padding: 0 16px 10px;4935}4936.peach-health-check-btn {4937  width: 100%;4938  display: flex;4939  align-items: center;4940  justify-content: center;4941}49424943.peach-health-sections {4944  flex: 1;4945  display: flex;4946  flex-direction: column;4947}49484949.peach-health-section {4950  border-bottom: 1px solid var(--peach-t3);4951}49524953.peach-health-section-header {4954  width: 100%;4955  display: flex;4956  align-items: center;4957  justify-content: space-between;4958  padding: 9px 16px;4959  background: transparent;4960  cursor: pointer;4961  color: var(--peach-t0);4962}49634964.peach-health-section-title-row {4965  display: flex;4966  align-items: center;4967  gap: 8px;4968}49694970.peach-health-count-badge {4971  display: inline-flex;4972  align-items: center;4973  justify-content: center;4974  min-width: 20px;4975  height: 18px;4976  padding: 0 5px;4977  border-radius: 999px;4978  background: rgba(220,80,60,0.15);4979  border: 1px solid rgba(220,80,60,0.25);4980  font-family: "IBM Plex Mono", monospace;4981  font-size: 0.5625rem;4982  color: rgba(220,80,60,0.9);4983}49844985.peach-health-section-title {4986  font-family: "IBM Plex Mono", monospace;4987  font-size: 0.6875rem;4988  text-transform: uppercase;4989  letter-spacing: 0.1em;4990  color: var(--peach-t1);4991}49924993.peach-health-chevron {4994  color: var(--peach-t2);4995  transition: transform 200ms ease;4996  flex-shrink: 0;4997}4998.peach-health-chevron.is-expanded {4999  transform: rotate(180deg);5000}50015002.peach-health-section-body {5003  padding: 0 16px 10px;5004  display: flex;5005  flex-direction: column;5006  gap: 4px;5007}50085009.peach-health-row {5010  display: flex;5011  align-items: flex-start;5012  justify-content: space-between;5013  gap: 8px;5014  padding: 6px 8px;5015  border-radius: 8px;5016  background: rgba(240,232,216,0.02);5017}50185019.peach-health-row-info {5020  flex: 1;5021  min-width: 0;5022  display: flex;5023  flex-direction: column;5024  gap: 2px;5025}50265027.peach-health-row-name {5028  font-family: var(--font-display);5029  font-size: 0.9375rem;5030  font-style: italic;5031  font-weight: 400;5032  color: var(--peach-t0);5033  white-space: nowrap;5034  overflow: hidden;5035  text-overflow: ellipsis;5036}50375038.peach-health-row-meta {5039  font-family: "IBM Plex Mono", monospace;5040  font-size: 0.5625rem;5041  color: var(--peach-t2);5042  letter-spacing: 0.05em;5043}50445045.peach-health-fix-btn {5046  font-size: 0.5625rem;5047  letter-spacing: 0.08em;5048  text-transform: uppercase;5049  padding: 4px 7px;5050  flex-shrink: 0;5051  display: flex;5052  align-items: center;5053}50545055.peach-health-empty {5056  font-family: "IBM Plex Mono", monospace;5057  font-size: 0.625rem;5058  color: var(--peach-t2);5059  padding: 6px 0;5060}50615062.peach-health-loading {5063  font-family: "IBM Plex Mono", monospace;5064  font-size: 0.625rem;5065  color: var(--peach-t2);5066  padding: 6px 0;5067  display: flex;5068  align-items: center;5069  gap: 6px;5070}50715072.peach-health-loading::before {5073  content: "";5074  width: 10px;5075  height: 10px;5076  border: 1.5px solid var(--peach-t3);5077  border-top-color: var(--peach-accent);5078  border-radius: 50%;5079  animation: peach-spin 600ms linear infinite;5080}50815082@keyframes peach-spin {5083  to { transform: rotate(360deg); }5084}50855086.peach-spinner {5087  width: 32px;5088  height: 32px;5089  border: 2px solid var(--peach-s2);5090  border-top-color: var(--peach-accent);5091  border-radius: 50%;5092  margin: 0 auto 16px;5093  animation: peach-spin 0.8s linear infinite;5094}50955096.peach-progress-screen {5097  text-align: center;5098  padding: 32px 16px;5099}51005101.peach-progress-screen-title {5102  font-size: 0.8125rem;5103  color: var(--peach-t0);5104  margin-bottom: 16px;5105}51065107.peach-progress-screen-stage {5108  font-size: 0.6875rem;5109  color: var(--peach-t2);5110  min-height: 14px;5111}51125113.peach-progress-screen-note {5114  font-size: 0.625rem;5115  color: var(--peach-t2);5116  margin-top: 8px;5117}51185119.peach-pairing-body {5120  flex: 1;5121  overflow-y: auto;5122  display: flex;5123  flex-direction: column;5124}51255126.peach-pairing-content {5127  flex: 1;5128  display: flex;5129  flex-direction: column;5130  align-items: center;5131  justify-content: center;5132  gap: 14px;5133  padding: 28px 20px;5134  text-align: center;5135}51365137.peach-pairing-code-screen {5138  gap: 18px;5139}51405141.peach-pairing-headline {5142  font-family: var(--font-display);5143  font-style: italic;5144  font-weight: 300;5145  font-size: 28px;5146  color: var(--peach-t0);5147  margin: 0;5148  line-height: 1;5149}51505151.peach-pairing-subline {5152  font-size: 0.75rem;5153  color: var(--peach-t2);5154  max-width: 220px;5155  line-height: 1.5;5156  margin: 0;5157}51585159.peach-pairing-subline--center {5160  text-align: center;5161}51625163/* 6-digit pairing code — both display (.peach-pairing-code) and entry5164   (.peach-pairing-code-input) share IBM Plex Mono / 36px / wide tracking5165   so the two modes feel like the same surface. */5166.peach-pairing-code {5167  font-family: "IBM Plex Mono", monospace;5168  font-size: 36px;5169  letter-spacing: 0.25em;5170  color: var(--peach-t0);5171  text-align: center;5172  padding: 24px 0;5173  text-shadow:5174    0 0 24px color-mix(in srgb, var(--peach-accent) 22%, transparent),5175    0 0 48px color-mix(in srgb, var(--peach-accent) 12%, transparent);5176  background: transparent;5177  border: 0;5178  cursor: default;5179  user-select: text;5180}51815182.peach-pairing-code--loading,5183.peach-pairing-code--expired {5184  font-size: 18px;5185  letter-spacing: 0.04em;5186  color: var(--peach-t2);5187  cursor: pointer;5188  text-shadow: none;5189}51905191.peach-pairing-qr-container {5192  display: flex;5193  flex-direction: column;5194  align-items: center;5195  gap: 10px;5196}51975198.peach-pairing-qr {5199  width: 240px;5200  height: 240px;5201  display: block;5202}52035204.peach-pairing-instruction {5205  font-size: 0.75rem;5206  color: var(--peach-t2);5207  text-align: center;5208  line-height: 1.5;5209  margin: 0;5210  max-width: 220px;5211}52125213.peach-pairing-expiry {5214  font-family: "IBM Plex Mono", monospace;5215  font-size: 13px;5216  letter-spacing: 0.06em;5217  color: var(--peach-t2);5218  margin: 0;5219}52205221.peach-pairing-regen {5222  font-size: 0.75rem;5223  color: var(--peach-accent);5224  background: transparent;5225  border: 0;5226  cursor: pointer;5227  padding: 4px 0;5228  text-decoration: underline;5229  text-underline-offset: 2px;5230}52315232.peach-pairing-code-input {5233  font-family: "IBM Plex Mono", monospace;5234  font-size: 36px;5235  letter-spacing: 0.25em;5236  color: var(--peach-t0);5237  background: transparent;5238  border: 0;5239  border-bottom: 1px solid var(--peach-t3);5240  outline: none;5241  text-align: center;5242  padding: 18px 0;5243  width: 220px;5244  caret-color: var(--peach-accent);5245  transition: border-color 160ms ease;5246}52475248.peach-pairing-code-input::placeholder {5249  color: var(--peach-t3);5250}52515252.peach-pairing-code-input:focus {5253  border-bottom-color: var(--peach-accent);5254}52555256.peach-pairing-toggle {5257  background: transparent;5258  border: 0;5259  color: var(--peach-t2);5260  font-size: 0.75rem;5261  padding: 8px 4px;5262  cursor: pointer;5263  transition: color 120ms ease;5264}52655266.peach-pairing-toggle:hover:not(:disabled) {5267  color: var(--peach-t1);5268}52695270.peach-pairing-toggle:disabled {5271  opacity: 0.5;5272  cursor: default;5273}52745275.peach-pairing-hint {5276  font-size: 0.6875rem;5277  color: var(--peach-t2);5278  margin: 0;5279  text-align: center;5280}52815282.peach-pairing-status {5283  display: flex;5284  align-items: center;5285  gap: 8px;5286  margin: 0;5287  font-size: 0.75rem;5288  color: var(--peach-t1);5289}52905291.peach-pairing-error {5292  margin: 0;5293  font-size: 0.6875rem;5294  color: var(--peach-breach);5295}52965297.peach-pairing-error--muted {5298  color: var(--peach-t2);5299}53005301.peach-pairing-spinner {5302  width: 12px;5303  height: 12px;5304  border: 1.5px solid var(--peach-t3);5305  border-top-color: var(--peach-accent);5306  border-radius: 50%;5307  animation: peach-spin 0.8s linear infinite;5308}53095310.peach-pairing-success-icon,5311.peach-pairing-error-icon,5312.peach-pairing-hero {5313  display: inline-flex;5314  align-items: center;5315  justify-content: center;5316}53175318/* Tag chips */5319.peach-tag-chip {5320  display: inline-flex;5321  align-items: center;5322  gap: 4px;5323  padding: 3px 8px;5324  border-radius: 999px;5325  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5326  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5327  color: var(--peach-t0);5328  font-family: "IBM Plex Mono", monospace;5329  font-size: 0.625rem;5330  letter-spacing: 0.04em;5331}53325333.peach-tag-chip-remove {5334  background: transparent;5335  border: none;5336  color: inherit;5337  opacity: 0.6;5338  cursor: pointer;5339  padding: 0;5340  font-size: 0.75rem;5341  line-height: 1;5342}53435344.peach-tag-chip-remove:hover {5345  opacity: 1;5346}53475348/* Tag input */5349.peach-tag-input-wrap {5350  border-bottom: 1px solid var(--peach-t3);5351}53525353.peach-tag-suggestions {5354  display: flex;5355  flex-wrap: wrap;5356  gap: 4px;5357  padding: 6px 0;5358}53595360.peach-tag-suggestion {5361  padding: 2px 8px;5362  border-radius: 999px;5363  border: 1px solid var(--peach-t3);5364  background: var(--peach-s2);5365  color: var(--peach-t1);5366  font-family: "IBM Plex Mono", monospace;5367  font-size: 0.625rem;5368  cursor: pointer;5369  transition: border-color 80ms ease, background 80ms ease;5370}53715372.peach-tag-suggestion:hover {5373  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5374  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5375}53765377/* Identity suggestions — shown below username/email inputs in new-entry form */5378@keyframes peach-suggest-in {5379  from { opacity: 0; transform: translateY(-4px); }5380  to   { opacity: 1; transform: none; }5381}53825383.peach-identity-suggestions {5384  display: flex;5385  flex-direction: column;5386  gap: 1px;5387  margin-top: 4px;5388  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5389}53905391.peach-identity-filter-row {5392  display: flex;5393  align-items: center;5394  gap: 4px;5395  padding: 2px 0 5px;5396}53975398.peach-identity-collapse-btn {5399  margin-left: auto;5400  background: transparent;5401  border: none;5402  cursor: pointer;5403  color: var(--peach-t3);5404  padding: 2px 4px;5405  display: flex;5406  align-items: center;5407  line-height: 0;5408  border-radius: 3px;5409  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5410}54115412.peach-identity-collapse-btn:hover {5413  color: var(--peach-t1);5414}54155416.peach-identity-collapse-btn.is-collapsed {5417  transform: rotate(-90deg);5418}54195420.peach-identity-rows {5421  display: grid;5422  grid-template-rows: 1fr;5423  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5424}54255426.peach-identity-rows.is-collapsed {5427  grid-template-rows: 0fr;5428}54295430.peach-identity-rows-inner {5431  overflow-y: auto;5432  min-height: 0;5433  max-height: 148px;5434  scrollbar-width: thin;5435  scrollbar-color: var(--peach-t3) transparent;5436  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5437  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5438}54395440.peach-identity-rows-inner::-webkit-scrollbar {5441  width: 4px;5442}54435444.peach-identity-rows-inner::-webkit-scrollbar-track {5445  background: transparent;5446}54475448.peach-identity-rows-inner::-webkit-scrollbar-thumb {5449  background: var(--peach-t3);5450  border-radius: 2px;5451}54525453.peach-identity-filter-pill {5454  padding: 2px 7px;5455  border-radius: 999px;5456  border: 1px solid var(--peach-t3);5457  background: transparent;5458  color: var(--peach-t2);5459  font-family: "IBM Plex Mono", monospace;5460  font-size: 0.6rem;5461  cursor: pointer;5462  transition: border-color 80ms, background 80ms, color 80ms;5463}54645465.peach-identity-filter-pill.is-on {5466  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5467  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5468  color: var(--peach-accent);5469}54705471.peach-identity-suggestion {5472  display: flex;5473  align-items: center;5474  gap: 6px;5475  width: 100%;5476  padding: 4px 6px;5477  border-radius: 5px;5478  border: none;5479  background: transparent;5480  cursor: pointer;5481  text-align: left;5482  transition: background 80ms ease;5483}54845485.peach-identity-suggestion:hover,5486.peach-identity-suggestion:focus {5487  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5488  outline: none;5489}54905491.peach-identity-suggestion-value {5492  font-family: "IBM Plex Mono", monospace;5493  font-size: 0.7rem;5494  color: var(--peach-t1);5495  overflow: hidden;5496  text-overflow: ellipsis;5497  white-space: nowrap;5498  flex: 1;5499  min-width: 0;5500}55015502.peach-identity-suggestion-type {5503  font-family: "IBM Plex Mono", monospace;5504  font-size: 0.55rem;5505  font-weight: 600;5506  flex-shrink: 0;5507  padding: 1px 4px;5508  border-radius: 3px;5509}55105511.peach-identity-suggestion-type--email {5512  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5513  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5514}55155516.peach-identity-suggestion-type--username {5517  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5518  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5519}55205521.peach-identity-suggestion-meta {5522  font-family: "IBM Plex Mono", monospace;5523  font-size: 0.6rem;5524  color: var(--peach-t3);5525  flex-shrink: 0;5526}55275528/* Tag filter strip */5529.peach-tag-filter-strip {5530  border-bottom: 1px solid var(--peach-t3);5531  flex-shrink: 0;5532}55335534.peach-tag-filter-chip {5535  display: inline-flex;5536  align-items: center;5537  padding: 4px 10px;5538  border-radius: 999px;5539  border: 1px solid var(--peach-t3);5540  background: transparent;5541  color: var(--peach-t2);5542  font-family: "IBM Plex Mono", monospace;5543  font-size: 0.5625rem;5544  letter-spacing: 0.06em;5545  text-transform: uppercase;5546  cursor: pointer;5547  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5548  white-space: nowrap;5549}55505551.peach-tag-filter-chip:hover {5552  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5553  color: var(--peach-t1);5554}55555556.peach-tag-filter-chip.is-selected {5557  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5558  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5559  color: var(--peach-t0);5560}55615562/* ─────────────────────────────────────────────────────────────────────────5563   v1.4.12 additions5564   ─────────────────────────────────────────────────────────────────────── */55655566/* Sort bar */5567.peach-sort-bar {5568  display: flex;5569  align-items: center;5570  gap: 4px;5571  padding: 5px 12px;5572  border-bottom: 1px solid var(--peach-t3);5573  flex-shrink: 0;5574  overflow-x: auto;5575  scrollbar-width: none;5576}55775578.peach-sort-btn {5579  padding: 2px 9px;5580  border-radius: 999px;5581  border: 1px solid transparent;5582  background: transparent;5583  color: var(--peach-t2);5584  font-family: "IBM Plex Mono", monospace;5585  font-size: 0.5625rem;5586  letter-spacing: 0.07em;5587  text-transform: uppercase;5588  cursor: pointer;5589  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5590  white-space: nowrap;5591}55925593.peach-sort-btn:hover {5594  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5595  color: var(--peach-t1);5596}55975598.peach-sort-btn.is-active {5599  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5600  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5601  color: var(--peach-t0);5602}56035604.peach-sort-scope-btn {5605  padding-inline: 8px;5606  font-size: 0.53125rem;5607  letter-spacing: 0.05em;5608}56095610.peach-sort-domain-hint {5611  margin-left: auto;5612  font-family: "IBM Plex Mono", monospace;5613  font-size: 0.5625rem;5614  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5615  white-space: nowrap;5616  overflow: hidden;5617  text-overflow: ellipsis;5618  max-width: 110px;5619}56205621/* Tab-match badge on entry rows */5622.peach-tab-match-badge {5623  display: inline-block;5624  width: 6px;5625  height: 6px;5626  border-radius: 50%;5627  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5628  margin-left: 5px;5629  vertical-align: middle;5630  flex-shrink: 0;5631  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5632}56335634.peach-entry-row.is-tab-match {5635  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5636  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5637}56385639.peach-entry-row.is-tab-match:hover {5640  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5641}56425643/* Entry list stagger entrance */5644@keyframes peach-entry-fadein {5645  from { opacity: 0; transform: translateY(4px); }5646  to   { opacity: 1; transform: translateY(0); }5647}56485649.peach-vault-list .peach-entry-row {5650  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5651}56525653/* Button press micro-interaction */5654.peach-btn:active {5655  transform: scale(0.95);5656  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5657}56585659.peach-sort-btn:active,5660.peach-tag-filter-chip:active {5661  transform: scale(0.93);5662  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5663}56645665/* Password strength bar (Lock view + shared) */5666.peach-password-strength {5667  display: flex;5668  align-items: center;5669  gap: 8px;5670  margin-top: 6px;5671}56725673.peach-strength-bar {5674  flex: 1;5675  height: 3px;5676  border-radius: 2px;5677  background: var(--peach-t3);5678  overflow: hidden;5679}56805681.peach-strength-fill {5682  height: 100%;5683  border-radius: 2px;5684  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5685              background 300ms ease;5686}56875688.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5689.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5690.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5691.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }56925693.peach-strength-label {5694  font-family: "IBM Plex Mono", monospace;5695  font-style: italic;5696  font-size: 0.5625rem;5697  font-weight: 300;5698  letter-spacing: 0.06em;5699  color: var(--peach-t2);5700  min-width: 36px;5701  text-align: right;5702}57035704.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5705.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5706.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5707.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57085709/* Duress form */5710.peach-duress-status {5711  padding: 2px 8px;5712  border-radius: 999px;5713  border: 1px solid var(--peach-t3);5714  font-family: "IBM Plex Mono", monospace;5715  font-size: 0.5625rem;5716  letter-spacing: 0.07em;5717  text-transform: uppercase;5718  color: var(--peach-t2);5719  flex-shrink: 0;5720}57215722.peach-duress-status.is-active {5723  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5724  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5725  color: var(--peach-t0);5726}57275728.peach-duress-form {5729  padding: 8px 0 4px;5730  display: flex;5731  flex-direction: column;5732  gap: 6px;5733}57345735.peach-duress-form .peach-label {5736  margin-top: 4px;5737}57385739.peach-duress-actions {5740  display: flex;5741  gap: 6px;5742  align-items: center;5743  margin-top: 4px;5744}57455746.peach-duress-actions .peach-btn:first-child {5747  margin-right: auto;5748}57495750/* Improved overlay spring entrance */5751.peach-overlay-view.ov-enter-up {5752  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5753}57545755@keyframes ov-enter-up-spring {5756  from { opacity: 0; transform: translateY(16px) scale(0.98); }5757  to   { opacity: 1; transform: translateY(0) scale(1); }5758}57595760.peach-overlay-view.ov-enter-right {5761  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5762}57635764@keyframes ov-enter-right-spring {5765  from { opacity: 0; transform: translateX(18px) scale(0.98); }5766  to   { opacity: 1; transform: translateX(0) scale(1); }5767}57685769/* ── Onboarding-mode restore screens (file import) ── */5770/* Used when MainImportView renders during onboarding (no vault yet).5771   Animates like a lock-screen transition. */5772.peach-lock-view {5773  position: absolute;5774  inset: 0;5775  display: flex;5776  flex-direction: column;5777  background:5778    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5779    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5780    var(--peach-bg);5781  z-index: 2;5782  overflow: hidden;5783  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5784}57855786.peach-lock-view-header {5787  display: flex;5788  align-items: center;5789  justify-content: space-between;5790  padding: 16px 18px 12px;5791  flex-shrink: 0;5792}57935794/* ───────── Settings: auto-lock select ───────── */5795.peach-settings-select {5796  font-family: "IBM Plex Mono", monospace;5797  font-size: 0.6875rem;5798  background: transparent;5799  border: 1px solid var(--peach-t3);5800  border-radius: 4px;5801  color: var(--peach-t1);5802  padding: 3px 6px;5803  cursor: pointer;5804  outline: none;5805}5806.peach-settings-select:focus {5807  border-color: var(--peach-accent);5808}58095810/* ───────── Duress status pill (new polished) ───────── */5811.peach-duress-status-pill {5812  font-family: "IBM Plex Mono", monospace;5813  font-size: 0.5625rem;5814  text-transform: uppercase;5815  letter-spacing: 0.12em;5816  padding: 2px 8px;5817  border-radius: 12px;5818  background: var(--peach-t3);5819  color: var(--peach-t2);5820  flex-shrink: 0;5821}5822.peach-duress-status-pill.is-active {5823  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5824  color: var(--peach-accent);5825}58265827/* ───────── Entry advanced disclosure (canary) ───────── */5828.peach-entry-advanced {5829  margin-top: 12px;5830  border-top: 1px solid var(--peach-t3);5831  padding-top: 10px;5832  position: relative;5833  z-index: 1;5834}5835.peach-entry-advanced-toggle {5836  display: flex;5837  align-items: center;5838  justify-content: space-between;5839  width: 100%;5840  background: transparent;5841  border: none;5842  cursor: pointer;5843  padding: 0;5844  color: var(--peach-t2);5845}5846.peach-canary-section {5847  margin-top: 10px;5848  display: grid;5849  gap: 6px;5850}58515852/* ───────── Import: merge/replace radio choices ───────── */5853.peach-import-choice {5854  display: flex;5855  align-items: flex-start;5856  gap: 10px;5857  padding: 8px 10px;5858  border: 1px solid var(--peach-t3);5859  border-radius: 10px;5860  cursor: pointer;5861  margin-bottom: 6px;5862  transition: border-color 120ms ease, background 120ms ease;5863}5864.peach-import-choice:hover {5865  border-color: var(--peach-accent);5866}5867.peach-import-choice input[type="radio"] {5868  margin-top: 3px;5869  accent-color: var(--peach-accent);5870  flex-shrink: 0;5871}5872.peach-import-choice-main {5873  display: flex;5874  flex-direction: column;5875  gap: 2px;5876  min-width: 0;5877}5878.peach-import-choice-label {5879  font-size: 0.75rem;5880  color: var(--peach-t0);5881}5882.peach-import-choice-sub {5883  font-size: 0.6875rem;5884  color: var(--peach-t2);5885  line-height: 1.5;5886}58875888/* ───────── Export: success confirmation strip ───────── */5889.peach-export-success {5890  display: flex;5891  align-items: flex-start;5892  gap: 10px;5893  padding: 12px;5894  border-radius: 12px;5895  border: 1px solid rgba(150, 175, 110, 0.3);5896  background: rgba(150, 175, 110, 0.08);5897  color: var(--peach-t0);5898  font-size: 0.75rem;5899  line-height: 1.55;5900}5901.peach-export-success-check {5902  color: rgba(150, 175, 110, 0.9);5903  font-size: 0.875rem;5904  flex-shrink: 0;5905}59065907/* ── Trash view ──────────────────────────────────────────────────────── */5908.peach-trash-entry-row {5909  display: flex;5910  align-items: center;5911  justify-content: space-between;5912  gap: 8px;5913  padding: 8px 0;5914  border-bottom: 1px solid var(--peach-border);5915}5916.peach-trash-entry-info {5917  flex: 1;5918  min-width: 0;5919  display: flex;5920  flex-direction: column;5921  gap: 2px;5922}5923.peach-trash-entry-title {5924  font-size: 0.8125rem;5925  color: var(--peach-t0);5926  overflow: hidden;5927  text-overflow: ellipsis;5928  white-space: nowrap;5929}5930.peach-trash-entry-meta {5931  font-family: var(--font-mono);5932  font-size: 0.5625rem;5933  color: var(--peach-t2);5934  letter-spacing: 0.04em;5935}5936.peach-trash-entry-actions {5937  display: flex;5938  align-items: center;5939  gap: 4px;5940  flex-shrink: 0;5941}5942.peach-trash-delete-btn {5943  background: transparent;5944  border: 0;5945  color: var(--peach-t3);5946  font-size: 1rem;5947  line-height: 1;5948  cursor: pointer;5949  padding: 2px 5px;5950  transition: color 0.15s;5951}5952.peach-trash-delete-btn:hover { color: var(--peach-breach); }5953.peach-trash-list {5954  overflow-y: auto;5955}5956.peach-trash-footer {5957  display: flex;5958  align-items: center;5959  gap: 8px;5960  padding: 8px 0 0;5961  border-top: 1px solid var(--peach-border);5962  margin-top: 4px;5963}5964.peach-trash-purge-all {5965  background: transparent;5966  border: 0;5967  color: var(--peach-t3);5968  font-size: 0.625rem;5969  cursor: pointer;5970  padding: 4px 0;5971  letter-spacing: 0.03em;5972  transition: color 0.2s;5973}5974.peach-trash-purge-all:hover { color: var(--peach-breach); }5975.peach-trash-purge-confirm-label {5976  font-size: 0.625rem;5977  color: var(--peach-t1);5978  flex: 1;5979}59805981/* ── Settings shortcuts grid ─────────────────────────────────────────── */5982.peach-shortcuts-grid {5983  display: grid;5984  grid-template-columns: auto 1fr;5985  gap: 6px 12px;5986  align-items: center;5987  padding: 4px 0;5988}5989.peach-shortcut-key {5990  font-family: var(--font-mono);5991  font-size: 0.625rem;5992  color: var(--peach-t0);5993  background: var(--peach-t3);5994  border-radius: 4px;5995  padding: 2px 6px;5996  white-space: nowrap;5997  text-align: center;5998}5999.peach-shortcut-desc {6000  font-size: 0.6875rem;6001  color: var(--peach-t1);6002}60036004/* ── Sort bar trash button ───────────────────────────────────────────── */6005.peach-sort-trash-btn {6006  display: flex;6007  align-items: center;6008  justify-content: center;6009  padding: 3px 5px;6010  background: transparent;6011  border: none;6012  cursor: pointer;6013  color: var(--peach-t2);6014  border-radius: 4px;6015  transition: color 140ms ease, background 140ms ease;6016}6017.peach-sort-trash-btn:hover {6018  color: var(--peach-t1);6019  background: var(--peach-t3);6020}6021.peach-sort-trash-btn.is-active {6022  color: var(--peach-accent);6023}60246025/* Accent color picker */6026.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6027.peach-accent-picker {6028  display: flex;6029  flex-wrap: wrap;6030  gap: 7px;6031  padding: 2px 0;6032}6033.peach-accent-swatch {6034  width: 22px;6035  height: 22px;6036  border-radius: 50%;6037  border: 2px solid transparent;6038  cursor: pointer;6039  padding: 0;6040  transition: transform 100ms;6041  outline-offset: 2px;6042}6043.peach-accent-swatch:hover { transform: scale(1.15); }6044.peach-accent-swatch.is-active {6045  border-color: var(--peach-t0);6046  transform: scale(1.1);6047}60486049.peach-pill-group {6050  display: flex;6051  gap: 6px;6052}6053.peach-pill-group .peach-btn.is-active {6054  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6055  border-color: var(--peach-accent);6056  color: var(--peach-t0);6057}60586059/* ── Card entry styles ───────────────────────────────────────── */6060.peach-card-number {6061  font-family: var(--peach-mono);6062  letter-spacing: 0.08em;6063}60646065.peach-card-network-badge {6066  font-size: 0.625rem;6067  padding: 1px 5px;6068  border-radius: 4px;6069  border: 0.5px solid var(--peach-border);6070  color: var(--peach-text-dim);6071  margin-left: 6px;6072  vertical-align: middle;6073}60746075.peach-card-expiry-row {6076  display: flex;6077  align-items: center;6078  gap: 8px;6079}60806081.peach-card-expiry-sep {6082  color: var(--peach-text-dim);6083}60846085/* ── Pro tier — upgrade screen ──────────────────────────────── */6086.peach-pro-mark {6087  font-size: 0.5625rem;6088  color: var(--peach-accent);6089  margin-left: 6px;6090  vertical-align: super;6091  opacity: 0.7;6092}60936094.peach-pro-mini-badge {6095  display: block;6096  font-size: 0.625rem;6097  font-style: italic;6098  color: var(--peach-accent);6099  letter-spacing: 0.04em;6100  margin-top: -2px;6101  padding-left: 2px;6102  opacity: 0.85;6103  text-align: center;6104}61056106.peach-wordmark-stack {6107  display: inline-flex;6108  flex-direction: column;6109  align-items: center;6110}61116112/* ── Pro tier — upgrade page ─────────────────────────────────── */6113/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61146115.peach-pro-upgrade {6116  display: flex;6117  flex-direction: column;6118  align-items: stretch;6119  gap: 10px;6120  padding: 2px 2px 12px;6121}61226123.peach-pro-eyebrow {6124  margin: 0;6125  font-family: var(--font-ui);6126  font-size: 0.625rem;6127  font-weight: 500;6128  letter-spacing: 0.12em;6129  color: var(--peach-accent);6130}61316132.peach-pro-headline {6133  margin: 0;6134  font-family: var(--font-display, "Cormorant Garamond", serif);6135  font-size: 30px;6136  font-weight: 700;6137  font-style: normal;6138  line-height: 1.05;6139  color: var(--peach-t0);6140  letter-spacing: -0.01em;6141}6142.peach-pro-headline em {6143  font-style: italic;6144  font-weight: 400;6145  color: var(--peach-accent);6146}61476148.peach-pro-subtitle {6149  margin: 0;6150  font-size: 0.6875rem;6151  line-height: 1.5;6152  color: var(--peach-t1);6153}61546155/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6156.peach-pro-section-label {6157  margin: 6px 0 0;6158  font-family: var(--font-ui);6159  font-size: 0.5625rem;6160  font-weight: 500;6161  letter-spacing: 0.12em;6162  text-transform: uppercase;6163  color: var(--peach-t2);6164}61656166/* 2-column numbered feature grid */6167.peach-pro-grid {6168  display: grid;6169  grid-template-columns: 1fr 1fr;6170  border-top: 1px solid var(--peach-border);6171  border-left: 1px solid var(--peach-border);6172}61736174.peach-pro-grid-item {6175  display: flex;6176  flex-direction: column;6177  gap: 2px;6178  padding: 8px 9px;6179  border-right: 1px solid var(--peach-border);6180  border-bottom: 1px solid var(--peach-border);6181}61826183.peach-pro-grid-item--wide {6184  grid-column: 1 / -1;6185}61866187.peach-pro-grid-num {6188  font-family: var(--font-mono);6189  font-size: 0.5625rem;6190  color: var(--peach-accent);6191  letter-spacing: 0.06em;6192  opacity: 0.85;6193}61946195.peach-pro-grid-name {6196  font-size: 0.8125rem;6197  font-weight: 500;6198  color: var(--peach-t0);6199  line-height: 1.2;6200}62016202.peach-pro-grid-desc {6203  font-size: 0.625rem;6204  color: var(--peach-t1);6205  line-height: 1.4;6206}62076208.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6209  animation: peach-pulse-accent 600ms ease-out forwards;6210}62116212@keyframes peach-pulse-accent {6213  0%   { opacity: 1; transform: scale(1.2); }6214  100% { opacity: 0.85; transform: scale(1); }6215}62166217/* Actions */6218.peach-pro-upgrade-actions {6219  display: flex;6220  flex-direction: column;6221  align-items: stretch;6222  gap: 10px;6223}62246225.peach-pro-pricing {6226  margin: 0;6227  font-size: 1rem;6228  font-weight: 600;6229  color: var(--peach-t0);6230  letter-spacing: 0.01em;6231}6232.peach-pro-pricing-sub {6233  font-size: 0.75rem;6234  font-weight: 400;6235  color: var(--peach-t1);6236  letter-spacing: 0.02em;6237}62386239.peach-pro-upgrade-cta {6240  display: flex;6241  align-items: center;6242  justify-content: center;6243  text-decoration: none;6244  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6245  border: 1px solid var(--peach-accent);6246  border-radius: 10px;6247  color: var(--peach-accent);6248  font-family: var(--font-ui);6249  font-size: 0.8125rem;6250  font-weight: 600;6251  letter-spacing: 0.06em;6252  padding: 11px 16px;6253  transition: background 0.15s ease, color 0.15s ease;6254}6255.peach-pro-upgrade-cta:hover {6256  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6257}62586259.peach-pro-key-divider {6260  display: flex;6261  align-items: center;6262  gap: 8px;6263  color: var(--peach-t2);6264  font-size: 0.5625rem;6265  letter-spacing: 0.1em;6266}6267.peach-pro-key-divider::before,6268.peach-pro-key-divider::after {6269  content: "";6270  flex: 1;6271  height: 1px;6272  background: var(--peach-border);6273}62746275/* Inline key entry row */6276.peach-pro-key-inline {6277  display: flex;6278  align-items: center;6279  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6280  border: 1px solid var(--peach-border);6281  border-radius: 8px;6282  overflow: hidden;6283}6284.peach-pro-key-inline-input {6285  flex: 1;6286  background: transparent;6287  border: none;6288  outline: none;6289  color: var(--peach-t1);6290  font-family: var(--font-mono);6291  font-size: 0.625rem;6292  letter-spacing: 0.06em;6293  padding: 9px 10px;6294}6295.peach-pro-key-inline-input::placeholder {6296  color: var(--peach-t2);6297}6298.peach-pro-key-apply {6299  background: transparent;6300  border: none;6301  border-left: 1px solid var(--peach-border);6302  color: var(--peach-t2);6303  font-family: var(--font-ui);6304  font-size: 0.5625rem;6305  font-weight: 600;6306  letter-spacing: 0.08em;6307  padding: 9px 10px;6308  cursor: pointer;6309  transition: color 0.15s ease;6310  flex-shrink: 0;6311}6312.peach-pro-key-apply:not(:disabled):hover {6313  color: var(--peach-accent);6314}6315.peach-pro-key-apply:disabled {6316  opacity: 0.35;6317  cursor: not-allowed;6318}63196320/* ── Pro tier — key ceremony ─────────────────────────────────── */6321.peach-pro-key-ceremony {6322  display: flex;6323  flex-direction: column;6324  align-items: center;6325  gap: 12px;6326  padding: 20px 4px 16px;6327}63286329.peach-pro-key-ceremony .peach-lock-rune-string {6330  font-size: 1rem;6331  gap: 12px;6332  flex: 0;6333  justify-content: center;6334}63356336.peach-pro-key-ceremony-label {6337  margin: 0;6338  font-size: 0.6875rem;6339  color: var(--peach-t2);6340  font-style: italic;6341  letter-spacing: 0.04em;6342}63436344.peach-pro-key-input {6345  font-family: var(--font-mono, monospace);6346  letter-spacing: 0.06em;6347  text-align: center;6348  width: 100%;6349  box-sizing: border-box;6350}63516352.peach-pro-key-error {6353  margin: 0;6354  font-size: 0.75rem;6355  text-align: center;6356  color: var(--peach-breach, #e55);6357  padding: 0;6358}63596360.peach-pro-key-activate {6361  width: 100%;6362  text-align: center;6363  box-sizing: border-box;6364  padding: 10px 20px;6365  font-size: 0.8125rem;6366}63676368.peach-pro-key-cancel {6369  background: transparent;6370  border: 0;6371  color: var(--peach-t2);6372  font-size: 0.6875rem;6373  cursor: pointer;6374  padding: 2px 8px;6375  transition: color 0.2s;6376}63776378.peach-pro-key-cancel:hover { color: var(--peach-accent); }63796380/* ── Pro tier — active state ─────────────────────────────────── */6381.peach-pro-active {6382  display: flex;6383  flex-direction: column;6384  align-items: center;6385  gap: 0;6386  padding: 8px 4px 16px;6387  min-height: 280px;6388}63896390.peach-pro-active-hero {6391  display: flex;6392  flex-direction: column;6393  align-items: center;6394  gap: 6px;6395  padding: 20px 0 8px;6396}63976398.peach-pro-active-mark-wrap {6399  display: flex;6400  align-items: center;6401  justify-content: center;6402  margin-bottom: 4px;6403}64046405.peach-pro-active-mark {6406  width: 60px;6407  height: 60px;6408}64096410.peach-pro-active-title {6411  font-family: var(--font-display, var(--font-ui));6412  font-size: 26px;6413  margin: 0;6414  color: var(--peach-t0);6415  letter-spacing: 0.01em;6416}64176418.peach-pro-active-since {6419  margin: 0;6420  font-size: 0.6875rem;6421  color: var(--peach-t2);6422  font-style: italic;6423}64246425.peach-pro-active-features {6426  display: flex;6427  flex-direction: column;6428  gap: 8px;6429  width: 100%;6430  padding: 14px 8px 0;6431  border-top: 1px solid var(--peach-border);6432  flex: 1;6433}64346435.peach-pro-active-feature {6436  display: flex;6437  align-items: center;6438  gap: 9px;6439}64406441.peach-pro-active-feature-mark {6442  color: var(--peach-accent);6443  font-size: 0.625rem;6444  opacity: 0.65;6445  flex-shrink: 0;6446}64476448.peach-pro-active-feature-name {6449  font-size: 0.75rem;6450  color: var(--peach-t1);6451}64526453.peach-pro-deactivate {6454  align-self: center;6455  background: transparent;6456  border: 0;6457  color: var(--peach-t3);6458  font-size: 0.625rem;6459  cursor: pointer;6460  padding: 8px 0 0;6461  margin-top: 16px;6462  letter-spacing: 0.03em;6463  transition: color 0.2s;6464}64656466.peach-pro-deactivate:hover { color: var(--peach-t2); }64676468.peach-pro-deactivate:disabled {6469  opacity: 0.5;6470  cursor: default;6471}64726473/* ── Pro card activation sparkles & thank-you ── */6474button.peach-pro-active-mark-wrap {6475  background: transparent;6476  border: 0;6477  padding: 0;6478  cursor: pointer;6479  position: relative;6480  overflow: visible;6481}64826483.peach-pro-sparks {6484  position: absolute;6485  inset: 0;6486  pointer-events: none;6487  overflow: visible;6488}64896490.peach-pro-spark {6491  position: absolute;6492  top: 50%;6493  left: 50%;6494  font-size: 9px;6495  line-height: 1;6496  opacity: 0;6497  transform: translate(-50%, -50%);6498  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6499}65006501@keyframes peach-pro-spark-fly {6502  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6503  25%  { opacity: 1; }6504  100% {6505    opacity: 0;6506    transform: translate(6507      calc(-50% + var(--spark-x, 0px)),6508      calc(-50% + var(--spark-y, -40px))6509    ) scale(0.8);6510  }6511}65126513.peach-pro-thankyou-text {6514  margin: 4px 0 0;6515  font-size: 0.6875rem;6516  font-style: italic;6517  color: currentColor;6518  opacity: 0;6519  animation: peach-pro-thankyou-flash 2.5s ease both;6520}65216522@keyframes peach-pro-thankyou-flash {6523  0%   { opacity: 0; transform: translateY(4px); }6524  15%  { opacity: 0.75; transform: translateY(0); }6525  75%  { opacity: 0.75; }6526  100% { opacity: 0; }6527}65286529/* ── Pro advanced health remediation queue ──────────────────── */6530.peach-health-pro-queue {6531  display: flex;6532  flex-direction: column;6533  gap: 10px;6534  padding: 12px;6535  margin: 0 0 12px;6536  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6537  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6538  border-radius: 10px;6539}65406541.peach-health-pro-queue-head {6542  display: flex;6543  justify-content: space-between;6544  align-items: baseline;6545}65466547.peach-health-pro-queue-title {6548  font-size: 0.75rem;6549  font-weight: 500;6550  letter-spacing: 0.04em;6551  text-transform: uppercase;6552  color: var(--peach-accent);6553}65546555.peach-health-pro-queue-score {6556  font-size: 0.6875rem;6557  color: var(--peach-t2);6558}65596560.peach-health-pro-row {6561  display: flex;6562  gap: 10px;6563  align-items: center;6564  padding: 8px 0;6565  border-top: 1px solid var(--peach-border);6566}65676568.peach-health-pro-row-info {6569  flex: 1;6570  display: flex;6571  flex-direction: column;6572  gap: 4px;6573  min-width: 0;6574}65756576.peach-health-pro-action {6577  flex: 0 0 auto;6578  padding: 4px 8px;6579  font-size: 0.5625rem;6580  letter-spacing: 0.08em;6581  text-transform: uppercase;6582}65836584.peach-health-pro-row-name {6585  font-size: 0.8125rem;6586  color: var(--peach-t0);6587  overflow: hidden;6588  text-overflow: ellipsis;6589  white-space: nowrap;6590}65916592.peach-health-pro-row-meta {6593  font-size: 0.6875rem;6594  color: var(--peach-t2);6595}65966597.peach-health-pro-bar {6598  height: 2px;6599  background: var(--peach-border);6600  border-radius: 2px;6601  overflow: hidden;6602  margin-top: 2px;6603}66046605.peach-health-pro-bar-fill {6606  height: 100%;6607  background: var(--peach-accent);6608  transition: width 200ms ease-out;6609}66106611/* ── Pro activation celebration ── */6612@keyframes peach-pro-bloom {6613  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6614  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6615                 drop-shadow(0 0 48px var(--peach-glow)); }6616  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6617}66186619@keyframes peach-pro-wordmark-in {6620  from { opacity: 0; transform: translateY(4px); }6621  to   { opacity: 1; transform: translateY(0); }6622}66236624@keyframes peach-pro-fade-out {6625  from { opacity: 1; }6626  to   { opacity: 0; }6627}66286629.peach-pro-celebration {6630  background:6631    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6632    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6633    var(--peach-bg);6634  border: 1px solid var(--peach-t3);6635  box-shadow:6636    0 2px 8px rgba(0,0,0,0.55),6637    0 14px 48px rgba(0,0,0,0.7),6638    0 0 0 1px rgba(240,232,216,0.04);6639  overflow: hidden;6640  width: 320px;6641  height: 520px;6642  display: flex;6643  flex-direction: column;6644  align-items: center;6645  justify-content: center;6646  gap: 8px;6647  padding: 32px 24px;6648  text-align: center;6649}66506651.peach-pro-celebration.is-leaving {6652  animation: peach-pro-fade-out 400ms ease forwards;6653}66546655.peach-pro-bloom-target {6656  display: flex;6657  align-items: center;6658  justify-content: center;6659  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6660  margin-bottom: 12px;6661}66626663.peach-pro-bloom-icon {6664  width: 48px;6665  height: 48px;6666}66676668.peach-pro-wordmark {6669  font-family: var(--font-display);6670  font-size: 22px;6671  font-style: italic;6672  font-weight: 400;6673  color: var(--peach-accent);6674  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6675}66766677.peach-pro-thankyou {6678  font-size: 0.75rem;6679  font-style: italic;6680  color: var(--peach-t2);6681  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6682}668366846685/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6686.peach-pro-notice-banner {6687  display: flex;6688  align-items: center;6689  gap: 8px;6690  padding: 7px 12px;6691  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6692  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6693  font-size: 0.6875rem;6694  color: var(--peach-t2);6695  font-family: "IBM Plex Mono", monospace;6696  flex-shrink: 0;6697}66986699.peach-pro-notice-link {6700  background: none;6701  border: none;6702  padding: 0;6703  cursor: pointer;6704  font-size: 0.6875rem;6705  color: var(--peach-accent);6706  font-family: "IBM Plex Mono", monospace;6707  margin-left: auto;6708  white-space: nowrap;6709}67106711.peach-pro-notice-close {6712  background: none;6713  border: none;6714  padding: 0 0 0 4px;6715  cursor: pointer;6716  font-size: 0.625rem;6717  color: var(--peach-t3);6718  line-height: 1;6719}67206721/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6722   Renders over whatever view is showing. 60-second expiry; the popup ticks6723   the countdown each second and clears the banner when it hits zero. */6724.peach-pair-request-banner {6725  display: flex;6726  flex-direction: column;6727  gap: 8px;6728  padding: 10px 12px;6729  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6730  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6731  font-family: "IBM Plex Mono", monospace;6732  flex-shrink: 0;6733}67346735.peach-pair-toast {6736  padding: 8px 12px;6737  font-family: "IBM Plex Mono", monospace;6738  font-size: 0.75rem;6739  color: var(--peach-t1);6740  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6741  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6742  flex-shrink: 0;6743  text-align: center;6744}67456746.peach-pair-toast strong {6747  color: var(--peach-t0);6748  font-weight: 500;6749}67506751.peach-pair-request-header {6752  display: flex;6753  align-items: center;6754  gap: 8px;6755  font-size: 0.75rem;6756  color: var(--peach-t1);6757}67586759.peach-pair-request-mark {6760  font-size: 0.875rem;6761  display: inline-flex;6762  align-items: center;6763}67646765.peach-pair-request-icon {6766  width: 1em;6767  height: 1em;6768}67696770.peach-pair-request-title {6771  font-weight: 600;6772  color: var(--peach-t0);6773}67746775.peach-pair-request-countdown {6776  margin-left: auto;6777  font-variant-numeric: tabular-nums;6778  color: var(--peach-t2);6779  font-size: 0.6875rem;6780}67816782.peach-pair-request-body {6783  margin: 0;6784  font-size: 0.75rem;6785  color: var(--peach-t1);6786  line-height: 1.4;6787}67886789.peach-pair-request-body strong {6790  color: var(--peach-t0);6791  font-weight: 600;6792}67936794.peach-pair-request-actions {6795  display: flex;6796  gap: 8px;6797  justify-content: flex-end;6798}67996800/* ─── First-run onboarding ──────────────────────────────────────────────6801   Three-card welcome shown once before vault creation. The PeachScript6802   rune background drifts behind everything at very low opacity — it's6803   atmosphere, not focus. The cards themselves use the same panel6804   language as the rest of the popup so the transition into NewVault is6805   continuous, not a jarring switch of visual register. */68066807.peach-onboarding {6808  position: relative;6809  display: flex;6810  flex-direction: column;6811  width: 100%;6812  height: 100%;6813  padding: 16px 16px 18px;6814  box-sizing: border-box;6815  overflow: hidden;6816  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6817}68186819.peach-onboarding.is-completing {6820  animation: peach-onboard-exit 200ms ease-out forwards;6821}68226823.peach-rune-background {6824  position: absolute;6825  inset: 0;6826  width: 100%;6827  height: 100%;6828  pointer-events: none;6829  z-index: 0;6830  transition: opacity 500ms ease-out;6831}68326833.peach-onboarding.is-completing .peach-rune-background {6834  opacity: 0;6835}68366837.peach-onboarding-header {6838  position: relative;6839  z-index: 1;6840  display: flex;6841  align-items: center;6842  margin-bottom: 14px;6843}68446845.peach-onboarding-card {6846  position: relative;6847  z-index: 1;6848  flex: 1;6849  display: flex;6850  flex-direction: column;6851  gap: 10px;6852  padding: 22px 20px;6853  border-radius: 16px;6854  border: 1px solid var(--peach-t3);6855  background:6856    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6857  backdrop-filter: blur(3px);6858  -webkit-backdrop-filter: blur(3px);6859  box-shadow:6860    inset 0 1px 0 rgba(240, 232, 216, 0.04),6861    0 12px 28px rgba(0, 0, 0, 0.12);6862  cursor: pointer;6863  user-select: none;6864  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6865}68666867.peach-onboarding-card.is-exiting {6868  animation: peach-card-out 120ms ease-in forwards;6869  pointer-events: none;6870}68716872.peach-onboarding-card-headline {6873  margin: 0;6874  font-family: var(--font-display);6875  font-style: italic;6876  font-weight: 400;6877  font-size: 22px;6878  line-height: 1.05;6879  color: var(--peach-t0);6880  white-space: pre-line;6881}68826883.peach-onboarding-divider {6884  margin: 4px 0 6px;6885  border: 0;6886  border-top: 1px solid var(--peach-t3);6887  width: 100%;6888}68896890.peach-onboarding-body {6891  margin: 0;6892  font-size: 0.8125rem;6893  line-height: 1.6;6894  color: var(--peach-t1);6895}68966897.peach-onboarding-warning {6898  display: flex;6899  align-items: flex-start;6900  gap: 8px;6901  margin: 6px 0 0;6902  padding-top: 8px;6903  border-top: 1px dashed var(--peach-t3);6904  font-size: 0.8125rem;6905  line-height: 1.5;6906  color: var(--peach-t1);6907}69086909.peach-onboarding-warning-icon {6910  color: var(--peach-accent);6911  font-size: 0.8125rem;6912  line-height: 1.5;6913  flex: 0 0 auto;6914}69156916.peach-onboarding-nav {6917  position: relative;6918  z-index: 1;6919  display: flex;6920  align-items: center;6921  justify-content: space-between;6922  margin-top: 12px;6923  padding: 0 4px;6924}69256926.peach-onboarding-dots {6927  display: flex;6928  align-items: center;6929  gap: 6px;6930}69316932.peach-onboarding-dot {6933  width: 6px;6934  height: 6px;6935  border-radius: 50%;6936  background: var(--peach-t2);6937  transition: width 200ms ease, height 200ms ease, background 200ms ease;6938}69396940.peach-onboarding-dot.is-active {6941  width: 8px;6942  height: 8px;6943  background: var(--peach-accent);6944}69456946.peach-onboarding-next {6947  background: none;6948  border: none;6949  padding: 4px 0;6950  cursor: pointer;6951  font-family: "IBM Plex Mono", monospace;6952  font-size: 0.6875rem;6953  letter-spacing: 0.04em;6954  color: var(--peach-t1);6955  transition: color 150ms ease;6956}69576958.peach-onboarding-next:hover {6959  color: var(--peach-t0);6960}69616962.peach-onboarding-next:disabled {6963  opacity: 0.5;6964  cursor: default;6965}69666967.peach-onboarding-back {6968  background: none;6969  border: none;6970  padding: 4px 0;6971  cursor: pointer;6972  font-family: "IBM Plex Mono", monospace;6973  font-size: 0.6875rem;6974  letter-spacing: 0.04em;6975  color: var(--peach-t2);6976  transition: color 150ms ease;6977}69786979.peach-onboarding-back:hover {6980  color: var(--peach-t0);6981}69826983.peach-onboarding-back:disabled {6984  opacity: 0.5;6985  cursor: default;6986}69876988/* Reserve back-button width on the first card so the dots stay centred */6989.peach-onboarding-back-spacer {6990  width: 44px;6991}69926993.peach-onboarding-mobile-card-buttons {6994  display: flex;6995  flex-direction: column;6996  gap: 8px;6997  margin-top: 16px;6998}69997000@keyframes peach-onboard-enter {7001  from { opacity: 0; transform: translateY(20px); }7002  to   { opacity: 1; transform: translateY(0); }7003}70047005@keyframes peach-onboard-exit {7006  from { opacity: 1; }7007  to   { opacity: 0; }7008}70097010@keyframes peach-card-in {7011  from { opacity: 0; transform: translateX(12px); }7012  to   { opacity: 1; transform: translateX(0); }7013}70147015@keyframes peach-card-out {7016  from { opacity: 1; transform: translateX(0); }7017  to   { opacity: 0; transform: translateX(-12px); }7018}70197020/* ─── New vault screen — matched to onboarding card language ─────────── */70217022.peach-newvault {7023  position: relative;7024  display: flex;7025  flex-direction: column;7026  gap: 12px;7027  padding: 16px 16px 18px;7028  overflow: hidden;7029}70307031/* Suppress the warm-blob ambient art inherited from .lock-screen — the7032   new vault card now carries the visual weight. */7033.peach-newvault::before {7034  content: none;7035}70367037.peach-newvault-header {7038  position: relative;7039  z-index: 2;7040  display: flex;7041  align-items: center;7042  gap: 10px;7043  margin-bottom: 2px;7044}70457046.peach-newvault-back {7047  display: inline-flex;7048  align-items: center;7049  gap: 4px;7050  background: transparent;7051  border: none;7052  color: var(--peach-t2);7053  font-family: "IBM Plex Mono", monospace;7054  font-size: 0.625rem;7055  letter-spacing: 0.06em;7056  cursor: pointer;7057  padding: 4px 6px;7058  border-radius: 6px;7059  transition: color 120ms ease, background 120ms ease;7060}70617062.peach-newvault-back:hover {7063  color: var(--peach-t0);7064  background: rgba(240, 232, 216, 0.04);7065}70667067.peach-newvault-mark {7068  position: absolute;7069  right: -12px;7070  top: 6px;7071  width: 110px;7072  height: 110px;7073  pointer-events: none;7074  opacity: 0.10;7075  filter: saturate(0.9);7076  z-index: 0;7077}7078.peach-newvault-mark-art {7079  width: 100%;7080  height: 100%;7081}7082.peach-newvault-mark-art path:nth-child(1) {7083  fill: rgba(123, 144, 96, 0.88);7084}7085.peach-newvault-mark-art path:nth-child(2) {7086  stroke: rgba(94, 122, 66, 0.95);7087}70887089.peach-newvault-card {7090  position: relative;7091  z-index: 1;7092  display: flex;7093  flex-direction: column;7094  gap: 12px;7095  padding: 22px 20px 18px;7096  border-radius: 16px;7097  border: 1px solid var(--peach-t3);7098  background:7099    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7100  backdrop-filter: blur(3px);7101  -webkit-backdrop-filter: blur(3px);7102  box-shadow:7103    inset 0 1px 0 rgba(240, 232, 216, 0.04),7104    0 12px 28px rgba(0, 0, 0, 0.12);7105  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7106}71077108.peach-newvault-headline {7109  margin: 0;7110  font-family: var(--font-display);7111  font-style: italic;7112  font-weight: 400;7113  font-size: 24px;7114  line-height: 1.05;7115  color: var(--peach-t0);7116  white-space: pre-line;7117}71187119.peach-newvault-divider {7120  margin: 2px 0 4px;7121  border: 0;7122  border-top: 1px solid var(--peach-t3);7123  width: 100%;7124}71257126.peach-newvault-field {7127  display: flex;7128  flex-direction: column;7129  gap: 4px;7130}71317132.peach-newvault-label-row {7133  display: flex;7134  align-items: center;7135  justify-content: space-between;7136}71377138/* Monospace input scaled to the card. Replaces the 22px unlock-input7139   so the placeholder no longer overflows and the field reads as part7140   of the same surface as the body copy. */7141.peach-newvault-input {7142  font-size: 0.875rem;7143  letter-spacing: 0.18em;7144  padding: 8px 0;7145}7146.peach-newvault-input::placeholder {7147  letter-spacing: 0.18em;7148  color: var(--peach-t2);7149}71507151.peach-newvault-hint {7152  margin: 2px 0 0;7153  font-family: "IBM Plex Mono", monospace;7154  font-size: 0.625rem;7155  color: var(--peach-t2);7156  letter-spacing: 0.04em;7157}71587159.peach-newvault-submit {7160  margin-top: 4px;7161}71627163.peach-newvault-warning {7164  display: flex;7165  align-items: flex-start;7166  gap: 8px;7167  margin: 4px 0 0;7168  padding-top: 10px;7169  border-top: 1px dashed var(--peach-t3);7170  font-size: 0.75rem;7171  line-height: 1.5;7172  color: var(--peach-t1);7173}71747175.peach-newvault-warning-icon {7176  color: var(--peach-accent);7177  font-size: 0.8125rem;7178  line-height: 1.4;7179  flex: 0 0 auto;7180}71817182.peach-newvault-footer {7183  position: relative;7184  z-index: 1;7185  display: flex;7186  flex-direction: column;7187  gap: 4px;7188  padding: 4px 4px 0;7189}71907191/* Settings body — warm accent gradient gives the glass something to blur against */7192.peach-settings-body {7193  background:7194    radial-gradient(7195      ellipse at 30% 20%,7196      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7197      transparent 60%7198    );7199}72007201/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7202/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7203 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7204 * (replacing the vault from a backup file) and "hazard" for actions that7205 * are absolutely irreversible (Panic). Both use the same card scaffold so7206 * they read as a pair, but the colour family signals the severity at a7207 * glance — yellow for caution, red for don't.7208 */7209.peach-danger-card {7210  --danger-tint: 235, 158, 52; /* amber */7211  display: flex;7212  flex-direction: column;7213  gap: 8px;7214  padding: 14px;7215  margin-top: 10px;7216  border-radius: 12px;7217  border: 1px solid rgba(var(--danger-tint), 0.32);7218  background:7219    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7220    rgba(var(--danger-tint), 0.04);7221  box-shadow:7222    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7223    0 0 24px rgba(var(--danger-tint), 0.04);7224  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7225}72267227.peach-danger-card:hover {7228  border-color: rgba(var(--danger-tint), 0.55);7229  box-shadow:7230    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7231    0 0 36px rgba(var(--danger-tint), 0.10);7232}72337234.peach-danger-card--hazard {7235  --danger-tint: 220, 38, 38; /* red */7236}72377238.peach-danger-card-head {7239  display: flex;7240  align-items: center;7241  gap: 10px;7242}72437244.peach-danger-card-glyph {7245  width: 28px;7246  height: 28px;7247  flex-shrink: 0;7248  display: flex;7249  align-items: center;7250  justify-content: center;7251  border-radius: 8px;7252  background: rgba(var(--danger-tint), 0.12);7253  color: rgba(var(--danger-tint), 0.95);7254  font-size: 1rem;7255  line-height: 1;7256}72577258.peach-danger-card-title {7259  margin: 0;7260  font-size: 0.8125rem;7261  font-weight: 600;7262  color: rgba(var(--danger-tint), 0.92);7263  letter-spacing: 0.01em;7264}72657266.peach-danger-card-copy {7267  margin: 0;7268  font-size: 0.6875rem;7269  line-height: 1.5;7270  color: var(--peach-t2);7271}72727273.peach-danger-card-button {7274  width: 100%;7275  padding: 9px;7276  margin-top: 4px;7277  background: transparent;7278  border: 1px solid rgba(var(--danger-tint), 0.45);7279  border-radius: 8px;7280  color: rgba(var(--danger-tint), 0.9);7281  font-size: 0.75rem;7282  font-weight: 500;7283  letter-spacing: 0.02em;7284  cursor: pointer;7285  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7286}72877288.peach-danger-card-button:hover {7289  background: rgba(var(--danger-tint), 0.10);7290  border-color: rgba(var(--danger-tint), 0.75);7291  color: rgb(var(--danger-tint));7292}72937294/* ── Panic flow (three-step destruction) ───────────────────────────────── */7295.peach-panic {7296  display: flex;7297  flex-direction: column;7298  flex: 1;7299  min-height: 0;7300  padding: 28px 20px 20px;7301  gap: 18px;7302  overflow-y: auto;7303  scrollbar-width: none;7304  -ms-overflow-style: none;7305}73067307.peach-panic::-webkit-scrollbar { display: none; }73087309.peach-panic-step2 {7310  background: rgba(220, 38, 38, 0.04);7311}73127313.peach-panic-step3 {7314  position: relative;7315  background: #0f0505;7316  color: #ffffff;7317  overflow: hidden;7318}73197320.peach-panic-rune-bg {7321  position: absolute;7322  inset: 0;7323  opacity: 0.22;7324  pointer-events: none;7325  overflow: hidden;7326}73277328.peach-panic-rune-bg canvas {7329  width: 100% !important;7330  height: 100% !important;7331}73327333.peach-panic-icon {7334  font-size: 32px;7335  color: rgb(220, 38, 38);7336  line-height: 1;7337}73387339.peach-panic-title {7340  margin: 0;7341  font-size: 18px;7342  font-weight: 500;7343  color: var(--peach-t1);7344}73457346.peach-panic-title--severe {7347  font-size: 20px;7348  font-weight: 700;7349  color: rgb(220, 38, 38);7350}73517352.peach-panic-body {7353  margin: 0;7354  font-size: 0.8125rem;7355  line-height: 1.55;7356  color: var(--peach-t2);7357}73587359.peach-panic-body--severe {7360  color: rgba(220, 38, 38, 0.85);7361}73627363.peach-panic-body--final {7364  font-size: 1rem;7365  font-weight: 700;7366  color: rgb(255, 80, 80);7367  line-height: 1.4;7368}73697370.peach-panic-body--final-intro {7371  font-size: 1rem;7372  color: #ffffff;7373  font-weight: 400;7374}73757376.peach-panic-divider {7377  height: 1px;7378  background: rgba(255, 255, 255, 0.08);7379  margin: 4px 0;7380}73817382.peach-panic-confirm-input {7383  width: 100%;7384  padding: 10px 12px;7385  background: rgba(255, 255, 255, 0.02);7386  border: 1px solid rgba(220, 38, 38, 0.4);7387  border-radius: 8px;7388  color: var(--peach-t1);7389  font-family: "IBM Plex Mono", monospace;7390  font-size: 0.875rem;7391  letter-spacing: 0.12em;7392  text-transform: uppercase;7393}73947395.peach-panic-confirm-input:focus {7396  outline: none;7397  border-color: rgb(220, 38, 38);7398}73997400.peach-panic-confirm-input--match {7401  border-color: rgb(220, 38, 38);7402  color: rgb(220, 38, 38);7403}74047405.peach-panic-confirm-label {7406  font-size: 0.6875rem;7407  color: var(--peach-t2);7408  margin: 0 0 -8px;7409  letter-spacing: 0.06em;7410}74117412.peach-panic-actions {7413  display: flex;7414  flex-direction: column;7415  gap: 10px;7416  margin-top: auto;7417}74187419.peach-panic-button {7420  width: 100%;7421  padding: 12px;7422  border-radius: 8px;7423  font-size: 0.8125rem;7424  cursor: pointer;7425  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7426}74277428.peach-panic-button--primary {7429  background: var(--peach-accent);7430  border: 1px solid var(--peach-accent);7431  color: #ffffff;7432  font-weight: 600;7433}74347435.peach-panic-button--primary:hover {7436  background: color-mix(in srgb, var(--peach-accent) 88%, white);7437}74387439.peach-panic-button--danger {7440  background: rgb(220, 38, 38);7441  border: 1px solid rgb(220, 38, 38);7442  color: #ffffff;7443  font-weight: 600;7444}74457446.peach-panic-button--danger:disabled {7447  opacity: 0.35;7448  cursor: not-allowed;7449}74507451.peach-panic-button--ghost {7452  background: transparent;7453  border: 1px solid rgba(255, 255, 255, 0.18);7454  color: var(--peach-t2);7455}74567457.peach-panic-button--ghost:hover {7458  border-color: rgba(255, 255, 255, 0.32);7459  color: var(--peach-t1);7460}74617462.peach-panic-link {7463  background: transparent;7464  border: none;7465  padding: 4px 0;7466  color: rgba(220, 38, 38, 0.65);7467  font-size: 0.75rem;7468  cursor: pointer;7469  text-align: left;7470  text-decoration: underline;7471  text-underline-offset: 3px;7472}74737474.peach-panic-link:hover {7475  color: rgb(220, 38, 38);7476}74777478.peach-panic-bar {7479  background: rgb(220, 38, 38);7480  padding: 16px 20px;7481  margin: -28px -20px 0;7482  text-align: center;7483  font-size: 0.8125rem;7484  font-weight: 700;7485  letter-spacing: 0.12em;7486  color: #ffffff;7487}74887489.peach-panic-final-button {7490  width: 100%;7491  padding: 14px;7492  background: rgb(220, 38, 38);7493  border: none;7494  border-radius: 8px;7495  color: #ffffff;7496  font-size: 0.875rem;7497  font-weight: 700;7498  letter-spacing: 0.08em;7499  text-transform: uppercase;7500  cursor: pointer;7501  animation: peach-panic-pulse 2s ease-in-out infinite;7502}75037504.peach-settings-license {7505  margin-top: 10px;7506  padding-top: 10px;7507  border-top: 1px solid var(--peach-t3);7508}75097510.peach-settings-label {7511  font-size: 0.625rem;7512  letter-spacing: 0.08em;7513  color: var(--peach-t3);7514  display: block;7515  margin-bottom: 6px;7516}75177518.peach-settings-license-row {7519  display: flex;7520  align-items: center;7521  justify-content: space-between;7522  gap: 8px;7523}75247525.peach-settings-license-key {7526  font-family: 'IBM Plex Mono', monospace;7527  font-size: 0.75rem;7528  color: var(--peach-t0);7529  letter-spacing: 0.04em;7530  word-break: break-all;7531  flex: 1;7532  min-width: 0;7533}75347535.peach-settings-license-key--masked {7536  font-family: 'IBM Plex Mono', monospace;7537  font-size: 0.6rem;7538  color: var(--peach-t1);7539  letter-spacing: 0.18em;7540  user-select: none;7541}75427543.peach-settings-license-actions {7544  display: flex;7545  align-items: center;7546  gap: 2px;7547  flex-shrink: 0;7548}75497550.peach-settings-license-copy {7551  font-size: 0.6875rem;7552  color: var(--peach-accent);7553  background: transparent;7554  border: none;7555  cursor: pointer;7556  padding: 4px 8px;7557  border-radius: 4px;7558  flex-shrink: 0;7559  transition: opacity 150ms ease;7560}75617562.peach-settings-license-copy:hover {7563  opacity: 0.75;7564}75657566.peach-settings-license-toggle {7567  display: flex;7568  align-items: center;7569  justify-content: center;7570  background: transparent;7571  border: none;7572  cursor: pointer;7573  padding: 4px 6px;7574  border-radius: 4px;7575  color: var(--peach-t2);7576  transition: color 150ms ease;7577}75787579.peach-settings-license-toggle:hover {7580  color: var(--peach-t1);7581}75827583@keyframes peach-panic-pulse {7584  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }7585  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }7586}75877588[data-motion="reduce"] .peach-panic-final-button {7589  animation: none;7590}75917592/* Vault History — Settings → Vault sub-view */75937594.peach-history-list {7595  border: 1px solid var(--peach-border);7596  border-radius: 8px;7597  overflow: hidden;7598  margin: 8px 0 4px;7599}76007601.peach-history-row {7602  display: flex;7603  align-items: center;7604  justify-content: space-between;7605  padding: 9px 12px;7606  gap: 10px;7607  border-bottom: 1px solid var(--peach-border);7608}76097610.peach-history-row:last-child {7611  border-bottom: none;7612}76137614.peach-history-meta {7615  display: flex;7616  flex-direction: column;7617  gap: 2px;7618  min-width: 0;7619  flex: 1;7620}76217622.peach-history-time {7623  font-size: 0.75rem;7624  font-family: 'IBM Plex Mono', ui-monospace, monospace;7625  color: var(--peach-t0);7626  white-space: nowrap;7627  overflow: hidden;7628  text-overflow: ellipsis;7629}76307631.peach-history-sub {7632  font-size: 0.625rem;7633  color: var(--peach-t2);7634  letter-spacing: 0.06em;7635  text-transform: uppercase;7636  white-space: nowrap;7637  overflow: hidden;7638  text-overflow: ellipsis;7639}76407641.peach-history-btn {7642  flex-shrink: 0;7643  white-space: nowrap;7644  min-width: 56px;7645  text-align: center;7646}76477648.peach-history-btn.is-busy {7649  opacity: 0.65;7650}76517652.peach-history-footer {7653  font-size: 0.625rem;7654  color: var(--peach-t3);7655  letter-spacing: 0.05em;7656  text-align: right;7657  margin: 0;7658  padding: 2px 0 0;7659}76607661/* ── Context menu + swipe-copy flash ─────────────────────── */7662.peach-context-menu-backdrop {7663  position: fixed;7664  inset: 0;7665  background: rgba(0, 0, 0, 0.45);7666  z-index: 100;7667  display: flex;7668  align-items: flex-end;7669  justify-content: center;7670  animation: peach-ctx-fade 140ms ease both;7671}7672.peach-context-menu {7673  width: min(360px, calc(100vw - 24px));7674  margin-bottom: max(env(safe-area-inset-bottom), 12px);7675  background: var(--peach-bg);7676  border: 1px solid var(--peach-t3);7677  border-radius: 14px;7678  padding: 6px;7679  display: flex;7680  flex-direction: column;7681  gap: 2px;7682  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);7683  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;7684}7685@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }7686@keyframes peach-ctx-rise {7687  from { transform: translateY(16px); opacity: 0; }7688  to   { transform: translateY(0);    opacity: 1; }7689}7690.peach-context-menu-item {7691  background: transparent;7692  color: var(--peach-t0);7693  border: 0;7694  border-radius: 10px;7695  padding: 12px 14px;7696  text-align: left;7697  font: inherit;7698  cursor: pointer;7699}7700.peach-context-menu-item:hover,7701.peach-context-menu-item:focus-visible {7702  background: var(--peach-t3);7703}7704.peach-context-menu-item--danger {7705  color: var(--peach-health-bad, #d96868);7706}7707.peach-context-menu-item--cancel {7708  color: var(--peach-t2);7709  margin-top: 4px;7710  border-top: 1px solid var(--peach-t3);7711  border-radius: 0 0 10px 10px;7712}77137714/* Swipe-to-copy flash */7715.peach-entry-row.is-copy-flash {7716  animation: peach-copy-flash 600ms ease both;7717}7718@keyframes peach-copy-flash {7719  0%   { background: transparent; }7720  20%  { background: rgba(217, 153, 51, 0.32); }7721  100% { background: transparent; }7722}77237724html { font-size: 16px; }77257726/* ── Recovery word entry ─────────────────────────────────────────── */7727.peach-lock-recover-link {7728  display: block;7729  width: 100%;7730  margin-top: 12px;7731  background: none;7732  border: none;7733  font-family: "IBM Plex Mono", monospace;7734  font-size: 0.625rem;7735  letter-spacing: 0.06em;7736  color: var(--peach-t2);7737  cursor: pointer;7738  text-align: center;7739  padding: 4px;7740  transition: color 120ms ease;7741}7742.peach-lock-recover-link:hover {7743  color: var(--peach-t0);7744}77457746.lock-screen--recovery {7747  display: flex;7748  flex-direction: column;7749  align-items: stretch;7750  padding: 12px 20px 24px;7751  overflow: hidden;7752}77537754.peach-recovery-nav {7755  display: flex;7756  align-items: center;7757  position: relative;7758  z-index: 1;7759  margin-bottom: 4px;7760}77617762/* Mask runes to the top decorative band only — keep inputs and the7763   bottom CTA button clear. The bottom of the popup is reserved for7764   submit buttons; rendering runes there overlaps the button glyph. */7765.peach-rune-background--recovery {7766  -webkit-mask-image: linear-gradient(7767    to bottom,7768    black 0px, black 85px,7769    transparent 110px,7770    transparent 100%7771  );7772  mask-image: linear-gradient(7773    to bottom,7774    black 0px, black 85px,7775    transparent 110px,7776    transparent 100%7777  );7778}77797780.peach-recovery-header {7781  text-align: center;7782  margin-bottom: 16px;7783  margin-top: 4px;7784}7785.peach-recovery-header .peach-onboarding-headline {7786  font-size: 1.25rem;7787  font-weight: 300;7788  letter-spacing: 0.02em;7789  margin: 0 0 4px;7790}7791.peach-recovery-header .peach-hint {7792  font-family: "IBM Plex Mono", monospace;7793  font-size: 0.625rem;7794  color: var(--peach-t2);7795  letter-spacing: 0.04em;7796  margin: 0;7797}77987799/* 12-word grid: 2 columns × 6 rows */7800.peach-recovery-grid {7801  display: grid;7802  grid-template-columns: repeat(2, 1fr);7803  gap: 12px 20px;7804  width: 100%;7805  margin-bottom: 0;7806}78077808.peach-recovery-word-slot {7809  display: flex;7810  align-items: center;7811  gap: 6px;7812  min-width: 0;7813}78147815.peach-recovery-word-index {7816  font-family: "IBM Plex Mono", monospace;7817  font-size: 0.5rem;7818  color: rgba(255, 255, 255, 0.35);7819  min-width: 14px;7820  flex-shrink: 0;7821  text-align: right;7822  letter-spacing: 0.04em;7823}78247825.peach-recovery-word-input {7826  flex: 1;7827  min-width: 0;7828  background: transparent;7829  border: none;7830  border-bottom: 1px solid rgba(255, 255, 255, 0.22);7831  color: var(--peach-t0);7832  font-family: "IBM Plex Mono", monospace;7833  font-size: 0.6875rem;7834  letter-spacing: 0.06em;7835  padding: 5px 2px 4px;7836  outline: none;7837  text-transform: lowercase;7838  transition: border-color 120ms ease;7839}7840.peach-recovery-word-input::placeholder {7841  color: rgba(255, 255, 255, 0.18);7842}7843.peach-recovery-word-input:focus {7844  border-bottom-color: var(--peach-accent);7845}78467847.peach-recovery-submit {7848  width: 100%;7849  margin-top: auto;7850}78517852.peach-recovery-new-password-form {7853  width: 100%;7854  display: flex;7855  flex-direction: column;7856  gap: 16px;7857  margin-bottom: 8px;7858}7859.peach-recovery-new-password-form .peach-newvault-field {7860  display: flex;7861  flex-direction: column;7862  gap: 4px;7863}78647865/* ── Recovery words display (post-create) ────────────────────────── */7866.lock-screen--recovery-display {7867  display: flex;7868  flex-direction: column;7869  align-items: stretch;7870  padding: 0 20px 20px;7871  min-height: 0;7872  overflow-y: auto;7873}78747875.peach-recovery-words-display {7876  width: 100%;7877  margin-bottom: 16px;7878  border: 1px solid var(--peach-t3);7879  border-radius: 8px;7880  padding: 12px 14px;7881  background: rgba(245, 240, 234, 0.04);7882}78837884.peach-recovery-words-label {7885  font-family: "IBM Plex Mono", monospace;7886  font-size: 0.5rem;7887  letter-spacing: 0.08em;7888  color: var(--peach-t2);7889  text-transform: uppercase;7890  margin-bottom: 10px;7891}78927893.peach-recovery-word-list {7894  list-style: none;7895  margin: 0;7896  padding: 0;7897  display: grid;7898  grid-template-columns: repeat(2, 1fr);7899  gap: 6px 16px;7900}79017902.peach-recovery-word-item {7903  display: flex;7904  align-items: baseline;7905  gap: 5px;7906}79077908.peach-recovery-word-num {7909  font-family: "IBM Plex Mono", monospace;7910  font-size: 0.5rem;7911  color: var(--peach-t2);7912  width: 14px;7913  flex: 0 0 14px;7914  text-align: right;7915  letter-spacing: 0.04em;7916  font-variant-numeric: tabular-nums;7917}79187919.peach-recovery-download-btn {7920  display: block;7921  margin: 10px auto 0;7922  padding: 4px 10px;7923  background: transparent;7924  border: 1px solid var(--peach-border);7925  border-radius: 6px;7926  color: var(--peach-t2);7927  font-family: "IBM Plex Mono", monospace;7928  font-size: 0.5625rem;7929  letter-spacing: 0.06em;7930  text-transform: lowercase;7931  cursor: pointer;7932  transition: border-color 0.15s, color 0.15s;7933}79347935.peach-recovery-download-btn:hover {7936  border-color: var(--peach-accent);7937  color: var(--peach-t0);7938}79397940.peach-recovery-word-text {7941  font-family: "IBM Plex Mono", monospace;7942  font-size: 0.6875rem;7943  letter-spacing: 0.06em;7944  color: var(--peach-t0);7945  text-transform: lowercase;7946}79477948.peach-hint--warning {7949  color: var(--peach-accent);7950  font-style: italic;7951}7952.peach-hint--success {7953  color: var(--peach-t2);7954  font-family: "IBM Plex Mono", monospace;7955  font-size: 0.625rem;7956  letter-spacing: 0.06em;7957}79587959/* Confirmation step */7960.peach-recovery-confirm {7961  width: 100%;7962  flex: 1;7963  display: flex;7964  flex-direction: column;7965}7966.peach-recovery-confirm-label {7967  font-family: "IBM Plex Mono", monospace;7968  font-size: 0.5625rem;7969  letter-spacing: 0.04em;7970  color: var(--peach-t2);7971  text-align: center;7972  margin: 0 0 12px;7973}7974.peach-recovery-confirm-fields {7975  display: flex;7976  flex-direction: column;7977  gap: 14px;7978  margin-bottom: 10px;7979}7980.peach-recovery-confirm-field {7981  display: flex;7982  align-items: center;7983  gap: 8px;7984}7985.peach-recovery-confirm-num {7986  font-family: "IBM Plex Mono", monospace;7987  font-size: 0.5rem;7988  color: var(--peach-t2);7989  min-width: 44px;7990  letter-spacing: 0.04em;7991}7992.peach-recovery-confirm-input {7993  flex: 1;7994  background: transparent;7995  border: none;7996  border-bottom: 1px solid var(--peach-t3);7997  color: var(--peach-t0);7998  font-family: "IBM Plex Mono", monospace;7999  font-size: 0.6875rem;8000  letter-spacing: 0.06em;8001  padding: 4px 2px 3px;8002  outline: none;8003  text-transform: lowercase;8004  transition: border-color 120ms ease;8005}8006.peach-recovery-confirm-input:focus {8007  border-bottom-color: var(--peach-accent);8008}8009.peach-recovery-confirm-input:disabled {8010  opacity: 0.4;8011  cursor: not-allowed;8012}8013.peach-recovery-confirm-btn {8014  width: 100%;8015  margin-top: auto;8016}80178018/* ============================================================8019   Sync info sheet8020   ============================================================ */80218022.peach-sync-info-backdrop {8023  position: fixed;8024  inset: 0;8025  z-index: 200;8026  background: rgba(0, 0, 0, 0.55);8027  display: flex;8028  align-items: flex-end;8029  animation: peach-fade-in 200ms ease forwards;8030}80318032@keyframes peach-fade-in {8033  from { opacity: 0; }8034  to   { opacity: 1; }8035}80368037.peach-sync-info-sheet {8038  width: 100%;8039  background: var(--peach-bg-card, var(--peach-bg));8040  border-top-left-radius: 20px;8041  border-top-right-radius: 20px;8042  padding: 12px 24px 32px;8043  display: flex;8044  flex-direction: column;8045  gap: 20px;8046  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8047}80488049@keyframes peach-sheet-up {8050  from { transform: translateY(100%); }8051  to   { transform: translateY(0); }8052}80538054.peach-sync-info-handle {8055  width: 36px;8056  height: 4px;8057  border-radius: 2px;8058  background: var(--peach-border);8059  margin: 0 auto 4px;8060  flex-shrink: 0;8061}80628063.peach-sync-info-title {8064  font-family: 'Cormorant Garamond', serif;8065  font-style: italic;8066  font-size: 26px;8067  font-weight: 600;8068  color: var(--peach-t0);8069  margin: 0;8070  line-height: 1.2;8071}80728073.peach-sync-info-body {8074  display: flex;8075  flex-direction: column;8076  gap: 14px;8077}80788079.peach-sync-info-point {8080  display: flex;8081  gap: 12px;8082  align-items: flex-start;8083  font-size: 14px;8084  color: var(--peach-t2);8085  line-height: 1.6;8086  margin: 0;8087}80888089.peach-sync-info-icon {8090  color: var(--peach-accent);8091  font-size: 16px;8092  flex-shrink: 0;8093  margin-top: 1px;8094}80958096.peach-sync-info-actions {8097  display: flex;8098  flex-direction: column;8099  gap: 12px;8100  margin-top: 4px;8101}81028103.peach-sync-info-pro-link {8104  background: none;8105  border: none;8106  font-size: 13px;8107  color: var(--peach-t3);8108  cursor: pointer;8109  padding: 0;8110  font-family: inherit;8111  text-align: center;8112  transition: color 150ms ease;8113}81148115.peach-sync-info-pro-link:hover {8116  color: var(--peach-accent);8117}81188119.peach-btn--full {8120  width: 100%;8121}81228123/* ── Sync screen ── */81248125.peach-sync-coming-soon {8126  display: flex;8127  align-items: flex-start;8128  gap: 10px;8129  padding: 12px 14px;8130  background: var(--peach-s1);8131  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8132  border-radius: 10px;8133}8134.peach-sync-coming-soon__icon {8135  flex-shrink: 0;8136  color: var(--peach-accent);8137  margin-top: 1px;8138  line-height: 0;8139}8140.peach-sync-coming-soon__title {8141  font-family: 'Cormorant Garamond', serif;8142  font-weight: 500;8143  font-size: 13px;8144  color: var(--peach-accent);8145  margin: 0 0 5px;8146  line-height: 1.3;8147}8148.peach-sync-coming-soon__body {8149  font-size: 12px;8150  color: var(--peach-t1);8151  line-height: 1.55;8152  margin: 0;8153}81548155.peach-sync-screen {8156  display: flex;8157  flex-direction: column;8158  height: 100%;8159}81608161.peach-sync-content {8162  flex: 1;8163  overflow-y: auto;8164  padding: 24px 20px 40px;8165  display: flex;8166  flex-direction: column;8167  gap: 24px;8168}81698170/* Intro (State A) */8171.peach-sync-headline {8172  font-family: 'Cormorant Garamond', serif;8173  font-style: italic;8174  font-size: 28px;8175  font-weight: 600;8176  color: var(--peach-t0);8177  margin: 0 0 10px;8178  line-height: 1.2;8179}81808181.peach-sync-intro-body {8182  font-size: 14px;8183  color: var(--peach-t1);8184  line-height: 1.6;8185  margin: 0;8186}81878188.peach-sync-pro-note {8189  display: flex;8190  flex-direction: column;8191  gap: 8px;8192  background: var(--peach-t3);8193  border-radius: 10px;8194  padding: 12px 14px;8195}81968197.peach-sync-pro-note-text {8198  font-size: 12px;8199  color: var(--peach-t2);8200  line-height: 1.5;8201  margin: 0;8202}82038204.peach-sync-pro-link {8205  background: none;8206  border: none;8207  font-size: 12px;8208  color: var(--peach-accent);8209  cursor: pointer;8210  padding: 0;8211  font-family: inherit;8212  text-align: left;8213}82148215/* Status (State C) */8216.peach-sync-status {8217  padding: 12px 0;8218  border-bottom: 1px solid var(--peach-border);8219}82208221.peach-sync-status-row {8222  display: flex;8223  align-items: center;8224  gap: 8px;8225}82268227.peach-sync-dot {8228  width: 7px;8229  height: 7px;8230  border-radius: 50%;8231  flex-shrink: 0;8232}82338234.peach-sync-dot--green { background: var(--peach-health-ok); }8235.peach-sync-dot--amber { background: var(--peach-accent); }82368237.peach-sync-status-text {8238  font-family: 'IBM Plex Mono', monospace;8239  font-size: 11px;8240  color: var(--peach-t2);8241}82428243/* Paired devices */8244.peach-sync-section {8245  display: flex;8246  flex-direction: column;8247  gap: 2px;8248}82498250.peach-sync-section-label {8251  font-family: 'IBM Plex Mono', monospace;8252  font-size: 10px;8253  letter-spacing: 0.1em;8254  color: var(--peach-t3);8255  margin: 0 0 10px;8256}82578258.peach-sync-device-row {8259  display: flex;8260  justify-content: space-between;8261  align-items: baseline;8262  padding: 10px 0;8263  border-bottom: 1px solid var(--peach-border);8264  gap: 12px;8265}82668267.peach-sync-device-name {8268  font-size: 14px;8269  color: var(--peach-t1);8270}82718272.peach-sync-device-meta {8273  font-family: 'IBM Plex Mono', monospace;8274  font-size: 11px;8275  color: var(--peach-t3);8276  white-space: nowrap;8277}82788279.peach-sync-hub-note {8280  padding: 14px 16px;8281  border: 1px solid var(--peach-border);8282  border-radius: 10px;8283  display: flex;8284  flex-direction: column;8285  gap: 6px;8286  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8287}82888289.peach-sync-hub-note-title {8290  font-size: 13px;8291  font-weight: 600;8292  color: var(--peach-t0);8293  margin: 0;8294}82958296.peach-sync-hub-note-body {8297  font-size: 12px;8298  color: var(--peach-t2);8299  line-height: 1.6;8300  margin: 0;8301}83028303/* Action buttons */8304.peach-sync-actions {8305  display: flex;8306  gap: 10px;8307  flex-wrap: wrap;8308}83098310/* Upgrade prompt (State B) */8311.peach-sync-upgrade {8312  display: flex;8313  flex-direction: column;8314  gap: 12px;8315  padding: 16px;8316  border: 1px solid var(--peach-border);8317  border-radius: 10px;8318}83198320.peach-sync-upgrade-text {8321  font-size: 13px;8322  color: var(--peach-t2);8323  line-height: 1.6;8324  margin: 0;8325}83268327/* Network note */8328.peach-sync-network-note {8329  font-size: 12px;8330  color: var(--peach-t3);8331  line-height: 1.6;8332  margin: 0;8333}83348335/* Advanced */8336.peach-sync-advanced {8337  margin-top: auto;8338  padding-top: 16px;8339  border-top: 1px solid var(--peach-border);8340}83418342.peach-sync-advanced-toggle {8343  display: flex;8344  align-items: center;8345  gap: 8px;8346  background: none;8347  border: none;8348  font-family: 'IBM Plex Mono', monospace;8349  font-size: 11px;8350  letter-spacing: 0.08em;8351  color: var(--peach-t3);8352  cursor: pointer;8353  padding: 0;8354  text-transform: uppercase;8355}83568357.peach-sync-advanced-chevron {8358  display: inline-block;8359  transition: transform 200ms ease;8360  font-size: 10px;8361}83628363.peach-sync-advanced-chevron.is-open {8364  transform: rotate(90deg);8365}83668367.peach-sync-advanced-content {8368  margin-top: 14px;8369}83708371.peach-sync-advanced-row {8372  display: flex;8373  justify-content: space-between;8374  align-items: center;8375  gap: 16px;8376}83778378.peach-sync-advanced-title {8379  font-size: 14px;8380  color: var(--peach-t1);8381  margin: 0 0 2px;8382}83838384.peach-sync-advanced-subtitle {8385  font-size: 12px;8386  color: var(--peach-t3);8387  margin: 0;8388  line-height: 1.5;8389}83908391/* ── Add Device — Android scan tabs ─────────────────────────────────────── */83928393.peach-pairing-tabs {8394  display: flex;8395  border: 1px solid var(--peach-border);8396  border-radius: 8px;8397  overflow: hidden;8398  margin-bottom: 4px;8399}84008401.peach-pairing-tab {8402  flex: 1;8403  padding: 10px 0;8404  background: none;8405  border: none;8406  font-family: 'IBM Plex Mono', monospace;8407  font-size: 11px;8408  letter-spacing: 0.06em;8409  color: var(--peach-t2);8410  cursor: pointer;8411  transition: background 150ms, color 150ms;8412}84138414.peach-pairing-tab.is-active {8415  background: var(--peach-accent);8416  color: #fff;8417  font-weight: 600;8418}84198420.peach-pairing-tab:not(.is-active):active {8421  background: var(--peach-border);8422}84238424/* Camera view */8425.peach-pairing-camera-container {8426  position: relative;8427  width: 100%;8428  aspect-ratio: 1;8429  border-radius: 12px;8430  overflow: hidden;8431  background: #000;8432  flex-shrink: 0;8433}84348435.peach-pairing-video {8436  width: 100%;8437  height: 100%;8438  object-fit: cover;8439}84408441.peach-pairing-scan-frame {8442  position: absolute;8443  top: 50%;8444  left: 50%;8445  transform: translate(-50%, -50%);8446  width: 60%;8447  aspect-ratio: 1;8448  border: 2px solid var(--peach-accent);8449  border-radius: 8px;8450  pointer-events: none;8451}84528453/* ── Notes Mode ── */84548455/* Overlay that crossfades over the vault */8456.peach-notes-overlay {8457  position: fixed;8458  inset: 0;8459  z-index: 90;8460  opacity: 0;8461  pointer-events: none;8462  animation: peach-mode-in 220ms ease-in forwards;8463}84648465.peach-notes-overlay.is-visible {8466  opacity: 1;8467  pointer-events: auto;8468}84698470@keyframes peach-mode-in {8471  from { opacity: 0; }8472  to   { opacity: 1; }8473}84748475/* Top-level notes surface */8476.peach-notes-mode {8477  position: absolute;8478  inset: 0;8479  background: var(--peach-bg);8480  display: flex;8481  flex-direction: column;8482}84838484/* Rune canvas positioned behind content */8485.peach-note-rune-canvas {8486  position: absolute;8487  inset: 0;8488  width: 100%;8489  height: 100%;8490  pointer-events: none;8491  z-index: 0;8492}84938494/* TOC wrapper */8495.peach-notes-toc-wrapper {8496  position: absolute;8497  inset: 0;8498  z-index: 1;8499  opacity: 1;8500  pointer-events: auto;8501  transition: opacity 200ms ease;8502}85038504.peach-notes-toc-wrapper.is-hidden {8505  opacity: 0;8506  pointer-events: none;8507}85088509/* Editor wrapper */8510.peach-notes-editor-wrapper {8511  position: absolute;8512  inset: 0;8513  z-index: 2;8514  opacity: 0;8515  pointer-events: none;8516  transition: opacity 200ms ease;8517}85188519.peach-notes-editor-wrapper.is-visible {8520  opacity: 1;8521  pointer-events: auto;8522}85238524/* TOC inner */8525.peach-notes-toc {8526  position: relative;8527  display: flex;8528  flex-direction: column;8529  height: 100%;8530  padding-top: env(safe-area-inset-top, 0px);8531  padding-bottom: env(safe-area-inset-bottom, 0px);8532}85338534/* Shared header */8535.peach-notes-header {8536  display: flex;8537  align-items: center;8538  padding: 12px 16px;8539  gap: 12px;8540  flex-shrink: 0;8541  min-height: 52px;8542  position: relative;8543  z-index: 2;8544}85458546.peach-notes-back {8547  font-size: 22px;8548  color: var(--peach-t2);8549  background: none;8550  border: none;8551  padding: 4px;8552  cursor: pointer;8553  line-height: 1;8554  flex-shrink: 0;8555  transition: color 150ms ease;8556  -webkit-tap-highlight-color: transparent;8557}85588559.peach-notes-back:active { color: var(--peach-t0); }85608561.peach-notes-header-title {8562  flex: 1;8563  font-family: 'Cormorant Garamond', serif;8564  font-style: italic;8565  font-size: 22px;8566  color: var(--peach-t0);8567  text-align: center;8568}85698570.peach-notes-header-title.is-breadcrumb {8571  font-family: 'IBM Plex Mono', monospace;8572  font-style: normal;8573  font-size: 11px;8574  color: var(--peach-t3);8575  letter-spacing: 0.08em;8576  text-transform: uppercase;8577  cursor: pointer;8578}85798580.peach-notes-header-actions {8581  display: flex;8582  gap: 8px;8583  flex-shrink: 0;8584}85858586.peach-notes-header-btn {8587  width: 36px;8588  height: 36px;8589  display: flex;8590  align-items: center;8591  justify-content: center;8592  background: none;8593  border: none;8594  color: var(--peach-t2);8595  cursor: pointer;8596  border-radius: 8px;8597  font-size: 16px;8598  transition: color 150ms ease, background 150ms ease;8599  -webkit-tap-highlight-color: transparent;8600}86018602.peach-notes-header-btn:active {8603  background: rgba(255,255,255,0.06);8604  color: var(--peach-t0);8605}86068607/* Inline search bar */8608.peach-notes-search-input {8609  flex: 1;8610  background: none;8611  border: none;8612  outline: none;8613  font-family: 'IBM Plex Mono', monospace;8614  font-size: 13px;8615  color: var(--peach-t0);8616  padding: 4px 0;8617  letter-spacing: 0.02em;8618}86198620.peach-notes-search-input::placeholder {8621  color: var(--peach-t3);8622}86238624/* TOC list */8625.peach-notes-list-container {8626  flex: 1;8627  overflow-y: auto;8628  overflow-x: hidden;8629  scrollbar-width: none;8630  -webkit-overflow-scrolling: touch;8631  overscroll-behavior: contain;8632  position: relative;8633  z-index: 1;8634}86358636.peach-notes-list-container::-webkit-scrollbar { display: none; }86378638/* Note row */8639.peach-note-row {8640  position: relative;8641  display: grid;8642  grid-template-columns: 44px 8px 1fr 8px auto;8643  align-items: center;8644  min-height: 72px;8645  padding: 16px 20px;8646  border-bottom: 0.5px solid var(--peach-border);8647  cursor: pointer;8648  overflow: hidden;8649  touch-action: pan-y;8650  user-select: none;8651  -webkit-user-select: none;8652  -webkit-tap-highlight-color: transparent;8653}86548655.peach-note-row:first-child {8656  border-top: 0.5px solid var(--peach-border);8657}86588659.peach-note-row:active {8660  background: rgba(255,255,255,0.02);8661}86628663.peach-note-numeral {8664  font-family: 'Cormorant Garamond', serif;8665  font-style: italic;8666  font-size: 15px;8667  color: var(--peach-accent);8668  text-align: right;8669  line-height: 1;8670  flex-shrink: 0;8671}86728673.peach-note-title-gap { /* grid spacer */ }86748675.peach-note-title {8676  font-family: 'Cormorant Garamond', serif;8677  font-style: italic;8678  font-size: 18px;8679  color: var(--peach-t0);8680  line-height: 1.3;8681  min-width: 0;8682  overflow-wrap: break-word;8683}86848685.peach-note-title-match {8686  color: var(--peach-accent);8687}86888689.peach-note-date {8690  font-family: 'IBM Plex Mono', monospace;8691  font-size: 11px;8692  color: var(--peach-t2);8693  white-space: nowrap;8694  text-align: right;8695  flex-shrink: 0;8696  grid-column: 5;8697}86988699/* Swipe underlays */8700.peach-note-row-underlay {8701  position: absolute;8702  inset: 0;8703  display: flex;8704  align-items: center;8705  padding: 0 24px;8706  font-family: 'IBM Plex Mono', monospace;8707  font-size: 11px;8708  letter-spacing: 0.1em;8709  pointer-events: none;8710  z-index: 0;8711}87128713.peach-note-row-underlay--delete {8714  background: #8B2020;8715  color: rgba(255,255,255,0.9);8716  justify-content: flex-end;8717}87188719.peach-note-row-underlay--archive {8720  background: var(--peach-accent);8721  color: #0C0A06;8722  justify-content: flex-start;8723}87248725/* Delete confirm strip */8726.peach-note-delete-confirm {8727  position: absolute;8728  inset: 0;8729  background: var(--peach-bg);8730  display: flex;8731  align-items: center;8732  gap: 12px;8733  padding: 0 20px;8734  font-family: 'IBM Plex Mono', monospace;8735  font-size: 11px;8736  color: var(--peach-t1);8737  letter-spacing: 0.04em;8738  animation: peach-delete-confirm-in 150ms ease both;8739  z-index: 10;8740}87418742@keyframes peach-delete-confirm-in {8743  from { opacity: 0; }8744  to   { opacity: 1; }8745}87468747.peach-note-delete-confirm-btn {8748  background: #8B2020;8749  color: rgba(255,255,255,0.9);8750  border: none;8751  border-radius: 6px;8752  padding: 4px 10px;8753  font-family: 'IBM Plex Mono', monospace;8754  font-size: 10px;8755  cursor: pointer;8756  letter-spacing: 0.06em;8757}87588759.peach-note-delete-cancel-btn {8760  background: none;8761  border: none;8762  color: var(--peach-t3);8763  font-family: 'IBM Plex Mono', monospace;8764  font-size: 10px;8765  cursor: pointer;8766  letter-spacing: 0.06em;8767  padding: 4px 6px;8768}87698770/* + New note button */8771.peach-notes-new-btn {8772  font-family: 'IBM Plex Mono', monospace;8773  font-size: 12px;8774  color: var(--peach-t3);8775  text-align: center;8776  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));8777  background: none;8778  border: none;8779  width: 100%;8780  cursor: pointer;8781  letter-spacing: 0.04em;8782  transition: color 150ms ease;8783  -webkit-tap-highlight-color: transparent;8784}87858786.peach-notes-new-btn:active { color: var(--peach-accent); }87878788/* Empty state */8789.peach-notes-empty {8790  display: flex;8791  flex-direction: column;8792  align-items: center;8793  justify-content: center;8794  flex: 1;8795  padding: 48px 32px;8796  gap: 16px;8797}87988799.peach-notes-empty-text {8800  font-family: 'Cormorant Garamond', serif;8801  font-style: italic;8802  font-size: 20px;8803  color: var(--peach-t3);8804  text-align: center;8805  margin: 0;8806  line-height: 1.4;8807  white-space: pre-line;8808}88098810/* ── Editor surface ── */88118812.peach-note-editor-surface {8813  position: absolute;8814  inset: 0;8815  background: var(--peach-bg);8816  display: flex;8817  flex-direction: column;8818  padding-top: env(safe-area-inset-top, 0px);8819}88208821.peach-note-editor-scroll {8822  flex: 1;8823  overflow-y: auto;8824  overflow-x: hidden;8825  scrollbar-width: none;8826  -webkit-overflow-scrolling: touch;8827  padding: 0 24px 120px;8828  position: relative;8829  z-index: 1;8830}88318832.peach-note-editor-scroll::-webkit-scrollbar { display: none; }88338834/* Desktop toolbar (always visible above body) */8835.peach-note-toolbar-desktop-inline {8836  display: flex;8837  align-items: center;8838  gap: 2px;8839  padding: 6px 0 12px;8840  margin-bottom: 4px;8841  border-bottom: 0.5px solid var(--peach-border);8842}88438844/* Title field */8845.peach-note-title-field {8846  font-family: 'Cormorant Garamond', serif;8847  font-style: italic;8848  font-size: 32px;8849  font-weight: 600;8850  color: var(--peach-t0);8851  line-height: 1.2;8852  padding: 8px 0 0;8853  outline: none;8854  min-height: 44px;8855  word-break: break-word;8856  position: relative;8857  z-index: 1;8858}88598860.peach-note-title-field:empty::before {8861  content: attr(data-placeholder);8862  color: var(--peach-t3);8863  pointer-events: none;8864}88658866/* Hairline separator */8867.peach-note-hairline {8868  height: 0.5px;8869  background: var(--peach-border);8870  margin: 12px 0 20px;8871  position: relative;8872  z-index: 1;8873}88748875/* Body field */8876.peach-note-body-field {8877  font-family: 'DM Sans', sans-serif;8878  font-size: 16px;8879  color: var(--peach-t0);8880  line-height: 1.85;8881  padding: 0;8882  outline: none;8883  min-height: 240px;8884  word-break: break-word;8885  position: relative;8886  z-index: 1;8887}88888889.peach-note-body-field:empty::before {8890  content: attr(data-placeholder);8891  color: var(--peach-t3);8892  font-style: italic;8893  pointer-events: none;8894}88958896.peach-note-body-field h2 {8897  font-family: 'Cormorant Garamond', serif;8898  font-style: italic;8899  font-size: 22px;8900  font-weight: 600;8901  color: var(--peach-t0);8902  margin: 20px 0 8px;8903}89048905.peach-note-body-field blockquote {8906  border-left: 2px solid var(--peach-accent);8907  margin: 12px 0;8908  padding-left: 16px;8909  color: var(--peach-t1);8910  font-style: italic;8911}89128913.peach-note-body-field ul,8914.peach-note-body-field ol {8915  padding-left: 20px;8916  margin: 8px 0;8917}89188919.peach-note-body-field li {8920  margin: 4px 0;8921}89228923.peach-note-body-field hr {8924  border: none;8925  border-top: 0.5px solid var(--peach-border);8926  margin: 16px 0;8927}89288929/* Saved indicator */8930.peach-note-saved-indicator {8931  font-family: 'IBM Plex Mono', monospace;8932  font-size: 11px;8933  color: var(--peach-t3);8934  letter-spacing: 0.04em;8935  text-align: right;8936  padding: 6px 24px;8937  flex-shrink: 0;8938  transition: opacity 300ms ease;8939  pointer-events: none;8940  position: relative;8941  z-index: 1;8942}89438944/* Mobile keyboard toolbar */8945.peach-note-toolbar-mobile {8946  display: flex;8947  align-items: center;8948  padding: 8px 16px;8949  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));8950  background: var(--peach-bg);8951  border-top: 0.5px solid var(--peach-border);8952  gap: 4px;8953  flex-shrink: 0;8954  position: relative;8955  z-index: 10;8956}89578958.peach-note-toolbar-btn {8959  min-width: 36px;8960  height: 36px;8961  display: flex;8962  align-items: center;8963  justify-content: center;8964  background: none;8965  border: none;8966  border-radius: 8px;8967  cursor: pointer;8968  font-size: 14px;8969  color: var(--peach-t1);8970  font-family: 'DM Sans', sans-serif;8971  font-weight: 600;8972  transition: background 100ms ease, color 100ms ease;8973  -webkit-tap-highlight-color: transparent;8974}89758976.peach-note-toolbar-btn--italic { font-style: italic; }8977.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }8978.peach-note-toolbar-btn:active { background: rgba(255,255,255,0.08); }89798980.peach-note-toolbar-divider {8981  width: 0.5px;8982  height: 20px;8983  background: var(--peach-border);8984  margin: 0 4px;8985  flex-shrink: 0;8986}89878988.peach-note-toolbar-spacer { flex: 1; }89898990/* Desktop: larger headline in TOC */8991@media (min-width: 400px) {8992  .peach-notes-header-title:not(.is-breadcrumb) {8993    font-size: 32px;8994  }89958996  .peach-note-row {8997    min-height: 64px;8998    padding: 14px 16px;8999  }9000}90019002/* Flying title — shared element during expansion/collapse */90039004/* ─── Light theme overrides ───────────────────────────────────────────────9005   Tokens that cannot be expressed as variable substitutions — hardcoded9006   context-specific values that need separate light-mode rules. */90079008/* Settings section headers: use text-label (#79766F) per restoration brief —9009   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9010   presence without fighting the light parchment background. */9011.light .peach-settings-sub-label,9012[data-theme="light"] .peach-settings-sub-label,9013.light .peach-settings-nav-label,9014[data-theme="light"] .peach-settings-nav-label {9015  color: #79766F;9016}90179018/* Secondary action buttons (ghost / subtle): filled with input-well surface9019   so they read as recessed against the parchment card background. */9020.light .peach-btn--ghost:not(.peach-icon-btn),9021[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9022  background: #EEE7DD;9023  border-color: #DDD5CB;9024  color: #1A1208;9025}9026.light .peach-icon-btn,9027[data-theme="light"] .peach-icon-btn {9028  background: transparent;9029  border-color: transparent;9030}9031.light .peach-btn--subtle,9032[data-theme="light"] .peach-btn--subtle {9033  background: #EEE7DD;9034  border-color: #DDD5CB;9035}90369037/* Wide secondary action button on the lock screen — override the9038   hardcoded dark-mode rgba values with warm parchment equivalents. */9039.light .peach-lock-secondary,9040[data-theme="light"] .peach-lock-secondary {9041  background: #EEE7DD;9042  border-color: #DDD5CB;9043  color: #1A1208;9044}9045.light .peach-lock-secondary:hover,9046[data-theme="light"] .peach-lock-secondary:hover {9047  background: #F0E9DF;9048}90499050/* Entry row hover: bg-row lifts the row above the card surface. */9051.light .peach-entry-row:hover,9052[data-theme="light"] .peach-entry-row:hover {9053  background: #F2EBE1;9054}9055.light .peach-entry-row.is-active,9056[data-theme="light"] .peach-entry-row.is-active {9057  background: #F2EBE1;9058}9059.light .peach-entry-row.is-selected,9060[data-theme="light"] .peach-entry-row.is-selected {9061  background: #F5EDE2;9062}90639064/* ──────────────────────────────────────────────────────────────────────────9065   Chirp pairing flow — bird-stage animation (Phase 1)9066   See src/popup/components/ChirpPairingFlow.tsx and the brief §6.2.9067   Three-act animation gated on the [data-phase] attribute of9068   .peach-chirp-pair; child layers (birds, chirp arcs, flight wave, dot)9069   each react via either pose class or visibility flag.9070   Tokens: accent surfaces use var(--peach-accent); bird illustration9071   colours are baked into the SVG per the brand-peach exception in §3.1.9072   ────────────────────────────────────────────────────────────────────── */90739074.peach-chirp-pair {9075  position: absolute;9076  inset: 0;9077  z-index: 3;9078  display: flex;9079  flex-direction: column;9080  padding: 14px 12px 12px;9081  width: 100%;9082  box-sizing: border-box;9083  gap: 0;9084  background:9085    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9086    var(--peach-bg);9087  color: var(--peach-t0);9088  overflow-y: auto;9089  overflow-x: hidden;9090  scrollbar-width: none;9091  isolation: isolate;9092  animation: peach-chirp-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9093}9094@keyframes peach-chirp-overlay-in {9095  from { opacity: 0; transform: translateY(8px); }9096  to   { opacity: 1; transform: translateY(0); }9097}9098.peach-chirp-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9099.peach-chirp-pair::before {9100  content: '';9101  position: absolute;9102  inset: 0;9103  border-radius: inherit;9104  pointer-events: none;9105  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9106  z-index: 0;9107}9108.peach-chirp-pair > * { position: relative; z-index: 1; }91099110/* Header --------------------------------------------------------------- */9111.peach-chirp-head {9112  display: flex; align-items: center; gap: 10px;9113}9114.peach-chirp-back {9115  width: 32px; height: 32px;9116  display: inline-flex; align-items: center; justify-content: center;9117  background: transparent;9118  border: none;9119  border-radius: 8px;9120  color: var(--peach-t1);9121  cursor: pointer;9122  transition: color 0.15s ease, box-shadow 0.15s ease;9123}9124.peach-chirp-back:hover {9125  color: var(--peach-accent);9126  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9127}9128.peach-chirp-title {9129  font-family: var(--font-display, Georgia, serif);9130  font-style: italic;9131  font-size: 24px;9132  font-weight: 500;9133  letter-spacing: 0.005em;9134  color: var(--peach-t0);9135  line-height: 1;9136}9137.peach-chirp-head-spacer { flex: 1; }91389139/* Chip row ------------------------------------------------------------- */9140.peach-chirp-chip-row {9141  display: flex;9142  align-items: center;9143  justify-content: flex-start;9144  margin-top: 12px;9145}9146.peach-chirp-chip {9147  display: inline-flex; align-items: center; gap: 8px;9148  padding: 5px 10px 5px 8px;9149  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9150  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9151  border-radius: 999px;9152  font-family: var(--peach-mono, ui-monospace, monospace);9153  font-size: 11px;9154  letter-spacing: 0.04em;9155  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9156}9157.peach-chirp-chip-dot {9158  width: 6px; height: 6px; border-radius: 50%;9159  background: var(--peach-accent);9160  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9161}9162.peach-chirp-chip[data-phase="paired"] {9163  background: color-mix(in srgb, #4f9eda 12%, transparent);9164  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9165  color: #76b6e8;9166}9167.peach-chirp-chip[data-phase="paired"] .peach-chirp-chip-dot {9168  background: #76b6e8;9169  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9170}9171.peach-chirp-chip[data-phase="timeout"],9172.peach-chirp-chip[data-phase="mic_denied"],9173.peach-chirp-chip[data-phase="version_mismatch"],9174.peach-chirp-chip[data-phase="handshake_failed"] {9175  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9176  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9177  color: var(--peach-warn, #d29257);9178}9179.peach-chirp-chip[data-phase="timeout"] .peach-chirp-chip-dot,9180.peach-chirp-chip[data-phase="mic_denied"] .peach-chirp-chip-dot,9181.peach-chirp-chip[data-phase="version_mismatch"] .peach-chirp-chip-dot,9182.peach-chirp-chip[data-phase="handshake_failed"] .peach-chirp-chip-dot {9183  background: var(--peach-warn, #d29257);9184  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9185}91869187/* Bird stage ----------------------------------------------------------- */9188.peach-chirp-stage {9189  position: relative;9190  margin: 14px 0 8px;9191  height: 180px;9192  border-radius: 12px;9193  background:9194    radial-gradient(ellipse 70% 60% at 50% 30%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9195    radial-gradient(ellipse 90% 100% at 50% 100%, color-mix(in srgb, #d8748a 14%, transparent), transparent 70%),9196    color-mix(in srgb, var(--peach-bg) 92%, #000);9197  border: 1px solid color-mix(in srgb, var(--peach-t0) 8%, transparent);9198  overflow: hidden;9199  isolation: isolate;9200}9201.peach-chirp-stage::after {9202  content: '';9203  position: absolute;9204  left: 12%; right: 12%;9205  bottom: 36px;9206  height: 1px;9207  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 14%, transparent), transparent);9208}92099210.peach-chirp-bird-slot {9211  position: absolute;9212  bottom: 8px;9213  width: 100px;9214  height: 110px;9215  display: flex;9216  align-items: flex-end;9217  justify-content: center;9218}9219.peach-chirp-bird-slot-desktop { left: 28px; }9220.peach-chirp-bird-slot-mobile { right: 28px; }92219222/* Mobile bird hops in from the right when handshake begins */9223.peach-chirp-bird-slot-mobile {9224  opacity: 1;9225  transform: translateX(-6px);9226  transition: opacity 0.4s ease, transform 0.65s cubic-bezier(.5, 1.7, .4, 1);9227}9228.peach-chirp-stage.act-listening .peach-chirp-bird-slot-mobile,9229.peach-chirp-stage.act-chirping .peach-chirp-bird-slot-mobile,9230.peach-chirp-stage.act-idle .peach-chirp-bird-slot-mobile {9231  opacity: 0;9232  transform: translateX(60px) rotate(8deg);9233}9234.peach-chirp-stage.act-handshake .peach-chirp-bird-slot-desktop,9235.peach-chirp-stage.act-paired .peach-chirp-bird-slot-desktop {9236  transform: translateX(6px);9237  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9238}92399240/* Paired: both birds bob together */9241.peach-chirp-stage.act-paired .peach-chirp-bird-slot {9242  animation: peach-chirp-happy-bob 1.2s ease-in-out infinite;9243}9244.peach-chirp-stage.act-paired .peach-chirp-bird-slot-mobile { animation-delay: 0.2s; }9245.peach-chirp-stage.act-paired .peach-chirp-bird-slot-desktop { --bb-x: 6px; }9246.peach-chirp-stage.act-paired .peach-chirp-bird-slot-mobile { --bb-x: -6px; }9247@keyframes peach-chirp-happy-bob {9248  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9249  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9250}92519252/* Bird internal -------------------------------------------------------- */9253.peach-chirp-bird {9254  width: 108px;9255  height: 108px;9256  transform-origin: 50% 95%;9257}9258.peach-chirp-bird svg { width: 100%; height: 100%; overflow: visible; }92599260.peach-chirp-bird-body {9261  transform-origin: 50% 80%;9262  animation: peach-chirp-bird-bob 2.4s ease-in-out infinite;9263}9264@keyframes peach-chirp-bird-bob {9265  0%, 100% { transform: translateY(0) scale(1, 1); }9266  50%      { transform: translateY(-1.5px) scale(1.01, 0.99); }9267}92689269.peach-chirp-bird-eye-group {9270  animation: peach-chirp-blink 5.2s steps(1, end) infinite;9271  transform-origin: center;9272  transform-box: fill-box;9273}9274@keyframes peach-chirp-blink {9275  0%, 92%, 96%, 100% { transform: scaleY(1); }9276  94%                { transform: scaleY(0.05); }9277}92789279/* Pose: chirping — beak opens, head bobs, aura blooms */9280.peach-chirp-bird-pose-chirping .peach-chirp-bird-body {9281  animation:9282    peach-chirp-bird-bob 2.4s ease-in-out infinite,9283    peach-chirp-squeeze 1.7s ease-in-out infinite;9284}9285@keyframes peach-chirp-squeeze {9286  0%, 70%, 100% { transform-origin: 50% 85%; }9287  78%           { transform: scale(1.04, 0.96) translateY(1px); }9288  86%           { transform: scale(0.98, 1.02); }9289}9290.peach-chirp-bird-pose-chirping .peach-chirp-bird-head-group {9291  animation: peach-chirp-head-bob 1.7s ease-in-out infinite;9292}9293@keyframes peach-chirp-head-bob {9294  0%, 70%, 100% { transform: translateY(0) rotate(0); }9295  78%           { transform: translateY(-3px) rotate(-4deg); }9296  86%           { transform: translateY(-1px) rotate(-2deg); }9297}9298.peach-chirp-bird-pose-chirping .peach-chirp-bird-beak {9299  animation: peach-chirp-beak-open 1.7s ease-in-out infinite;9300}9301@keyframes peach-chirp-beak-open {9302  0%, 70%, 100% { transform: rotate(0) scaleX(1); }9303  78%           { transform: rotate(-14deg) scaleX(1.05) translateY(-1px); }9304  86%           { transform: rotate(-6deg); }9305}9306.peach-chirp-bird-pose-chirping .peach-chirp-bird-aura {9307  animation: peach-chirp-aura 1.7s ease-in-out infinite;9308}9309@keyframes peach-chirp-aura {9310  0%, 100% { opacity: 0; }9311  50%      { opacity: 0.8; }9312}9313.peach-chirp-bird-pose-chirping .peach-chirp-bird-tail {9314  animation: peach-chirp-tail-twitch 1.7s ease-in-out infinite;9315  transform-origin: 100% 50%;9316}9317@keyframes peach-chirp-tail-twitch {9318  0%, 75%, 100% { transform: rotate(0); }9319  82%           { transform: rotate(-3deg) translateX(-1px); }9320}93219322/* Pose: attentive — head tilts toward partner */9323.peach-chirp-bird-pose-attentive .peach-chirp-bird-head-group {9324  animation: peach-chirp-head-tilt 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9325}9326@keyframes peach-chirp-head-tilt {9327  0%   { transform: rotate(0) translateY(0); }9328  60%  { transform: rotate(-10deg) translateY(-1px) translateX(2px); }9329  100% { transform: rotate(-6deg); }9330}9331.peach-chirp-bird-pose-attentive .peach-chirp-bird-tail {9332  animation: peach-chirp-tail-cock 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9333  transform-origin: 100% 50%;9334}9335@keyframes peach-chirp-tail-cock {9336  0%   { transform: rotate(0); }9337  100% { transform: rotate(-4deg); }9338}93399340/* Pose: happy — wing flutter, tuft perk, tail wag */9341.peach-chirp-bird-pose-happy .peach-chirp-bird-wing {9342  transform-origin: 80% 60%;9343  animation: peach-chirp-wing-flutter 0.32s ease-in-out 5;9344}9345@keyframes peach-chirp-wing-flutter {9346  0%, 100% { transform: rotate(0) translateY(0); }9347  50%      { transform: rotate(-16deg) translateY(-2px); }9348}9349.peach-chirp-bird-pose-happy .peach-chirp-bird-tuft {9350  transform-origin: 0% 100%;9351  animation: peach-chirp-tuft-perk 0.4s ease-in-out 3;9352}9353@keyframes peach-chirp-tuft-perk {9354  0%, 100% { transform: rotate(0); }9355  50%      { transform: rotate(-15deg) translateY(-1px); }9356}9357.peach-chirp-bird-pose-happy .peach-chirp-bird-tail {9358  transform-origin: 100% 50%;9359  animation: peach-chirp-tail-wag 0.5s ease-in-out 4;9360}9361@keyframes peach-chirp-tail-wag {9362  0%, 100% { transform: rotate(0); }9363  25%      { transform: rotate(6deg); }9364  75%      { transform: rotate(-6deg); }9365}9366.peach-chirp-bird-pose-happy .peach-chirp-bird-head-group {9367  animation: peach-chirp-head-perk 0.5s ease-out;9368}9369@keyframes peach-chirp-head-perk {9370  0%   { transform: translateY(0); }9371  40%  { transform: translateY(-3px) rotate(2deg); }9372  100% { transform: translateY(0); }9373}93749375/* Pose: sad — body droops forward */9376.peach-chirp-bird-pose-sad .peach-chirp-bird-body {9377  transform: translateY(5px) rotate(-2deg);9378  animation: none;9379}9380.peach-chirp-bird-pose-sad .peach-chirp-bird-head-group {9381  transform: translateY(4px) rotate(8deg);9382}9383.peach-chirp-bird-pose-sad .peach-chirp-bird-tuft { transform: rotate(15deg) translateY(2px); }9384.peach-chirp-bird-pose-sad .peach-chirp-bird-tail { transform: rotate(8deg) translateY(2px); }93859386.peach-chirp-bird-pose-hidden { opacity: 0; }93879388/* Chirp arcs ----------------------------------------------------------- */9389.peach-chirp-arcs {9390  position: absolute;9391  top: 18px;9392  width: 96px;9393  height: 70px;9394  pointer-events: none;9395}9396.peach-chirp-arcs-right { right: -60px; }9397.peach-chirp-arcs-left  { left: -60px; transform: scaleX(-1); }9398.peach-chirp-arc {9399  position: absolute;9400  top: 50%;9401  left: 0;9402  width: 40px;9403  height: 40px;9404  margin-top: -20px;9405  border: 1.2px solid #f4d5a8;9406  border-color: transparent #f4d5a8 transparent transparent;9407  border-radius: 50%;9408  opacity: 0;9409  animation: peach-chirp-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9410}9411@keyframes peach-chirp-arc-expand {9412  0%   { transform: scale(0.4); opacity: 0; }9413  20%  { opacity: 0.9; }9414  100% { transform: scale(1.6); opacity: 0; }9415}94169417/* Flight wave ---------------------------------------------------------- */9418.peach-chirp-flight-track {9419  position: absolute;9420  inset: 32px 36px 38px 36px;9421  pointer-events: none;9422}9423.peach-chirp-flight-wave {9424  position: absolute;9425  top: 8px;9426  left: 76px;9427  right: 76px;9428  height: 60px;9429  width: auto;9430  opacity: 0;9431  transition: opacity 0.15s ease;9432  stroke: #f4d5a8;9433  fill: none;9434}9435.peach-chirp-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9436.peach-chirp-flight-wave.is-visible { opacity: 1; }9437.peach-chirp-flight-path,9438.peach-chirp-flight-path-2 {9439  stroke-dasharray: 240;9440  stroke-dashoffset: 240;9441  stroke-linecap: round;9442  fill: none;9443}9444.peach-chirp-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9445.peach-chirp-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9446.peach-chirp-flight-wave.is-visible .peach-chirp-flight-path {9447  animation: peach-chirp-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9448}9449.peach-chirp-flight-wave.is-visible .peach-chirp-flight-path-2 {9450  animation: peach-chirp-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9451}9452@keyframes peach-chirp-fly {9453  0%   { stroke-dashoffset: 240; opacity: 0; }9454  20%  { opacity: 1; }9455  100% { stroke-dashoffset: -120; opacity: 0; }9456}94579458/* Connection dot ------------------------------------------------------- */9459.peach-chirp-dot {9460  position: absolute;9461  top: 50%; left: 50%;9462  transform: translate(-50%, -50%);9463  width: 40px; height: 40px;9464  opacity: 0;9465  pointer-events: none;9466  transition: opacity 0.3s ease;9467  color: var(--peach-accent);9468}9469.peach-chirp-dot.is-visible { opacity: 1; }9470.peach-chirp-dot-glow {9471  position: absolute; top: 50%; left: 50%;9472  transform: translate(-50%, -50%);9473  width: 38px; height: 38px;9474  border-radius: 50%;9475  filter: blur(10px);9476  opacity: 0.55;9477  background: var(--peach-accent);9478  animation: peach-chirp-dot-bloom 1.4s ease-out;9479}9480.peach-chirp-dot-core {9481  position: absolute; top: 50%; left: 50%;9482  transform: translate(-50%, -50%);9483  width: 8px; height: 8px;9484  border-radius: 50%;9485  background: var(--peach-accent);9486  box-shadow: 0 0 12px currentColor;9487  animation: peach-chirp-dot-core 1.4s ease-out;9488}9489.peach-chirp-dot-ring {9490  position: absolute; top: 50%; left: 50%;9491  width: 60px; height: 60px;9492  transform: translate(-50%, -50%);9493  animation: peach-chirp-dot-ring 1.4s linear;9494  stroke: var(--peach-accent);9495}9496@keyframes peach-chirp-dot-bloom {9497  0%   { width: 4px; height: 4px; opacity: 0; }9498  35%  { width: 60px; height: 60px; opacity: 0.7; }9499  100% { width: 38px; height: 38px; opacity: 0.55; }9500}9501@keyframes peach-chirp-dot-core {9502  0%   { width: 0; height: 0; }9503  35%  { width: 12px; height: 12px; }9504  100% { width: 8px; height: 8px; }9505}9506@keyframes peach-chirp-dot-ring {9507  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }9508  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }9509  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }9510}95119512/* Motes — drift upward across the stage */9513.peach-chirp-motes {9514  position: absolute;9515  inset: 0;9516  pointer-events: none;9517}9518.peach-chirp-mote {9519  position: absolute;9520  width: 2px; height: 2px;9521  background: color-mix(in srgb, var(--peach-text) 35%, transparent);9522  border-radius: 50%;9523  bottom: 32px;9524  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);9525  opacity: 0;9526  animation: peach-chirp-mote-drift 6s linear infinite;9527  animation-delay: calc(var(--mote-i, 0) * 0.7s);9528}9529@keyframes peach-chirp-mote-drift {9530  0%   { transform: translateY(0); opacity: 0; }9531  10%  { opacity: 0.6; }9532  90%  { opacity: 0.1; }9533  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }9534}95359536/* Status copy ---------------------------------------------------------- */9537.peach-chirp-copy-host {9538  margin: 4px 4px 10px;9539  text-align: center;9540  min-height: 50px;9541}9542.peach-chirp-copy {9543  animation: peach-chirp-copy-in 0.35s ease both;9544}9545@keyframes peach-chirp-copy-in {9546  from { opacity: 0; transform: translateY(4px); }9547  to   { opacity: 1; transform: translateY(0); }9548}9549.peach-chirp-headline {9550  font-family: var(--font-display, Georgia, serif);9551  font-style: italic;9552  font-size: 20px;9553  font-weight: 500;9554  line-height: 1.2;9555  letter-spacing: 0.005em;9556  color: var(--peach-t0);9557  margin-bottom: 6px;9558}9559.peach-chirp-copy-listening .peach-chirp-headline,9560.peach-chirp-copy-chirping .peach-chirp-headline,9561.peach-chirp-copy-idle .peach-chirp-headline {9562  font-family: inherit;9563  font-style: normal;9564  font-weight: 500;9565  font-size: 15px;9566  color: var(--peach-t0);9567  letter-spacing: 0;9568}9569.peach-chirp-copy-paired .peach-chirp-headline {9570  color: var(--peach-t0);9571  font-weight: 600;9572}9573.peach-chirp-sub {9574  font-size: 12.5px;9575  line-height: 1.45;9576  color: var(--peach-t1);9577  max-width: 280px;9578  margin: 0 auto;9579  text-wrap: pretty;9580}95819582/* Status action -------------------------------------------------------- */9583.peach-chirp-action {9584  margin: 2px 4px 10px;9585  margin-top: auto;9586  display: flex;9587  flex-direction: column;9588  gap: 8px;9589}9590.peach-chirp-mic-notice {9591  margin: 0;9592  font-size: 0.625rem;9593  color: var(--peach-t2);9594  line-height: 1.4;9595}9596.peach-chirp-action-waiting {9597  display: flex;9598  align-items: center;9599  justify-content: space-between;9600  gap: 12px;9601}9602.peach-chirp-cancel {9603  min-width: 96px;9604}9605.peach-chirp-listening {9606  display: inline-flex; align-items: center; gap: 4px;9607  font-family: var(--peach-mono, ui-monospace, monospace);9608  font-size: 9.5px;9609  text-transform: uppercase;9610  letter-spacing: 0.12em;9611  color: var(--peach-t1);9612  padding: 8px 10px;9613}9614.peach-chirp-listen-dot {9615  width: 4px; height: 4px;9616  border-radius: 50%;9617  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);9618  animation: peach-chirp-listen-pulse 1.2s ease-in-out infinite;9619}9620.peach-chirp-listen-dot:nth-child(2) { animation-delay: 0.2s; }9621.peach-chirp-listen-dot:nth-child(3) { animation-delay: 0.4s; }9622.peach-chirp-listen-label { margin-left: 6px; }9623@keyframes peach-chirp-listen-pulse {9624  0%, 100% { opacity: 0.25; transform: scale(0.9); }9625  50%      { opacity: 1;     transform: scale(1.15); }9626}96279628.peach-chirp-action-handshake {9629  display: flex;9630  flex-direction: column;9631  align-items: center;9632  gap: 8px;9633  padding: 8px 4px;9634}9635.peach-chirp-meter {9636  width: 100%;9637  max-width: 280px;9638  height: 2px;9639  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);9640  border-radius: 2px;9641  position: relative;9642  overflow: hidden;9643}9644.peach-chirp-meter-bar {9645  position: absolute;9646  top: 0; bottom: 0;9647  width: 30%;9648  left: -30%;9649  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);9650  animation: peach-chirp-meter-sweep 1.4s ease-in-out infinite;9651}9652@keyframes peach-chirp-meter-sweep {9653  0%   { left: -30%; }9654  100% { left: 100%; }9655}9656.peach-chirp-meter-label {9657  font-family: var(--peach-mono, ui-monospace, monospace);9658  font-size: 9.5px;9659  text-transform: uppercase;9660  letter-spacing: 0.14em;9661  color: var(--peach-t1);9662}96639664.peach-chirp-action-paired {9665  display: flex;9666  align-items: center;9667  gap: 10px;9668}9669.peach-chirp-device-confirm {9670  flex: 1;9671  display: inline-flex;9672  align-items: center;9673  gap: 8px;9674  padding: 9px 10px 9px 12px;9675  border-radius: 10px;9676  background: color-mix(in srgb, #76b6e8 12%, transparent);9677  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);9678  font-size: 12.5px;9679  color: var(--peach-t0);9680  min-width: 0;9681}9682.peach-chirp-device-confirm-glyph {9683  display: inline-flex;9684  color: #76b6e8;9685}9686.peach-chirp-device-confirm-name {9687  flex: 1;9688  overflow: hidden;9689  text-overflow: ellipsis;9690  white-space: nowrap;9691}9692.peach-chirp-device-confirm-trust {9693  font-family: var(--peach-mono, ui-monospace, monospace);9694  font-size: 9.5px;9695  text-transform: uppercase;9696  letter-spacing: 0.1em;9697  color: #76b6e8;9698  padding: 2px 6px;9699  border-radius: 4px;9700  background: color-mix(in srgb, #76b6e8 14%, transparent);9701}9702.peach-chirp-done {9703  min-width: 80px;9704}9705.peach-chirp-retry {9706  align-self: center;9707  display: block;9708  margin: 6px auto 0;9709  min-width: 120px;9710}9711.peach-chirp-mic-help {9712  font-size: 12px;9713  color: var(--peach-t1);9714  text-align: center;9715  max-width: 320px;9716  margin: 0 auto;9717}97189719/* Rest state — bird stage at idle pose, primary CTA + paired list */9720.peach-chirp-pair[data-phase="idle"] .peach-chirp-stage {9721  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */9722  height: 160px;9723}9724.peach-chirp-pair-start {9725  width: 100%;9726  display: inline-flex;9727  align-items: center;9728  justify-content: center;9729  gap: 8px;9730  padding: 11px 14px;9731  border-radius: 10px;9732  background: var(--peach-accent);9733  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);9734  color: #1a0905;9735  font-family: inherit;9736  font-size: 13px;9737  font-weight: 600;9738  letter-spacing: 0.01em;9739  cursor: pointer;9740  transition: filter 0.15s ease, transform 0.1s ease;9741}9742.peach-chirp-pair-start:hover { filter: brightness(1.08); }9743.peach-chirp-pair-start:active { transform: translateY(1px); }97449745.peach-chirp-paired-section {9746  margin-top: 14px;9747  display: flex;9748  flex-direction: column;9749  gap: 8px;9750}9751.peach-chirp-paired-heading {9752  margin: 0;9753  font-family: var(--peach-mono, ui-monospace, monospace);9754  font-size: 10px;9755  font-weight: 500;9756  letter-spacing: 0.14em;9757  text-transform: uppercase;9758  color: var(--peach-t1);9759}97609761/* Footer --------------------------------------------------------------- */9762.peach-chirp-foot {9763  margin: 10px -4px -2px;9764  margin-top: auto;9765}9766.peach-chirp-foot-divider {9767  height: 1px;9768  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);9769  margin-bottom: 10px;9770}9771.peach-chirp-foot-text {9772  font-size: 11px;9773  line-height: 1.5;9774  color: var(--peach-t1);9775  text-align: center;9776  padding: 0 4px;9777  text-wrap: pretty;9778}97799780/* Screen-reader-only live region. Kept off the visual flow but read by9781   assistive tech as the pairing phase advances. */9782.peach-sr-only {9783  position: absolute;9784  width: 1px; height: 1px;9785  padding: 0; margin: -1px;9786  overflow: hidden;9787  clip: rect(0, 0, 0, 0);9788  white-space: nowrap;9789  border: 0;9790}97919792/* Reduced motion — stage simplifies to opacity transitions only */9793@media (prefers-reduced-motion: reduce) {9794  .peach-chirp-bird-body,9795  .peach-chirp-bird-head-group,9796  .peach-chirp-bird-beak,9797  .peach-chirp-bird-wing,9798  .peach-chirp-bird-tuft,9799  .peach-chirp-bird-tail,9800  .peach-chirp-bird-eye-group,9801  .peach-chirp-bird-aura,9802  .peach-chirp-arc,9803  .peach-chirp-flight-path,9804  .peach-chirp-flight-path-2,9805  .peach-chirp-dot-glow,9806  .peach-chirp-dot-core,9807  .peach-chirp-dot-ring,9808  .peach-chirp-mote,9809  .peach-chirp-meter-bar,9810  .peach-chirp-listen-dot,9811  .peach-chirp-bird-slot,9812  .peach-chirp-bird-slot-mobile {9813    animation: none !important;9814    transition: opacity 0.2s linear !important;9815  }9816}98179818/* ─────────────────────────────────────────────────────────────────9819   Settings → Sync surface (v3 ChirpSync). Wraps the same bird9820   animation used by the pairing flow with a paired-devices list and9821   the "Pair a device" CTA.9822   ───────────────────────────────────────────────────────────────── */9823.peach-chirp-settings {9824  position: absolute;9825  inset: 0;9826  z-index: 3;9827  display: flex;9828  flex-direction: column;9829  gap: 18px;9830  padding: 14px 12px 12px;9831  width: 100%;9832  box-sizing: border-box;9833  overflow-y: auto;9834  overflow-x: hidden;9835  /* Same warm Chirp surface as the pairing screen — unifies the two views. */9836  background:9837    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9838    var(--peach-bg);9839  color: var(--peach-t0);9840  isolation: isolate;9841  /* Hide native scrollbar — content fits 99% of the time and a chunky9842     gutter ruins the surface. */9843  scrollbar-width: none;9844  animation: peach-chirp-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9845}9846.peach-chirp-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }9847.peach-chirp-settings::before {9848  content: '';9849  position: absolute;9850  inset: 0;9851  pointer-events: none;9852  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9853  z-index: 0;9854}9855.peach-chirp-settings > * { position: relative; z-index: 1; }98569857.peach-chirp-settings--pairing {9858  padding: 0;9859  align-items: stretch;9860  justify-content: stretch;9861  background: none;9862  isolation: auto;9863}9864.peach-chirp-settings--pairing::before { display: none; }98659866.peach-chirp-settings-header {9867  display: flex;9868  align-items: center;9869  gap: 10px;9870}9871.peach-chirp-settings-title {9872  margin: 0;9873  font-family: var(--font-display, Georgia, serif);9874  font-style: italic;9875  font-size: 24px;9876  font-weight: 500;9877  line-height: 1;9878  color: var(--peach-t0);9879  letter-spacing: 0.005em;9880}9881.peach-chirp-settings-section {9882  margin: 6px 0 -4px;9883  font-size: 11px;9884  font-weight: 600;9885  letter-spacing: 0.08em;9886  text-transform: uppercase;9887  color: var(--peach-text-muted);9888}9889.peach-chirp-settings-error {9890  font-size: 12px;9891  padding: 8px 10px;9892  border-radius: 8px;9893  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);9894  color: var(--peach-text);9895}9896.peach-chirp-settings-footer {9897  margin-top: auto;9898  padding-top: 18px;9899  font-size: 11.5px;9900  line-height: 1.5;9901  color: var(--peach-text-muted);9902  text-align: center;9903}99049905/* Hero card shown when no devices are paired yet. */9906.peach-chirp-hero {9907  display: flex;9908  flex-direction: column;9909  align-items: center;9910  gap: 12px;9911  padding: 20px 12px 8px;9912  text-align: center;9913}9914.peach-chirp-hero-svg {9915  display: block;9916  max-width: 100%;9917  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));9918}9919.peach-chirp-hero-headline {9920  margin: 0;9921  font-family: var(--font-display, Georgia, serif);9922  font-style: italic;9923  font-size: 20px;9924  font-weight: 500;9925  line-height: 1.2;9926  letter-spacing: 0.005em;9927  color: var(--peach-t0);9928}9929.peach-chirp-hero-sub {9930  margin: 0;9931  font-size: 13px;9932  line-height: 1.5;9933  color: var(--peach-t1);9934  max-width: 320px;9935  text-wrap: pretty;9936}99379938.peach-chirp-pair-cta {9939  display: flex;9940  justify-content: center;9941  padding: 4px 0 6px;9942}9943.peach-chirp-pair-button {9944  display: inline-flex;9945  align-items: center;9946  gap: 8px;9947  min-width: 220px;9948  justify-content: center;9949}9950.peach-chirp-pair-button-icon {9951  flex: 0 0 auto;9952}99539954/* Paired devices list. Roomy rows that look at home next to the rest9955   of Settings; stale rows get a soft warm-warning border tint. */9956.peach-chirp-device-list {9957  list-style: none;9958  margin: 0;9959  padding: 0;9960  display: flex;9961  flex-direction: column;9962  gap: 8px;9963}9964.peach-chirp-device-row {9965  display: flex;9966  align-items: center;9967  gap: 12px;9968  padding: 12px;9969  border-radius: 10px;9970  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);9971  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);9972}9973.peach-chirp-device-row[data-stale="true"] {9974  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);9975}9976.peach-chirp-device-icon {9977  width: 32px;9978  height: 32px;9979  display: flex;9980  align-items: center;9981  justify-content: center;9982  border-radius: 8px;9983  color: var(--peach-text);9984  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);9985}9986.peach-chirp-device-info {9987  flex: 1;9988  display: flex;9989  flex-direction: column;9990  gap: 2px;9991  min-width: 0;9992}9993.peach-chirp-device-name {9994  font-size: 14px;9995  font-weight: 600;9996  color: var(--peach-text);9997  overflow: hidden;9998  text-overflow: ellipsis;9999  white-space: nowrap;10000}10001.peach-chirp-device-meta {10002  font-size: 11.5px;10003  color: var(--peach-text-muted);10004  display: flex;10005  flex-wrap: wrap;10006  align-items: center;10007  gap: 8px;10008}10009.peach-chirp-device-badge {10010  font-size: 10.5px;10011  font-weight: 500;10012  letter-spacing: 0.02em;10013  padding: 2px 6px;10014  border-radius: 999px;10015  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10016  color: var(--peach-text);10017}10018.peach-chirp-device-stale {10019  font-size: 10.5px;10020  font-weight: 500;10021  color: var(--peach-warn, #d29257);10022}10023.peach-chirp-device-remove {10024  flex: 0 0 auto;10025  color: var(--peach-text-muted);10026}10027.peach-chirp-device-remove:hover {10028  color: var(--peach-danger, #c25b4a);10029}10030.peach-chirp-unpair-confirm {10031  display: flex;10032  gap: 6px;10033  align-items: center;10034}1003510036/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10037.peach-chirp-pro-card {10038  position: relative;10039  margin: 18px 12px;10040  padding: 18px 20px 22px;10041  border-radius: 22px;10042  background:10043    radial-gradient(140% 90% at 50% 0%,10044      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10045      transparent 60%),10046    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10047  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10048  box-shadow:10049    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10050    0 18px 40px -24px rgba(0, 0, 0, 0.45);10051  display: flex;10052  flex-direction: column;10053  align-items: center;10054  gap: 10px;10055  text-align: center;10056  overflow: hidden;10057}10058.peach-chirp-pro-stage {10059  position: relative;10060  width: 220px;10061  height: 140px;10062  display: flex;10063  align-items: flex-end;10064  justify-content: center;10065  margin-bottom: 2px;10066}10067.peach-chirp-pro-bird-slot {10068  width: 140px;10069  height: 132px;10070  display: flex;10071  align-items: flex-end;10072  justify-content: center;10073  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10074}10075.peach-chirp-pro-bird-slot .peach-chirp-bird {10076  width: 100%;10077  height: 100%;10078}10079.peach-chirp-pro-bird-slot .peach-chirp-bird svg {10080  width: 100%;10081  height: 100%;10082  overflow: visible;10083}10084.peach-chirp-pro-chirp {10085  position: absolute;10086  top: 14px;10087  right: 8px;10088  width: 96px;10089  height: 80px;10090  color: var(--peach-accent);10091  animation: peach-chirp-pulse 2.6s ease-in-out infinite;10092  transform-origin: 0% 50%;10093  pointer-events: none;10094}10095@keyframes peach-chirp-pulse {10096  0%, 100% { opacity: 0.35; transform: translateX(0) scale(0.92); }10097  45%      { opacity: 1;    transform: translateX(2px) scale(1); }10098  70%      { opacity: 0.6;  transform: translateX(4px) scale(1.04); }10099}10100@media (prefers-reduced-motion: reduce) {10101  .peach-chirp-pro-chirp { animation: none; opacity: 0.7; }10102}10103.peach-chirp-pro-headline {10104  margin: 4px 0 0;10105  font-family: var(--font-display, "Cormorant Garamond", serif);10106  font-style: italic;10107  font-size: 19px;10108  font-weight: 500;10109  letter-spacing: 0.01em;10110  color: var(--peach-t0);10111  max-width: 280px;10112  line-height: 1.25;10113}10114.peach-chirp-pro-body {10115  margin: 0;10116  font-size: 13px;10117  line-height: 1.55;10118  color: var(--peach-t1);10119  max-width: 300px;10120}10121.peach-chirp-pro-cta {10122  margin-top: 4px;10123}10124.peach-chirp-pro-foot {10125  margin: 2px 0 0;10126  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10127  font-size: 0.625rem;10128  letter-spacing: 0.08em;10129  text-transform: uppercase;10130  color: var(--peach-t2);10131  opacity: 0.75;10132}1013310134/* Shell border and shadow in light mode: match dark mode's near-invisible10135   border weight so the popup frame looks the same in both themes. */10136.light .peach-shell,10137.light .peach-screen {10138  border-color: rgba(26, 18, 8, 0.07);10139  box-shadow:10140    0 2px 8px rgba(80, 56, 32, 0.08),10141    0 14px 48px rgba(80, 56, 32, 0.10),10142    0 0 0 1px rgba(26, 18, 8, 0.04);10143}