popup.css

250.8 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/* The pair-device surface owns its own header 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-5 / LV-4: recovery words grid in the view-words reveal. */652.peach-recovery-words-grid {653  display: grid;654  grid-template-columns: 1fr 1fr;655  gap: 4px 10px;656}657.peach-recovery-word {658  font-family: "IBM Plex Mono", "SFMono-Regular", monospace;659  font-size: 11px;660  color: var(--peach-t0);661}662.peach-recovery-word b {663  color: var(--peach-t2);664  font-weight: 400;665  margin-right: 4px;666}667668/* UI-1 / HV-1b: dismissible sync alert banners at the top of the vault view. */669.peach-sync-alerts {670  display: flex;671  flex-direction: column;672  gap: 6px;673  padding: 8px 12px 0;674}675.peach-sync-alert {676  display: flex;677  align-items: flex-start;678  gap: 8px;679  padding: 8px 10px;680  border-radius: 7px;681  background: color-mix(in srgb, #C8A840 14%, transparent);682  border: 1px solid color-mix(in srgb, #C8A840 38%, transparent);683}684.peach-sync-alert-text {685  flex: 1;686  font-family: "IBM Plex Mono", "SFMono-Regular", monospace;687  font-size: 10px;688  line-height: 1.45;689  color: var(--peach-t0);690}691.peach-sync-alert-dismiss {692  flex-shrink: 0;693  background: none;694  border: none;695  color: var(--peach-t2);696  font-size: 14px;697  line-height: 1;698  cursor: pointer;699  padding: 0 2px;700}701.peach-sync-alert-dismiss:hover { color: var(--peach-t0); }702703/* UI-8 / LV-2: non-blocking homograph warning under the URL editor. */704.peach-homograph-warning {705  margin: 4px 0 2px;706  padding: 6px 8px;707  border-radius: 6px;708  background: color-mix(in srgb, var(--peach-breach) 12%, transparent);709  border: 1px solid color-mix(in srgb, var(--peach-breach) 36%, transparent);710  color: var(--peach-t1);711  font-size: 0.6875rem;712  line-height: 1.4;713}714.peach-additional-url-row {715  display: flex;716  align-items: center;717  gap: 6px;718}719.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }720.peach-additional-url-remove {721  background: transparent;722  border: 1px solid var(--peach-t3);723  color: var(--peach-t2);724  width: 22px;725  height: 22px;726  border-radius: 4px;727  cursor: pointer;728  font-size: 0.875rem;729  line-height: 1;730  display: inline-flex;731  align-items: center;732  justify-content: center;733  flex-shrink: 0;734  transition: color 120ms ease, border-color 120ms ease;735}736.peach-additional-url-remove:hover:not(:disabled) {737  color: var(--peach-accent);738  border-color: var(--peach-border-accent);739}740.peach-additional-urls-add { align-self: flex-start; }741742/* Delete row */743.peach-entry-delete-row {744  display: flex;745  align-items: center;746  gap: 8px;747  padding-top: 18px;748  margin-top: 8px;749  border-top: 1px solid var(--peach-t3);750}751.peach-delete-btn {752  font-size: 0.6875rem;753  color: var(--peach-t2);754  padding: 4px 0;755}756.peach-delete-confirm-text {757  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;758  font-size: 0.6875rem;759  font-style: italic;760  color: var(--peach-t2);761  flex-shrink: 0;762}763764/* TOTP band */765.peach-totp-band {766  border-top: 1px solid var(--peach-t3);767  padding: 12px 20px 14px;768  position: relative;769  display: grid;770  grid-template-columns: 1fr auto;771  gap: 10px;772}773.peach-totp-main {774  min-width: 0;775  cursor: pointer;776  user-select: none;777}778.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }779.peach-totp-code-row {780  display: flex;781  align-items: flex-end;782  gap: 10px;783  min-width: 0;784}785.peach-totp-code {786  margin: 2px 0 0;787  font-family: var(--font-display);788  font-style: italic;789  font-weight: 300;790  font-size: 38px; color: var(--peach-accent);791  line-height: 0.95; min-height: 1em;792  min-width: 0;793}794.peach-totp-code-text {795  display: inline-flex;796  overflow: hidden;797  text-overflow: ellipsis;798  white-space: nowrap;799}800.peach-totp-copy-btn {801  margin-bottom: 2px;802  flex-shrink: 0;803  border-color: transparent;804}805.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }806.peach-totp-countdown {807  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;808  font-size: 22px; color: var(--peach-t1);809}810.peach-totp-ring { transform: rotate(-90deg); }811.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }812.peach-totp-ring-progress {813  fill: none; stroke: var(--peach-accent); stroke-width: 2;814  stroke-linecap: round;815  transition: stroke-dashoffset 1s linear, stroke 500ms ease;816}817/* Search bar */818.peach-search-wrap {819  border-top: 1px solid var(--peach-t3);820  background: var(--peach-s1);821  min-height: 54px; position: relative;822  box-shadow: inset 0 6px 18px transparent;823  transition: box-shadow 700ms ease;824}825.peach-search-wrap::before {826  content: "";827  position: absolute;828  left: 0;829  top: 0;830  height: 2px;831  width: var(--peach-totp-progress, 0%);832  background: var(--peach-accent);833  opacity: 0;834  transition: width 1s linear, opacity 180ms ease;835  pointer-events: none;836}837.peach-shell[data-totp-active="true"] .peach-search-wrap::before {838  opacity: 0.9;839}840.peach-shell[data-totp-active="true"] .peach-search-wrap {841  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);842}843844@keyframes peach-totp-code-flare {845  0%   { filter: brightness(1); }846  25%  { filter: brightness(1.3); }847  100% { filter: brightness(1); }848}849.peach-totp-code.is-hot {850  animation: peach-totp-code-flare 3000ms ease-in-out both;851}852.peach-search-bar {853  min-height: 54px;854  display: grid;855  grid-template-columns: auto minmax(0, 1fr) auto;856  align-items: center;857  gap: 8px; padding: 0 9px 0 12px;858}859.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }860.peach-search-input {861  border: 0; background: transparent; color: var(--peach-t0);862  font-family: var(--font-display);863  font-style: italic; font-size: 18px;864  outline: none; width: 100%; min-width: 0; padding: 0;865  caret-color: var(--peach-accent);866}867.peach-search-input::placeholder { color: var(--peach-t2); }868.peach-search-meta {869  display: grid;870  grid-auto-flow: column;871  align-items: center;872  justify-content: end;873  gap: 6px;874  min-width: max-content;875}876.peach-search-counter {877  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;878  font-size: 0.625rem; color: var(--peach-t2);879  display: inline-flex;880  align-items: center;881  line-height: 1;882}883.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }884885/* Buttons */886.peach-btn {887  border: 1px solid transparent; border-radius: 12px;888  background: transparent; color: var(--peach-t0);889  font-family: Inter, system-ui, sans-serif;890  font-size: 0.75rem; letter-spacing: 0.02em; padding: 8px 12px;891  cursor: pointer;892  transition:893    background-color var(--peach-dur-80) var(--peach-curve-arrival),894    color var(--peach-dur-80) var(--peach-curve-arrival),895    border-color var(--peach-dur-150) var(--peach-curve-arrival);896}897.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }898.peach-btn:disabled {899  opacity: 0.45;900  cursor: not-allowed;901}902.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 0.6875rem; }903.peach-btn--md { min-height: 38px; }904.peach-btn--accent {905  background: var(--peach-accent);906  color: rgba(0,0,0,0.92);907  font-weight: 500;908  box-shadow:909    0 1px 0 rgba(255,255,255,0.08) inset,910    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),911    0 3px 16px var(--peach-glow),912    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);913}914.peach-btn--accent:hover:not(:disabled) {915  background: var(--peach-accent);916  filter: brightness(1.10) saturate(1.05);917  box-shadow:918    0 1px 0 rgba(255,255,255,0.10) inset,919    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),920    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),921    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);922}923.peach-btn--ghost:not(.peach-icon-btn) { border-color: var(--peach-t3); color: var(--peach-t1); }924.peach-btn--ghost.peach-icon-btn { color: var(--peach-t1); }925.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }926.peach-icon-btn {927  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;928  display: inline-flex; align-items: center; justify-content: center;929  border-color: transparent;930  transition:931    color var(--peach-dur-80) var(--peach-curve-arrival),932    box-shadow var(--peach-dur-150) var(--peach-curve-arrival),933    background-color var(--peach-dur-80) var(--peach-curve-arrival);934}935.peach-icon-btn:hover:not(:disabled) {936  background: transparent;937  color: var(--peach-accent);938  box-shadow: 0 0 12px color-mix(in srgb, var(--peach-accent) 28%, transparent),939              0 0 4px color-mix(in srgb, var(--peach-accent) 16%, transparent);940}941942/* Topbar sync. Only rendered when a device is paired, so it never sits there943   as a control that cannot do anything. */944.peach-sync-btn.is-syncing { color: var(--peach-accent); }945.peach-sync-btn.is-syncing .peach-sync-icon {946  animation: peach-sync-spin 900ms linear infinite;947  transform-origin: 50% 50%;948}949.peach-sync-btn.is-ok { color: var(--peach-accent); }950.peach-sync-btn.is-error { color: var(--peach-breach, #d66); }951@keyframes peach-sync-spin { to { transform: rotate(360deg); } }952953/* Sync indicator light — same taxonomy as the Settings pip, sized for the954   14px topbar icon. Unlit when nothing has happened yet; never green when955   sync is not actually working. */956.peach-sync-btn { position: relative; }957.peach-sync-pip {958  position: absolute;959  top: 2px;960  right: 2px;961  width: 5px;962  height: 5px;963  border-radius: 50%;964  background: transparent;965}966.peach-sync-pip.is-ok,967.peach-sync-pip.is-busy {968  background: var(--peach-health-ok);969  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-health-ok) 60%, transparent);970}971.peach-sync-pip.is-busy { animation: peach-sync-pip-pulse 1600ms ease-in-out infinite; }972/* Yellow — the dial did not reach the peer, but the alarm will retry. Distinct973   from is-error (red) so a transient network miss does not look like a real974   fault. */975.peach-sync-pip.is-warn {976  background: var(--peach-health-warn);977  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-health-warn) 60%, transparent);978}979.peach-sync-pip.is-error {980  background: var(--peach-breach);981  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-breach) 60%, transparent);982}983@keyframes peach-sync-pip-pulse {984  0%, 100% { opacity: 1; }985  50% { opacity: 0.35; }986}987@media (prefers-reduced-motion: reduce) {988  .peach-sync-btn.is-syncing .peach-sync-icon { animation: none; opacity: 0.6; }989  .peach-sync-pip.is-busy { animation: none; }990}991992.peach-btn:focus-visible {993  outline: none;994  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);995}996997/* Lock button */998.peach-lock-icon { transform-origin: center; }999.peach-lock-btn { color: var(--peach-accent); }1000.peach-lock-btn.is-locking .peach-lock-icon {1001  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);1002}10031004/* Biometric unlock button */1005.peach-biometric-btn {1006  display: flex;1007  align-items: center;1008  justify-content: center;1009  gap: 6px;1010  margin-top: 8px;1011  width: 100%;1012}10131014/* Copy button */1015.peach-copy-btn {1016  position: relative; overflow: hidden;1017  color: var(--peach-t2); border-color: var(--peach-t3);1018}1019.peach-copy-icon {1020  display: inline-flex; align-items: center; justify-content: center;1021  position: relative; z-index: 1;1022}1023.peach-copy-icon-svg { display: block; }1024.peach-copy-sheen {1025  position: absolute; inset: 0;1026  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%);1027  opacity: 0; transform: scaleX(0.15); transform-origin: left center;1028}1029.peach-copy-btn.is-copied {1030  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;1031  box-shadow:1032    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),1033    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),1034    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);1035}1036.peach-copy-btn.is-copied .peach-copy-icon {1037  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;1038}1039.peach-copy-btn.is-copied .peach-copy-sheen {1040  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;1041}1042.peach-copy-btn.is-retreat {1043  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;1044}1045.peach-copy-btn.is-retreat .peach-copy-sheen {1046  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;1047}1048.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }1049.peach-copy-drain-bar {1050  display: block; width: 100%; height: 100%;1051  background: var(--peach-accent); opacity: 0.7;1052  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;1053}10541055/* Unlock screen elements */1056.peach-underline-input {1057  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);1058  padding: 6px 0; background: transparent; color: var(--peach-t0);1059  outline: none;1060  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1061  font-size: 0.8125rem;1062  caret-color: var(--peach-accent);1063}1064.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }1065.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }1066.peach-hint {1067  margin: 0;1068  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1069  font-size: 0.625rem; color: var(--peach-t2);1070}1071.peach-unlock-footer {1072  margin-top: 4px; display: flex; align-items: center; gap: 7px;1073  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1074  font-size: 0.625rem; color: var(--peach-t2);1075}1076.peach-unlock-footer--lock {1077  padding-top: 2px;1078}10791080/* Desktop helper (peach-sync) code pairing — additive hooks. The shared pairing1081   classes (peach-pair-*) carry the shared layout; these only style the parts1082   unique to the typed-code path. Inline styles cover the SAS/confirm gate. */1083.peach-desktop-pair { display: flex; flex-direction: column; }1084.peach-desktop-enter,1085.peach-desktop-searching,1086.peach-desktop-paired,1087.peach-desktop-error {1088  display: flex; flex-direction: column; gap: 8px;1089  padding: 4px 18px 16px; text-align: center; align-items: center;1090}1091.peach-desktop-enter .peach-label { align-self: flex-start; }1092/* Sized for a full 19-character pairing code (A74H-48J3-KI32-OEP4) in a1093   320px popup — a 6-digit legacy helper code still reads fine at this size. */1094.peach-code-input {1095  text-align: center; letter-spacing: 0.12em; padding-left: 0.12em;1096  font-size: 15px;1097}1098.peach-code-input::placeholder { letter-spacing: 0.12em; }10991100/* Sync card "pair a device" options — bordered, raised tappable rows that read1101   as buttons on any card hue (theme-neutral light overlay, not the peach accent). */1102.peach-sync-pair-option {1103  display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;1104  width: 100%; text-align: left; cursor: pointer; font-family: inherit;1105  padding: 11px 12px; border-radius: 10px;1106  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);1107  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);1108  color: var(--peach-t0);1109  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;1110}1111.peach-sync-pair-option + .peach-sync-pair-option { margin-top: 8px; }1112.peach-sync-pair-option:hover {1113  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);1114  border-color: color-mix(in srgb, var(--peach-t0) 28%, transparent);1115}1116.peach-sync-pair-option:active { transform: translateY(1px); }1117.peach-sync-pair-option:disabled { opacity: 0.5; cursor: default; }1118.peach-sync-pair-option-icon { flex-shrink: 0; display: flex; align-items: center; color: var(--peach-t1); margin-top: 1px; }1119.peach-sync-pair-option-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }1120.peach-sync-pair-option-title { font-size: 0.8125rem; font-weight: 600; }1121.peach-sync-pair-option-sub { font-size: 0.6875rem; line-height: 1.45; color: var(--peach-t2); }1122.peach-sync-pair-option-chevron { flex-shrink: 0; color: var(--peach-t2); font-size: 1.05rem; line-height: 1.3; }11231124/* Breach badge */1125.peach-breach-badge {1126  display: flex;1127  position: relative;1128  z-index: 1;1129  align-items: center;1130  gap: 7px;1131  font-size: 0.5625rem;1132  color: var(--peach-breach);1133  padding: 5px 10px;1134  margin-bottom: 4px;1135  border-radius: 8px;1136  background: rgba(220, 80, 60, 0.07);1137  border: 1px solid rgba(220, 80, 60, 0.18);1138  letter-spacing: 0.04em;1139}11401141.peach-password-value.is-breached {1142  color: rgba(220, 80, 60, 0.75);1143  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1144}11451146/* ── Overlay views ─────────────────────────────────────────────────── */1147.peach-overlay-view {1148  position: absolute;1149  inset: 0;1150  display: flex;1151  flex-direction: column;1152  background:1153    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1154    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1155    var(--peach-bg);1156  z-index: 2;1157  overflow: hidden;1158  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1159}11601161.peach-overlay-view:has(.stk-shell) {1162  background: var(--peach-bg);1163}1164@keyframes overlay-in {1165  from { opacity: 0; transform: translateY(8px); }1166  to   { opacity: 1; transform: translateY(0); }1167}1168.peach-overlay-view.ov-enter-up {1169  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1170}1171.peach-overlay-view.ov-exit-up {1172  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1173}1174.peach-overlay-view.ov-enter-right {1175  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1176}1177.peach-overlay-view.ov-exit-right {1178  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1179}11801181@keyframes ov-enter-up {1182  from { opacity: 0; transform: translateY(18px); }1183  to   { opacity: 1; transform: translateY(0); }1184}1185@keyframes ov-exit-up {1186  from { opacity: 1; transform: translateY(0); }1187  to   { opacity: 0; transform: translateY(-12px); }1188}1189@keyframes ov-enter-right {1190  from { opacity: 0; transform: translateX(20px); }1191  to   { opacity: 1; transform: translateX(0); }1192}1193@keyframes ov-exit-right {1194  from { opacity: 1; transform: translateX(0); }1195  to   { opacity: 0; transform: translateX(20px); }1196}11971198/* Overlay shared header */1199.peach-overlay-header {1200  padding: 10px 12px 8px;1201  display: flex;1202  align-items: center;1203  gap: 10px;1204  flex-shrink: 0;1205}1206/* Back button — circular pill matching the settings stack masthead (.stk-back) */1207.peach-overlay-header .peach-btn--ghost.peach-icon-btn {1208  width: 28px;1209  height: 28px;1210  flex: 0 0 28px;1211  border-radius: 999px;1212  border: 1px solid var(--peach-border);1213  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);1214  color: var(--peach-t1);1215  padding: 0;1216}1217.peach-overlay-header .peach-btn--ghost.peach-icon-btn:hover {1218  color: var(--peach-t0);1219  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);1220  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1221}1222.peach-overlay-title {1223  font-family: var(--font-display);1224  font-style: italic;1225  font-weight: 400;1226  font-size: 20px;1227  line-height: 1;1228  color: var(--peach-t0);1229  flex: 1;1230  text-align: center;1231}1232/* Balances the 28px back button so the title stays visually centred */1233.peach-overlay-spacer {1234  width: 28px;1235  flex: 0 0 28px;1236}12371238.peach-overlay-card {1239  background: var(--peach-s1);1240  border: 1px solid var(--peach-t3);1241  border-radius: 12px;1242  overflow: hidden;1243  width: 100%;1244}12451246.peach-onboarding-alt-actions {1247  display: flex;1248  flex-direction: column;1249  gap: 4px;1250  padding: 0;1251}12521253.peach-settings-copy {1254  margin: 0 0 10px;1255  font-size: 0.6875rem;1256  line-height: 1.5;1257  color: var(--peach-t2);1258}12591260.peach-settings-copy strong {1261  color: var(--peach-t0);1262}12631264.peach-settings-copy--spacious {1265  margin-bottom: 12px;1266}12671268.peach-settings-copy--result {1269  color: var(--peach-accent);1270  font-size: 0.8125rem;1271  text-align: center;1272  padding: 8px 0;1273}12741275.peach-settings-copy--danger {1276  color: var(--peach-breach);1277}12781279.peach-settings-copy--success {1280  color: var(--peach-accent);1281}12821283.peach-inline-feedback {1284  font-size: 0.6875rem;1285  margin: 10px 0 0;1286}12871288.peach-inline-feedback--ok {1289  color: var(--peach-accent);1290}12911292.peach-inline-feedback--error {1293  color: var(--peach-breach);1294}12951296.peach-inline-feedback--muted {1297  color: var(--peach-t2);1298  font-size: 0.625rem;1299  margin: 4px 0;1300}13011302.peach-inline-feedback--spaced {1303  margin-top: 12px;1304}13051306.peach-settings-actions--row {1307  display: flex;1308  gap: 6px;1309}13101311.peach-settings-actions--end {1312  margin-top: 14px;1313  justify-content: flex-end;1314}13151316.peach-settings-stack {1317  display: flex;1318  flex-direction: column;1319  gap: 6px;1320}13211322.peach-settings-stack--tight {1323  gap: 4px;1324}13251326.peach-settings-stack--spacious {1327  gap: 8px;1328}13291330.peach-settings-input {1331  width: 100%;1332  box-sizing: border-box;1333  padding: 8px 10px;1334  background: rgba(0, 0, 0, 0.22);1335  border: 1px solid transparent;1336  border-radius: 6px;1337  color: var(--peach-t0);1338  font-family: var(--font-ui);1339  font-size: 0.75rem;1340  outline: none;1341  transition: border-color 120ms ease, background 120ms ease;1342}13431344.peach-settings-input:focus {1345  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1346  background: rgba(0, 0, 0, 0.28);1347}13481349.peach-settings-input[type="password"] {1350  font-family: var(--font-mono);1351  letter-spacing: 0.04em;1352}13531354.peach-hidden-file-input {1355  display: none;1356}13571358.peach-checkbox-note {1359  display: flex;1360  align-items: flex-start;1361  gap: 8px;1362  font-size: 0.6875rem;1363  color: var(--peach-t1);1364  cursor: pointer;1365  margin: 12px 0;1366}13671368.peach-checkbox-note input {1369  margin-top: 1px;1370}13711372.peach-danger-notice {1373  background: rgba(220, 80, 60, 0.08);1374  border: 1px solid rgba(220, 80, 60, 0.2);1375  border-radius: 6px;1376  padding: 9px 11px;1377  font-size: 0.6875rem;1378  color: var(--peach-t1);1379  line-height: 1.5;1380}13811382.peach-info-notice {1383  font-size: 0.6875rem;1384  color: var(--peach-t1);1385  line-height: 1.5;1386  background: var(--surface-card);1387  border: 1px solid var(--peach-t3);1388  border-radius: 6px;1389  padding: 8px 10px;1390}13911392.peach-info-notice--warn {1393  border-color: rgba(220, 38, 38, 0.4);1394  background: rgba(220, 38, 38, 0.06);1395  color: rgba(220, 38, 38, 0.92);1396  margin-bottom: 8px;1397}13981399/* Warm helpful-context note — reads as a soft aside, not an alert. */1400.peach-info-notice--note {1401  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);1402  border-color: color-mix(in srgb, var(--peach-accent) 18%, transparent);1403  color: var(--peach-t2);1404}14051406.peach-strength-row {1407  display: flex;1408  align-items: center;1409  gap: 8px;1410  margin-bottom: 10px;1411}14121413.peach-strength-track {1414  flex: 1;1415  height: 4px;1416  background: var(--peach-s2);1417  border-radius: 2px;1418  overflow: hidden;1419}14201421.peach-strength-fill {1422  height: 100%;1423  border-radius: 2px;1424  transition: width 120ms ease, background 120ms ease;1425}14261427/* ── Type selector tabs ── */1428.peach-type-tabs {1429  display: flex;1430  gap: 0;1431  background: var(--peach-t4);1432  border-radius: 8px;1433  padding: 3px;1434}14351436.peach-type-tab {1437  flex: 1;1438  display: flex;1439  align-items: center;1440  justify-content: center;1441  gap: 6px;1442  padding: 6px 10px;1443  border-radius: 6px;1444  border: none;1445  background: transparent;1446  cursor: pointer;1447  font-family: Inter, system-ui, sans-serif;1448  font-size: 0.6875rem;1449  font-weight: 400;1450  letter-spacing: 0.04em;1451  color: var(--peach-t1);1452  transition: background 150ms ease, color 150ms ease;1453}14541455.peach-type-tab.is-active {1456  background: var(--peach-s2);1457  color: var(--peach-t0);1458  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1459}14601461.peach-type-tab:not(.is-active):hover {1462  color: var(--peach-t0);1463}14641465.peach-type-tab svg {1466  opacity: 0.7;1467  flex-shrink: 0;1468}14691470.peach-type-tab.is-active svg {1471  opacity: 1;1472}14731474/* ── List view ───────────────────────────────────────────────────────── */1475.peach-list-top {1476  padding: 0 10px;1477  min-height: 46px;1478  display: flex;1479  align-items: center;1480  gap: 6px;1481  border-bottom: 1px solid var(--peach-t3);1482  flex-shrink: 0;1483  background: var(--peach-s1);1484}14851486.peach-vault-list {1487  flex: 1;1488  overflow-y: auto;1489  scrollbar-width: none;1490}1491.peach-vault-list::-webkit-scrollbar { display: none; }14921493/* Scrollbar — vault list */1494.peach-vault-list {1495  scrollbar-width: thin;1496  scrollbar-color: var(--peach-t3) transparent;1497}14981499.peach-vault-list::-webkit-scrollbar {1500  width: 3px;1501}15021503.peach-vault-list::-webkit-scrollbar-thumb {1504  background: var(--peach-t3);1505  border-radius: 2px;1506}15071508.peach-entry-row {1509  width: 100%;1510  display: flex;1511  align-items: center;1512  gap: 10px;1513  padding: 9px 16px;1514  background: transparent;1515  border: none;1516  border-bottom: 1px solid var(--peach-t3);1517  cursor: pointer;1518  color: inherit;1519  text-align: left;1520  transition: background 80ms ease;1521}1522.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1523.peach-entry-row:last-child { border-bottom: none; }1524.peach-entry-row.is-active {1525  box-shadow: inset 2px 0 0 var(--peach-accent);1526  background: rgba(240,232,216,0.03);1527}1528.peach-entry-row:focus-visible {1529  outline: none;1530  box-shadow: 0 0 0 1px var(--peach-border-accent);1531  background: rgba(240,232,216,0.03);1532}1533.peach-entry-row-icon {1534  width: 26px; height: 26px;1535  border-radius: 7px;1536  border: 1px solid var(--peach-t3);1537  display: flex; align-items: center; justify-content: center;1538  color: var(--peach-t2);1539  flex-shrink: 0;1540}1541.peach-entry-row-icon.is-breach {1542  border-color: rgba(220,80,60,0.3);1543  color: rgba(220,80,60,0.7);1544}15451546/* Title-initials chip used as the favicon fallback for login entries whose1547 * real favicon hasn't been cached by the browser yet (freshly-imported,1548 * never-visited domains). Background colour is hashed from the title so1549 * the same entry always shows the same chip. The chip fits the same1550 * 26×26 row icon slot the favicon would take. */1551.peach-favicon-initials {1552  display: inline-flex;1553  align-items: center;1554  justify-content: center;1555  width: 100%;1556  height: 100%;1557  border-radius: 4px;1558  font-family: "IBM Plex Mono", monospace;1559  font-size: 0.5625rem;1560  font-weight: 600;1561  letter-spacing: 0.04em;1562  color: rgba(240, 232, 216, 0.92);1563  text-transform: uppercase;1564  user-select: none;1565}1566.peach-entry-row-info { flex: 1; min-width: 0; }1567.peach-entry-row-name {1568  display: block;1569  font-family: var(--font-display);1570  font-size: 1.0625rem;1571  font-style: italic;1572  font-weight: 400;1573  color: var(--peach-t0);1574  line-height: 1.2;1575  white-space: nowrap;1576  overflow: hidden;1577  text-overflow: ellipsis;1578}1579.peach-entry-row-meta {1580  display: block;1581  font-family: "IBM Plex Mono", monospace;1582  font-size: 0.5625rem;1583  color: var(--peach-t2);1584  margin-top: 1px;1585  letter-spacing: 0.05em;1586}1587.peach-entry-row-dot {1588  width: 5px; height: 5px;1589  border-radius: 50%;1590  background: rgba(220,80,60,0.7);1591  flex-shrink: 0;1592}1593.peach-new-entry-row {1594  display: flex;1595  align-items: center;1596  justify-content: center;1597  gap: 6px;1598  width: 100%;1599  padding: 11px;1600  background: transparent;1601  border: none;1602  border-top: 1px solid var(--peach-t3);1603  color: var(--peach-t2);1604  font-family: "IBM Plex Mono", monospace;1605  font-size: 0.5625rem;1606  text-transform: uppercase;1607  letter-spacing: 0.14em;1608  cursor: pointer;1609  flex-shrink: 0;1610  transition: color 120ms ease, background 120ms ease;1611}1612.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }16131614/* ── Multi-select mode ─────────────────────────────────────────────── */16151616/* Select-mode trigger button in sort bar — same shape as trash btn */1617.peach-sort-select-btn {1618  display: flex;1619  align-items: center;1620  justify-content: center;1621  padding: 3px 5px;1622  background: transparent;1623  border: none;1624  cursor: pointer;1625  color: var(--peach-t2);1626  border-radius: 4px;1627  transition: color 140ms ease, background 140ms ease;1628}1629.peach-sort-select-btn:hover {1630  color: var(--peach-t1);1631  background: var(--peach-t3);1632}16331634/* Sort bar in select mode */1635.peach-select-cancel-btn {1636  background: transparent;1637  border: none;1638  padding: 0 4px;1639  cursor: pointer;1640  font-family: "IBM Plex Mono", monospace;1641  font-size: 0.5625rem;1642  letter-spacing: 0.12em;1643  text-transform: uppercase;1644  color: var(--peach-t2);1645  transition: color 140ms ease;1646  flex-shrink: 0;1647}1648.peach-select-cancel-btn:hover { color: var(--peach-t0); }16491650.peach-select-count-label {1651  flex: 1;1652  text-align: center;1653  font-family: "IBM Plex Mono", monospace;1654  font-size: 0.5625rem;1655  letter-spacing: 0.14em;1656  text-transform: uppercase;1657  color: var(--peach-t1);1658}16591660.peach-select-all-btn {1661  background: transparent;1662  border: none;1663  padding: 0 4px;1664  cursor: pointer;1665  font-family: "IBM Plex Mono", monospace;1666  font-size: 0.5625rem;1667  letter-spacing: 0.12em;1668  text-transform: uppercase;1669  color: var(--peach-t2);1670  transition: color 140ms ease;1671  flex-shrink: 0;1672}1673.peach-select-all-btn:hover { color: var(--peach-accent); }16741675/* List in select mode */1676.peach-vault-list.is-selecting .peach-entry-row {1677  cursor: default;1678}1679.peach-vault-list.is-selecting .peach-entry-row:hover {1680  background: rgba(240,232,216,0.02);1681}1682.peach-vault-list.is-selecting .peach-entry-row.is-selected {1683  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1684}1685.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1686  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1687}16881689/* Select indicator circles in icon slot */1690.peach-entry-row-icon.is-select-icon {1691  color: var(--peach-t2);1692}1693.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1694  color: var(--peach-accent);1695}16961697/* Delete action bar at bottom (replaces new-entry row) */1698.peach-select-action-bar {1699  display: flex;1700  align-items: center;1701  justify-content: center;1702  gap: 7px;1703  width: 100%;1704  padding: 11px;1705  background: transparent;1706  border: none;1707  border-top: 1px solid var(--peach-t3);1708  color: var(--peach-t1);1709  font-family: "IBM Plex Mono", monospace;1710  font-size: 0.5625rem;1711  text-transform: uppercase;1712  letter-spacing: 0.14em;1713  cursor: pointer;1714  flex-shrink: 0;1715  transition: color 120ms ease, background 120ms ease;1716}1717.peach-select-action-bar:not(:disabled):hover {1718  color: var(--peach-t0);1719  background: rgba(220,80,60,0.06);1720}1721.peach-select-action-bar:not(:disabled):hover svg {1722  stroke: rgba(220,80,60,0.8);1723}1724.peach-select-action-bar:disabled,1725.peach-select-action-bar.is-empty {1726  color: var(--peach-t2);1727  cursor: default;1728  opacity: 0.5;1729}1730.peach-search-counter-list {1731  white-space: nowrap;1732  flex-shrink: 0;1733}1734.peach-list-empty {1735  min-height: 180px;1736  display: grid;1737  place-items: center;1738  color: var(--peach-t2);1739  font-family: "IBM Plex Mono", monospace;1740  font-size: 0.6875rem;1741}17421743/* ── Settings view ───────────────────────────────────────────────────── */1744.peach-settings-body {1745  flex: 1;1746  overflow-y: auto;1747  min-height: 0;1748  display: flex;1749  flex-direction: column;1750  padding: 2px 0 10px;1751}1752.peach-settings-group {1753  margin: 4px 10px;1754  padding: 9px 14px 11px;1755  border-radius: 12px;1756  border: 1px solid rgba(255, 255, 255, 0.07);1757  background: rgba(26, 20, 16, 0.60);1758  backdrop-filter: blur(10px) saturate(1.3);1759  -webkit-backdrop-filter: blur(10px) saturate(1.3);1760}17611762.peach-settings-group + .peach-settings-group {1763  margin-top: 6px;1764}17651766@supports not (backdrop-filter: blur(1px)) {1767  .peach-settings-group {1768    background: rgba(26, 20, 16, 0.90);1769    border-color: rgba(255, 255, 255, 0.09);1770    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1771  }1772}17731774.light .peach-settings-group,1775[data-theme="light"] .peach-settings-group {1776  background: rgba(245, 237, 226, 0.70);1777  border-color: rgba(26, 18, 8, 0.08);1778  backdrop-filter: blur(10px) saturate(1.2);1779  -webkit-backdrop-filter: blur(10px) saturate(1.2);1780}17811782@supports not (backdrop-filter: blur(1px)) {1783  .light .peach-settings-group,1784  [data-theme="light"] .peach-settings-group {1785    background: rgba(245, 237, 226, 0.97);1786    border-color: rgba(26, 18, 8, 0.10);1787  }1788}1789.peach-export-intro {1790  padding-bottom: 8px;1791}1792.peach-export-card {1793  display: grid;1794  gap: 10px;1795}1796.peach-rune-canvas {1797  border-radius: 8px;1798  background: rgba(0, 0, 0, 0.22);1799  flex: 1;1800  align-self: center;1801}1802.peach-script-input {1803  font-family: "PeachScript", monospace;1804  font-size: 0.6875rem;1805  line-height: 1.9;1806  letter-spacing: 0.06em;1807  color: var(--peach-t0);1808  background: rgba(0, 0, 0, 0.22);1809  border: none;1810  border-radius: 6px;1811  padding: 12px;1812  width: 100%;1813  min-height: 96px;1814  resize: vertical;1815  word-break: break-all;1816  scrollbar-width: none;1817  -ms-overflow-style: none;1818}18191820.peach-script-input::-webkit-scrollbar { display: none; }1821.peach-csv-warning {1822  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1823  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1824  color: var(--peach-t0);1825  border-radius: 6px;1826  padding: 10px 12px;1827  margin-bottom: 8px;1828  font-size: 0.75rem;1829  line-height: 1.45;1830}1831.peach-export-card--primary {1832  background:1833    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1834}18351836/* Export menu — distribute the three format cards across the popup. */1837.peach-export-menu {1838  display: flex;1839  flex-direction: column;1840  flex: 1;1841  min-height: 0;1842}1843.peach-export-menu .peach-settings-group {1844  flex: 1;1845  display: flex;1846  flex-direction: column;1847  justify-content: center;1848  gap: 10px;1849}18501851/* Result view — the script-string fills the remaining vertical surface. */1852.peach-export-result-group {1853  flex: 1;1854  display: flex;1855  flex-direction: column;1856  min-height: 0;1857  border-bottom: none;1858}1859.peach-export-result-group .peach-export-card {1860  flex: 1;1861  min-height: 0;1862  display: flex;1863  flex-direction: column;1864  gap: 10px;1865}1866.peach-export-result-group .peach-export-card-copy {1867  flex-shrink: 0;1868}1869.peach-export-result-group .peach-settings-label {1870  flex-shrink: 0;1871}1872.peach-export-result-group button {1873  flex-shrink: 0;1874}1875.peach-export-card-head {1876  display: flex;1877  align-items: center;1878  justify-content: space-between;1879  gap: 10px;1880}1881.peach-export-card-copy {1882  margin: 0;1883  font-size: 0.75rem;1884  line-height: 1.55;1885  color: var(--peach-t1);1886}1887.peach-export-note {1888  margin: 0;1889  font-size: 0.625rem;1890  line-height: 1.5;1891  color: var(--peach-t2);1892}1893.peach-export-strength-track {1894  height: 3px;1895  background: var(--peach-border);1896  border-radius: 2px;1897  margin: 4px 0 2px;1898  overflow: hidden;1899}1900.peach-export-strength-fill {1901  height: 100%;1902  border-radius: 2px;1903  transition: width 250ms ease, background 250ms ease;1904}1905.peach-export-strength-warn {1906  margin: 0;1907  font-size: 0.625rem;1908  line-height: 1.5;1909  color: #e84040;1910  font-family: "IBM Plex Mono", monospace;1911}1912.peach-export-strength-hint {1913  margin: 0;1914  font-size: 0.625rem;1915  line-height: 1.5;1916  color: var(--peach-t2);1917  font-family: "IBM Plex Mono", monospace;1918}1919.peach-export-pill {1920  display: inline-flex;1921  align-items: center;1922  padding: 4px 8px;1923  border-radius: 999px;1924  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1925  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1926  color: var(--peach-accent);1927  font-family: "IBM Plex Mono", monospace;1928  font-size: 0.5rem;1929  letter-spacing: 0.12em;1930  text-transform: uppercase;1931  white-space: nowrap;1932}1933.peach-export-pill--danger {1934  border-color: rgba(220,80,60,0.22);1935  background: rgba(220,80,60,0.08);1936  color: var(--peach-breach);1937}1938.peach-settings-label {1939  margin: 0 0 6px;1940  font-family: "IBM Plex Mono", monospace;1941  font-size: 0.5rem;1942  text-transform: uppercase;1943  letter-spacing: 0.18em;1944  color: var(--peach-t2);1945}1946.peach-settings-row {1947  display: flex;1948  align-items: center;1949  justify-content: space-between;1950  gap: 12px;1951  min-height: 34px;1952  padding: 6px 0;1953  font-size: 0.8125rem;1954  color: var(--peach-t1);1955}1956.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1957.peach-settings-value {1958  font-family: "IBM Plex Mono", monospace;1959  font-size: 0.625rem;1960  color: var(--peach-t2);1961}19621963.peach-settings-value--status {1964  display: flex;1965  align-items: center;1966  gap: 6px;1967}19681969.peach-settings-link {1970  font-family: "IBM Plex Mono", monospace;1971  font-size: 0.625rem;1972  color: var(--peach-accent);1973  text-decoration: none;1974  cursor: pointer;1975}1976.peach-settings-link:hover {1977  text-decoration: underline;1978}19791980.peach-settings-row--stack {1981  flex-direction: column;1982  align-items: stretch;1983  gap: 6px;1984}19851986.peach-settings-row--top {1987  align-items: flex-start;1988}19891990.peach-settings-row-main {1991  display: flex;1992  flex-direction: column;1993  gap: 4px;1994  flex: 1;1995}1996.peach-toggle {1997  width: 28px; height: 16px;1998  border-radius: 999px;1999  background: var(--peach-t3);2000  border: 1px solid var(--peach-t3);2001  display: flex; align-items: center; justify-content: flex-start; padding: 2px;2002  flex-shrink: 0;2003  transition: background 200ms ease, border-color 200ms ease;2004  cursor: pointer;2005}2006.peach-toggle.is-on {2007  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);2008  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2009}2010.peach-toggle-knob {2011  width: 10px; height: 10px;2012  border-radius: 50%;2013  background: var(--peach-t2);2014  flex-shrink: 0;2015  transform: translateX(0px);2016  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);2017}2018.peach-toggle.is-on .peach-toggle-knob {2019  background: var(--peach-accent);2020  transform: translateX(12px);2021}2022.peach-settings-footer {2023  display: flex;2024  align-items: center;2025  gap: 8px;2026  margin-top: auto;2027  padding: 14px 16px 8px;2028  font-family: "IBM Plex Mono", monospace;2029  font-size: 0.5625rem;2030  color: var(--peach-t2);2031}20322033/* ── Settings home navigation ──────────────────────────────────────────── */2034.peach-settings-nav-label {2035  margin: 0 0 2px;2036  padding: 12px 16px 4px;2037  font-family: "IBM Plex Mono", monospace;2038  font-size: 0.5rem;2039  text-transform: uppercase;2040  letter-spacing: 0.18em;2041  color: var(--peach-t2);2042}20432044.peach-settings-cat-row {2045  display: flex;2046  align-items: center;2047  gap: 10px;2048  width: 100%;2049  padding: 9px 16px;2050  background: none;2051  border: none;2052  border-bottom: 1px solid var(--peach-t3);2053  cursor: pointer;2054  text-align: left;2055  color: inherit;2056  transition: background var(--peach-dur-80) ease;2057}2058.peach-settings-cat-row:hover {2059  background: var(--peach-t3);2060}2061.peach-settings-cat-row:last-child {2062  border-bottom: none;2063}20642065.peach-settings-cat-icon {2066  width: 28px;2067  height: 28px;2068  border-radius: 7px;2069  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2070  color: var(--peach-accent);2071  display: flex;2072  align-items: center;2073  justify-content: center;2074  flex-shrink: 0;2075}2076/* Light theme: peach-on-cream is too low-contrast — both colors are warm.2077   Darken the icon stroke to ink and bump the bg tint so the icon reads2078   sharply while the cell still feels accent-tinted. */2079.light .peach-settings-cat-icon {2080  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);2081  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));2082}20832084.peach-settings-cat-content {2085  flex: 1;2086  display: flex;2087  flex-direction: column;2088  gap: 2px;2089  min-width: 0;2090}20912092.peach-settings-cat-name {2093  font-size: 0.8125rem;2094  font-weight: 450;2095  color: var(--peach-t0);2096  line-height: 1.2;2097}20982099.peach-settings-cat-desc {2100  font-size: 0.625rem;2101  color: var(--peach-t2);2102  line-height: 1.3;2103  white-space: nowrap;2104  overflow: hidden;2105  text-overflow: ellipsis;2106}21072108.peach-settings-cat-chevron {2109  color: var(--peach-t2);2110  flex-shrink: 0;2111  opacity: 0.5;2112}21132114/* ── Settings sub-view section labels ──────────────────────────────────── */2115.peach-settings-sub-label {2116  margin: 12px 0 4px;2117  font-family: "IBM Plex Mono", monospace;2118  font-size: 0.5rem;2119  text-transform: uppercase;2120  letter-spacing: 0.18em;2121  color: var(--peach-t2);2122}2123.peach-settings-sub-label:first-child {2124  margin-top: 4px;2125}21262127/* ── Settings: collapsible Advanced section ─────────────────────────────── */2128.peach-settings-advanced-toggle {2129  display: flex;2130  align-items: center;2131  justify-content: space-between;2132  width: 100%;2133  background: none;2134  border: none;2135  cursor: pointer;2136  padding: 12px 0 4px;2137  margin: 0;2138  color: inherit;2139}2140.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {2141  color: var(--peach-t1);2142}2143.peach-settings-advanced-chevron {2144  font-size: 0.5625rem;2145  color: var(--peach-t3);2146  letter-spacing: 0;2147  transition: color 120ms ease;2148}21492150.peach-sync-disclosure-toggle {2151  min-height: 48px;2152  padding: 10px 0;2153  text-align: left;2154}21552156.peach-sync-disclosure-toggle > span:first-child {2157  display: flex;2158  flex-direction: column;2159  gap: 3px;2160}21612162.peach-sync-disclosure-summary {2163  color: var(--peach-t2);2164  font-size: 0.6875rem;2165  line-height: 1.35;2166}21672168.peach-sync-disclosure-content {2169  padding-bottom: 4px;2170}21712172/* ── Feedback form ──────────────────────────────────────────────────────── */2173.peach-feedback-group {2174  flex: 1;2175  display: flex;2176  flex-direction: column;2177  border-bottom: none;2178}21792180.peach-feedback-intro {2181  margin: 4px 0 14px;2182  font-size: 0.75rem;2183  line-height: 1.55;2184  color: var(--peach-t1);2185}21862187.peach-feedback-chips {2188  display: flex;2189  flex-wrap: wrap;2190  gap: 6px;2191  margin-bottom: 14px;2192}21932194.peach-feedback-chip {2195  padding: 4px 10px;2196  border-radius: 999px;2197  border: 1px solid var(--peach-t3);2198  background: none;2199  color: var(--peach-t2);2200  font-size: 0.6875rem;2201  font-family: var(--font-ui);2202  cursor: pointer;2203  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2204    background var(--peach-dur-80) ease;2205}2206.peach-feedback-chip:hover {2207  border-color: var(--peach-t2);2208  color: var(--peach-t1);2209}2210.peach-feedback-chip.is-active {2211  border-color: color-mix(in srgb, var(--peach-accent) 82%, white 18%);2212  background: color-mix(in srgb, var(--peach-accent) 22%, rgba(255, 255, 255, 0.08));2213  color: color-mix(in srgb, var(--peach-accent) 86%, white 14%);2214  box-shadow:2215    0 0 0 1px color-mix(in srgb, var(--peach-accent) 42%, transparent),2216    0 0 14px color-mix(in srgb, var(--peach-accent) 22%, transparent);2217  font-weight: 700;2218}22192220.peach-feedback-textarea {2221  flex: 1;2222  width: 100%;2223  min-height: 120px;2224  box-sizing: border-box;2225  background: rgba(0, 0, 0, 0.22);2226  border: 1px solid transparent;2227  border-radius: 6px;2228  color: var(--peach-t0);2229  font-size: 0.75rem;2230  font-family: var(--font-ui);2231  line-height: 1.5;2232  padding: 8px 10px;2233  resize: none;2234  outline: none;2235  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2236}2237.peach-feedback-textarea:focus {2238  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2239  background: rgba(0, 0, 0, 0.28);2240}2241.peach-feedback-textarea:focus {2242  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2243}2244.peach-feedback-textarea::placeholder {2245  color: var(--peach-t2);2246}22472248.peach-feedback-meta {2249  margin: 6px 0 0;2250  font-size: 0.625rem;2251  color: var(--peach-t2);2252  font-family: "IBM Plex Mono", monospace;2253}22542255.peach-feedback-result {2256  margin: 8px 0 0;2257  font-size: 0.6875rem;2258  font-family: "IBM Plex Mono", monospace;2259}2260.peach-feedback-result--ok { color: var(--peach-sync-ok); }2261.peach-feedback-result--err { color: var(--peach-breach); }22622263.peach-feedback-submit {2264  width: 100%;2265  margin-top: 12px;2266  justify-content: center;2267}22682269.peach-feedback-anon {2270  margin: 8px 0 0;2271  font-size: 0.625rem;2272  color: var(--peach-t2);2273  text-align: center;2274}22752276.peach-feedback-thanks {2277  margin: auto 0;2278  padding: 18px 14px;2279  border: 1px solid color-mix(in srgb, var(--peach-accent) 42%, transparent);2280  border-radius: 8px;2281  background:2282    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 16%, transparent), transparent),2283    rgba(0, 0, 0, 0.18);2284  color: var(--peach-t1);2285  text-align: center;2286}22872288.peach-feedback-thanks p {2289  margin: 0;2290  font-size: 0.75rem;2291  line-height: 1.5;2292}22932294.peach-feedback-thanks-title {2295  color: var(--peach-t0);2296  font-family: "Cormorant Garamond", serif;2297  font-size: 1.375rem !important;2298  line-height: 1.1 !important;2299  margin-bottom: 8px !important;2300}23012302.peach-passkey-badge {2303  margin-left: 8px;2304  font-size: 0.625rem;2305  letter-spacing: 0.06em;2306  text-transform: uppercase;2307  color: var(--peach-t2);2308  font-family: var(--font-ui);2309  vertical-align: middle;2310}23112312.peach-passkey-delete-btn {2313  color: var(--peach-breach);2314  border-color: rgba(229, 85, 85, 0.25);2315}23162317.peach-passkey-delete-confirm {2318  display: flex;2319  align-items: center;2320  gap: 8px;2321  padding: 8px 10px;2322  background: rgba(229, 85, 85, 0.06);2323  border: 1px solid rgba(229, 85, 85, 0.2);2324  border-radius: 6px;2325}23262327.peach-passkey-delete-confirm-copy {2328  flex: 1;2329  font-size: 0.6875rem;2330  color: var(--peach-t1);2331}23322333.peach-passkey-delete-btn--confirm {2334  color: var(--peach-breach);2335  border-color: rgba(229, 85, 85, 0.4);2336}23372338.peach-passkey-activity {2339  flex-direction: column;2340  align-items: flex-start;2341  gap: 4px;2342}23432344.peach-passkey-meta {2345  font-size: 0.6875rem;2346  color: var(--peach-t2);2347}23482349.peach-passkey-actions {2350  position: relative;2351  z-index: 1;2352  margin-top: 14px;2353  display: flex;2354  flex-direction: column;2355  gap: 8px;2356}23572358.peach-passkey-approval {2359  display: flex;2360  flex-direction: column;2361  align-items: center;2362  padding: 16px 20px 14px;2363  gap: 8px;2364  text-align: center;2365}23662367.peach-passkey-approval-icon {2368  width: 36px;2369  height: 36px;2370  border-radius: 10px;2371  background: var(--peach-s2);2372  border: 1px solid var(--peach-t3);2373  display: flex;2374  align-items: center;2375  justify-content: center;2376  flex-shrink: 0;2377  color: var(--peach-accent);2378}23792380.peach-passkey-approval-icon img,2381.peach-passkey-approval-icon svg {2382  width: 22px;2383  height: 22px;2384  border-radius: 5px;2385}23862387.peach-passkey-approval-rp {2388  font-family: var(--font-ui);2389  font-size: 0.75rem;2390  color: var(--peach-t2);2391  letter-spacing: 0.03em;2392}23932394.peach-passkey-approval-action {2395  font-family: var(--font-display);2396  font-style: italic;2397  font-weight: 300;2398  font-size: 18px;2399  color: var(--peach-t0);2400  line-height: 1.1;2401  margin: 1px 0;2402}24032404.peach-passkey-approval-user {2405  font-family: var(--font-mono);2406  font-size: 0.6875rem;2407  color: var(--peach-t1);2408  background: var(--peach-s2);2409  border: 1px solid var(--peach-t3);2410  border-radius: 4px;2411  padding: 3px 8px;2412}24132414.peach-passkey-approval-notice {2415  font-size: 0.625rem;2416  color: var(--peach-t2);2417  line-height: 1.5;2418  max-width: 220px;2419}24202421.peach-passkey-approval-actions {2422  display: flex;2423  gap: 8px;2424  width: 100%;2425  margin-top: 6px;2426}24272428.peach-passkey-approval-actions .peach-btn {2429  flex: 1;2430}24312432/* ── Inline generator drawer ── */2433.peach-generator-drawer {2434  display: grid;2435  grid-template-rows: 0fr;2436  transition: grid-template-rows 320ms var(--peach-curve-arrival);2437  overflow: hidden;2438}2439.peach-generator-drawer.is-open {2440  grid-template-rows: 1fr;2441}2442.peach-generator-drawer-inner {2443  min-height: 0;2444  overflow: hidden;2445}2446.peach-generator-drawer-content {2447  border-top: 1px solid var(--peach-t3);2448  padding: 8px 0 4px;2449  display: flex;2450  flex-direction: column;2451  gap: 8px;2452}24532454/* ── Compact generator (inside entry edit) ── */2455.peach-generator-drawer-content--compact {2456  border-top: 1px solid var(--peach-t3);2457  padding: 8px 0 2px;2458  gap: 7px;2459}2460.peach-pwgen-compact-display-row {2461  display: flex;2462  align-items: center;2463  gap: 6px;2464}2465.peach-pwgen-compact-output {2466  flex: 1;2467  min-width: 0;2468  font-family: "IBM Plex Mono", monospace;2469  font-size: 0.6875rem;2470  font-weight: 400;2471  letter-spacing: 0.04em;2472  color: var(--peach-t0);2473  background: rgba(240, 232, 216, 0.04);2474  border: 1px solid var(--peach-t3);2475  border-radius: 5px;2476  padding: 5px 8px;2477  line-height: 1.5;2478  outline: none;2479  transition: border-color 120ms ease;2480}24812482.peach-pwgen-compact-output:focus {2483  border-color: var(--peach-t1);2484}2485.peach-pwgen-compact-controls {2486  display: flex;2487  align-items: center;2488  gap: 6px;2489}2490.peach-pwgen-compact-slider {2491  flex: 1;2492  min-width: 0;2493  height: 2px !important;2494}2495.peach-pwgen-compact-controls .peach-pwgen-len-num {2496  flex-shrink: 0;2497  min-width: 18px;2498  text-align: right;2499}2500.peach-pwgen-compact-pills {2501  display: flex;2502  gap: 3px;2503  flex-shrink: 0;2504}2505.peach-pwgen-compact-pills .peach-pwgen-pill {2506  padding: 2px 7px;2507  font-size: 0.5rem;2508}2509.peach-pwgen-compact-use {2510  flex-shrink: 0;2511  font-size: 0.625rem !important;2512  padding: 3px 9px !important;2513  min-height: 22px !important;2514  border-radius: 5px !important;2515}25162517/* ── Password edit row (input + eye toggle side-by-side) ── */2518.peach-password-edit-row {2519  display: flex;2520  align-items: center;2521  gap: 6px;2522}2523.peach-password-edit-row .peach-inline-input {2524  flex: 1;2525  min-width: 0;2526}25272528/* ── Generate toggle link ── */2529.peach-generate-toggle-link {2530  display: inline-flex;2531  align-items: center;2532  gap: 5px;2533  background: none;2534  border: none;2535  padding: 0;2536  cursor: pointer;2537  font-family: "IBM Plex Mono", monospace;2538  font-size: 0.625rem;2539  color: var(--peach-t2);2540  letter-spacing: 0.04em;2541  transition: color 120ms ease;2542  align-self: flex-start;2543}2544.peach-generate-toggle-link:hover {2545  color: var(--peach-accent);2546}25472548/* Holds the generate + history toggle links on one row under the editor. */2549.peach-password-edit-links {2550  display: flex;2551  align-items: center;2552  gap: 14px;2553  flex-wrap: wrap;2554}25552556/* ── Past-password history list ── */2557.peach-password-history {2558  display: grid;2559  gap: 4px;2560  margin-top: 2px;2561  max-height: 168px;2562  overflow-y: auto;2563  scrollbar-width: thin;2564}2565.peach-history-row {2566  display: flex;2567  align-items: center;2568  justify-content: space-between;2569  gap: 8px;2570  padding: 5px 7px;2571  border-radius: 7px;2572  background: color-mix(in srgb, var(--peach-accent) 5%, transparent);2573  border: 1px solid color-mix(in srgb, var(--peach-accent) 9%, transparent);2574}2575.peach-history-main {2576  display: flex;2577  flex-direction: column;2578  gap: 1px;2579  min-width: 0;2580  flex: 1;2581}2582.peach-history-pw {2583  font-family: "IBM Plex Mono", monospace;2584  font-size: 0.6875rem;2585  color: var(--peach-t1);2586  white-space: nowrap;2587  overflow: hidden;2588  text-overflow: ellipsis;2589}2590.peach-history-pw .peach-password-mask {2591  letter-spacing: 0.08em;2592  color: var(--peach-t2);2593}2594.peach-history-age {2595  font-family: "IBM Plex Mono", monospace;2596  font-size: 0.5625rem;2597  color: var(--peach-t3, var(--peach-t2));2598  letter-spacing: 0.03em;2599}2600.peach-history-actions {2601  display: flex;2602  align-items: center;2603  gap: 2px;2604  flex-shrink: 0;2605}2606.peach-history-use {2607  font-family: "IBM Plex Mono", monospace;2608  font-size: 0.5625rem;2609  letter-spacing: 0.05em;2610  padding: 3px 7px;2611}2612.peach-history-empty {2613  font-family: "IBM Plex Mono", monospace;2614  font-size: 0.625rem;2615  line-height: 1.45;2616  color: var(--peach-t2);2617  padding: 6px 8px;2618  border-radius: 7px;2619  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);2620  border: 1px solid color-mix(in srgb, var(--peach-accent) 8%, transparent);2621}26222623/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2624.peach-entry-body {2625  flex: 1;2626  overflow-y: auto;2627  overflow-x: hidden;2628  scrollbar-width: none;2629  -ms-overflow-style: none;2630  overscroll-behavior: contain;2631  display: grid;2632  gap: 10px;2633  align-content: start;2634  padding: 10px 20px 14px;2635  min-width: 0;2636  min-height: 0;2637}2638.peach-entry-body::-webkit-scrollbar { display: none; }26392640/* Type-toggle pills + inline note toolbar */2641.peach-new-type-row {2642  display: flex;2643  align-items: center;2644  gap: 6px;2645  margin-bottom: 2px;2646}2647.peach-new-type-btn {2648  background: transparent;2649  border: 1px solid var(--peach-t3);2650  border-radius: 12px;2651  padding: 3px 10px;2652  font-family: "IBM Plex Mono", monospace;2653  font-size: 0.5625rem;2654  letter-spacing: 0.12em;2655  text-transform: uppercase;2656  color: var(--peach-t2);2657  cursor: pointer;2658  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2659}2660.peach-new-type-btn.is-active {2661  color: var(--peach-t0);2662  border-color: var(--peach-accent);2663  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2664}2665.peach-new-type-btn:not(.is-active):hover {2666  color: var(--peach-t1);2667  border-color: var(--peach-t2);2668}26692670/* Editable title */2671.peach-new-title-wrap { margin: 0 0 2px; }2672.peach-new-title-input {2673  background: transparent;2674  border: none;2675  outline: none;2676  width: 100%;2677  color: var(--peach-t0);2678  font-family: var(--font-display);2679  font-style: italic;2680  font-weight: 400;2681  font-size: 40px;2682  line-height: 0.95;2683  caret-color: var(--peach-accent);2684}2685.peach-new-title-input::placeholder { color: var(--peach-t2); }26862687/* Editable domain field */2688.peach-domain-edit-row {2689  display: flex;2690  align-items: center;2691  gap: 6px;2692}26932694.peach-domain-edit-row .peach-domain-value--edit {2695  flex: 1;2696  width: 0;2697}26982699.peach-domain-url-btn {2700  flex-shrink: 0;2701  background: transparent;2702  border: none;2703  cursor: pointer;2704  color: var(--peach-t3);2705  padding: 2px 3px;2706  display: flex;2707  align-items: center;2708  line-height: 0;2709  border-radius: 3px;2710  transition: color 120ms ease;2711}27122713.peach-domain-url-btn:hover {2714  color: var(--peach-accent);2715}27162717.peach-domain-value--edit {2718  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2719  font-size: 0.625rem;2720  font-style: italic;2721  letter-spacing: 0.12em;2722  color: var(--peach-t1);2723  background: transparent;2724  border: none;2725  border-bottom: 1px solid var(--peach-t3);2726  outline: none;2727  width: 100%;2728  padding: 2px 0;2729  caret-color: var(--peach-accent);2730  transition: border-color 140ms ease, color 140ms ease;2731}2732.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2733.peach-domain-value--edit:focus {2734  border-bottom-color: rgba(240, 232, 216, 0.28);2735  color: var(--peach-t0);2736}27372738/* Editable field values (username, password, totp) */2739.peach-field-value--edit {2740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2741  font-size: 0.8125rem;2742  color: var(--peach-t0);2743  background: transparent;2744  border: none;2745  border-bottom: 1px solid var(--peach-t3);2746  outline: none;2747  flex: 1;2748  min-width: 0;2749  padding: 3px 0;2750  caret-color: var(--peach-accent);2751  transition: border-color 140ms ease, color 140ms ease;2752}2753.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2754.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2755.peach-field-value--edit:focus {2756  border-bottom-color: rgba(240, 232, 216, 0.28);2757  color: var(--peach-t0);2758}27592760/* "+ add optional field" links */2761.peach-entry-add-links {2762  display: flex;2763  gap: 12px;2764  flex-wrap: wrap;2765  margin-top: -2px;2766}2767.peach-add-field-link {2768  background: transparent;2769  border: none;2770  padding: 0;2771  cursor: pointer;2772  font-family: "IBM Plex Mono", monospace;2773  font-size: 0.5625rem;2774  letter-spacing: 0.1em;2775  text-transform: uppercase;2776  color: var(--peach-t2);2777  transition: color 140ms ease;2778}2779.peach-add-field-link:hover { color: var(--peach-accent); }27802781/* ── New entry form (legacy classes) ────────────────────────────────── */2782.peach-new-body {2783  flex: 1;2784  overflow-y: auto;2785  padding: 10px 20px 14px;2786}2787.peach-new-name-input {2788  background: transparent;2789  border: none;2790  outline: none;2791  width: 100%;2792  color: var(--peach-t0);2793  font-family: var(--font-display);2794  font-style: italic;2795  font-weight: 400;2796  font-size: 40px;2797  line-height: 0.95;2798  caret-color: var(--peach-accent);2799}2800.peach-new-name-input::placeholder { color: var(--peach-t2); }2801.peach-new-field-input {2802  background: transparent;2803  border: none;2804  outline: none;2805  flex: 1;2806  min-width: 0;2807  caret-color: var(--peach-accent);2808}2809.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }28102811/* ── Canary card ── */2812.peach-canary-card {2813  border: 1px solid rgba(217, 160, 48, 0.2);2814  background: rgba(217, 160, 48, 0.03);2815  border-radius: 8px;2816  padding: 12px;2817}28182819.peach-canary-settings-header {2820  display: flex;2821  align-items: center;2822  justify-content: space-between;2823  cursor: pointer;2824  user-select: none;2825}28262827.peach-canary-card .peach-label {2828  color: rgba(217, 160, 48, 0.85);2829}28302831.peach-canary-card .peach-new-field-input {2832  border-color: rgba(217, 160, 48, 0.25);2833}28342835.peach-canary-card .peach-new-field-input:focus {2836  border-color: rgba(217, 160, 48, 0.5);2837}28382839.peach-canary-body {2840  margin-top: 12px;2841  display: flex;2842  flex-direction: column;2843  gap: 10px;2844}28452846.peach-canary-explainer {2847  display: flex;2848  gap: 10px;2849  padding: 10px 12px;2850  border-radius: 10px;2851  background: rgba(217, 160, 48, 0.06);2852  border: 1px solid rgba(217, 160, 48, 0.22);2853  margin-bottom: 4px;2854}28552856.peach-canary-explainer-icon {2857  font-size: 1rem;2858  flex-shrink: 0;2859  line-height: 1.2;2860}28612862.peach-canary-explainer-title {2863  font-family: var(--font-ui);2864  font-size: 0.6875rem;2865  font-weight: 500;2866  color: rgba(217, 160, 48, 0.9);2867  margin: 0 0 3px;2868}28692870.peach-canary-explainer-copy {2871  font-family: var(--font-ui);2872  font-size: 0.625rem;2873  color: var(--peach-t2);2874  line-height: 1.55;2875  margin: 0;2876}28772878.peach-canary-hint {2879  font-size: 0.625rem;2880  color: var(--peach-t2);2881  font-family: Inter, system-ui, sans-serif;2882  line-height: 1.5;2883  margin-top: 4px;2884}28852886.peach-canary-actions-row {2887  display: flex;2888  align-items: center;2889  gap: 8px;2890}28912892.peach-canary-test-btn {2893  border-color: rgba(217, 160, 48, 0.3);2894  color: rgba(217, 160, 48, 0.85);2895}28962897.peach-canary-test-result {2898  font-size: 0.625rem;2899  font-family: Inter, system-ui, sans-serif;2900}29012902.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2903.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }29042905.peach-canary-badge {2906  display: flex;2907  position: relative;2908  z-index: 1;2909  align-items: center;2910  gap: 5px;2911  padding: 4px 10px;2912  background: rgba(217, 160, 48, 0.12);2913  border: 1px solid rgba(217, 160, 48, 0.35);2914  border-radius: 6px;2915  margin-bottom: 6px;2916  width: fit-content;2917}29182919.peach-canary-badge-label {2920  font-size: 0.625rem;2921  letter-spacing: 0.06em;2922  color: rgba(217, 160, 48, 0.9);2923  font-family: var(--font-ui);2924  text-transform: uppercase;2925}29262927.peach-canary-badge-icon {2928  font-size: 0.6875rem;2929}29302931.peach-canary-suppress-row {2932  display: flex;2933  align-items: center;2934  gap: 8px;2935  padding: 6px 10px;2936  background: rgba(217, 160, 48, 0.08);2937  border-radius: 6px;2938  margin-bottom: 8px;2939}29402941.peach-canary-suppress-label {2942  font-size: 0.6875rem;2943  color: rgba(217, 160, 48, 0.85);2944  cursor: pointer;2945  font-family: var(--font-ui);2946  letter-spacing: 0.04em;2947}29482949.peach-regen-panel {2950  position: relative;2951  z-index: 1;2952  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2953  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2954  border-radius: 8px;2955  padding: 12px;2956  margin-bottom: 8px;2957}29582959.peach-regen-panel-header {2960  display: flex;2961  align-items: center;2962  justify-content: space-between;2963  margin-bottom: 10px;2964}29652966.peach-regen-panel-title {2967  font-size: 0.6875rem;2968  font-weight: 600;2969  letter-spacing: 0.06em;2970  text-transform: uppercase;2971  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2972}29732974.peach-regen-output {2975  background: rgba(0, 0, 0, 0.2);2976  border-radius: 6px;2977  padding: 10px;2978  margin-bottom: 10px;2979  font-family: var(--font-mono);2980  font-size: 0.8125rem;2981  word-break: break-all;2982  color: var(--peach-t1);2983}29842985.peach-regen-actions {2986  display: flex;2987  gap: 6px;2988}29892990.peach-regen-actions--spaced {2991  margin-bottom: 8px;2992}29932994.peach-regen-action-grow {2995  flex: 1;2996}29972998.peach-regen-copy-btn {2999  padding: 0 8px;3000}30013002.peach-regen-success {3003  position: relative;3004  z-index: 1;3005  background: rgba(40, 180, 80, 0.1);3006  border: 1px solid rgba(40, 180, 80, 0.3);3007  border-radius: 8px;3008  padding: 10px 12px;3009  margin-bottom: 8px;3010  display: flex;3011  align-items: center;3012  gap: 8px;3013  font-size: 0.6875rem;3014  color: rgba(40, 180, 80, 0.9);3015}30163017/* ── Note editor overlay ── */3018.peach-note-editor {3019  position: absolute;3020  inset: 0;3021  z-index: 200;3022  display: flex;3023  flex-direction: column;3024  background:3025    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),3026    var(--peach-bg);3027  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;3028}30293030.peach-note-editor-header {3031  display: flex;3032  align-items: center;3033  gap: 10px;3034  padding: 14px 16px 10px;3035  border-bottom: 1px solid var(--peach-t3);3036  flex-shrink: 0;3037}30383039.peach-note-editor-back {3040  background: transparent;3041  border: none;3042  cursor: pointer;3043  color: var(--peach-t2);3044  padding: 4px 6px;3045  border-radius: 6px;3046  display: flex;3047  align-items: center;3048  transition: color 120ms ease, background 120ms ease;3049  flex-shrink: 0;3050}3051.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }30523053.peach-note-editor-label {3054  flex: 1;3055  font-family: var(--font-display);3056  font-style: italic;3057  font-size: 0.9375rem;3058  color: var(--peach-t1);3059  letter-spacing: 0.02em;3060}30613062.peach-note-editor-save-btn {3063  background: transparent;3064  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);3065  border-radius: 8px;3066  color: var(--peach-accent);3067  font-family: "IBM Plex Mono", monospace;3068  font-size: 0.625rem;3069  letter-spacing: 0.06em;3070  text-transform: uppercase;3071  padding: 3px 10px;3072  cursor: pointer;3073  transition: background 120ms ease, border-color 120ms ease;3074}3075.peach-note-editor-save-btn:hover:not(:disabled) {3076  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3077  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3078}3079.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }30803081.peach-note-toolbar {3082  display: flex;3083  align-items: center;3084  gap: 3px;3085  padding: 6px 14px 5px;3086  border-bottom: 1px solid var(--peach-t3);3087  flex-shrink: 0;3088}30893090.peach-note-tool-btn {3091  background: transparent;3092  border: 1px solid transparent;3093  border-radius: 5px;3094  color: var(--peach-t2);3095  font-family: "IBM Plex Mono", monospace;3096  font-size: 0.625rem;3097  letter-spacing: 0.04em;3098  padding: 2px 8px;3099  cursor: pointer;3100  line-height: 1.6;3101  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;3102}3103.peach-note-tool-btn:hover {3104  background: var(--peach-t4);3105  color: var(--peach-t0);3106  border-color: var(--peach-t3);3107}31083109.peach-note-tool-icon {3110  padding: 3px 7px;3111  display: inline-flex;3112  align-items: center;3113  justify-content: center;3114}31153116.peach-note-tool-divider {3117  width: 1px;3118  height: 14px;3119  background: var(--peach-t3);3120  margin: 0 4px;3121  flex-shrink: 0;3122}31233124.peach-note-editor-body {3125  flex: 1;3126  overflow-y: auto;3127  padding: 16px 20px 20px;3128  outline: none;3129  font-family: var(--font-display);3130  font-size: 1rem;3131  line-height: 1.75;3132  color: var(--peach-t0);3133  scrollbar-width: none;3134  word-break: break-word;3135}3136.peach-note-editor-body:empty::before {3137  content: "write your note…";3138  color: var(--peach-t3);3139  font-style: italic;3140  pointer-events: none;3141}31423143/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */3144.peach-note-editor-inline {3145  display: flex;3146  flex-direction: column;3147  flex: 1;3148  min-height: 0;3149}3150.peach-note-editor-body--inline {3151  flex: 1;3152  min-height: 0;3153  font-size: 0.9375rem;3154  padding: 10px 20px 14px;3155}31563157/* Full-width toolbar row inside the body (Add.tsx note type).3158   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */3159.peach-note-toolbar-body {3160  display: flex;3161  align-items: center;3162  gap: 3px;3163  padding: 5px 20px 4px;3164  margin: 2px -20px 0;3165  border-bottom: 1px solid var(--peach-t3);3166  flex-shrink: 0;3167}31683169/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)3170   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn3171   and .peach-note-tool-divider button-level styles. */3172.peach-note-toolbar-inline {3173  display: flex;3174  align-items: center;3175  gap: 3px;3176  margin-left: auto;3177  padding-left: 10px;3178  border-left: 1px solid var(--peach-t3);3179  min-height: 22px;3180}31813182/* Entry.tsx toolbar row (no tabs, toolbar only) */3183.peach-entry-note-toolbar-row {3184  display: flex;3185  align-items: center;3186  margin: 4px 0 6px;3187  position: relative;3188  z-index: 1;3189}3190.peach-entry-note-toolbar-row .peach-note-toolbar-inline {3191  border-left: none;3192  padding-left: 0;3193  margin-left: 0;3194}31953196/* Note body — fills available vertical space in Add.tsx and Entry.tsx */3197.peach-note-body {3198  display: flex;3199  flex-direction: column;3200  flex: 1;3201  min-height: 0;3202  margin: 4px 0 0;3203}3204.peach-entry-body--new .peach-note-body {3205  margin: 8px -20px 0;3206}32073208/* Add.tsx body is a grid by default; swap to a flex column when a note is3209   active so the note body can stretch and pin the tags row to the bottom. */3210.peach-entry-body--new:has(.peach-note-body) {3211  display: flex;3212  flex-direction: column;3213}32143215/* Rich content element styles (editor + display) */3216.peach-note-editor-body h2,3217.peach-note-content h2 {3218  font-family: var(--font-display);3219  font-size: 20px;3220  font-weight: 600;3221  font-style: italic;3222  color: var(--peach-t0);3223  margin: 6px 0 2px;3224  line-height: 1.3;3225}3226.peach-note-editor-body ul,3227.peach-note-content ul {3228  padding-left: 18px;3229  margin: 3px 0;3230  list-style: disc;3231}3232.peach-note-editor-body ol,3233.peach-note-content ol {3234  padding-left: 18px;3235  margin: 3px 0;3236  list-style: decimal;3237}3238.peach-note-editor-body li,3239.peach-note-content li { margin: 2px 0; }3240.peach-note-editor-body hr,3241.peach-note-content hr {3242  border: none;3243  border-top: 1px solid var(--peach-t3);3244  margin: 10px 0;3245}32463247/* font size elements from execCommand */3248.peach-note-editor-body font[size="1"],3249.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }3250.peach-note-editor-body font[size="2"],3251.peach-note-content font[size="2"] { font-size: 0.8125rem; }3252.peach-note-editor-body font[size="3"],3253.peach-note-content font[size="3"] { font-size: 1rem; }3254.peach-note-editor-body font[size="4"],3255.peach-note-content font[size="4"] { font-size: 20px; }3256.peach-note-editor-body font[size="5"],3257.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }32583259/* bold / italic inside the editor and note display */3260.peach-note-editor-body b, .peach-note-editor-body strong,3261.peach-note-content b, .peach-note-content strong { font-weight: 700; }3262.peach-note-editor-body em, .peach-note-editor-body i,3263.peach-note-content em, .peach-note-content i { font-style: italic; }32643265/* note display — rendered HTML, no pre-wrap */3266.peach-note-content {3267  overflow: auto;3268  max-height: 340px;3269  word-break: break-word;3270}32713272/* ── Note textarea ── */3273.peach-note-textarea {3274  width: 100%;3275  min-height: 180px;3276  max-height: 280px;3277  resize: vertical;3278  background: var(--peach-t4);3279  border: 1px solid var(--peach-t3);3280  border-radius: 8px;3281  padding: 10px 12px;3282  font-family: "IBM Plex Mono", monospace;3283  font-size: 0.75rem;3284  line-height: 1.7;3285  color: var(--peach-t1);3286  outline: none;3287  transition: border-color 150ms ease;3288}32893290.peach-note-textarea:focus {3291  border-color: var(--peach-t2);3292}32933294.peach-note-char-count {3295  font-family: "IBM Plex Mono", monospace;3296  font-size: 0.5625rem;3297  color: var(--peach-t3);3298  text-align: right;3299  margin-top: 4px;3300  letter-spacing: 0.1em;3301}33023303/* ── Field input baseline ── */3304.peach-new-field-input {3305  width: 100%;3306  background: transparent;3307  border: none;3308  border-bottom: 1px solid var(--peach-t3);3309  padding: 4px 0;3310  color: var(--peach-t1);3311  font-family: "IBM Plex Mono", monospace;3312  font-size: 0.8125rem;3313  outline: none;3314  transition: border-color 150ms ease;3315}33163317.peach-new-field-input:focus {3318  border-bottom-color: var(--peach-t0);3319  color: var(--peach-t0);3320}33213322.peach-new-name-input {3323  width: 100%;3324  background: transparent;3325  border: none;3326  border-bottom: 1px solid var(--peach-t3);3327  padding: 6px 0;3328  font-family: var(--font-display);3329  font-style: italic;3330  font-size: 28px;3331  color: var(--peach-t0);3332  outline: none;3333  transition: border-color 150ms ease;3334}33353336.peach-new-name-input:focus {3337  border-bottom-color: var(--peach-t1);3338}33393340.peach-new-name-input::placeholder {3341  color: var(--peach-t2);3342  font-style: italic;3343}33443345.peach-new-field-input::placeholder {3346  color: var(--peach-t3);3347}33483349/* ── Demo entrance animation ── */3350#hd-shell {3351  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3352}3353@keyframes hd-shell-enter {3354  from { opacity: 0; transform: scale(0.96) translateY(16px); }3355  to   { opacity: 1; transform: scale(1) translateY(0); }3356}33573358/* ── Keyframes ── */3359@keyframes peach-char-enter {3360  from { opacity: 0; transform: translateY(0.22em); }3361  to   { opacity: 1; transform: translateY(0); }3362}3363@keyframes peach-content-enter {3364  from { opacity: 0.96; transform: translateY(4px); }3365  to   { opacity: 1; transform: translateY(0); }3366}3367@keyframes peach-content-exit {3368  from { opacity: 1; transform: translateY(0); }3369  to   { opacity: 0.92; transform: translateY(-3px); }3370}3371@keyframes peach-screen-enter {3372  from { opacity: 0; transform: translateY(14px); }3373  to   { opacity: 1; transform: translateY(0); }3374}3375@keyframes peach-shell-fade-in {3376  from { opacity: 0; }3377  to   { opacity: 1; }3378}3379@keyframes peach-veil-in {3380  from { opacity: 0; }3381  to   { opacity: 1; }3382}3383@keyframes peach-lock-settle {3384  0%   { transform: scale(0.9); }3385  65%  { transform: scale(1.08); }3386  100% { transform: scale(1); }3387}3388@keyframes peach-copy-confirm {3389  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3390  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); }3391}3392@keyframes peach-copy-retreat {3393  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); }3394  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3395}3396@keyframes peach-copy-flood {3397  from { opacity: 0; transform: scaleX(0.15); }3398  to   { opacity: 1; transform: scaleX(1); }3399}3400@keyframes peach-copy-icon-settle {3401  from  { transform: scale(0.84); }3402  70%   { transform: scale(1.08); }3403  to    { transform: scale(1); }3404}3405@keyframes peach-copy-sheen-retreat {3406  from { opacity: 1; transform: scaleX(1); }3407  to   { opacity: 0; transform: scaleX(0.15); }3408}3409@keyframes peach-copy-drain {3410  from { width: 100%; }3411  to   { width: 0; }3412}3413@keyframes peach-shake {3414  0%, 100% { transform: translateX(0); }3415  20%      { transform: translateX(-6px); }3416  40%      { transform: translateX(6px); }3417  60%      { transform: translateX(-4px); }3418  80%      { transform: translateX(4px); }3419}34203421@keyframes pip-pulse {3422  0% { transform: scale(1); }3423  40% { transform: scale(2.2); }3424  100% { transform: scale(1); }3425}342634273428/* ── Password generator ── */3429.peach-pwgen-body {3430  flex: 1; overflow-y: auto;3431  display: flex; flex-direction: column;3432}3433.peach-policy-badge {3434  display: flex; align-items: center;3435  padding: 6px 20px 0;3436  font-size: 0.625rem; font-family: Inter, sans-serif;3437  color: var(--peach-t2); letter-spacing: 0.04em;3438}3439.peach-pwgen-display {3440  padding: 14px 20px 12px;3441  border-bottom: 1px solid var(--peach-t3);3442  display: flex; align-items: flex-start; gap: 10px;3443}3444.peach-pwgen-display-row {3445  display: flex;3446  align-items: flex-start;3447  gap: 8px;3448  padding-bottom: 8px;3449  border-bottom: 1px solid var(--peach-t3);3450}3451.peach-pwgen-output {3452  flex: 1; min-width: 0; margin: 0;3453  font-family: "IBM Plex Mono", monospace;3454  font-size: 0.8125rem; color: var(--peach-t0);3455  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3456  white-space: normal;3457  padding: 10px 12px;3458  background: var(--peach-t4);3459  border-radius: 6px;3460  min-height: 36px;3461}3462.peach-pwgen-output-display {3463  flex: 1;3464  min-width: 0;3465  margin: 0;3466  font-family: var(--font-display);3467  font-style: italic;3468  font-weight: 300;3469  font-size: 32px;3470  line-height: 1.05;3471  color: var(--peach-t0);3472  word-break: break-all;3473  overflow-wrap: break-word;3474  white-space: normal;3475  letter-spacing: 0.02em;3476}3477.peach-pwgen-display-actions {3478  display: flex;3479  flex-direction: column;3480  gap: 4px;3481  flex-shrink: 0;3482  margin-top: 2px;3483}3484.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3485.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3486.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3487.peach-pwgen-len-num {3488  font-family: "IBM Plex Mono", monospace;3489  font-size: 0.75rem; color: var(--peach-accent);3490}3491.peach-pwgen-len-num--edit {3492  cursor: text;3493  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3494}3495.peach-pwgen-len-input {3496  font-family: "IBM Plex Mono", monospace;3497  font-size: 0.75rem;3498  color: var(--peach-accent);3499  background: transparent;3500  border: none;3501  border-bottom: 1px solid var(--peach-accent);3502  outline: none;3503  width: 32px;3504  text-align: right;3505  padding: 0;3506}3507.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3508.peach-pwgen-toggles { display: flex; flex-direction: column; }3509.peach-pwgen-charset-pills {3510  display: flex;3511  gap: 6px;3512  flex-wrap: wrap;3513}3514.peach-pwgen-pill {3515  padding: 4px 11px;3516  border-radius: 999px;3517  border: 1px solid var(--peach-t3);3518  background: transparent;3519  color: var(--peach-t2);3520  font-family: "IBM Plex Mono", monospace;3521  font-size: 0.5625rem;3522  letter-spacing: 0.08em;3523  cursor: pointer;3524  transition: all 150ms ease;3525}3526.peach-pwgen-pill.is-on {3527  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3528  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3529  color: var(--peach-accent);3530}3531.peach-pwgen-pill:not(.is-on):hover {3532  color: var(--peach-t1);3533  border-color: var(--peach-t2);3534}3535.peach-pwgen-use-btn {3536  width: 100%;3537  min-height: 34px;3538  border-radius: 8px;3539  margin-top: 2px;3540}3541.peach-generator-constraint-note {3542  font-family: 'IBM Plex Mono', monospace;3543  font-size: 10px;3544  color: var(--peach-t3);3545  letter-spacing: 0.04em;3546  margin: 0;3547  transition: opacity 200ms ease;3548}3549.peach-pwgen-toggle-row {3550  display: flex; align-items: center; justify-content: space-between;3551  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3552}3553.peach-pwgen-toggle-row:last-child { border-bottom: none; }3554.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }35553556/* Peach popup should not expose native scrollbars on internal panels. */3557.peach-settings-body,3558.peach-new-body,3559.peach-pwgen-body,3560.lock-screen,3561.peach-import-preview {3562  scrollbar-width: none;3563  -ms-overflow-style: none;3564  overscroll-behavior: contain;3565}3566.peach-settings-body::-webkit-scrollbar,3567.peach-new-body::-webkit-scrollbar,3568.peach-pwgen-body::-webkit-scrollbar,3569.lock-screen::-webkit-scrollbar,3570.peach-import-preview::-webkit-scrollbar {3571  width: 0;3572  height: 0;3573  display: none;3574}35753576.lock-screen {3577  height: 100%;3578  min-height: 100%;3579  overflow-y: auto;3580  padding: 18px 18px 16px;3581  gap: 14px;3582  grid-template-rows: auto auto auto 1fr auto;3583  align-content: stretch;3584  position: relative;3585  isolation: isolate;3586}3587.peach-screen.lock-screen--vault-stage {3588  display: flex;3589  flex-direction: column;3590  justify-content: flex-start;3591  gap: 18px;3592  padding: 20px 18px 18px;3593  overflow: hidden;3594}3595.peach-screen.lock-screen--vault-stage .peach-lock-panel {3596  margin-top: 0;3597}3598.lock-screen--onboarding {3599  display: flex;3600  flex-direction: column;3601  gap: 12px;3602  justify-content: flex-start;3603}36043605.lock-screen::before {3606  content: "";3607  position: absolute;3608  inset: 12px 18px auto auto;3609  width: 160px;3610  height: 160px;3611  border-radius: 999px;3612  background:3613    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%);3614  filter: blur(6px);3615  opacity: 0.7;3616  pointer-events: none;3617  z-index: 0;3618}36193620.peach-lock-rune-string {3621  flex: 1;3622  display: flex;3623  align-items: center;3624  justify-content: center;3625  gap: 6px;3626  font-family: PeachScript, monospace;3627  font-size: 0.8125rem;3628  letter-spacing: 0.05em;3629  pointer-events: none;3630  user-select: none;3631  position: relative;3632  z-index: 1;3633}36343635.peach-lock-rune-string span {3636  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3637  text-shadow:3638    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3639    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3640  transition: color 0.9s ease, text-shadow 0.9s ease;3641}36423643.peach-lock-rune-string span.is-glowing {3644  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3645  text-shadow:3646    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3647    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3648}36493650.lock-screen-header {3651  display: flex;3652  align-items: center;3653  justify-content: space-between;3654  position: relative;3655  z-index: 1;3656}36573658.lock-password-input.shake {3659  animation: peach-shake 300ms ease-in-out;3660}36613662.peach-hint-error {3663  color: rgba(220, 80, 60, 0.92);3664}36653666.peach-onboarding-headline {3667  margin: 0;3668  font-family: var(--font-display);3669  font-size: 35px;3670  line-height: 0.88;3671  font-style: italic;3672  font-weight: 400;3673  max-width: 252px;3674}36753676.peach-lock-copy {3677  display: grid;3678  gap: 8px;3679  position: relative;3680  z-index: 1;3681}36823683.peach-lock-copy--onboarding {3684  gap: 10px;3685}36863687.peach-lock-hero {3688  position: relative;3689  z-index: 1;3690  display: grid;3691  gap: 8px;3692  min-height: 0;3693  padding: 4px 2px 0;3694  border: none;3695  border-radius: 0;3696  background: transparent;3697  box-shadow: none;3698}3699.peach-lock-hero-art {3700  position: absolute;3701  right: -8px;3702  top: -6px;3703  width: 120px;3704  height: 120px;3705  display: flex;3706  align-items: center;3707  justify-content: center;3708  pointer-events: none;3709  opacity: 0.12;3710  filter: saturate(0.9);3711}3712.peach-lock-hero-mark {3713  width: 100%;3714  height: 100%;3715}3716/* Peach body stays brand-peach across every accent — we don't want a3717   green or blue peach when sage/sky is selected. Leaf + vein keep the3718   sage tint because a real peach has a sage leaf. In the new brand-kit3719   mark the leaf is path 1 and the vein stroke is path 2; the body and3720   back-lobe (paths 3 + 4) must stay untouched. */3721.peach-lock-hero-mark path:nth-child(1) {3722  fill: rgba(123, 144, 96, 0.88);3723}3724.peach-lock-hero-mark path:nth-child(2) {3725  stroke: rgba(94, 122, 66, 0.95);3726}3727.peach-lock-hero > *:not(.peach-lock-hero-art) {3728  position: relative;3729  z-index: 1;3730}37313732.peach-lock-eyebrow {3733  display: inline-flex;3734  align-items: center;3735  width: fit-content;3736  padding: 4px 9px;3737  border-radius: 999px;3738  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3739  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3740  color: var(--peach-t0);3741  font-family: "IBM Plex Mono", monospace;3742  font-size: 0.5rem;3743  letter-spacing: 0.18em;3744  text-transform: uppercase;3745}37463747.peach-lock-label-row {3748  display: flex;3749  align-items: center;3750  justify-content: space-between;3751  margin-bottom: 0;3752}37533754.peach-lock-reveal-btn {3755  display: inline-flex;3756  align-items: center;3757  gap: 4px;3758  background: none;3759  border: none;3760  cursor: pointer;3761  font-family: "IBM Plex Mono", monospace;3762  font-size: 0.5625rem;3763  letter-spacing: 0.06em;3764  color: var(--peach-t2);3765  padding: 2px 0;3766  transition: color 150ms ease;3767}37683769.peach-lock-reveal-btn:hover {3770  color: var(--peach-t1);3771}37723773.peach-lock-warning {3774  color: rgba(220, 80, 60, 0.85) !important;3775  line-height: 1.5;3776}37773778.peach-onboarding-cards {3779  display: grid;3780  gap: 8px;3781  position: relative;3782  z-index: 1;3783}37843785.peach-lock-panel {3786  position: relative;3787  z-index: 1;3788  display: grid;3789  gap: 9px;3790  padding: 14px 16px 15px;3791  border-radius: 18px;3792  border: 1px solid var(--peach-t3);3793  background:3794    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3795  box-shadow:3796    inset 0 1px 0 rgba(240, 232, 216, 0.04),3797    0 12px 28px rgba(0, 0, 0, 0.12);3798}37993800/* Glass surface — lock panel and settings groups */3801.peach-glass {3802  background: rgba(26, 20, 16, 0.65);3803  border: 1px solid rgba(255, 255, 255, 0.08);3804  border-radius: 12px;3805  backdrop-filter: blur(12px) saturate(1.4);3806  -webkit-backdrop-filter: blur(12px) saturate(1.4);3807}38083809@supports not (backdrop-filter: blur(1px)) {3810  .peach-glass {3811    background: rgba(26, 20, 16, 0.92);3812    border: 1px solid rgba(255, 255, 255, 0.10);3813    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3814  }3815}38163817.light .peach-glass,3818[data-theme="light"] .peach-glass {3819  background: rgba(240, 233, 223, 0.72);3820  border: 1px solid rgba(26, 18, 8, 0.08);3821  backdrop-filter: blur(12px) saturate(1.2);3822  -webkit-backdrop-filter: blur(12px) saturate(1.2);3823}38243825@supports not (backdrop-filter: blur(1px)) {3826  .light .peach-glass,3827  [data-theme="light"] .peach-glass {3828    background: rgba(240, 233, 223, 0.97);3829    border: 1px solid rgba(26, 18, 8, 0.10);3830  }3831}38323833/* Lock panel keeps its own border-radius over the generic glass token */3834.peach-lock-panel.peach-glass {3835  border-radius: 18px;3836  background: rgba(26, 20, 16, 0.65);3837  border: 1px solid rgba(255, 255, 255, 0.08);3838  box-shadow:3839    inset 0 1px 0 rgba(255, 255, 255, 0.05),3840    0 12px 28px rgba(0, 0, 0, 0.3);3841}38423843.light .peach-lock-panel.peach-glass,3844[data-theme="light"] .peach-lock-panel.peach-glass {3845  background: rgba(240, 233, 223, 0.82);3846  border: 1px solid rgba(26, 18, 8, 0.08);3847  box-shadow:3848    inset 0 1px 0 rgba(255, 255, 255, 0.4),3849    0 8px 24px rgba(80, 56, 32, 0.15);3850}38513852@supports not (backdrop-filter: blur(1px)) {3853  .peach-lock-panel.peach-glass {3854    background: rgba(26, 20, 16, 0.92);3855    box-shadow:3856      inset 0 1px 0 rgba(255, 255, 255, 0.05),3857      0 12px 28px rgba(0, 0, 0, 0.4);3858  }3859  .light .peach-lock-panel.peach-glass,3860  [data-theme="light"] .peach-lock-panel.peach-glass {3861    background: rgba(240, 233, 223, 0.98);3862  }3863}38643865.peach-lock-panel--secondary {3866  gap: 12px;3867}38683869.peach-lock-panel-header {3870  display: flex;3871  align-items: baseline;3872  justify-content: space-between;3873  gap: 12px;3874}38753876.peach-lock-option-grid {3877  display: grid;3878  gap: 10px;3879}38803881.peach-lock-option {3882  width: 100%;3883  display: grid;3884  gap: 6px;3885  padding: 14px 15px;3886  border-radius: 16px;3887  border: 1px solid rgba(240, 232, 216, 0.08);3888  background: rgba(240, 232, 216, 0.02);3889  color: var(--peach-t0);3890  text-align: left;3891  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3892}38933894.peach-lock-option:hover {3895  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3896  background: rgba(240, 232, 216, 0.04);3897  transform: translateY(-1px);3898}38993900.peach-lock-option-title {3901  font-size: 0.75rem;3902  color: var(--peach-t0);3903}39043905.peach-lock-option-copy {3906  font-size: 0.6875rem;3907  line-height: 1.55;3908  color: var(--peach-t1);3909}39103911.peach-onboarding-stack {3912  margin-top: 2px;3913}3914.peach-lock-panel-footer {3915  display: grid;3916  gap: 6px;3917  margin-top: 2px;3918  padding-top: 10px;3919  border-top: 1px solid rgba(240, 232, 216, 0.06);3920}39213922/* ── Restore tab view ─────────────────────────────────────────────────────3923   Tab-based restore screen replacing the old three-card picker. */39243925.peach-restore-tabview {3926  overflow: hidden;3927}39283929.peach-restore-tabcard {3930  flex: 1;3931  display: flex;3932  flex-direction: column;3933  gap: 0;3934  padding: 0;3935  overflow: hidden;3936  cursor: default;3937  user-select: none;3938  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3939}39403941/* ── Tab selector ─────────────────────────────────────────────────────── */39423943.peach-restore-tabs {3944  display: flex;3945  justify-content: space-around;3946  padding: 14px 10px 10px;3947  border-bottom: 1px solid var(--peach-t3);3948  gap: 2px;3949  overflow: hidden;3950  scrollbar-width: none;3951}3952.peach-restore-tabs::-webkit-scrollbar { display: none; }39533954.peach-restore-tab {3955  background: none;3956  border: none;3957  cursor: pointer;3958  padding: 3px 2px;3959  font-family: 'Cormorant Garamond', Georgia, serif;3960  font-style: italic;3961  font-size: 11px;3962  color: var(--peach-t2);3963  transition: color 150ms ease, text-shadow 150ms ease;3964  flex: 1;3965  min-width: 0;3966  text-align: center;3967  white-space: nowrap;3968  overflow: hidden;3969  text-overflow: ellipsis;3970}3971.peach-restore-tab:hover {3972  color: var(--peach-accent);3973  text-shadow:3974    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3975    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3976}3977.peach-restore-tab.is-active {3978  color: var(--peach-accent);3979  text-shadow:3980    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3981    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3982}39833984/* ── Content area ─────────────────────────────────────────────────────── */39853986.peach-restore-content {3987  padding: 16px 16px 14px;3988  display: flex;3989  flex-direction: column;3990  gap: 8px;3991  overflow: hidden;3992  scrollbar-width: none;3993  flex: 1;3994}3995.peach-restore-content::-webkit-scrollbar { display: none; }3996.peach-restore-content > * {3997  overflow: hidden;3998  scrollbar-width: none;3999}4000.peach-restore-content > *::-webkit-scrollbar { display: none; }40014002/* ── Shared tab inner layout ──────────────────────────────────────────── */40034004.peach-rt-symbols,4005.peach-rt-csv,4006.peach-rt-phone,4007.peach-restore-codex {4008  display: flex;4009  flex-direction: column;4010  gap: 8px;4011  overflow: hidden;4012}40134014.peach-restore-codex {4015  min-height: 0;4016  justify-content: center;4017}40184019.peach-restore-codex-title {4020  margin: 0;4021  font-family: var(--font-display);4022  font-size: 1rem;4023  font-style: italic;4024  color: var(--peach-t0);4025}40264027.peach-restore-codex-copy {4028  margin: 0;4029  font-size: 0.75rem;4030  line-height: 1.5;4031  color: var(--peach-t1);4032}40334034.peach-restore-codex-button {4035  width: 100%;4036  justify-content: center;4037}40384039.peach-rt-submit {4040  width: 100%;4041}40424043.peach-rt-error {4044  margin: 0;4045  font-size: 0.6875rem;4046  color: var(--peach-breach);4047  line-height: 1.4;4048}40494050/* ── PeachScript tab ──────────────────────────────────────────────────── */40514052.peach-restore-symbols-textarea {4053  font-family: 'PeachScript', monospace;4054  font-size: 13px;4055  line-height: 1.9;4056  letter-spacing: 0.1em;4057  word-break: break-all;4058  resize: none;4059  width: 100%;4060  min-height: 56px;4061  max-height: 72px;4062  overflow: hidden;4063  scrollbar-width: none;4064  -ms-overflow-style: none;4065  box-sizing: border-box;4066  padding: 6px 8px;4067  border-radius: 8px;4068  border: 1px solid var(--peach-t3);4069  background: rgba(240, 232, 216, 0.03);4070  color: var(--peach-t0);4071}4072.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }4073.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40744075.peach-restore-symbols-pass {4076  width: 100%;4077  box-sizing: border-box;4078  padding: 7px 10px;4079  border-radius: 8px;4080  border: 1px solid var(--peach-t3);4081  background: rgba(240, 232, 216, 0.03);4082  color: var(--peach-t0);4083  font-size: 0.8125rem;4084}4085.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }4086.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40874088.peach-rt-divider {4089  text-align: center;4090  font-size: 0.6875rem;4091  color: var(--peach-t2);4092  font-style: italic;4093}40944095.peach-rt-file-label {4096  width: 100%;4097  justify-content: center;4098}40994100.peach-rt-anim-canvas {4101  width: 100%;4102  height: 180px;4103  border-radius: 10px;4104  overflow: hidden;4105  display: block;4106}41074108/* ── CSV tab ──────────────────────────────────────────────────────────── */41094110.peach-rt-csv-sources {4111  margin: 0;4112  font-size: 0.6875rem;4113  color: var(--peach-t2);4114  line-height: 1.5;4115  text-align: center;4116}41174118.peach-rt-csv-warning {4119  margin: 0;4120  font-family: "IBM Plex Mono", monospace;4121  font-size: 0.5625rem;4122  letter-spacing: 0.12em;4123  color: var(--peach-breach);4124  text-align: center;4125}41264127/* ── From Phone tab ───────────────────────────────────────────────────── */41284129.peach-rt-phone-code {4130  margin: 0;4131  text-align: center;4132  font-family: "IBM Plex Mono", monospace;4133  font-size: 22px;4134  letter-spacing: 0.18em;4135  color: var(--peach-t0);4136}41374138.peach-rt-phone-qr {4139  display: block;4140  width: 96px;4141  height: 96px;4142  margin: 0 auto;4143  border-radius: 6px;4144  image-rendering: pixelated;4145  overflow: hidden;4146}41474148.peach-rt-phone-hint {4149  margin: 0;4150  font-size: 0.6875rem;4151  color: var(--peach-t2);4152  line-height: 1.55;4153  text-align: center;4154}41554156/* ── Intro popup ──────────────────────────────────────────────────────── */41574158.peach-restore-intro-overlay {4159  position: absolute;4160  inset: 0;4161  z-index: 100;4162  display: flex;4163  align-items: center;4164  justify-content: center;4165  padding: 20px;4166  background: rgba(12, 10, 6, 0.7);4167  backdrop-filter: blur(4px);4168  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4169}41704171.peach-restore-intro-card {4172  width: 100%;4173  display: flex;4174  flex-direction: column;4175  gap: 12px;4176  padding: 22px 20px 20px;4177  border-radius: 16px;4178  border: 1px solid var(--peach-t3);4179  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4180  backdrop-filter: blur(4px);4181  -webkit-backdrop-filter: blur(4px);4182  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4183}41844185.peach-restore-intro-headline {4186  margin: 0;4187  font-family: var(--font-display);4188  font-style: italic;4189  font-size: 20px;4190  font-weight: 400;4191  color: var(--peach-t0);4192}41934194.peach-restore-intro-body {4195  display: flex;4196  flex-direction: column;4197  gap: 8px;4198}4199.peach-restore-intro-body p {4200  margin: 0;4201  font-size: 0.75rem;4202  color: var(--peach-t1);4203  line-height: 1.5;4204}42054206.peach-restore-intro-btn {4207  width: 100%;4208  margin-top: 4px;4209}42104211/* Snapshot restore panel */4212.peach-snapshot-panel {4213  gap: 10px;4214  overflow-y: auto;4215  max-height: 340px;4216}4217.peach-snapshot-list {4218  display: flex;4219  flex-direction: column;4220  gap: 4px;4221}4222.peach-snapshot-row {4223  display: flex;4224  align-items: center;4225  justify-content: space-between;4226  width: 100%;4227  padding: 8px 10px;4228  border-radius: 8px;4229  border: 1px solid rgba(240, 232, 216, 0.07);4230  background: transparent;4231  cursor: pointer;4232  transition: border-color 120ms, background 120ms;4233  text-align: left;4234  gap: 8px;4235}4236.peach-snapshot-row:hover {4237  border-color: rgba(240, 232, 216, 0.14);4238  background: rgba(240, 232, 216, 0.03);4239}4240.peach-snapshot-row.is-selected {4241  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4242  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4243}4244.peach-snapshot-time {4245  font-size: 11.5px;4246  color: var(--peach-t0);4247  flex: 1;4248}4249.peach-snapshot-count {4250  font-family: "IBM Plex Mono", monospace;4251  font-size: 0.625rem;4252  color: var(--peach-t2);4253  flex-shrink: 0;4254}4255.peach-snapshot-confirm {4256  display: flex;4257  flex-direction: column;4258  gap: 8px;4259  padding-top: 10px;4260  border-top: 1px solid rgba(240, 232, 216, 0.06);4261}4262.peach-snapshot-warning {4263  display: flex;4264  align-items: flex-start;4265  gap: 6px;4266  font-size: 10.5px;4267  color: rgba(220, 80, 60, 0.85);4268  line-height: 1.55;4269}4270.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4271.peach-snapshot-confirm-row {4272  display: flex;4273  gap: 6px;4274  align-items: center;4275}4276.peach-snapshot-restore-btn {4277  width: 100%;4278}4279.peach-lock-hero--unlock .peach-lock-hero-art {4280  width: 112px;4281  height: 112px;4282  right: 0;4283  top: 2px;4284  opacity: 0.1;4285}42864287.peach-card {4288  border: 1px solid var(--peach-t3);4289  border-radius: 18px;4290  background:4291    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4292  box-shadow:4293    inset 0 0 0 1px var(--peach-border-accent),4294    inset 0 1px 0 rgba(240, 232, 216, 0.04),4295    0 12px 32px rgba(0, 0, 0, 0.14);4296  overflow: hidden;4297}42984299.peach-card-active {4300  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4301  box-shadow:4302    inset 0 1px 0 rgba(240, 232, 216, 0.05),4303    0 16px 38px rgba(0, 0, 0, 0.18),4304    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4305}43064307.peach-card-disabled {4308  opacity: 0.72;4309}43104311.peach-card-header {4312  width: 100%;4313  padding: 13px 16px 11px;4314  background: transparent;4315  color: var(--peach-t0);4316  display: flex;4317  justify-content: space-between;4318  align-items: center;4319  text-align: left;4320  font-size: 0.75rem;4321}43224323.peach-card-body {4324  padding: 0 16px 16px;4325  display: grid;4326  gap: 9px;4327}43284329.peach-card-tag {4330  color: var(--peach-t2);4331  font-family: "IBM Plex Mono", monospace;4332  font-size: 0.5625rem;4333  letter-spacing: 0.12em;4334  text-transform: uppercase;4335}43364337.peach-empty-copy {4338  display: grid;4339  gap: 6px;4340  color: var(--peach-t1);4341  font-size: 0.8125rem;4342}43434344.peach-lock-submit {4345  width: 100%;4346  box-shadow:4347    0 1px 0 rgba(255,255,255,0.10) inset,4348    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4349    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4350    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4351}43524353.peach-lock-secondary {4354  width: 100%;4355  border-color: var(--peach-t3);4356  background: rgba(240, 232, 216, 0.02);4357}43584359.peach-lock-secondary:hover {4360  background: rgba(240, 232, 216, 0.04);4361}43624363.peach-lock-note {4364  max-width: none;4365  line-height: 1.55;4366  margin: 0;4367}43684369.peach-overlay-action {4370  font-size: 0.625rem;4371  padding: 4px 8px;4372  letter-spacing: 0.06em;4373  min-width: 44px;4374  text-align: center;4375}43764377.peach-inline-action {4378  flex-shrink: 0;4379  font-size: 0.5625rem;4380  letter-spacing: 0.1em;4381  text-transform: uppercase;4382  padding: 4px 7px;4383}4384.peach-password-toggle-btn {4385  display: inline-flex;4386  align-items: center;4387  justify-content: center;4388  min-width: 30px;4389  min-height: 26px;4390  padding: 0 7px;4391  border: 1px solid var(--peach-t3);4392  border-radius: 999px;4393  background: rgba(240, 232, 216, 0.04);4394  color: var(--peach-t2);4395  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4396}4397.peach-password-toggle-btn:hover {4398  border-color: var(--peach-t2);4399  color: var(--peach-t0);4400  background: rgba(240, 232, 216, 0.06);4401}44024403.peach-new-textarea {4404  width: 100%;4405  min-height: 88px;4406  resize: vertical;4407  border: 0;4408  outline: none;4409  background: transparent;4410  color: var(--peach-t1);4411  font-family: "IBM Plex Mono", monospace;4412  font-size: 0.75rem;4413  line-height: 1.65;4414  caret-color: var(--peach-accent);4415}44164417.peach-new-textarea::placeholder {4418  color: var(--peach-t2);4419  opacity: 0.7;4420}44214422.peach-settings-actions {4423  display: grid;4424  gap: 8px;4425}44264427.peach-sync-section-label {4428  font-size: 0.6875rem;4429  color: var(--peach-t2);4430  text-transform: uppercase;4431  letter-spacing: 0.05em;4432}44334434.peach-sync-network-note {4435  margin: 0 0 6px;4436  font-size: 0.75rem;4437  color: var(--peach-t2);4438  line-height: 1.4;4439}44404441.peach-settings-row--tappable {4442  background: none;4443  border: none;4444  width: 100%;4445  text-align: left;4446  cursor: pointer;4447  color: var(--peach-t1);4448  font-size: 0.8125rem;4449}4450.peach-settings-row--tappable:hover {4451  color: var(--peach-t0);4452}44534454.peach-sync-pro-hint {4455  display: flex;4456  flex-direction: column;4457  align-items: flex-start;4458  gap: 8px;4459  padding: 12px 0 4px;4460}44614462.peach-sync-device-row {4463  display: flex;4464  justify-content: space-between;4465  align-items: center;4466  padding: 6px 0;4467  border-bottom: 1px solid var(--peach-t3);4468}44694470.peach-sync-device-info {4471  display: flex;4472  flex-direction: column;4473  gap: 2px;4474}44754476.peach-sync-device-name {4477  font-size: 0.8125rem;4478  color: var(--peach-t0);4479}44804481.peach-sync-device-meta {4482  font-size: 0.6875rem;4483  color: var(--peach-t2);4484}44854486.peach-sync-status-dot {4487  display: inline-block;4488  width: 8px;4489  height: 8px;4490  border-radius: 50%;4491  vertical-align: middle;4492}44934494.peach-sync-remove-btn {4495  color: var(--peach-breach);4496}44974498.peach-sync-advanced-row {4499  display: flex;4500  justify-content: space-between;4501  align-items: center;4502  padding: 6px 0;4503  gap: 12px;4504}45054506.peach-sync-advanced-info {4507  display: flex;4508  flex-direction: column;4509  gap: 2px;4510  flex: 1;4511}45124513.peach-sync-advanced-name {4514  font-size: 0.8125rem;4515  color: var(--peach-t0);4516}45174518.peach-sync-reset-confirm {4519  display: flex;4520  flex-direction: column;4521  gap: 8px;4522  padding: 10px;4523  border: 1px solid var(--peach-breach);4524  border-radius: 10px;4525  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4526}45274528.peach-sync-reset-confirm-headline {4529  font-size: 0.8125rem;4530  font-weight: 600;4531  color: var(--peach-t0);4532  margin: 0;4533}45344535.peach-sync-reset-confirm-body {4536  font-size: 0.75rem;4537  color: var(--peach-t1);4538  margin: 0;4539  line-height: 1.4;4540}45414542.peach-btn--danger {4543  background: var(--peach-breach);4544  color: #fff;4545  border-color: var(--peach-breach);4546}4547.peach-btn--danger:hover:not(:disabled) {4548  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4549}4550.peach-btn--danger:disabled {4551  opacity: 0.55;4552  cursor: not-allowed;4553}45544555.peach-sync-hero-icon {4556  color: var(--peach-t1);4557  opacity: 0.85;4558}45594560.peach-import-preview {4561  margin-bottom: 12px;4562  max-height: 152px;4563  overflow-y: auto;4564  border: 1px solid var(--peach-t3);4565  border-radius: 10px;4566  padding: 8px 10px;4567  display: grid;4568  gap: 8px;4569  background: rgba(240, 232, 216, 0.02);4570}45714572.peach-import-preview-row {4573  display: flex;4574  justify-content: space-between;4575  gap: 10px;4576  font-size: 0.6875rem;4577  color: var(--peach-t1);4578}45794580.peach-import-preview-title {4581  color: var(--peach-t0);4582  flex: 1;4583  min-width: 0;4584  overflow: hidden;4585  text-overflow: ellipsis;4586  white-space: nowrap;4587}45884589.peach-import-preview-meta {4590  color: var(--peach-t2);4591  flex-shrink: 0;4592  max-width: 42%;4593  overflow: hidden;4594  text-overflow: ellipsis;4595  white-space: nowrap;4596}45974598.peach-import-preview-more {4599  color: var(--peach-t2);4600  font-size: 0.625rem;4601}46024603.peach-restore-copy {4604  margin: 0;4605  color: var(--peach-t1);4606  font-size: 0.6875rem;4607  line-height: 1.6;4608}46094610.peach-restore-warning {4611  padding: 10px 12px;4612  border-radius: 12px;4613  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4614  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4615  color: var(--peach-t0);4616  font-size: 0.6875rem;4617  line-height: 1.55;4618}46194620.peach-provider-chips {4621  display: flex;4622  flex-wrap: wrap;4623  gap: 6px;4624}46254626.peach-provider-chip {4627  display: inline-flex;4628  align-items: center;4629  padding: 5px 8px;4630  border-radius: 999px;4631  border: 1px solid var(--peach-t3);4632  background: rgba(240, 232, 216, 0.02);4633  color: var(--peach-t1);4634  font-family: "IBM Plex Mono", monospace;4635  font-size: 0.5rem;4636  letter-spacing: 0.08em;4637  text-transform: uppercase;4638}46394640.peach-restore-file,4641.peach-restore-input {4642  width: 100%;4643  border-radius: 10px;4644  border: 1px solid var(--peach-t3);4645  background: var(--peach-s2);4646  color: var(--peach-t0);4647  font-size: 0.75rem;4648}46494650.peach-restore-file {4651  padding: 9px 10px;4652}46534654.peach-restore-file::file-selector-button {4655  margin-right: 10px;4656  padding: 7px 10px;4657  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4658  border-radius: 999px;4659  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4660  color: var(--peach-t0);4661  font-size: 0.625rem;4662  letter-spacing: 0.08em;4663  text-transform: uppercase;4664  cursor: pointer;4665}46664667.peach-restore-input {4668  padding: 10px 12px;4669}46704671.peach-auth-grid {4672  display: grid;4673  gap: 10px;4674}46754676.peach-import-summary {4677  color: var(--peach-t1);4678  font-size: 0.75rem;4679  line-height: 1.6;4680  margin-bottom: 12px;4681}46824683.peach-restore-error {4684  color: rgba(220, 80, 60, 0.95);4685  font-size: 0.75rem;4686  line-height: 1.55;4687}46884689.peach-passkey-card {4690  max-width: 400px;4691  margin: auto 16px;4692  align-self: center;4693  width: calc(100% - 32px);4694}46954696/* Center the approval card vertically inside the overlay-view (which sets4697 * flex-direction: column without justify-content). Without this, the card4698 * sits at the top with a tall empty band below — looks unfinished on the4699 * 320px popup. */4700.peach-overlay-view:has(.peach-passkey-card) {4701  justify-content: center;4702}47034704.peach-pro-badge {4705  padding: 2px 6px;4706  border-radius: 999px;4707  font-family: var(--font-ui);4708  font-size: 0.625rem;4709  letter-spacing: 0.08em;4710  text-transform: uppercase;4711  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4712  color: var(--peach-accent);4713}47144715/* ── Shortcuts rebind table ─────────────────────────────────── */4716.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4717.peach-shortcut-row {4718  display: flex;4719  align-items: center;4720  gap: 10px;4721  padding: 6px 0;4722}4723.peach-shortcut-row-label {4724  flex: 1;4725  font-size: 0.75rem;4726  color: var(--peach-t0);4727}4728.peach-shortcut-chip {4729  min-width: 64px;4730  padding: 4px 10px;4731  border-radius: 6px;4732  border: 1px solid var(--peach-t3);4733  background: var(--peach-input-bg, var(--surface-card));4734  color: var(--peach-t0);4735  font-family: var(--font-mono);4736  font-size: 0.6875rem;4737  letter-spacing: 0.04em;4738  cursor: pointer;4739  text-align: center;4740  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4741}4742.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4743.peach-shortcut-chip.is-custom {4744  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4745  color: var(--peach-accent);4746}4747.peach-shortcut-chip.is-capturing {4748  border-color: var(--peach-accent);4749  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4750  color: var(--peach-accent);4751  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4752}4753@keyframes peach-shortcut-capture-pulse {4754  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4755  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4756}4757.peach-shortcut-reset {4758  background: transparent;4759  border: none;4760  cursor: pointer;4761  color: var(--peach-t2);4762  padding: 4px 6px;4763  border-radius: 5px;4764  font-size: 0.875rem;4765  line-height: 1;4766  transition: color 120ms ease, background 120ms ease;4767}4768.peach-shortcut-reset:hover {4769  color: var(--peach-t0);4770  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4771}4772.peach-shortcuts-conflict {4773  margin: 4px 0 0;4774  padding: 8px 10px;4775  border-radius: 7px;4776  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4777  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4778  font-family: var(--font-mono);4779  font-size: 0.6875rem;4780  color: var(--peach-t0);4781}47824783/* ── Help dialog overlay (? to open) ────────────────────────── */4784.peach-shortcuts-help-backdrop {4785  position: fixed;4786  inset: 0;4787  background: rgba(0, 0, 0, 0.55);4788  backdrop-filter: blur(2px);4789  display: flex;4790  align-items: center;4791  justify-content: center;4792  z-index: 1000;4793  animation: peach-help-fade-in 140ms ease forwards;4794}4795@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4796.peach-shortcuts-help-card {4797  width: min(320px, 92vw);4798  max-height: 80vh;4799  overflow-y: auto;4800  border-radius: 14px;4801  border: 1px solid var(--peach-t3);4802  background: var(--peach-bg);4803  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4804  padding: 16px 18px 18px;4805  display: flex;4806  flex-direction: column;4807  gap: 12px;4808}4809.peach-shortcuts-help-head {4810  display: flex; align-items: center; justify-content: space-between;4811}4812.peach-shortcuts-help-head h3 {4813  margin: 0;4814  font-family: var(--font-display);4815  font-style: italic;4816  font-weight: 400;4817  font-size: 22px;4818  color: var(--peach-t0);4819}4820.peach-shortcuts-help-close {4821  background: transparent;4822  border: none;4823  color: var(--peach-t2);4824  cursor: pointer;4825  font-size: 0.875rem;4826  padding: 4px 8px;4827  border-radius: 5px;4828}4829.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4830.peach-shortcuts-help-body ul {4831  list-style: none; padding: 0; margin: 4px 0 12px;4832  display: grid; gap: 8px;4833}4834.peach-shortcuts-help-body li {4835  display: flex; align-items: center; justify-content: space-between; gap: 12px;4836  font-size: 0.75rem; color: var(--peach-t0);4837}4838.peach-shortcuts-help-body kbd {4839  font-family: var(--font-mono);4840  font-size: 0.6875rem;4841  padding: 3px 8px;4842  border-radius: 6px;4843  background: var(--surface-card);4844  border: 1px solid var(--peach-t3);4845  color: var(--peach-accent);4846  letter-spacing: 0.04em;4847}48484849/* ── Pro promo on Account screen ────────────────────────────── */4850.peach-pro-promo {4851  position: relative;4852  border-radius: 14px;4853  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4854  background:4855    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4856    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4857    var(--surface-card);4858  overflow: hidden;4859  margin-bottom: 14px;4860}4861.peach-pro-promo-glow {4862  position: absolute;4863  inset: -40% -20% auto auto;4864  width: 220px; height: 220px;4865  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4866  pointer-events: none;4867  filter: blur(8px);4868}4869.peach-pro-promo-inner {4870  position: relative;4871  padding: 18px 18px 16px;4872}4873.peach-pro-promo-title {4874  font-family: var(--font-display);4875  font-style: italic;4876  font-weight: 400;4877  font-size: 28px;4878  line-height: 1;4879  letter-spacing: -0.005em;4880  color: var(--peach-t0);4881  margin: 0 0 4px;4882}4883.peach-pro-promo-tagline {4884  font-family: var(--font-mono);4885  font-size: 0.625rem;4886  letter-spacing: 0.06em;4887  color: var(--peach-t2);4888  margin: 0 0 14px;4889}4890.peach-pro-promo-list {4891  list-style: none;4892  margin: 0 0 16px;4893  padding: 0;4894  display: grid;4895  gap: 9px;4896}4897.peach-pro-promo-list li {4898  display: flex;4899  align-items: flex-start;4900  gap: 9px;4901  font-size: 0.75rem;4902  color: var(--peach-t1);4903  line-height: 1.4;4904}4905.peach-pro-promo-list svg {4906  width: 14px;4907  height: 14px;4908  flex-shrink: 0;4909  color: var(--peach-accent);4910  margin-top: 2px;4911}4912.peach-pro-promo-list span {4913  color: var(--peach-t0);4914}4915.peach-pro-promo-cta {4916  width: 100%;4917  background: var(--peach-accent);4918  color: #fff;4919  border: none;4920  padding: 9px 12px;4921  border-radius: 9px;4922  font-size: 0.75rem;4923  font-weight: 500;4924  font-family: var(--font-ui);4925  letter-spacing: 0.02em;4926  text-decoration: none;4927  display: inline-flex;4928  align-items: center;4929  justify-content: center;4930  cursor: pointer;4931  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4932  box-shadow: 0 2px 16px var(--peach-glow);4933}4934.peach-pro-promo-cta:hover {4935  filter: brightness(1.07);4936  box-shadow: 0 4px 24px var(--peach-glow);4937  transform: translateY(-1px);4938}4939.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }49404941.peach-pro-or-divider {4942  display: flex;4943  align-items: center;4944  gap: 10px;4945  margin: 4px 0 12px;4946  font-family: var(--font-mono);4947  font-size: 0.625rem;4948  letter-spacing: 0.06em;4949  color: var(--peach-t2);4950  text-transform: uppercase;4951}4952.peach-pro-or-divider::before,4953.peach-pro-or-divider::after {4954  content: "";4955  flex: 1;4956  height: 1px;4957  background: var(--peach-t3);4958}49594960.peach-loading {4961  position: absolute;4962  inset: 0;4963  display: flex;4964  align-items: center;4965  justify-content: center;4966  background: var(--bg);4967  animation: peach-loading-pulse 1.2s ease-in-out infinite;4968}49694970@keyframes peach-loading-pulse {4971  0%, 100% { opacity: 0.6; }4972  50% { opacity: 1; }4973}49744975/* ── Health Dashboard ─────────────────────────────────────────────────── */4976.peach-health-body {4977  flex: 1;4978  overflow-y: auto;4979  display: flex;4980  flex-direction: column;4981  /* Hide the platform scrollbar — every other scrollable surface in the4982   * popup hides it; the Health view was the one outlier and it ruined the4983   * polish. Behavior unchanged, just no rail rendered. */4984  scrollbar-width: none;4985  -ms-overflow-style: none;4986}4987.peach-health-body::-webkit-scrollbar { display: none; }49884989/* Loading screen for the Vault Health view. The advanced report computation4990 * can run for a few seconds on a large vault — without a clear loading4991 * screen the surface looked broken (the entry view bleeds through the4992 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4993.peach-health-loading-screen {4994  flex: 1;4995  display: flex;4996  flex-direction: column;4997  align-items: center;4998  justify-content: center;4999  gap: 14px;5000  padding: 32px 28px;5001  text-align: center;5002}50035004.peach-health-loading-glyph {5005  width: 48px;5006  height: 48px;5007  display: flex;5008  align-items: center;5009  justify-content: center;5010  border-radius: 14px;5011  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5012  color: var(--peach-accent);5013}50145015.peach-health-loading-title {5016  margin: 0;5017  font-family: var(--font-display);5018  font-style: italic;5019  font-weight: 300;5020  font-size: 19px;5021  line-height: 1.2;5022  color: var(--peach-t0);5023}50245025.peach-health-loading-copy {5026  margin: 0;5027  max-width: 240px;5028  font-size: 0.75rem;5029  line-height: 1.55;5030  color: var(--peach-t2);5031}50325033.peach-health-loading-track {5034  width: 200px;5035  height: 3px;5036  margin-top: 6px;5037  border-radius: 999px;5038  background: rgba(240, 232, 216, 0.06);5039  overflow: hidden;5040}50415042.peach-health-loading-fill {5043  width: 40%;5044  height: 100%;5045  border-radius: inherit;5046  background: linear-gradient(5047    90deg,5048    transparent 0%,5049    var(--peach-accent) 50%,5050    transparent 100%5051  );5052  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;5053}50545055@keyframes peach-health-loading-sweep {5056  0%   { transform: translateX(-100%); }5057  100% { transform: translateX(350%); }5058}50595060[data-motion="reduce"] .peach-health-loading-fill,5061[data-motion="reduce"] .peach-health-loading-glyph svg path {5062  animation: none;5063}50645065.peach-health-summary {5066  padding: 10px 16px 6px;5067  font-family: "IBM Plex Mono", monospace;5068  font-size: 0.6875rem;5069}5070.peach-health-summary-warn { color: rgba(220,80,60,0.9); }5071.peach-health-summary-ok { color: var(--peach-t2); }50725073.peach-health-check-row {5074  padding: 0 16px 10px;5075}5076.peach-health-check-btn {5077  width: 100%;5078  display: flex;5079  align-items: center;5080  justify-content: center;5081}50825083.peach-health-sections {5084  flex: 1;5085  display: flex;5086  flex-direction: column;5087}50885089.peach-health-section {5090  border-bottom: 1px solid var(--peach-t3);5091}50925093.peach-health-section-header {5094  width: 100%;5095  display: flex;5096  align-items: center;5097  justify-content: space-between;5098  padding: 9px 16px;5099  background: transparent;5100  cursor: pointer;5101  color: var(--peach-t0);5102}51035104.peach-health-section-title-row {5105  display: flex;5106  align-items: center;5107  gap: 8px;5108}51095110.peach-health-count-badge {5111  display: inline-flex;5112  align-items: center;5113  justify-content: center;5114  min-width: 20px;5115  height: 18px;5116  padding: 0 5px;5117  border-radius: 999px;5118  background: rgba(220,80,60,0.15);5119  border: 1px solid rgba(220,80,60,0.25);5120  font-family: "IBM Plex Mono", monospace;5121  font-size: 0.5625rem;5122  color: rgba(220,80,60,0.9);5123}51245125.peach-health-section-title {5126  font-family: "IBM Plex Mono", monospace;5127  font-size: 0.6875rem;5128  text-transform: uppercase;5129  letter-spacing: 0.1em;5130  color: var(--peach-t1);5131}51325133.peach-health-chevron {5134  color: var(--peach-t2);5135  transition: transform 200ms ease;5136  flex-shrink: 0;5137}5138.peach-health-chevron.is-expanded {5139  transform: rotate(180deg);5140}51415142.peach-health-section-body {5143  padding: 0 16px 10px;5144  display: flex;5145  flex-direction: column;5146  gap: 4px;5147}51485149.peach-health-row {5150  display: flex;5151  align-items: flex-start;5152  justify-content: space-between;5153  gap: 8px;5154  padding: 6px 8px;5155  border-radius: 8px;5156  background: rgba(240,232,216,0.02);5157}51585159.peach-health-row-info {5160  flex: 1;5161  min-width: 0;5162  display: flex;5163  flex-direction: column;5164  gap: 2px;5165}51665167.peach-health-row-name {5168  font-family: var(--font-display);5169  font-size: 0.9375rem;5170  font-style: italic;5171  font-weight: 400;5172  color: var(--peach-t0);5173  white-space: nowrap;5174  overflow: hidden;5175  text-overflow: ellipsis;5176}51775178.peach-health-row-meta {5179  font-family: "IBM Plex Mono", monospace;5180  font-size: 0.5625rem;5181  color: var(--peach-t2);5182  letter-spacing: 0.05em;5183}51845185.peach-health-fix-btn {5186  font-size: 0.5625rem;5187  letter-spacing: 0.08em;5188  text-transform: uppercase;5189  padding: 4px 7px;5190  flex-shrink: 0;5191  display: flex;5192  align-items: center;5193}51945195.peach-health-empty {5196  font-family: "IBM Plex Mono", monospace;5197  font-size: 0.625rem;5198  color: var(--peach-t2);5199  padding: 6px 0;5200}52015202.peach-health-loading {5203  font-family: "IBM Plex Mono", monospace;5204  font-size: 0.625rem;5205  color: var(--peach-t2);5206  padding: 6px 0;5207  display: flex;5208  align-items: center;5209  gap: 6px;5210}52115212.peach-health-loading::before {5213  content: "";5214  width: 10px;5215  height: 10px;5216  border: 1.5px solid var(--peach-t3);5217  border-top-color: var(--peach-accent);5218  border-radius: 50%;5219  animation: peach-spin 600ms linear infinite;5220}52215222@keyframes peach-spin {5223  to { transform: rotate(360deg); }5224}52255226.peach-spinner {5227  width: 32px;5228  height: 32px;5229  border: 2px solid var(--peach-s2);5230  border-top-color: var(--peach-accent);5231  border-radius: 50%;5232  margin: 0 auto 16px;5233  animation: peach-spin 0.8s linear infinite;5234}52355236.peach-progress-screen {5237  text-align: center;5238  padding: 32px 16px;5239}52405241.peach-progress-screen-title {5242  font-size: 0.8125rem;5243  color: var(--peach-t0);5244  margin-bottom: 16px;5245}52465247.peach-progress-screen-stage {5248  font-size: 0.6875rem;5249  color: var(--peach-t2);5250  min-height: 14px;5251}52525253.peach-progress-screen-note {5254  font-size: 0.625rem;5255  color: var(--peach-t2);5256  margin-top: 8px;5257}52585259/* Pairing commits the vault key before the first entry sync. Keep that5260   implementation detail off-screen until the paired source records a real,5261   durable sync completion. */5262.peach-initial-sync {5263  position: relative;5264  display: flex;5265  align-items: center;5266  justify-content: center;5267  overflow: hidden;5268}52695270.peach-initial-sync-card {5271  position: relative;5272  z-index: 1;5273  width: min(100%, 320px);5274  display: flex;5275  flex-direction: column;5276  align-items: center;5277  gap: 10px;5278  padding: 36px 26px;5279  text-align: center;5280}52815282.peach-initial-sync-mark {5283  width: 54px;5284  height: 54px;5285  display: flex;5286  align-items: center;5287  justify-content: center;5288  border-radius: 18px;5289  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5290  margin-bottom: 4px;5291}52925293.peach-initial-sync-mark svg {5294  width: 34px;5295  height: 34px;5296}52975298.peach-initial-sync-card h1 {5299  margin: 0;5300  color: var(--peach-t0);5301  font-family: var(--font-display);5302  font-size: 1.55rem;5303  font-style: italic;5304  font-weight: 400;5305}53065307.peach-initial-sync-card > p {5308  margin: 0;5309}53105311.peach-initial-sync-card #initial-sync-copy {5312  color: var(--peach-t1);5313  font-size: 0.78rem;5314  line-height: 1.55;5315}53165317.peach-initial-sync-progress {5318  width: 100%;5319  height: 3px;5320  overflow: hidden;5321  border-radius: 999px;5322  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);5323  margin: 8px 0 2px;5324}53255326.peach-initial-sync-progress span {5327  display: block;5328  width: 42%;5329  height: 100%;5330  border-radius: inherit;5331  background: var(--peach-accent);5332  animation: peach-initial-sync-progress 1.4s cubic-bezier(0.2, 0, 0, 1) infinite;5333}53345335@keyframes peach-initial-sync-progress {5336  from { transform: translateX(-115%); }5337  to { transform: translateX(340%); }5338}53395340.peach-initial-sync-note {5341  color: var(--peach-t2);5342  font-size: 0.625rem;5343  line-height: 1.45;5344}53455346.peach-initial-sync-slow {5347  width: 100%;5348  display: flex;5349  flex-direction: column;5350  gap: 10px;5351  padding-top: 10px;5352  border-top: 1px solid var(--peach-border);5353}53545355.peach-initial-sync-slow p {5356  margin: 0;5357  color: var(--peach-t2);5358  font-size: 0.6875rem;5359  line-height: 1.45;5360}53615362.peach-initial-sync-slow .peach-btn {5363  width: 100%;5364}53655366@media (prefers-reduced-motion: reduce) {5367  .peach-initial-sync-progress span {5368    width: 100%;5369    opacity: 0.7;5370    animation: none;5371  }5372}53735374/* Tag chips */5375.peach-tag-chip {5376  display: inline-flex;5377  align-items: center;5378  gap: 4px;5379  padding: 3px 8px;5380  border-radius: 999px;5381  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5382  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5383  color: var(--peach-t0);5384  font-family: "IBM Plex Mono", monospace;5385  font-size: 0.625rem;5386  letter-spacing: 0.04em;5387}53885389.peach-tag-chip-remove {5390  background: transparent;5391  border: none;5392  color: inherit;5393  opacity: 0.6;5394  cursor: pointer;5395  padding: 0;5396  font-size: 0.75rem;5397  line-height: 1;5398}53995400.peach-tag-chip-remove:hover {5401  opacity: 1;5402}54035404/* Tag input */5405.peach-tag-input-wrap {5406  border-bottom: 1px solid var(--peach-t3);5407}54085409.peach-tag-suggestions {5410  display: flex;5411  flex-wrap: wrap;5412  gap: 4px;5413  padding: 6px 0;5414}54155416.peach-tag-suggestion {5417  padding: 2px 8px;5418  border-radius: 999px;5419  border: 1px solid var(--peach-t3);5420  background: var(--peach-s2);5421  color: var(--peach-t1);5422  font-family: "IBM Plex Mono", monospace;5423  font-size: 0.625rem;5424  cursor: pointer;5425  transition: border-color 80ms ease, background 80ms ease;5426}54275428.peach-tag-suggestion:hover {5429  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5430  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5431}54325433/* Identity suggestions — shown below username/email inputs in new-entry form */5434@keyframes peach-suggest-in {5435  from { opacity: 0; transform: translateY(-4px); }5436  to   { opacity: 1; transform: none; }5437}54385439.peach-identity-suggestions {5440  display: flex;5441  flex-direction: column;5442  gap: 1px;5443  margin-top: 4px;5444  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5445}54465447.peach-identity-filter-row {5448  display: flex;5449  align-items: center;5450  gap: 4px;5451  padding: 2px 0 5px;5452}54535454.peach-identity-collapse-btn {5455  margin-left: auto;5456  background: transparent;5457  border: none;5458  cursor: pointer;5459  color: var(--peach-t3);5460  padding: 2px 4px;5461  display: flex;5462  align-items: center;5463  line-height: 0;5464  border-radius: 3px;5465  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5466}54675468.peach-identity-collapse-btn:hover {5469  color: var(--peach-t1);5470}54715472.peach-identity-collapse-btn.is-collapsed {5473  transform: rotate(-90deg);5474}54755476.peach-identity-rows {5477  display: grid;5478  grid-template-rows: 1fr;5479  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5480}54815482.peach-identity-rows.is-collapsed {5483  grid-template-rows: 0fr;5484}54855486.peach-identity-rows-inner {5487  overflow-y: auto;5488  min-height: 0;5489  max-height: 148px;5490  scrollbar-width: thin;5491  scrollbar-color: var(--peach-t3) transparent;5492  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5493  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5494}54955496.peach-identity-rows-inner::-webkit-scrollbar {5497  width: 4px;5498}54995500.peach-identity-rows-inner::-webkit-scrollbar-track {5501  background: transparent;5502}55035504.peach-identity-rows-inner::-webkit-scrollbar-thumb {5505  background: var(--peach-t3);5506  border-radius: 2px;5507}55085509.peach-identity-filter-pill {5510  padding: 2px 7px;5511  border-radius: 999px;5512  border: 1px solid var(--peach-t3);5513  background: transparent;5514  color: var(--peach-t2);5515  font-family: "IBM Plex Mono", monospace;5516  font-size: 0.6rem;5517  cursor: pointer;5518  transition: border-color 80ms, background 80ms, color 80ms;5519}55205521.peach-identity-filter-pill.is-on {5522  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5523  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5524  color: var(--peach-accent);5525}55265527.peach-identity-suggestion {5528  display: flex;5529  align-items: center;5530  gap: 6px;5531  width: 100%;5532  padding: 4px 6px;5533  border-radius: 5px;5534  border: none;5535  background: transparent;5536  cursor: pointer;5537  text-align: left;5538  transition: background 80ms ease;5539}55405541.peach-identity-suggestion:hover,5542.peach-identity-suggestion:focus {5543  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5544  outline: none;5545}55465547.peach-identity-suggestion-value {5548  font-family: "IBM Plex Mono", monospace;5549  font-size: 0.7rem;5550  color: var(--peach-t1);5551  overflow: hidden;5552  text-overflow: ellipsis;5553  white-space: nowrap;5554  flex: 1;5555  min-width: 0;5556}55575558.peach-identity-suggestion-type {5559  font-family: "IBM Plex Mono", monospace;5560  font-size: 0.55rem;5561  font-weight: 600;5562  flex-shrink: 0;5563  padding: 1px 4px;5564  border-radius: 3px;5565}55665567.peach-identity-suggestion-type--email {5568  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5569  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5570}55715572.peach-identity-suggestion-type--username {5573  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5574  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5575}55765577.peach-identity-suggestion-meta {5578  font-family: "IBM Plex Mono", monospace;5579  font-size: 0.6rem;5580  color: var(--peach-t3);5581  flex-shrink: 0;5582}55835584/* Tag filter strip */5585.peach-tag-filter-strip {5586  border-bottom: 1px solid var(--peach-t3);5587  flex-shrink: 0;5588}55895590.peach-tag-filter-chip {5591  display: inline-flex;5592  align-items: center;5593  padding: 4px 10px;5594  border-radius: 999px;5595  border: 1px solid var(--peach-t3);5596  background: transparent;5597  color: var(--peach-t2);5598  font-family: "IBM Plex Mono", monospace;5599  font-size: 0.5625rem;5600  letter-spacing: 0.06em;5601  text-transform: uppercase;5602  cursor: pointer;5603  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5604  white-space: nowrap;5605}56065607.peach-tag-filter-chip:hover {5608  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5609  color: var(--peach-t1);5610}56115612.peach-tag-filter-chip.is-selected {5613  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5614  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5615  color: var(--peach-t0);5616}56175618/* ─────────────────────────────────────────────────────────────────────────5619   v1.4.12 additions5620   ─────────────────────────────────────────────────────────────────────── */56215622/* Sort bar */5623.peach-sort-bar {5624  display: flex;5625  align-items: center;5626  gap: 4px;5627  padding: 5px 12px;5628  border-bottom: 1px solid var(--peach-t3);5629  flex-shrink: 0;5630  overflow-x: auto;5631  scrollbar-width: none;5632}56335634.peach-sort-btn {5635  padding: 2px 9px;5636  border-radius: 999px;5637  border: 1px solid transparent;5638  background: transparent;5639  color: var(--peach-t2);5640  font-family: "IBM Plex Mono", monospace;5641  font-size: 0.5625rem;5642  letter-spacing: 0.07em;5643  text-transform: uppercase;5644  cursor: pointer;5645  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5646  white-space: nowrap;5647}56485649.peach-sort-btn:hover {5650  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5651  color: var(--peach-t1);5652}56535654.peach-sort-btn.is-active {5655  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5656  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5657  color: var(--peach-t0);5658}56595660.peach-sort-scope-btn {5661  padding-inline: 8px;5662  font-size: 0.53125rem;5663  letter-spacing: 0.05em;5664}56655666.peach-sort-domain-hint {5667  margin-left: auto;5668  font-family: "IBM Plex Mono", monospace;5669  font-size: 0.5625rem;5670  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5671  white-space: nowrap;5672  overflow: hidden;5673  text-overflow: ellipsis;5674  max-width: 110px;5675}56765677/* Tab-match badge on entry rows */5678.peach-tab-match-badge {5679  display: inline-block;5680  width: 6px;5681  height: 6px;5682  border-radius: 50%;5683  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5684  margin-left: 5px;5685  vertical-align: middle;5686  flex-shrink: 0;5687  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5688}56895690.peach-entry-row.is-tab-match {5691  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5692  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5693}56945695.peach-entry-row.is-tab-match:hover {5696  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5697}56985699/* Entry list stagger entrance */5700@keyframes peach-entry-fadein {5701  from { opacity: 0; transform: translateY(4px); }5702  to   { opacity: 1; transform: translateY(0); }5703}57045705.peach-vault-list .peach-entry-row {5706  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5707}57085709/* Button press micro-interaction */5710.peach-btn:active {5711  transform: scale(0.95);5712  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5713}57145715.peach-sort-btn:active,5716.peach-tag-filter-chip:active {5717  transform: scale(0.93);5718  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5719}57205721/* Password strength bar (Lock view + shared) */5722.peach-password-strength {5723  display: flex;5724  align-items: center;5725  gap: 8px;5726  margin-top: 6px;5727}57285729.peach-strength-bar {5730  flex: 1;5731  height: 3px;5732  border-radius: 2px;5733  background: var(--peach-t3);5734  overflow: hidden;5735}57365737.peach-strength-fill {5738  height: 100%;5739  border-radius: 2px;5740  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5741              background 300ms ease;5742}57435744.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5745.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5746.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5747.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }57485749.peach-strength-label {5750  font-family: "IBM Plex Mono", monospace;5751  font-style: italic;5752  font-size: 0.5625rem;5753  font-weight: 300;5754  letter-spacing: 0.06em;5755  color: var(--peach-t2);5756  min-width: 36px;5757  text-align: right;5758}57595760.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5761.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5762.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5763.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57645765/* Duress form */5766.peach-duress-status {5767  padding: 2px 8px;5768  border-radius: 999px;5769  border: 1px solid var(--peach-t3);5770  font-family: "IBM Plex Mono", monospace;5771  font-size: 0.5625rem;5772  letter-spacing: 0.07em;5773  text-transform: uppercase;5774  color: var(--peach-t2);5775  flex-shrink: 0;5776}57775778.peach-duress-status.is-active {5779  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5780  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5781  color: var(--peach-t0);5782}57835784.peach-duress-form {5785  padding: 8px 0 4px;5786  display: flex;5787  flex-direction: column;5788  gap: 6px;5789}57905791.peach-duress-form .peach-label {5792  margin-top: 4px;5793}57945795.peach-duress-actions {5796  display: flex;5797  gap: 6px;5798  align-items: center;5799  margin-top: 4px;5800}58015802.peach-duress-actions .peach-btn:first-child {5803  margin-right: auto;5804}58055806/* Improved overlay spring entrance */5807.peach-overlay-view.ov-enter-up {5808  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5809}58105811@keyframes ov-enter-up-spring {5812  from { opacity: 0; transform: translateY(16px) scale(0.98); }5813  to   { opacity: 1; transform: translateY(0) scale(1); }5814}58155816.peach-overlay-view.ov-enter-right {5817  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5818}58195820@keyframes ov-enter-right-spring {5821  from { opacity: 0; transform: translateX(18px) scale(0.98); }5822  to   { opacity: 1; transform: translateX(0) scale(1); }5823}58245825/* ── Onboarding-mode restore screens (file import) ── */5826/* Used when MainImportView renders during onboarding (no vault yet).5827   Animates like a lock-screen transition. */5828.peach-lock-view {5829  position: absolute;5830  inset: 0;5831  display: flex;5832  flex-direction: column;5833  background:5834    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5835    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5836    var(--peach-bg);5837  z-index: 2;5838  overflow: hidden;5839  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5840}58415842.peach-lock-view-header {5843  display: flex;5844  align-items: center;5845  justify-content: space-between;5846  padding: 16px 18px 12px;5847  flex-shrink: 0;5848}58495850/* ───────── Settings: auto-lock select ───────── */5851.peach-settings-select {5852  font-family: "IBM Plex Mono", monospace;5853  font-size: 0.6875rem;5854  background: transparent;5855  border: 1px solid var(--peach-t3);5856  border-radius: 4px;5857  color: var(--peach-t1);5858  padding: 3px 6px;5859  cursor: pointer;5860  outline: none;5861}5862.peach-settings-select:focus {5863  border-color: var(--peach-accent);5864}58655866/* ───────── Duress status pill (new polished) ───────── */5867.peach-duress-status-pill {5868  font-family: "IBM Plex Mono", monospace;5869  font-size: 0.5625rem;5870  text-transform: uppercase;5871  letter-spacing: 0.12em;5872  padding: 2px 8px;5873  border-radius: 12px;5874  background: var(--peach-t3);5875  color: var(--peach-t2);5876  flex-shrink: 0;5877}5878.peach-duress-status-pill.is-active {5879  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5880  color: var(--peach-accent);5881}58825883/* ───────── Entry advanced disclosure (canary) ───────── */5884.peach-entry-advanced {5885  margin-top: 12px;5886  border-top: 1px solid var(--peach-t3);5887  padding-top: 10px;5888  position: relative;5889  z-index: 1;5890}5891.peach-entry-advanced-toggle {5892  display: flex;5893  align-items: center;5894  justify-content: space-between;5895  width: 100%;5896  background: transparent;5897  border: none;5898  cursor: pointer;5899  padding: 0;5900  color: var(--peach-t2);5901}5902.peach-canary-section {5903  margin-top: 10px;5904  display: grid;5905  gap: 6px;5906}59075908/* ───────── Import: merge/replace radio choices ───────── */5909.peach-import-choice {5910  display: flex;5911  align-items: flex-start;5912  gap: 10px;5913  padding: 8px 10px;5914  border: 1px solid var(--peach-t3);5915  border-radius: 10px;5916  cursor: pointer;5917  margin-bottom: 6px;5918  transition: border-color 120ms ease, background 120ms ease;5919}5920.peach-import-choice:hover {5921  border-color: var(--peach-accent);5922}5923.peach-import-choice input[type="radio"] {5924  margin-top: 3px;5925  accent-color: var(--peach-accent);5926  flex-shrink: 0;5927}5928.peach-import-choice-main {5929  display: flex;5930  flex-direction: column;5931  gap: 2px;5932  min-width: 0;5933}5934.peach-import-choice-label {5935  font-size: 0.75rem;5936  color: var(--peach-t0);5937}5938.peach-import-choice-sub {5939  font-size: 0.6875rem;5940  color: var(--peach-t2);5941  line-height: 1.5;5942}59435944/* ───────── Export: success confirmation strip ───────── */5945.peach-export-success {5946  display: flex;5947  align-items: flex-start;5948  gap: 10px;5949  padding: 12px;5950  border-radius: 12px;5951  border: 1px solid rgba(150, 175, 110, 0.3);5952  background: rgba(150, 175, 110, 0.08);5953  color: var(--peach-t0);5954  font-size: 0.75rem;5955  line-height: 1.55;5956}5957.peach-export-success-check {5958  color: rgba(150, 175, 110, 0.9);5959  font-size: 0.875rem;5960  flex-shrink: 0;5961}59625963/* ── Trash view ──────────────────────────────────────────────────────── */5964.peach-trash-entry-row {5965  display: flex;5966  align-items: center;5967  justify-content: space-between;5968  gap: 8px;5969  padding: 8px 0;5970  border-bottom: 1px solid var(--peach-border);5971}5972.peach-trash-entry-info {5973  flex: 1;5974  min-width: 0;5975  display: flex;5976  flex-direction: column;5977  gap: 2px;5978}5979.peach-trash-entry-title {5980  font-size: 0.8125rem;5981  color: var(--peach-t0);5982  overflow: hidden;5983  text-overflow: ellipsis;5984  white-space: nowrap;5985}5986.peach-trash-entry-meta {5987  font-family: var(--font-mono);5988  font-size: 0.5625rem;5989  color: var(--peach-t2);5990  letter-spacing: 0.04em;5991}5992.peach-trash-entry-actions {5993  display: flex;5994  align-items: center;5995  gap: 4px;5996  flex-shrink: 0;5997}5998.peach-trash-delete-btn {5999  background: transparent;6000  border: 0;6001  color: var(--peach-t3);6002  font-size: 1rem;6003  line-height: 1;6004  cursor: pointer;6005  padding: 2px 5px;6006  transition: color 0.15s;6007}6008.peach-trash-delete-btn:hover { color: var(--peach-breach); }6009.peach-trash-list {6010  overflow-y: auto;6011}6012.peach-trash-footer {6013  display: flex;6014  align-items: center;6015  gap: 8px;6016  padding: 8px 0 0;6017  border-top: 1px solid var(--peach-border);6018  margin-top: 4px;6019}6020.peach-trash-purge-all {6021  background: transparent;6022  border: 0;6023  color: var(--peach-t3);6024  font-size: 0.625rem;6025  cursor: pointer;6026  padding: 4px 0;6027  letter-spacing: 0.03em;6028  transition: color 0.2s;6029}6030.peach-trash-purge-all:hover { color: var(--peach-breach); }6031.peach-trash-purge-confirm-label {6032  font-size: 0.625rem;6033  color: var(--peach-t1);6034  flex: 1;6035}60366037/* ── Settings shortcuts grid ─────────────────────────────────────────── */6038.peach-shortcuts-grid {6039  display: grid;6040  grid-template-columns: auto 1fr;6041  gap: 6px 12px;6042  align-items: center;6043  padding: 4px 0;6044}6045.peach-shortcut-key {6046  font-family: var(--font-mono);6047  font-size: 0.625rem;6048  color: var(--peach-t0);6049  background: var(--peach-t3);6050  border-radius: 4px;6051  padding: 2px 6px;6052  white-space: nowrap;6053  text-align: center;6054}6055.peach-shortcut-desc {6056  font-size: 0.6875rem;6057  color: var(--peach-t1);6058}60596060/* ── Sort bar trash button ───────────────────────────────────────────── */6061.peach-sort-trash-btn {6062  display: flex;6063  align-items: center;6064  justify-content: center;6065  padding: 3px 5px;6066  background: transparent;6067  border: none;6068  cursor: pointer;6069  color: var(--peach-t2);6070  border-radius: 4px;6071  transition: color 140ms ease, background 140ms ease;6072}6073.peach-sort-trash-btn:hover {6074  color: var(--peach-t1);6075  background: var(--peach-t3);6076}6077.peach-sort-trash-btn.is-active {6078  color: var(--peach-accent);6079}60806081/* Accent color picker */6082.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6083.peach-accent-picker {6084  display: flex;6085  flex-wrap: wrap;6086  gap: 7px;6087  padding: 2px 0;6088}6089.peach-accent-swatch {6090  width: 22px;6091  height: 22px;6092  border-radius: 50%;6093  border: 2px solid transparent;6094  cursor: pointer;6095  padding: 0;6096  transition: transform 100ms;6097  outline-offset: 2px;6098}6099.peach-accent-swatch:hover { transform: scale(1.15); }6100.peach-accent-swatch.is-active {6101  border-color: var(--peach-t0);6102  transform: scale(1.1);6103}61046105.peach-pill-group {6106  display: flex;6107  gap: 6px;6108}6109.peach-pill-group .peach-btn.is-active {6110  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6111  border-color: var(--peach-accent);6112  color: var(--peach-t0);6113}61146115/* ── Card entry styles ───────────────────────────────────────── */6116.peach-card-number {6117  font-family: var(--peach-mono);6118  letter-spacing: 0.08em;6119}61206121.peach-card-network-badge {6122  font-size: 0.625rem;6123  padding: 1px 5px;6124  border-radius: 4px;6125  border: 0.5px solid var(--peach-border);6126  color: var(--peach-text-dim);6127  margin-left: 6px;6128  vertical-align: middle;6129}61306131.peach-card-expiry-row {6132  display: flex;6133  align-items: center;6134  gap: 8px;6135}61366137.peach-card-expiry-sep {6138  color: var(--peach-text-dim);6139}61406141/* ── Pro tier — upgrade screen ──────────────────────────────── */6142.peach-pro-mark {6143  font-size: 0.5625rem;6144  color: var(--peach-accent);6145  margin-left: 6px;6146  vertical-align: super;6147  opacity: 0.7;6148}61496150.peach-pro-mini-badge {6151  display: block;6152  font-size: 0.625rem;6153  font-style: italic;6154  color: var(--peach-accent);6155  letter-spacing: 0.04em;6156  margin-top: -2px;6157  padding-left: 2px;6158  opacity: 0.85;6159  text-align: center;6160}61616162.peach-wordmark-stack {6163  display: inline-flex;6164  flex-direction: column;6165  align-items: center;6166}61676168/* ── Pro tier — upgrade page ─────────────────────────────────── */6169/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61706171.peach-pro-upgrade {6172  display: flex;6173  flex-direction: column;6174  align-items: stretch;6175  gap: 10px;6176  padding: 2px 2px 12px;6177}61786179.peach-pro-eyebrow {6180  margin: 0;6181  font-family: var(--font-ui);6182  font-size: 0.625rem;6183  font-weight: 500;6184  letter-spacing: 0.12em;6185  color: var(--peach-accent);6186}61876188.peach-pro-headline {6189  margin: 0;6190  font-family: var(--font-display, "Cormorant Garamond", serif);6191  font-size: 30px;6192  font-weight: 700;6193  font-style: normal;6194  line-height: 1.05;6195  color: var(--peach-t0);6196  letter-spacing: -0.01em;6197}6198.peach-pro-headline em {6199  font-style: italic;6200  font-weight: 400;6201  color: var(--peach-accent);6202}62036204.peach-pro-subtitle {6205  margin: 0;6206  font-size: 0.6875rem;6207  line-height: 1.5;6208  color: var(--peach-t1);6209}62106211/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6212.peach-pro-section-label {6213  margin: 6px 0 0;6214  font-family: var(--font-ui);6215  font-size: 0.5625rem;6216  font-weight: 500;6217  letter-spacing: 0.12em;6218  text-transform: uppercase;6219  color: var(--peach-t2);6220}62216222/* 2-column numbered feature grid */6223.peach-pro-grid {6224  display: grid;6225  grid-template-columns: 1fr 1fr;6226  border-top: 1px solid var(--peach-border);6227  border-left: 1px solid var(--peach-border);6228}62296230.peach-pro-grid-item {6231  display: flex;6232  flex-direction: column;6233  gap: 2px;6234  padding: 8px 9px;6235  border-right: 1px solid var(--peach-border);6236  border-bottom: 1px solid var(--peach-border);6237}62386239.peach-pro-grid-item--wide {6240  grid-column: 1 / -1;6241}62426243.peach-pro-grid-num {6244  font-family: var(--font-mono);6245  font-size: 0.5625rem;6246  color: var(--peach-accent);6247  letter-spacing: 0.06em;6248  opacity: 0.85;6249}62506251.peach-pro-grid-name {6252  font-size: 0.8125rem;6253  font-weight: 500;6254  color: var(--peach-t0);6255  line-height: 1.2;6256}62576258.peach-pro-grid-desc {6259  font-size: 0.625rem;6260  color: var(--peach-t1);6261  line-height: 1.4;6262}62636264.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6265  animation: peach-pulse-accent 600ms ease-out forwards;6266}62676268@keyframes peach-pulse-accent {6269  0%   { opacity: 1; transform: scale(1.2); }6270  100% { opacity: 0.85; transform: scale(1); }6271}62726273/* Actions */6274.peach-pro-upgrade-actions {6275  display: flex;6276  flex-direction: column;6277  align-items: stretch;6278  gap: 10px;6279}62806281.peach-pro-pricing {6282  margin: 0;6283  font-size: 1rem;6284  font-weight: 600;6285  color: var(--peach-t0);6286  letter-spacing: 0.01em;6287}6288.peach-pro-pricing-sub {6289  font-size: 0.75rem;6290  font-weight: 400;6291  color: var(--peach-t1);6292  letter-spacing: 0.02em;6293}62946295.peach-pro-upgrade-cta {6296  display: flex;6297  align-items: center;6298  justify-content: center;6299  text-decoration: none;6300  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6301  border: 1px solid var(--peach-accent);6302  border-radius: 10px;6303  color: var(--peach-accent);6304  font-family: var(--font-ui);6305  font-size: 0.8125rem;6306  font-weight: 600;6307  letter-spacing: 0.06em;6308  padding: 11px 16px;6309  transition: background 0.15s ease, color 0.15s ease;6310}6311.peach-pro-upgrade-cta:hover {6312  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6313}63146315/* Pairing's terminal entitlement fallback reuses the Peach Pro card's6316   editorial hierarchy without embedding the settings deck itself. */6317.peach-pair-pro-required {6318  width: 100%;6319  display: flex;6320  flex-direction: column;6321  align-items: stretch;6322  gap: 10px;6323  text-align: left;6324}6325.peach-pair-pro-required .peach-pro-headline {6326  font-size: 1.75rem;6327}6328.peach-pair-pro-required .peach-pro-subtitle {6329  font-size: 0.6875rem;6330}6331.peach-pair-pro-grid {6332  grid-template-columns: 1fr;6333}6334.peach-pair-pro-button {6335  width: 100%;6336  cursor: pointer;6337}6338.peach-desktop-error--pro {6339  width: min(100%, 320px);6340  overflow-y: auto;6341}63426343.peach-pro-key-divider {6344  display: flex;6345  align-items: center;6346  gap: 8px;6347  color: var(--peach-t2);6348  font-size: 0.5625rem;6349  letter-spacing: 0.1em;6350}6351.peach-pro-key-divider::before,6352.peach-pro-key-divider::after {6353  content: "";6354  flex: 1;6355  height: 1px;6356  background: var(--peach-border);6357}63586359/* Inline key entry row */6360.peach-pro-key-inline {6361  display: flex;6362  align-items: center;6363  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6364  border: 1px solid var(--peach-border);6365  border-radius: 8px;6366  overflow: hidden;6367}6368.peach-pro-key-inline-input {6369  flex: 1;6370  background: transparent;6371  border: none;6372  outline: none;6373  color: var(--peach-t1);6374  font-family: var(--font-mono);6375  font-size: 0.625rem;6376  letter-spacing: 0.06em;6377  padding: 9px 10px;6378}6379.peach-pro-key-inline-input::placeholder {6380  color: var(--peach-t2);6381}6382.peach-pro-key-apply {6383  background: transparent;6384  border: none;6385  border-left: 1px solid var(--peach-border);6386  color: var(--peach-t2);6387  font-family: var(--font-ui);6388  font-size: 0.5625rem;6389  font-weight: 600;6390  letter-spacing: 0.08em;6391  padding: 9px 10px;6392  cursor: pointer;6393  transition: color 0.15s ease;6394  flex-shrink: 0;6395}6396.peach-pro-key-apply:not(:disabled):hover {6397  color: var(--peach-accent);6398}6399.peach-pro-key-apply:disabled {6400  opacity: 0.35;6401  cursor: not-allowed;6402}64036404/* ── Pro tier — key ceremony ─────────────────────────────────── */6405.peach-pro-key-ceremony {6406  display: flex;6407  flex-direction: column;6408  align-items: center;6409  gap: 12px;6410  padding: 20px 4px 16px;6411}64126413.peach-pro-key-ceremony .peach-lock-rune-string {6414  font-size: 1rem;6415  gap: 12px;6416  flex: 0;6417  justify-content: center;6418}64196420.peach-pro-key-ceremony-label {6421  margin: 0;6422  font-size: 0.6875rem;6423  color: var(--peach-t2);6424  font-style: italic;6425  letter-spacing: 0.04em;6426}64276428.peach-pro-key-input {6429  font-family: var(--font-mono, monospace);6430  letter-spacing: 0.06em;6431  text-align: center;6432  width: 100%;6433  box-sizing: border-box;6434}64356436.peach-pro-key-error {6437  margin: 0;6438  font-size: 0.75rem;6439  text-align: center;6440  color: var(--peach-breach, #e55);6441  padding: 0;6442}64436444.peach-pro-key-activate {6445  width: 100%;6446  text-align: center;6447  box-sizing: border-box;6448  padding: 10px 20px;6449  font-size: 0.8125rem;6450}64516452.peach-pro-key-cancel {6453  background: transparent;6454  border: 0;6455  color: var(--peach-t2);6456  font-size: 0.6875rem;6457  cursor: pointer;6458  padding: 2px 8px;6459  transition: color 0.2s;6460}64616462.peach-pro-key-cancel:hover { color: var(--peach-accent); }64636464/* ── Pro tier — active state ─────────────────────────────────── */6465.peach-pro-active {6466  display: flex;6467  flex-direction: column;6468  align-items: center;6469  gap: 0;6470  padding: 8px 4px 16px;6471  min-height: 280px;6472}64736474.peach-pro-active-hero {6475  display: flex;6476  flex-direction: column;6477  align-items: center;6478  gap: 6px;6479  padding: 20px 0 8px;6480}64816482.peach-pro-active-mark-wrap {6483  display: flex;6484  align-items: center;6485  justify-content: center;6486  margin-bottom: 4px;6487}64886489.peach-pro-active-mark {6490  width: 60px;6491  height: 60px;6492}64936494.peach-pro-active-title {6495  font-family: var(--font-display, var(--font-ui));6496  font-size: 26px;6497  margin: 0;6498  color: var(--peach-t0);6499  letter-spacing: 0.01em;6500}65016502.peach-pro-active-since {6503  margin: 0;6504  font-size: 0.6875rem;6505  color: var(--peach-t2);6506  font-style: italic;6507}65086509.peach-pro-active-features {6510  display: flex;6511  flex-direction: column;6512  gap: 8px;6513  width: 100%;6514  padding: 14px 8px 0;6515  border-top: 1px solid var(--peach-border);6516  flex: 1;6517}65186519.peach-pro-active-feature {6520  display: flex;6521  align-items: center;6522  gap: 9px;6523}65246525.peach-pro-active-feature-mark {6526  color: var(--peach-accent);6527  font-size: 0.625rem;6528  opacity: 0.65;6529  flex-shrink: 0;6530}65316532.peach-pro-active-feature-name {6533  font-size: 0.75rem;6534  color: var(--peach-t1);6535}65366537.peach-pro-deactivate {6538  align-self: center;6539  background: transparent;6540  border: 0;6541  color: var(--peach-t3);6542  font-size: 0.625rem;6543  cursor: pointer;6544  padding: 8px 0 0;6545  margin-top: 16px;6546  letter-spacing: 0.03em;6547  transition: color 0.2s;6548}65496550.peach-pro-deactivate:hover { color: var(--peach-t2); }65516552.peach-pro-deactivate:disabled {6553  opacity: 0.5;6554  cursor: default;6555}65566557/* ── Pro card activation sparkles & thank-you ── */6558button.peach-pro-active-mark-wrap {6559  background: transparent;6560  border: 0;6561  padding: 0;6562  cursor: pointer;6563  position: relative;6564  overflow: visible;6565}65666567.peach-pro-sparks {6568  position: absolute;6569  inset: 0;6570  pointer-events: none;6571  overflow: visible;6572}65736574.peach-pro-spark {6575  position: absolute;6576  top: 50%;6577  left: 50%;6578  font-size: 9px;6579  line-height: 1;6580  opacity: 0;6581  transform: translate(-50%, -50%);6582  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6583}65846585@keyframes peach-pro-spark-fly {6586  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6587  25%  { opacity: 1; }6588  100% {6589    opacity: 0;6590    transform: translate(6591      calc(-50% + var(--spark-x, 0px)),6592      calc(-50% + var(--spark-y, -40px))6593    ) scale(0.8);6594  }6595}65966597.peach-pro-thankyou-text {6598  margin: 4px 0 0;6599  font-size: 0.6875rem;6600  font-style: italic;6601  color: currentColor;6602  opacity: 0;6603  animation: peach-pro-thankyou-flash 2.5s ease both;6604}66056606@keyframes peach-pro-thankyou-flash {6607  0%   { opacity: 0; transform: translateY(4px); }6608  15%  { opacity: 0.75; transform: translateY(0); }6609  75%  { opacity: 0.75; }6610  100% { opacity: 0; }6611}66126613/* ── Pro advanced health remediation queue ──────────────────── */6614.peach-health-pro-queue {6615  display: flex;6616  flex-direction: column;6617  gap: 10px;6618  padding: 12px;6619  margin: 0 0 12px;6620  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6621  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6622  border-radius: 10px;6623}66246625.peach-health-pro-queue-head {6626  display: flex;6627  justify-content: space-between;6628  align-items: baseline;6629}66306631.peach-health-pro-queue-title {6632  font-size: 0.75rem;6633  font-weight: 500;6634  letter-spacing: 0.04em;6635  text-transform: uppercase;6636  color: var(--peach-accent);6637}66386639.peach-health-pro-queue-score {6640  font-size: 0.6875rem;6641  color: var(--peach-t2);6642}66436644.peach-health-pro-row {6645  display: flex;6646  gap: 10px;6647  align-items: center;6648  padding: 8px 0;6649  border-top: 1px solid var(--peach-border);6650}66516652.peach-health-pro-row-info {6653  flex: 1;6654  display: flex;6655  flex-direction: column;6656  gap: 4px;6657  min-width: 0;6658}66596660.peach-health-pro-action {6661  flex: 0 0 auto;6662  padding: 4px 8px;6663  font-size: 0.5625rem;6664  letter-spacing: 0.08em;6665  text-transform: uppercase;6666}66676668.peach-health-pro-row-name {6669  font-size: 0.8125rem;6670  color: var(--peach-t0);6671  overflow: hidden;6672  text-overflow: ellipsis;6673  white-space: nowrap;6674}66756676.peach-health-pro-row-meta {6677  font-size: 0.6875rem;6678  color: var(--peach-t2);6679}66806681.peach-health-pro-bar {6682  height: 2px;6683  background: var(--peach-border);6684  border-radius: 2px;6685  overflow: hidden;6686  margin-top: 2px;6687}66886689.peach-health-pro-bar-fill {6690  height: 100%;6691  background: var(--peach-accent);6692  transition: width 200ms ease-out;6693}66946695/* ── Pro activation celebration ── */6696@keyframes peach-pro-bloom {6697  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6698  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6699                 drop-shadow(0 0 48px var(--peach-glow)); }6700  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6701}67026703@keyframes peach-pro-wordmark-in {6704  from { opacity: 0; transform: translateY(4px); }6705  to   { opacity: 1; transform: translateY(0); }6706}67076708@keyframes peach-pro-fade-out {6709  from { opacity: 1; }6710  to   { opacity: 0; }6711}67126713.peach-pro-celebration {6714  background:6715    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6716    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6717    var(--peach-bg);6718  border: 1px solid var(--peach-t3);6719  box-shadow:6720    0 2px 8px rgba(0,0,0,0.55),6721    0 14px 48px rgba(0,0,0,0.7),6722    0 0 0 1px rgba(240,232,216,0.04);6723  overflow: hidden;6724  width: 320px;6725  height: 520px;6726  display: flex;6727  flex-direction: column;6728  align-items: center;6729  justify-content: center;6730  gap: 8px;6731  padding: 32px 24px;6732  text-align: center;6733}67346735.peach-pro-celebration.is-leaving {6736  animation: peach-pro-fade-out 400ms ease forwards;6737}67386739.peach-pro-bloom-target {6740  display: flex;6741  align-items: center;6742  justify-content: center;6743  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6744  margin-bottom: 12px;6745}67466747.peach-pro-bloom-icon {6748  width: 48px;6749  height: 48px;6750}67516752.peach-pro-wordmark {6753  font-family: var(--font-display);6754  font-size: 22px;6755  font-style: italic;6756  font-weight: 400;6757  color: var(--peach-accent);6758  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6759}67606761.peach-pro-thankyou {6762  font-size: 0.75rem;6763  font-style: italic;6764  color: var(--peach-t2);6765  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6766}676767686769/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6770.peach-pro-notice-banner {6771  display: flex;6772  align-items: center;6773  gap: 8px;6774  padding: 7px 12px;6775  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6776  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6777  font-size: 0.6875rem;6778  color: var(--peach-t2);6779  font-family: "IBM Plex Mono", monospace;6780  flex-shrink: 0;6781}67826783.peach-pro-notice-link {6784  background: none;6785  border: none;6786  padding: 0;6787  cursor: pointer;6788  font-size: 0.6875rem;6789  color: var(--peach-accent);6790  font-family: "IBM Plex Mono", monospace;6791  margin-left: auto;6792  white-space: nowrap;6793}67946795.peach-pro-notice-close {6796  background: none;6797  border: none;6798  padding: 0 0 0 4px;6799  cursor: pointer;6800  font-size: 0.625rem;6801  color: var(--peach-t3);6802  line-height: 1;6803}68046805/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6806   Renders over whatever view is showing. 60-second expiry; the popup ticks6807   the countdown each second and clears the banner when it hits zero. */6808.peach-pair-request-banner {6809  display: flex;6810  flex-direction: column;6811  gap: 8px;6812  padding: 10px 12px;6813  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6814  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6815  font-family: "IBM Plex Mono", monospace;6816  flex-shrink: 0;6817}68186819.peach-pair-toast {6820  padding: 8px 12px;6821  font-family: "IBM Plex Mono", monospace;6822  font-size: 0.75rem;6823  color: var(--peach-t1);6824  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6825  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6826  flex-shrink: 0;6827  text-align: center;6828}68296830.peach-pair-toast strong {6831  color: var(--peach-t0);6832  font-weight: 500;6833}68346835.peach-pair-request-header {6836  display: flex;6837  align-items: center;6838  gap: 8px;6839  font-size: 0.75rem;6840  color: var(--peach-t1);6841}68426843.peach-pair-request-mark {6844  font-size: 0.875rem;6845  display: inline-flex;6846  align-items: center;6847}68486849.peach-pair-request-icon {6850  width: 1em;6851  height: 1em;6852}68536854.peach-pair-request-title {6855  font-weight: 600;6856  color: var(--peach-t0);6857}68586859.peach-pair-request-countdown {6860  margin-left: auto;6861  font-variant-numeric: tabular-nums;6862  color: var(--peach-t2);6863  font-size: 0.6875rem;6864}68656866.peach-pair-request-body {6867  margin: 0;6868  font-size: 0.75rem;6869  color: var(--peach-t1);6870  line-height: 1.4;6871}68726873.peach-pair-request-body strong {6874  color: var(--peach-t0);6875  font-weight: 600;6876}68776878.peach-pair-request-actions {6879  display: flex;6880  gap: 8px;6881  justify-content: flex-end;6882}68836884/* ─── First-run onboarding ──────────────────────────────────────────────6885   Three-card welcome shown once before vault creation. The PeachScript6886   rune background drifts behind everything at very low opacity — it's6887   atmosphere, not focus. The cards themselves use the same panel6888   language as the rest of the popup so the transition into NewVault is6889   continuous, not a jarring switch of visual register. */68906891.peach-onboarding {6892  position: relative;6893  display: flex;6894  flex-direction: column;6895  width: 100%;6896  height: 100%;6897  padding: 16px 16px 18px;6898  box-sizing: border-box;6899  overflow: hidden;6900  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6901}69026903.peach-onboarding.is-completing {6904  animation: peach-onboard-exit 200ms ease-out forwards;6905}69066907.peach-rune-background {6908  position: absolute;6909  inset: 0;6910  width: 100%;6911  height: 100%;6912  pointer-events: none;6913  z-index: 0;6914  transition: opacity 500ms ease-out;6915}69166917.peach-onboarding.is-completing .peach-rune-background {6918  opacity: 0;6919}69206921.peach-onboarding-header {6922  position: relative;6923  z-index: 1;6924  display: flex;6925  align-items: center;6926  margin-bottom: 14px;6927}69286929.peach-onboarding-card {6930  position: relative;6931  z-index: 1;6932  flex: 1;6933  display: flex;6934  flex-direction: column;6935  gap: 10px;6936  padding: 22px 20px;6937  border-radius: 16px;6938  border: 1px solid var(--peach-t3);6939  background:6940    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6941  backdrop-filter: blur(3px);6942  -webkit-backdrop-filter: blur(3px);6943  box-shadow:6944    inset 0 1px 0 rgba(240, 232, 216, 0.04),6945    0 12px 28px rgba(0, 0, 0, 0.12);6946  cursor: pointer;6947  user-select: none;6948  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6949}69506951.peach-onboarding-card.is-exiting {6952  animation: peach-card-out 120ms ease-in forwards;6953  pointer-events: none;6954}69556956.peach-onboarding-card-headline {6957  margin: 0;6958  font-family: var(--font-display);6959  font-style: italic;6960  font-weight: 400;6961  font-size: 22px;6962  line-height: 1.05;6963  color: var(--peach-t0);6964  white-space: pre-line;6965}69666967.peach-onboarding-divider {6968  margin: 4px 0 6px;6969  border: 0;6970  border-top: 1px solid var(--peach-t3);6971  width: 100%;6972}69736974.peach-onboarding-body {6975  margin: 0;6976  font-size: 0.8125rem;6977  line-height: 1.6;6978  color: var(--peach-t1);6979}69806981.peach-onboarding-warning {6982  display: flex;6983  align-items: flex-start;6984  gap: 8px;6985  margin: 6px 0 0;6986  padding-top: 8px;6987  border-top: 1px dashed var(--peach-t3);6988  font-size: 0.8125rem;6989  line-height: 1.5;6990  color: var(--peach-t1);6991}69926993.peach-onboarding-warning-icon {6994  color: var(--peach-accent);6995  font-size: 0.8125rem;6996  line-height: 1.5;6997  flex: 0 0 auto;6998}69997000.peach-onboarding-nav {7001  position: relative;7002  z-index: 1;7003  display: flex;7004  align-items: center;7005  justify-content: space-between;7006  margin-top: 12px;7007  padding: 0 4px;7008}70097010.peach-onboarding-dots {7011  display: flex;7012  align-items: center;7013  gap: 6px;7014}70157016.peach-onboarding-dot {7017  width: 6px;7018  height: 6px;7019  border-radius: 50%;7020  background: var(--peach-t2);7021  transition: width 200ms ease, height 200ms ease, background 200ms ease;7022}70237024.peach-onboarding-dot.is-active {7025  width: 8px;7026  height: 8px;7027  background: var(--peach-accent);7028}70297030.peach-onboarding-next {7031  background: none;7032  border: none;7033  padding: 4px 0;7034  cursor: pointer;7035  font-family: "IBM Plex Mono", monospace;7036  font-size: 0.6875rem;7037  letter-spacing: 0.04em;7038  color: var(--peach-t1);7039  transition: color 150ms ease;7040}70417042.peach-onboarding-next:hover {7043  color: var(--peach-t0);7044}70457046.peach-onboarding-next:disabled {7047  opacity: 0.5;7048  cursor: default;7049}70507051.peach-onboarding-back {7052  background: none;7053  border: none;7054  padding: 4px 0;7055  cursor: pointer;7056  font-family: "IBM Plex Mono", monospace;7057  font-size: 0.6875rem;7058  letter-spacing: 0.04em;7059  color: var(--peach-t2);7060  transition: color 150ms ease;7061}70627063.peach-onboarding-back:hover {7064  color: var(--peach-t0);7065}70667067.peach-onboarding-back:disabled {7068  opacity: 0.5;7069  cursor: default;7070}70717072/* Reserve back-button width on the first card so the dots stay centred */7073.peach-onboarding-back-spacer {7074  width: 44px;7075}70767077.peach-onboarding-choice-row {7078  display: grid;7079  grid-template-columns: 1fr;7080  gap: 8px;7081}70827083.peach-onboarding-choice-heading {7084  margin: 8px 0 -2px;7085  color: var(--peach-t1);7086  font-family: "IBM Plex Mono", monospace;7087  font-size: 0.6875rem;7088  letter-spacing: 0.04em;7089  text-transform: uppercase;7090}70917092.peach-onboarding-choice {7093  min-height: 48px;7094  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);7095  border-radius: 8px;7096  padding: 8px 10px;7097  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7098  color: var(--peach-t0);7099  font-size: 0.76rem;7100  font-weight: 700;7101  text-align: left;7102}71037104.peach-onboarding-choice-label,7105.peach-onboarding-choice-detail {7106  display: block;7107}71087109.peach-onboarding-choice-detail {7110  margin-top: 2px;7111  color: var(--peach-t1);7112  font-size: 0.625rem;7113  font-weight: 400;7114  line-height: 1.35;7115}71167117.peach-onboarding-choice--adopt {7118  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);7119  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7120}71217122.peach-adopt-vault {7123  position: relative;7124  min-height: 100%;7125  padding: 22px;7126  display: grid;7127  place-items: center;7128}71297130.peach-adopt-vault--pair {7131  padding: 10px;7132  overflow-y: auto;7133  scrollbar-width: none;7134}71357136.peach-adopt-vault--pair::-webkit-scrollbar {7137  display: none;7138}71397140.peach-adopt-card {7141  position: relative;7142  z-index: 1;7143  width: min(100%, 330px);7144  padding: 20px;7145  border-radius: 8px;7146  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7147  background: color-mix(in srgb, var(--peach-surface) 90%, transparent);7148  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);7149}71507151.peach-adopt-card--pair {7152  width: 100%;7153  max-height: 500px;7154  margin: auto;7155  padding: 14px 16px 12px;7156  overflow-y: auto;7157  scrollbar-width: none;7158  border-color: color-mix(in srgb, var(--peach-accent) 24%, var(--peach-t0) 10%);7159  border-radius: 16px;7160  background:7161    radial-gradient(7162      circle at 50% -10%,7163      color-mix(in srgb, var(--peach-accent) 14%, transparent),7164      transparent 38%7165    ),7166    color-mix(in srgb, var(--peach-surface) 94%, transparent);7167}71687169.peach-adopt-card--pair::-webkit-scrollbar {7170  display: none;7171}71727173.peach-adopt-card h1 {7174  margin: 0 0 10px;7175  font-size: 1.28rem;7176  line-height: 1.15;7177}71787179.peach-adopt-card p {7180  margin: 0 0 14px;7181  color: var(--peach-t1);7182  line-height: 1.35;7183}71847185.peach-adopt-card .peach-hint-relay {7186  margin: 12px 0 0;7187  font-size: 11px;7188  line-height: 1.4;7189  color: var(--peach-t2);7190  opacity: 0.85;7191}71927193.peach-adopt-input {7194  margin-bottom: 12px;7195}71967197.peach-adopt-card textarea.peach-adopt-input {7198  width: 100%;7199  resize: vertical;7200  overflow-wrap: anywhere;7201  font-family: "IBM Plex Mono", monospace;7202  font-size: 0.64rem;7203}72047205.peach-adopt-qr-video {7206  display: block;7207  width: 100%;7208  max-height: 220px;7209  margin: 0 0 12px;7210  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);7211  border-radius: 8px;7212  background: #000;7213  object-fit: cover;7214}72157216.peach-adoption-source-invitation {7217  display: flex;7218  flex-direction: column;7219  align-items: center;7220  gap: 10px;7221  padding: 4px 18px 16px;7222  text-align: center;7223}72247225.peach-pair-qr {7226  display: block;7227  margin-inline: auto;7228  max-width: min(224px, 100%);7229  height: auto;7230  padding: 8px;7231  border-radius: 10px;7232  background: #fff;7233}72347235.peach-adopt-card > .peach-btn + .peach-btn {7236  margin-top: 8px;7237}72387239.peach-adopt-actions {7240  display: flex;7241  gap: 10px;7242  margin-top: 14px;7243}72447245.peach-adopt-actions > button {7246  flex: 1;7247}72487249.peach-adopt-sas {7250  margin: 18px 0;7251  padding: 14px;7252  border-radius: 8px;7253  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);7254  color: var(--peach-t0);7255  font-size: 1.35rem;7256  font-weight: 800;7257  font-variant-numeric: tabular-nums;7258  text-align: center;7259}72607261.peach-adopt-pairing {7262  text-align: center;7263}72647265.peach-adopt-pairing h1 {7266  max-width: 260px;7267  margin: 0 auto 6px;7268  color: var(--peach-t0);7269  font-family: var(--font-display, Georgia, serif);7270  font-size: 1.42rem;7271  font-style: italic;7272  font-weight: 500;7273  line-height: 1.12;7274  text-wrap: balance;7275}72767277.peach-adopt-pairing .peach-adopt-pair-lede {7278  max-width: 258px;7279  margin: 0 auto;7280  color: color-mix(in srgb, var(--peach-t0) 82%, var(--peach-bg));7281  font-size: 0.73rem;7282  line-height: 1.42;7283  text-wrap: pretty;7284}72857286.peach-adopt-bird-stage {7287  width: min(100%, 260px);7288  height: 102px;7289  margin: -6px auto 2px;7290}72917292.peach-adopt-bird-stage .peach-pair-bird-slot,7293.peach-adopt-bird-stage .peach-pair-bird {7294  width: 90px;7295  height: 90px;7296}72977298.peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7299  left: 12px;7300}73017302.peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7303  right: 12px;7304}73057306.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-desktop {7307  --bb-x: 12px;7308  transform: translateX(12px);7309}73107311.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7312  --bb-x: -12px;7313  transform: translateX(-12px);7314}73157316.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot {7317  animation: peach-adopt-happy-bob 0.8s ease-in-out infinite;7318}73197320.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7321  animation-delay: 0.18s;7322  animation-direction: reverse;7323}73247325@keyframes peach-adopt-happy-bob {7326  0%, 100% {7327    transform: translateX(var(--bb-x, 0)) translateY(0) rotate(0deg);7328  }7329  35% {7330    transform: translateX(var(--bb-x, 0)) translateY(-8px) rotate(-3deg);7331  }7332  70% {7333    transform: translateX(var(--bb-x, 0)) translateY(-3px) rotate(2deg);7334  }7335}73367337.peach-adopt-connection {7338  position: absolute;7339  left: 50%;7340  bottom: 38px;7341  width: 78px;7342  height: 1px;7343  translate: -50% 0;7344  background: color-mix(in srgb, var(--peach-accent) 62%, transparent);7345  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 56%, transparent);7346}73477348.peach-adopt-connection::after {7349  content: "";7350  position: absolute;7351  left: 50%;7352  top: 50%;7353  width: 7px;7354  height: 7px;7355  border-radius: 50%;7356  translate: -50% -50%;7357  background: var(--peach-accent);7358  box-shadow:7359    0 0 0 4px color-mix(in srgb, var(--peach-accent) 17%, transparent),7360    0 0 14px color-mix(in srgb, var(--peach-accent) 74%, transparent);7361  animation: peach-adopt-connection-pulse 1.1s ease-in-out infinite;7362}73637364@keyframes peach-adopt-connection-pulse {7365  0%, 100% { scale: 0.8; opacity: 0.72; }7366  50% { scale: 1.14; opacity: 1; }7367}73687369.peach-adopt-qr-wrap {7370  min-height: 160px;7371  display: grid;7372  place-items: center;7373}73747375.peach-adopt-qr-wrap .peach-hint-error {7376  margin: 12px 0;7377}73787379.peach-adopt-pairing .peach-adopt-pair-status {7380  margin: 0;7381  color: var(--peach-t0);7382  font-size: 0.75rem;7383}73847385.peach-adopt-confirmation {7386  margin-top: 18px;7387  padding: 8px 0 4px;7388}73897390.peach-adopt-confirmation .peach-adopt-confirmation-label {7391  margin: 0 0 7px;7392  color: color-mix(in srgb, var(--peach-accent) 72%, var(--peach-t0));7393  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7394  font-size: 0.625rem;7395  font-weight: 700;7396  letter-spacing: 0.14em;7397}73987399.peach-adopt-confirmation .peach-adoption-sas {7400  margin: 0 auto;7401  padding: 12px 14px;7402  border-color: color-mix(in srgb, var(--peach-accent) 36%, transparent);7403  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7404}74057406.peach-adopt-confirmation .peach-adoption-sas strong {7407  color: color-mix(in srgb, var(--peach-accent) 84%, var(--peach-t0));7408  font-size: 1.58rem;7409  text-shadow: 0 0 16px color-mix(in srgb, var(--peach-accent) 30%, transparent);7410}74117412.peach-adopt-confirmation .peach-adopt-confirmation-help {7413  max-width: 270px;7414  margin: 8px auto 0;7415  color: color-mix(in srgb, var(--peach-t0) 78%, var(--peach-bg));7416  font-size: 0.7rem;7417  line-height: 1.45;7418}74197420.peach-adopt-privacy {7421  display: flex;7422  align-items: flex-start;7423  gap: 9px;7424  margin-top: 10px;7425  padding: 8px 9px;7426  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7427  border-radius: 10px;7428  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);7429  text-align: left;7430}74317432.peach-adopt-privacy svg {7433  width: 16px;7434  height: 16px;7435  flex: 0 0 auto;7436  margin-top: 1px;7437  fill: none;7438  stroke: color-mix(in srgb, var(--peach-accent) 74%, var(--peach-t0));7439  stroke-linecap: round;7440  stroke-linejoin: round;7441  stroke-width: 1.7;7442}74437444.peach-adopt-pairing .peach-adopt-privacy p {7445  margin: 0;7446  color: color-mix(in srgb, var(--peach-t0) 76%, var(--peach-bg));7447  font-size: 0.62rem;7448  line-height: 1.4;7449}74507451.peach-adopt-privacy strong {7452  color: var(--peach-t0);7453  font-weight: 700;7454}74557456.peach-adopt-pair-actions {7457  margin-top: 9px;7458}74597460.peach-adopt-pair-actions > button {7461  width: 100%;7462}74637464.peach-adopt-paired-status {7465  display: inline-flex;7466  align-items: center;7467  gap: 8px;7468  margin: 22px auto 18px;7469  padding: 9px 13px;7470  border: 1px solid color-mix(in srgb, var(--peach-accent) 30%, transparent);7471  border-radius: 999px;7472  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);7473  color: color-mix(in srgb, var(--peach-accent) 78%, var(--peach-t0));7474  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7475  font-size: 0.66rem;7476  font-weight: 700;7477  letter-spacing: 0.04em;7478}74797480.peach-adopt-paired-status span {7481  width: 7px;7482  height: 7px;7483  border-radius: 50%;7484  background: var(--peach-accent);7485  box-shadow: 0 0 8px color-mix(in srgb, var(--peach-accent) 68%, transparent);7486}74877488@media (prefers-reduced-motion: reduce) {7489  .peach-adopt-connection::after {7490    animation: none;7491  }7492}74937494.peach-onboarding-mobile-card-buttons {7495  display: flex;7496  flex-direction: column;7497  gap: 8px;7498  margin-top: 16px;7499}75007501@keyframes peach-onboard-enter {7502  from { opacity: 0; transform: translateY(20px); }7503  to   { opacity: 1; transform: translateY(0); }7504}75057506@keyframes peach-onboard-exit {7507  from { opacity: 1; }7508  to   { opacity: 0; }7509}75107511@keyframes peach-card-in {7512  from { opacity: 0; transform: translateX(12px); }7513  to   { opacity: 1; transform: translateX(0); }7514}75157516@keyframes peach-card-out {7517  from { opacity: 1; transform: translateX(0); }7518  to   { opacity: 0; transform: translateX(-12px); }7519}75207521/* ─── New vault screen — matched to onboarding card language ─────────── */75227523/* Two classes so this beats the shared .peach-screen.lock-screen--vault-stage7524   rule (same element) without loosening the unlock/restore screens. The7525   create-vault screen is the only vault-stage view tall enough to overflow7526   the 520px popup, so its spacing is tuned to fit header → card → restore →7527   recovery warning with nothing clipped. */7528.peach-screen.peach-newvault {7529  position: relative;7530  display: flex;7531  flex-direction: column;7532  gap: 12px;7533  padding: 14px 16px 12px;7534  overflow: hidden;7535}75367537/* Suppress the warm-blob ambient art inherited from .lock-screen — the7538   new vault card now carries the visual weight. */7539.peach-newvault::before {7540  content: none;7541}75427543.peach-newvault-header {7544  position: relative;7545  z-index: 2;7546  display: flex;7547  align-items: center;7548  gap: 10px;7549  margin-bottom: 2px;7550}75517552.peach-newvault-back {7553  display: inline-flex;7554  align-items: center;7555  gap: 4px;7556  background: transparent;7557  border: none;7558  color: var(--peach-t2);7559  font-family: "IBM Plex Mono", monospace;7560  font-size: 0.625rem;7561  letter-spacing: 0.06em;7562  cursor: pointer;7563  padding: 4px 6px;7564  border-radius: 6px;7565  transition: color 120ms ease, background 120ms ease;7566}75677568.peach-newvault-back:hover {7569  color: var(--peach-t0);7570  background: rgba(240, 232, 216, 0.04);7571}75727573.peach-newvault-mark {7574  position: absolute;7575  right: -12px;7576  top: 6px;7577  width: 110px;7578  height: 110px;7579  pointer-events: none;7580  opacity: 0.10;7581  filter: saturate(0.9);7582  z-index: 0;7583}7584.peach-newvault-mark-art {7585  width: 100%;7586  height: 100%;7587}7588.peach-newvault-mark-art path:nth-child(1) {7589  fill: rgba(123, 144, 96, 0.88);7590}7591.peach-newvault-mark-art path:nth-child(2) {7592  stroke: rgba(94, 122, 66, 0.95);7593}75947595.peach-newvault-card {7596  position: relative;7597  z-index: 1;7598  display: flex;7599  flex-direction: column;7600  gap: 8px;7601  padding: 16px 20px 14px;7602  border-radius: 16px;7603  border: 1px solid var(--peach-t3);7604  background:7605    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7606  backdrop-filter: blur(3px);7607  -webkit-backdrop-filter: blur(3px);7608  box-shadow:7609    inset 0 1px 0 rgba(240, 232, 216, 0.04),7610    0 12px 28px rgba(0, 0, 0, 0.12);7611  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7612}76137614.peach-newvault-headline {7615  margin: 0;7616  font-family: var(--font-display);7617  font-style: italic;7618  font-weight: 400;7619  font-size: 24px;7620  line-height: 1.05;7621  color: var(--peach-t0);7622  white-space: pre-line;7623}76247625.peach-newvault-divider {7626  margin: 2px 0 4px;7627  border: 0;7628  border-top: 1px solid var(--peach-t3);7629  width: 100%;7630}76317632.peach-newvault-field {7633  display: flex;7634  flex-direction: column;7635  gap: 4px;7636}76377638.peach-newvault-label-row {7639  display: flex;7640  align-items: center;7641  justify-content: space-between;7642}76437644/* Monospace input scaled to the card. Replaces the 22px unlock-input7645   so the placeholder no longer overflows and the field reads as part7646   of the same surface as the body copy. */7647.peach-newvault-input {7648  font-size: 0.875rem;7649  letter-spacing: 0.18em;7650  padding: 8px 0;7651}7652.peach-newvault-input::placeholder {7653  letter-spacing: 0.18em;7654  color: var(--peach-t2);7655}76567657.peach-newvault-hint {7658  margin: 2px 0 0;7659  font-family: "IBM Plex Mono", monospace;7660  font-size: 0.625rem;7661  color: var(--peach-t2);7662  letter-spacing: 0.04em;7663}76647665.peach-newvault-submit {7666  margin-top: 4px;7667}76687669.peach-newvault-warning {7670  display: flex;7671  align-items: flex-start;7672  gap: 8px;7673  margin: 2px 0 0;7674  padding-top: 8px;7675  border-top: 1px dashed var(--peach-t3);7676  font-size: 0.75rem;7677  line-height: 1.45;7678  color: var(--peach-t1);7679}76807681.peach-newvault-warning-icon {7682  color: var(--peach-accent);7683  font-size: 0.8125rem;7684  line-height: 1.4;7685  flex: 0 0 auto;7686}76877688/* Restore options sit inside the card, directly under "create vault", so7689   they are always reachable without scrolling. The top divider mirrors the7690   warning's so the choice reads as a deliberate fork, not a footnote. */7691.peach-newvault-restore {7692  position: relative;7693  z-index: 1;7694  display: flex;7695  flex-direction: column;7696  gap: 4px;7697  margin-top: 4px;7698  padding-top: 10px;7699  border-top: 1px dashed var(--peach-t3);7700}77017702/* Settings body — warm accent gradient gives the glass something to blur against */7703.peach-settings-body {7704  background:7705    radial-gradient(7706      ellipse at 30% 20%,7707      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7708      transparent 60%7709    );7710}77117712/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7713/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7714 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7715 * (replacing the vault from a backup file) and "hazard" for actions that7716 * are absolutely irreversible (Panic). Both use the same card scaffold so7717 * they read as a pair, but the colour family signals the severity at a7718 * glance — yellow for caution, red for don't.7719 */7720.peach-danger-card {7721  --danger-tint: 235, 158, 52; /* amber */7722  display: flex;7723  flex-direction: column;7724  gap: 8px;7725  padding: 14px;7726  margin-top: 10px;7727  border-radius: 12px;7728  border: 1px solid rgba(var(--danger-tint), 0.32);7729  background:7730    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7731    rgba(var(--danger-tint), 0.04);7732  box-shadow:7733    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7734    0 0 24px rgba(var(--danger-tint), 0.04);7735  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7736}77377738.peach-danger-card:hover {7739  border-color: rgba(var(--danger-tint), 0.55);7740  box-shadow:7741    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7742    0 0 36px rgba(var(--danger-tint), 0.10);7743}77447745.peach-danger-card--hazard {7746  --danger-tint: 220, 38, 38; /* red */7747}77487749.peach-danger-card-head {7750  display: flex;7751  align-items: center;7752  gap: 10px;7753}77547755.peach-danger-card-glyph {7756  width: 28px;7757  height: 28px;7758  flex-shrink: 0;7759  display: flex;7760  align-items: center;7761  justify-content: center;7762  border-radius: 8px;7763  background: rgba(var(--danger-tint), 0.12);7764  color: rgba(var(--danger-tint), 0.95);7765  font-size: 1rem;7766  line-height: 1;7767}77687769.peach-danger-card-title {7770  margin: 0;7771  font-size: 0.8125rem;7772  font-weight: 600;7773  color: rgba(var(--danger-tint), 0.92);7774  letter-spacing: 0.01em;7775}77767777.peach-danger-card-copy {7778  margin: 0;7779  font-size: 0.6875rem;7780  line-height: 1.5;7781  color: var(--peach-t2);7782}77837784.peach-danger-card-button {7785  width: 100%;7786  padding: 9px;7787  margin-top: 4px;7788  background: transparent;7789  border: 1px solid rgba(var(--danger-tint), 0.45);7790  border-radius: 8px;7791  color: rgba(var(--danger-tint), 0.9);7792  font-size: 0.75rem;7793  font-weight: 500;7794  letter-spacing: 0.02em;7795  cursor: pointer;7796  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7797}77987799.peach-danger-card-button:hover {7800  background: rgba(var(--danger-tint), 0.10);7801  border-color: rgba(var(--danger-tint), 0.75);7802  color: rgb(var(--danger-tint));7803}78047805.peach-adoption-sas {7806  margin: 16px auto 0;7807  padding: 12px 16px;7808  border: 1px solid color-mix(in srgb, var(--peach-t0) 18%, transparent);7809  border-radius: 10px;7810  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7811  color: var(--peach-t0);7812  text-align: center;7813}78147815.peach-adoption-sas strong {7816  font-size: 1.65rem;7817  font-variant-numeric: tabular-nums;7818  letter-spacing: 0.18em;7819  white-space: nowrap;7820}78217822/* ── Panic flow (three-step destruction) ───────────────────────────────── */7823.peach-panic {7824  display: flex;7825  flex-direction: column;7826  flex: 1;7827  min-height: 0;7828  padding: 28px 20px 20px;7829  gap: 18px;7830  overflow-y: auto;7831  scrollbar-width: none;7832  -ms-overflow-style: none;7833}78347835.peach-panic::-webkit-scrollbar { display: none; }78367837.peach-panic-step2 {7838  background: rgba(220, 38, 38, 0.04);7839}78407841.peach-panic-step3 {7842  position: relative;7843  background: #0f0505;7844  color: #ffffff;7845  overflow: hidden;7846}78477848.peach-panic-rune-bg {7849  position: absolute;7850  inset: 0;7851  opacity: 0.22;7852  pointer-events: none;7853  overflow: hidden;7854}78557856.peach-panic-rune-bg canvas {7857  width: 100% !important;7858  height: 100% !important;7859}78607861.peach-panic-icon {7862  font-size: 32px;7863  color: rgb(220, 38, 38);7864  line-height: 1;7865}78667867.peach-panic-title {7868  margin: 0;7869  font-size: 18px;7870  font-weight: 500;7871  color: var(--peach-t1);7872}78737874.peach-panic-title--severe {7875  font-size: 20px;7876  font-weight: 700;7877  color: rgb(220, 38, 38);7878}78797880.peach-panic-body {7881  margin: 0;7882  font-size: 0.8125rem;7883  line-height: 1.55;7884  color: var(--peach-t2);7885}78867887.peach-panic-body--severe {7888  color: rgba(220, 38, 38, 0.85);7889}78907891.peach-panic-body--final {7892  font-size: 1rem;7893  font-weight: 700;7894  color: rgb(255, 80, 80);7895  line-height: 1.4;7896}78977898.peach-panic-body--final-intro {7899  font-size: 1rem;7900  color: #ffffff;7901  font-weight: 400;7902}79037904.peach-panic-divider {7905  height: 1px;7906  background: rgba(255, 255, 255, 0.08);7907  margin: 4px 0;7908}79097910.peach-panic-confirm-input {7911  width: 100%;7912  padding: 10px 12px;7913  background: rgba(255, 255, 255, 0.02);7914  border: 1px solid rgba(220, 38, 38, 0.4);7915  border-radius: 8px;7916  color: var(--peach-t1);7917  font-family: "IBM Plex Mono", monospace;7918  font-size: 0.875rem;7919  letter-spacing: 0.12em;7920  text-transform: uppercase;7921}79227923.peach-panic-confirm-input:focus {7924  outline: none;7925  border-color: rgb(220, 38, 38);7926}79277928.peach-panic-confirm-input--match {7929  border-color: rgb(220, 38, 38);7930  color: rgb(220, 38, 38);7931}79327933.peach-panic-confirm-label {7934  font-size: 0.6875rem;7935  color: var(--peach-t2);7936  margin: 0 0 -8px;7937  letter-spacing: 0.06em;7938}79397940.peach-panic-actions {7941  display: flex;7942  flex-direction: column;7943  gap: 10px;7944  margin-top: auto;7945}79467947.peach-panic-button {7948  width: 100%;7949  padding: 12px;7950  border-radius: 8px;7951  font-size: 0.8125rem;7952  cursor: pointer;7953  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7954}79557956.peach-panic-button--primary {7957  background: var(--peach-accent);7958  border: 1px solid var(--peach-accent);7959  color: #ffffff;7960  font-weight: 600;7961}79627963.peach-panic-button--primary:hover {7964  background: color-mix(in srgb, var(--peach-accent) 88%, white);7965}79667967.peach-panic-button--danger {7968  background: rgb(220, 38, 38);7969  border: 1px solid rgb(220, 38, 38);7970  color: #ffffff;7971  font-weight: 600;7972}79737974.peach-panic-button--danger:disabled {7975  opacity: 0.35;7976  cursor: not-allowed;7977}79787979.peach-panic-button--ghost {7980  background: transparent;7981  border: 1px solid rgba(255, 255, 255, 0.18);7982  color: var(--peach-t2);7983}79847985.peach-panic-button--ghost:hover {7986  border-color: rgba(255, 255, 255, 0.32);7987  color: var(--peach-t1);7988}79897990.peach-panic-link {7991  background: transparent;7992  border: none;7993  padding: 4px 0;7994  color: rgba(220, 38, 38, 0.65);7995  font-size: 0.75rem;7996  cursor: pointer;7997  text-align: left;7998  text-decoration: underline;7999  text-underline-offset: 3px;8000}80018002.peach-panic-link:hover {8003  color: rgb(220, 38, 38);8004}80058006.peach-panic-bar {8007  background: rgb(220, 38, 38);8008  padding: 16px 20px;8009  margin: -28px -20px 0;8010  text-align: center;8011  font-size: 0.8125rem;8012  font-weight: 700;8013  letter-spacing: 0.12em;8014  color: #ffffff;8015}80168017.peach-panic-final-button {8018  width: 100%;8019  padding: 14px;8020  background: rgb(220, 38, 38);8021  border: none;8022  border-radius: 8px;8023  color: #ffffff;8024  font-size: 0.875rem;8025  font-weight: 700;8026  letter-spacing: 0.08em;8027  text-transform: uppercase;8028  cursor: pointer;8029  animation: peach-panic-pulse 2s ease-in-out infinite;8030}80318032.peach-settings-license {8033  margin-top: 10px;8034  padding-top: 10px;8035  border-top: 1px solid var(--peach-t3);8036}80378038.peach-settings-label {8039  font-size: 0.625rem;8040  letter-spacing: 0.08em;8041  color: var(--peach-t3);8042  display: block;8043  margin-bottom: 6px;8044}80458046.peach-settings-license-row {8047  display: flex;8048  align-items: center;8049  justify-content: space-between;8050  gap: 8px;8051}80528053.peach-settings-license-key {8054  font-family: 'IBM Plex Mono', monospace;8055  font-size: 0.75rem;8056  color: var(--peach-t0);8057  letter-spacing: 0.04em;8058  word-break: break-all;8059  flex: 1;8060  min-width: 0;8061}80628063.peach-settings-license-key--masked {8064  font-family: 'IBM Plex Mono', monospace;8065  font-size: 0.6rem;8066  color: var(--peach-t1);8067  letter-spacing: 0.18em;8068  user-select: none;8069}80708071.peach-settings-license-actions {8072  display: flex;8073  align-items: center;8074  gap: 2px;8075  flex-shrink: 0;8076}80778078.peach-settings-license-copy {8079  font-size: 0.6875rem;8080  color: var(--peach-accent);8081  background: transparent;8082  border: none;8083  cursor: pointer;8084  padding: 4px 8px;8085  border-radius: 4px;8086  flex-shrink: 0;8087  transition: opacity 150ms ease;8088}80898090.peach-settings-license-copy:hover {8091  opacity: 0.75;8092}80938094.peach-settings-license-toggle {8095  display: flex;8096  align-items: center;8097  justify-content: center;8098  background: transparent;8099  border: none;8100  cursor: pointer;8101  padding: 4px 6px;8102  border-radius: 4px;8103  color: var(--peach-t2);8104  transition: color 150ms ease;8105}81068107.peach-settings-license-toggle:hover {8108  color: var(--peach-t1);8109}81108111@keyframes peach-panic-pulse {8112  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }8113  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }8114}81158116[data-motion="reduce"] .peach-panic-final-button {8117  animation: none;8118}81198120/* Vault History — Settings → Vault sub-view */81218122.peach-history-list {8123  border: 1px solid var(--peach-border);8124  border-radius: 8px;8125  overflow: hidden;8126  margin: 8px 0 4px;8127}81288129.peach-history-row {8130  display: flex;8131  align-items: center;8132  justify-content: space-between;8133  padding: 9px 12px;8134  gap: 10px;8135  border-bottom: 1px solid var(--peach-border);8136}81378138.peach-history-row:last-child {8139  border-bottom: none;8140}81418142.peach-history-meta {8143  display: flex;8144  flex-direction: column;8145  gap: 2px;8146  min-width: 0;8147  flex: 1;8148}81498150.peach-history-time {8151  font-size: 0.75rem;8152  font-family: 'IBM Plex Mono', ui-monospace, monospace;8153  color: var(--peach-t0);8154  white-space: nowrap;8155  overflow: hidden;8156  text-overflow: ellipsis;8157}81588159.peach-history-sub {8160  font-size: 0.625rem;8161  color: var(--peach-t2);8162  letter-spacing: 0.06em;8163  text-transform: uppercase;8164  white-space: nowrap;8165  overflow: hidden;8166  text-overflow: ellipsis;8167}81688169.peach-history-btn {8170  flex-shrink: 0;8171  white-space: nowrap;8172  min-width: 56px;8173  text-align: center;8174}81758176.peach-history-btn.is-busy {8177  opacity: 0.65;8178}81798180.peach-history-footer {8181  font-size: 0.625rem;8182  color: var(--peach-t3);8183  letter-spacing: 0.05em;8184  text-align: right;8185  margin: 0;8186  padding: 2px 0 0;8187}81888189/* ── Context menu + swipe-copy flash ─────────────────────── */8190.peach-context-menu-backdrop {8191  position: fixed;8192  inset: 0;8193  background: rgba(0, 0, 0, 0.45);8194  z-index: 100;8195  display: flex;8196  align-items: flex-end;8197  justify-content: center;8198  animation: peach-ctx-fade 140ms ease both;8199}8200.peach-context-menu {8201  width: min(360px, calc(100vw - 24px));8202  margin-bottom: max(env(safe-area-inset-bottom), 12px);8203  background: var(--peach-bg);8204  border: 1px solid var(--peach-t3);8205  border-radius: 14px;8206  padding: 6px;8207  display: flex;8208  flex-direction: column;8209  gap: 2px;8210  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);8211  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;8212}8213@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }8214@keyframes peach-ctx-rise {8215  from { transform: translateY(16px); opacity: 0; }8216  to   { transform: translateY(0);    opacity: 1; }8217}8218.peach-context-menu-item {8219  background: transparent;8220  color: var(--peach-t0);8221  border: 0;8222  border-radius: 10px;8223  padding: 12px 14px;8224  text-align: left;8225  font: inherit;8226  cursor: pointer;8227}8228.peach-context-menu-item:hover,8229.peach-context-menu-item:focus-visible {8230  background: var(--peach-t3);8231}8232.peach-context-menu-item--danger {8233  color: var(--peach-health-bad, #d96868);8234}8235.peach-context-menu-item--cancel {8236  color: var(--peach-t2);8237  margin-top: 4px;8238  border-top: 1px solid var(--peach-t3);8239  border-radius: 0 0 10px 10px;8240}82418242/* Swipe-to-copy flash */8243.peach-entry-row.is-copy-flash {8244  animation: peach-copy-flash 600ms ease both;8245}8246@keyframes peach-copy-flash {8247  0%   { background: transparent; }8248  20%  { background: rgba(217, 153, 51, 0.32); }8249  100% { background: transparent; }8250}82518252html { font-size: 16px; }82538254/* ── Recovery word entry ─────────────────────────────────────────── */8255.peach-lock-recover-link {8256  display: block;8257  width: 100%;8258  margin-top: 12px;8259  background: none;8260  border: none;8261  font-family: "IBM Plex Mono", monospace;8262  font-size: 0.625rem;8263  letter-spacing: 0.06em;8264  color: var(--peach-t2);8265  cursor: pointer;8266  text-align: center;8267  padding: 4px;8268  transition: color 120ms ease;8269}8270.peach-lock-recover-link:hover {8271  color: var(--peach-t0);8272}82738274.lock-screen--recovery {8275  display: flex;8276  flex-direction: column;8277  align-items: stretch;8278  padding: 12px 20px 24px;8279  overflow: hidden;8280}82818282.peach-recovery-nav {8283  display: flex;8284  align-items: center;8285  position: relative;8286  z-index: 1;8287  margin-bottom: 4px;8288}82898290/* Mask runes to the top decorative band only — keep inputs and the8291   bottom CTA button clear. The bottom of the popup is reserved for8292   submit buttons; rendering runes there overlaps the button glyph. */8293.peach-rune-background--recovery {8294  -webkit-mask-image: linear-gradient(8295    to bottom,8296    black 0px, black 85px,8297    transparent 110px,8298    transparent 100%8299  );8300  mask-image: linear-gradient(8301    to bottom,8302    black 0px, black 85px,8303    transparent 110px,8304    transparent 100%8305  );8306}83078308.peach-recovery-header {8309  text-align: center;8310  margin-bottom: 16px;8311  margin-top: 4px;8312}8313.peach-recovery-header .peach-onboarding-headline {8314  font-size: 1.25rem;8315  font-weight: 300;8316  letter-spacing: 0.02em;8317  margin: 0 0 4px;8318}8319.peach-recovery-header .peach-hint {8320  font-family: "IBM Plex Mono", monospace;8321  font-size: 0.625rem;8322  color: var(--peach-t2);8323  letter-spacing: 0.04em;8324  margin: 0;8325}83268327/* 12-word grid: 2 columns × 6 rows */8328.peach-recovery-grid {8329  display: grid;8330  grid-template-columns: repeat(2, 1fr);8331  gap: 12px 20px;8332  width: 100%;8333  margin-bottom: 0;8334}83358336.peach-recovery-word-slot {8337  display: flex;8338  align-items: center;8339  gap: 6px;8340  min-width: 0;8341}83428343.peach-recovery-word-index {8344  font-family: "IBM Plex Mono", monospace;8345  font-size: 0.5rem;8346  color: rgba(255, 255, 255, 0.35);8347  min-width: 14px;8348  flex-shrink: 0;8349  text-align: right;8350  letter-spacing: 0.04em;8351}83528353.peach-recovery-word-input {8354  flex: 1;8355  min-width: 0;8356  background: transparent;8357  border: none;8358  border-bottom: 1px solid rgba(255, 255, 255, 0.22);8359  color: var(--peach-t0);8360  font-family: "IBM Plex Mono", monospace;8361  font-size: 0.6875rem;8362  letter-spacing: 0.06em;8363  padding: 5px 2px 4px;8364  outline: none;8365  text-transform: lowercase;8366  transition: border-color 120ms ease;8367}8368.peach-recovery-word-input::placeholder {8369  color: rgba(255, 255, 255, 0.18);8370}8371.peach-recovery-word-input:focus {8372  border-bottom-color: var(--peach-accent);8373}83748375.peach-recovery-submit {8376  width: 100%;8377  margin-top: auto;8378}83798380.peach-recovery-new-password-form {8381  width: 100%;8382  display: flex;8383  flex-direction: column;8384  gap: 16px;8385  margin-bottom: 8px;8386}8387.peach-recovery-new-password-form .peach-newvault-field {8388  display: flex;8389  flex-direction: column;8390  gap: 4px;8391}83928393/* ── Recovery words display (post-create) ────────────────────────── */8394.lock-screen--recovery-display {8395  display: flex;8396  flex-direction: column;8397  align-items: stretch;8398  padding: 0 20px 20px;8399  min-height: 0;8400  overflow-y: auto;8401}84028403.peach-recovery-words-display {8404  width: 100%;8405  margin-bottom: 16px;8406  border: 1px solid var(--peach-t3);8407  border-radius: 8px;8408  padding: 12px 14px;8409  background: rgba(245, 240, 234, 0.04);8410}84118412.peach-recovery-words-label {8413  font-family: "IBM Plex Mono", monospace;8414  font-size: 0.5rem;8415  letter-spacing: 0.08em;8416  color: var(--peach-t2);8417  text-transform: uppercase;8418  margin-bottom: 10px;8419}84208421.peach-recovery-word-list {8422  list-style: none;8423  margin: 0;8424  padding: 0;8425  display: grid;8426  grid-template-columns: repeat(2, 1fr);8427  gap: 6px 16px;8428}84298430.peach-recovery-word-item {8431  display: flex;8432  align-items: baseline;8433  gap: 5px;8434}84358436.peach-recovery-word-num {8437  font-family: "IBM Plex Mono", monospace;8438  font-size: 0.5rem;8439  color: var(--peach-t2);8440  width: 14px;8441  flex: 0 0 14px;8442  text-align: right;8443  letter-spacing: 0.04em;8444  font-variant-numeric: tabular-nums;8445}84468447.peach-recovery-download-btn {8448  display: block;8449  margin: 10px auto 0;8450  padding: 4px 10px;8451  background: transparent;8452  border: 1px solid var(--peach-border);8453  border-radius: 6px;8454  color: var(--peach-t2);8455  font-family: "IBM Plex Mono", monospace;8456  font-size: 0.5625rem;8457  letter-spacing: 0.06em;8458  text-transform: lowercase;8459  cursor: pointer;8460  transition: border-color 0.15s, color 0.15s;8461}84628463.peach-recovery-download-btn:hover {8464  border-color: var(--peach-accent);8465  color: var(--peach-t0);8466}84678468.peach-recovery-word-text {8469  font-family: "IBM Plex Mono", monospace;8470  font-size: 0.6875rem;8471  letter-spacing: 0.06em;8472  color: var(--peach-t0);8473  text-transform: lowercase;8474}84758476.peach-hint--warning {8477  color: var(--peach-accent);8478  font-style: italic;8479}8480.peach-hint--success {8481  color: var(--peach-t2);8482  font-family: "IBM Plex Mono", monospace;8483  font-size: 0.625rem;8484  letter-spacing: 0.06em;8485}84868487/* Confirmation step */8488.peach-recovery-confirm {8489  width: 100%;8490  flex: 1;8491  display: flex;8492  flex-direction: column;8493}8494.peach-recovery-confirm-label {8495  font-family: "IBM Plex Mono", monospace;8496  font-size: 0.5625rem;8497  letter-spacing: 0.04em;8498  color: var(--peach-t2);8499  text-align: center;8500  margin: 0 0 12px;8501}8502.peach-recovery-confirm-fields {8503  display: flex;8504  flex-direction: column;8505  gap: 14px;8506  margin-bottom: 10px;8507}8508.peach-recovery-confirm-field {8509  display: flex;8510  align-items: center;8511  gap: 8px;8512}8513.peach-recovery-confirm-num {8514  font-family: "IBM Plex Mono", monospace;8515  font-size: 0.5rem;8516  color: var(--peach-t2);8517  min-width: 44px;8518  letter-spacing: 0.04em;8519}8520.peach-recovery-confirm-input {8521  flex: 1;8522  background: transparent;8523  border: none;8524  border-bottom: 1px solid var(--peach-t3);8525  color: var(--peach-t0);8526  font-family: "IBM Plex Mono", monospace;8527  font-size: 0.6875rem;8528  letter-spacing: 0.06em;8529  padding: 4px 2px 3px;8530  outline: none;8531  text-transform: lowercase;8532  transition: border-color 120ms ease;8533}8534.peach-recovery-confirm-input:focus {8535  border-bottom-color: var(--peach-accent);8536}8537.peach-recovery-confirm-input:disabled {8538  opacity: 0.4;8539  cursor: not-allowed;8540}8541.peach-recovery-confirm-btn {8542  width: 100%;8543  margin-top: auto;8544}85458546/* ============================================================8547   Sync info sheet8548   ============================================================ */85498550.peach-sync-info-backdrop {8551  position: fixed;8552  inset: 0;8553  z-index: 200;8554  background: rgba(0, 0, 0, 0.55);8555  display: flex;8556  align-items: flex-end;8557  animation: peach-fade-in 200ms ease forwards;8558}85598560@keyframes peach-fade-in {8561  from { opacity: 0; }8562  to   { opacity: 1; }8563}85648565.peach-sync-info-sheet {8566  width: 100%;8567  background: var(--peach-bg-card, var(--peach-bg));8568  border-top-left-radius: 20px;8569  border-top-right-radius: 20px;8570  padding: 12px 24px 32px;8571  display: flex;8572  flex-direction: column;8573  gap: 20px;8574  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8575}85768577@keyframes peach-sheet-up {8578  from { transform: translateY(100%); }8579  to   { transform: translateY(0); }8580}85818582.peach-sync-info-handle {8583  width: 36px;8584  height: 4px;8585  border-radius: 2px;8586  background: var(--peach-border);8587  margin: 0 auto 4px;8588  flex-shrink: 0;8589}85908591.peach-sync-info-title {8592  font-family: 'Cormorant Garamond', serif;8593  font-style: italic;8594  font-size: 26px;8595  font-weight: 600;8596  color: var(--peach-t0);8597  margin: 0;8598  line-height: 1.2;8599}86008601.peach-sync-info-body {8602  display: flex;8603  flex-direction: column;8604  gap: 14px;8605}86068607.peach-sync-info-point {8608  display: flex;8609  gap: 12px;8610  align-items: flex-start;8611  font-size: 14px;8612  color: var(--peach-t2);8613  line-height: 1.6;8614  margin: 0;8615}86168617.peach-sync-info-icon {8618  color: var(--peach-accent);8619  font-size: 16px;8620  flex-shrink: 0;8621  margin-top: 1px;8622}86238624.peach-sync-info-actions {8625  display: flex;8626  flex-direction: column;8627  gap: 12px;8628  margin-top: 4px;8629}86308631.peach-sync-info-pro-link {8632  background: none;8633  border: none;8634  font-size: 13px;8635  color: var(--peach-t3);8636  cursor: pointer;8637  padding: 0;8638  font-family: inherit;8639  text-align: center;8640  transition: color 150ms ease;8641}86428643.peach-sync-info-pro-link:hover {8644  color: var(--peach-accent);8645}86468647.peach-btn--full {8648  width: 100%;8649}86508651/* ── Sync screen ── */86528653.peach-sync-coming-soon {8654  display: flex;8655  align-items: flex-start;8656  gap: 10px;8657  padding: 12px 14px;8658  background: var(--peach-s1);8659  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8660  border-radius: 10px;8661}8662.peach-sync-coming-soon__icon {8663  flex-shrink: 0;8664  color: var(--peach-accent);8665  margin-top: 1px;8666  line-height: 0;8667}8668.peach-sync-coming-soon__title {8669  font-family: 'Cormorant Garamond', serif;8670  font-weight: 500;8671  font-size: 13px;8672  color: var(--peach-accent);8673  margin: 0 0 5px;8674  line-height: 1.3;8675}8676.peach-sync-coming-soon__body {8677  font-size: 12px;8678  color: var(--peach-t1);8679  line-height: 1.55;8680  margin: 0;8681}86828683.peach-sync-screen {8684  display: flex;8685  flex-direction: column;8686  height: 100%;8687}86888689.peach-sync-content {8690  flex: 1;8691  overflow-y: auto;8692  padding: 24px 20px 40px;8693  display: flex;8694  flex-direction: column;8695  gap: 24px;8696}86978698/* Intro (State A) */8699.peach-sync-headline {8700  font-family: 'Cormorant Garamond', serif;8701  font-style: italic;8702  font-size: 28px;8703  font-weight: 600;8704  color: var(--peach-t0);8705  margin: 0 0 10px;8706  line-height: 1.2;8707}87088709.peach-sync-intro-body {8710  font-size: 14px;8711  color: var(--peach-t1);8712  line-height: 1.6;8713  margin: 0;8714}87158716.peach-sync-pro-note {8717  display: flex;8718  flex-direction: column;8719  gap: 8px;8720  background: var(--peach-t3);8721  border-radius: 10px;8722  padding: 12px 14px;8723}87248725.peach-sync-pro-note-text {8726  font-size: 12px;8727  color: var(--peach-t2);8728  line-height: 1.5;8729  margin: 0;8730}87318732.peach-sync-pro-link {8733  background: none;8734  border: none;8735  font-size: 12px;8736  color: var(--peach-accent);8737  cursor: pointer;8738  padding: 0;8739  font-family: inherit;8740  text-align: left;8741}87428743/* Status (State C) */8744.peach-sync-status {8745  padding: 12px 0;8746  border-bottom: 1px solid var(--peach-border);8747}87488749.peach-sync-status-row {8750  display: flex;8751  align-items: center;8752  gap: 8px;8753}87548755.peach-sync-dot {8756  width: 7px;8757  height: 7px;8758  border-radius: 50%;8759  flex-shrink: 0;8760}87618762.peach-sync-dot--green { background: var(--peach-health-ok); }8763.peach-sync-dot--amber { background: var(--peach-accent); }87648765.peach-sync-status-text {8766  font-family: 'IBM Plex Mono', monospace;8767  font-size: 11px;8768  color: var(--peach-t2);8769}87708771/* Paired devices */8772.peach-sync-section {8773  display: flex;8774  flex-direction: column;8775  gap: 2px;8776}87778778.peach-sync-section-label {8779  font-family: 'IBM Plex Mono', monospace;8780  font-size: 10px;8781  letter-spacing: 0.1em;8782  color: var(--peach-t3);8783  margin: 0 0 10px;8784}87858786.peach-sync-device-row {8787  display: flex;8788  justify-content: space-between;8789  align-items: baseline;8790  padding: 10px 0;8791  border-bottom: 1px solid var(--peach-border);8792  gap: 12px;8793}87948795.peach-sync-device-name {8796  font-size: 14px;8797  color: var(--peach-t1);8798}87998800.peach-sync-device-meta {8801  font-family: 'IBM Plex Mono', monospace;8802  font-size: 11px;8803  color: var(--peach-t3);8804  white-space: nowrap;8805}88068807.peach-sync-hub-note {8808  padding: 14px 16px;8809  border: 1px solid var(--peach-border);8810  border-radius: 10px;8811  display: flex;8812  flex-direction: column;8813  gap: 6px;8814  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8815}88168817.peach-sync-hub-note-title {8818  font-size: 13px;8819  font-weight: 600;8820  color: var(--peach-t0);8821  margin: 0;8822}88238824.peach-sync-hub-note-body {8825  font-size: 12px;8826  color: var(--peach-t2);8827  line-height: 1.6;8828  margin: 0;8829}88308831/* Action buttons */8832.peach-sync-actions {8833  display: flex;8834  gap: 10px;8835  flex-wrap: wrap;8836}88378838/* Upgrade prompt (State B) */8839.peach-sync-upgrade {8840  display: flex;8841  flex-direction: column;8842  gap: 12px;8843  padding: 16px;8844  border: 1px solid var(--peach-border);8845  border-radius: 10px;8846}88478848.peach-sync-upgrade-text {8849  font-size: 13px;8850  color: var(--peach-t2);8851  line-height: 1.6;8852  margin: 0;8853}88548855/* Network note */8856.peach-sync-network-note {8857  font-size: 12px;8858  color: var(--peach-t3);8859  line-height: 1.6;8860  margin: 0;8861}88628863/* Advanced */8864.peach-sync-advanced {8865  margin-top: auto;8866  padding-top: 16px;8867  border-top: 1px solid var(--peach-border);8868}88698870.peach-sync-advanced-toggle {8871  display: flex;8872  align-items: center;8873  gap: 8px;8874  background: none;8875  border: none;8876  font-family: 'IBM Plex Mono', monospace;8877  font-size: 11px;8878  letter-spacing: 0.08em;8879  color: var(--peach-t3);8880  cursor: pointer;8881  padding: 0;8882  text-transform: uppercase;8883}88848885.peach-sync-advanced-chevron {8886  display: inline-block;8887  transition: transform 200ms ease;8888  font-size: 10px;8889}88908891.peach-sync-advanced-chevron.is-open {8892  transform: rotate(90deg);8893}88948895.peach-sync-advanced-content {8896  margin-top: 14px;8897}88988899.peach-sync-advanced-row {8900  display: flex;8901  justify-content: space-between;8902  align-items: center;8903  gap: 16px;8904}89058906.peach-sync-advanced-title {8907  font-size: 14px;8908  color: var(--peach-t1);8909  margin: 0 0 2px;8910}89118912.peach-sync-advanced-subtitle {8913  font-size: 12px;8914  color: var(--peach-t3);8915  margin: 0;8916  line-height: 1.5;8917}89188919/* ── Notes Mode ── */89208921/* Overlay that crossfades over the vault */8922.peach-notes-overlay {8923  position: fixed;8924  inset: 0;8925  z-index: 90;8926  opacity: 0;8927  pointer-events: none;8928  animation: peach-mode-in 220ms ease-in forwards;8929}89308931.peach-notes-overlay.is-visible {8932  opacity: 1;8933  pointer-events: auto;8934}89358936@keyframes peach-mode-in {8937  from { opacity: 0; }8938  to   { opacity: 1; }8939}89408941/* Top-level notes surface */8942.peach-notes-mode {8943  position: absolute;8944  inset: 0;8945  background: var(--peach-bg);8946  display: flex;8947  flex-direction: column;8948}89498950/* Rune canvas positioned behind content */8951.peach-note-rune-canvas {8952  position: absolute;8953  inset: 0;8954  width: 100%;8955  height: 100%;8956  pointer-events: none;8957  z-index: 0;8958}89598960/* TOC wrapper */8961.peach-notes-toc-wrapper {8962  position: absolute;8963  inset: 0;8964  z-index: 1;8965  opacity: 1;8966  pointer-events: auto;8967  transition: opacity 200ms ease;8968}89698970.peach-notes-toc-wrapper.is-hidden {8971  opacity: 0;8972  pointer-events: none;8973}89748975/* Editor wrapper */8976.peach-notes-editor-wrapper {8977  position: absolute;8978  inset: 0;8979  z-index: 2;8980  opacity: 0;8981  pointer-events: none;8982  transition: opacity 200ms ease;8983}89848985.peach-notes-editor-wrapper.is-visible {8986  opacity: 1;8987  pointer-events: auto;8988}89898990/* TOC inner */8991.peach-notes-toc {8992  position: relative;8993  display: flex;8994  flex-direction: column;8995  height: 100%;8996  padding-top: env(safe-area-inset-top, 0px);8997  padding-bottom: env(safe-area-inset-bottom, 0px);8998}89999000/* Shared header */9001.peach-notes-header {9002  display: flex;9003  align-items: center;9004  padding: 12px 16px;9005  gap: 12px;9006  flex-shrink: 0;9007  min-height: 52px;9008  position: relative;9009  z-index: 2;9010}90119012.peach-notes-back {9013  font-size: 22px;9014  color: var(--peach-t2);9015  background: none;9016  border: none;9017  padding: 4px;9018  cursor: pointer;9019  line-height: 1;9020  flex-shrink: 0;9021  transition: color 150ms ease;9022  -webkit-tap-highlight-color: transparent;9023}90249025.peach-notes-back:active { color: var(--peach-t0); }90269027.peach-notes-header-title {9028  flex: 1;9029  font-family: 'Cormorant Garamond', serif;9030  font-style: italic;9031  font-size: 22px;9032  color: var(--peach-t0);9033  text-align: center;9034}90359036.peach-notes-header-title.is-breadcrumb {9037  font-family: 'IBM Plex Mono', monospace;9038  font-style: normal;9039  font-size: 11px;9040  color: var(--peach-t3);9041  letter-spacing: 0.08em;9042  text-transform: uppercase;9043  cursor: pointer;9044}90459046.peach-notes-header-actions {9047  display: flex;9048  gap: 8px;9049  flex-shrink: 0;9050}90519052.peach-notes-header-btn {9053  width: 36px;9054  height: 36px;9055  display: flex;9056  align-items: center;9057  justify-content: center;9058  background: none;9059  border: none;9060  color: var(--peach-t2);9061  cursor: pointer;9062  border-radius: 8px;9063  font-size: 16px;9064  transition: color 150ms ease, background 150ms ease;9065  -webkit-tap-highlight-color: transparent;9066}90679068.peach-notes-header-btn:active {9069  background: rgba(255,255,255,0.06);9070  color: var(--peach-t0);9071}90729073/* The header + glyph is larger than the search svg so the two right-side9074 * buttons feel visually balanced. The base .peach-notes-header-btn caps font9075 * at 16px which would render the + too small. */9076.peach-notes-new-btn-icon {9077  font-size: 22px;9078  font-weight: 300;9079  line-height: 1;9080}90819082/* Inline search bar */9083.peach-notes-search-input {9084  flex: 1;9085  background: none;9086  border: none;9087  outline: none;9088  font-family: 'IBM Plex Mono', monospace;9089  font-size: 13px;9090  color: var(--peach-t0);9091  padding: 4px 0;9092  letter-spacing: 0.02em;9093}90949095.peach-notes-search-input::placeholder {9096  color: var(--peach-t3);9097}90989099/* TOC list */9100.peach-notes-list-container {9101  flex: 1;9102  overflow-y: auto;9103  overflow-x: hidden;9104  scrollbar-width: none;9105  -webkit-overflow-scrolling: touch;9106  overscroll-behavior: contain;9107  position: relative;9108  z-index: 1;9109}91109111.peach-notes-list-container::-webkit-scrollbar { display: none; }91129113/* Note row */9114.peach-note-row {9115  position: relative;9116  display: grid;9117  grid-template-columns: 44px 8px 1fr 8px auto;9118  align-items: center;9119  min-height: 72px;9120  padding: 16px 20px;9121  border-bottom: 0.5px solid var(--peach-border);9122  cursor: pointer;9123  overflow: hidden;9124  touch-action: pan-y;9125  user-select: none;9126  -webkit-user-select: none;9127  -webkit-tap-highlight-color: transparent;9128}91299130.peach-note-row:first-child {9131  border-top: 0.5px solid var(--peach-border);9132}91339134.peach-note-row:active {9135  background: rgba(255,255,255,0.02);9136}91379138.peach-note-numeral {9139  font-family: 'Cormorant Garamond', serif;9140  font-style: italic;9141  font-size: 15px;9142  color: var(--peach-accent);9143  text-align: right;9144  line-height: 1;9145  flex-shrink: 0;9146}91479148.peach-note-title-gap { /* grid spacer */ }91499150.peach-note-title {9151  font-family: 'Cormorant Garamond', serif;9152  font-style: italic;9153  font-size: 18px;9154  color: var(--peach-t0);9155  line-height: 1.3;9156  min-width: 0;9157  overflow-wrap: break-word;9158}91599160.peach-note-title-match {9161  color: var(--peach-accent);9162}91639164.peach-note-date {9165  font-family: 'IBM Plex Mono', monospace;9166  font-size: 11px;9167  color: var(--peach-t2);9168  white-space: nowrap;9169  text-align: right;9170  flex-shrink: 0;9171  grid-column: 5;9172}91739174/* Swipe underlays */9175.peach-note-row-underlay {9176  position: absolute;9177  inset: 0;9178  display: flex;9179  align-items: center;9180  padding: 0 24px;9181  font-family: 'IBM Plex Mono', monospace;9182  font-size: 11px;9183  letter-spacing: 0.1em;9184  pointer-events: none;9185  z-index: 0;9186}91879188.peach-note-row-underlay--delete {9189  background: #8B2020;9190  color: rgba(255,255,255,0.9);9191  justify-content: flex-end;9192}91939194.peach-note-row-underlay--archive {9195  background: var(--peach-accent);9196  color: #0C0A06;9197  justify-content: flex-start;9198}91999200/* Delete confirm strip */9201.peach-note-delete-confirm {9202  position: absolute;9203  inset: 0;9204  background: var(--peach-bg);9205  display: flex;9206  align-items: center;9207  gap: 12px;9208  padding: 0 20px;9209  font-family: 'IBM Plex Mono', monospace;9210  font-size: 11px;9211  color: var(--peach-t1);9212  letter-spacing: 0.04em;9213  animation: peach-delete-confirm-in 150ms ease both;9214  z-index: 10;9215}92169217@keyframes peach-delete-confirm-in {9218  from { opacity: 0; }9219  to   { opacity: 1; }9220}92219222.peach-note-delete-confirm-btn {9223  background: #8B2020;9224  color: rgba(255,255,255,0.9);9225  border: none;9226  border-radius: 6px;9227  padding: 4px 10px;9228  font-family: 'IBM Plex Mono', monospace;9229  font-size: 10px;9230  cursor: pointer;9231  letter-spacing: 0.06em;9232}92339234.peach-note-delete-cancel-btn {9235  background: none;9236  border: none;9237  color: var(--peach-t3);9238  font-family: 'IBM Plex Mono', monospace;9239  font-size: 10px;9240  cursor: pointer;9241  letter-spacing: 0.06em;9242  padding: 4px 6px;9243}92449245/* + New note button */9246.peach-notes-new-btn {9247  font-family: 'IBM Plex Mono', monospace;9248  font-size: 12px;9249  color: var(--peach-t3);9250  text-align: center;9251  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));9252  background: none;9253  border: none;9254  width: 100%;9255  cursor: pointer;9256  letter-spacing: 0.04em;9257  transition: color 150ms ease;9258  -webkit-tap-highlight-color: transparent;9259}92609261.peach-notes-new-btn:active { color: var(--peach-accent); }92629263/* Empty state */9264.peach-notes-empty {9265  display: flex;9266  flex-direction: column;9267  align-items: center;9268  justify-content: center;9269  flex: 1;9270  padding: 48px 32px;9271  gap: 16px;9272}92739274.peach-notes-empty-text {9275  font-family: 'Cormorant Garamond', serif;9276  font-style: italic;9277  font-size: 20px;9278  color: var(--peach-t3);9279  text-align: center;9280  margin: 0;9281  line-height: 1.4;9282  white-space: pre-line;9283}92849285/* ── Editor surface ── */92869287.peach-note-editor-surface {9288  position: absolute;9289  inset: 0;9290  background: var(--peach-bg);9291  display: flex;9292  flex-direction: column;9293  padding-top: env(safe-area-inset-top, 0px);9294}92959296.peach-note-editor-scroll {9297  flex: 1;9298  overflow-y: auto;9299  overflow-x: hidden;9300  scrollbar-width: none;9301  -webkit-overflow-scrolling: touch;9302  padding: 0 24px 120px;9303  position: relative;9304  z-index: 1;9305}93069307.peach-note-editor-scroll::-webkit-scrollbar { display: none; }93089309/* Desktop toolbar (always visible above body) */9310.peach-note-toolbar-desktop-inline {9311  display: flex;9312  align-items: center;9313  gap: 2px;9314  padding: 6px 0 12px;9315  margin-bottom: 4px;9316  border-bottom: 0.5px solid var(--peach-border);9317}93189319/* Title field */9320.peach-note-title-field {9321  font-family: 'Cormorant Garamond', serif;9322  font-style: italic;9323  font-size: 32px;9324  font-weight: 600;9325  color: var(--peach-t0);9326  line-height: 1.2;9327  padding: 8px 0 0;9328  outline: none;9329  min-height: 44px;9330  word-break: break-word;9331  position: relative;9332  z-index: 1;9333}93349335.peach-note-title-field:empty::before {9336  content: attr(data-placeholder);9337  color: var(--peach-t3);9338  pointer-events: none;9339}93409341/* Hairline separator */9342.peach-note-hairline {9343  height: 0.5px;9344  background: var(--peach-border);9345  margin: 12px 0 20px;9346  position: relative;9347  z-index: 1;9348}93499350/* Body field */9351.peach-note-body-field {9352  font-family: 'DM Sans', sans-serif;9353  font-size: 16px;9354  color: var(--peach-t0);9355  line-height: 1.85;9356  padding: 0;9357  outline: none;9358  min-height: 240px;9359  word-break: break-word;9360  position: relative;9361  z-index: 1;9362}93639364.peach-note-body-field:empty::before {9365  content: attr(data-placeholder);9366  color: var(--peach-t3);9367  font-style: italic;9368  pointer-events: none;9369}93709371.peach-note-body-field h2 {9372  font-family: 'Cormorant Garamond', serif;9373  font-style: italic;9374  font-size: 22px;9375  font-weight: 600;9376  color: var(--peach-t0);9377  margin: 20px 0 8px;9378}93799380.peach-note-body-field blockquote {9381  border-left: 2px solid var(--peach-accent);9382  margin: 12px 0;9383  padding-left: 16px;9384  color: var(--peach-t1);9385  font-style: italic;9386}93879388.peach-note-body-field ul,9389.peach-note-body-field ol {9390  padding-left: 20px;9391  margin: 8px 0;9392}93939394.peach-note-body-field li {9395  margin: 4px 0;9396}93979398.peach-note-body-field hr {9399  border: none;9400  border-top: 0.5px solid var(--peach-border);9401  margin: 16px 0;9402}94039404/* Saved indicator */9405.peach-note-saved-indicator {9406  font-family: 'IBM Plex Mono', monospace;9407  font-size: 11px;9408  color: var(--peach-t3);9409  letter-spacing: 0.04em;9410  text-align: right;9411  padding: 6px 24px;9412  flex-shrink: 0;9413  transition: opacity 300ms ease;9414  pointer-events: none;9415  position: relative;9416  z-index: 1;9417}94189419/* Mobile keyboard toolbar */9420.peach-note-toolbar-mobile {9421  display: flex;9422  align-items: center;9423  padding: 8px 16px;9424  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));9425  background: var(--peach-bg);9426  border-top: 0.5px solid var(--peach-border);9427  gap: 4px;9428  flex-shrink: 0;9429  position: relative;9430  z-index: 10;9431}94329433.peach-note-toolbar-btn {9434  min-width: 36px;9435  height: 36px;9436  display: flex;9437  align-items: center;9438  justify-content: center;9439  background: none;9440  border: none;9441  border-radius: 8px;9442  cursor: pointer;9443  font-size: 14px;9444  color: var(--peach-t1);9445  font-family: 'DM Sans', sans-serif;9446  font-weight: 600;9447  transition: background 100ms ease, color 100ms ease;9448  -webkit-tap-highlight-color: transparent;9449}94509451.peach-note-toolbar-btn--italic { font-style: italic; }9452.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }9453.peach-note-toolbar-btn:active { background: rgba(255,255,255,0.08); }94549455.peach-note-toolbar-divider {9456  width: 0.5px;9457  height: 20px;9458  background: var(--peach-border);9459  margin: 0 4px;9460  flex-shrink: 0;9461}94629463.peach-note-toolbar-spacer { flex: 1; }94649465/* Desktop: larger headline in TOC */9466@media (min-width: 400px) {9467  .peach-notes-header-title:not(.is-breadcrumb) {9468    font-size: 32px;9469  }94709471  .peach-note-row {9472    min-height: 64px;9473    padding: 14px 16px;9474  }9475}94769477/* Flying title — shared element during expansion/collapse */94789479/* ─── Light theme overrides ───────────────────────────────────────────────9480   Tokens that cannot be expressed as variable substitutions — hardcoded9481   context-specific values that need separate light-mode rules. */94829483/* Settings section headers: use text-label (#79766F) per restoration brief —9484   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9485   presence without fighting the light parchment background. */9486.light .peach-settings-sub-label,9487[data-theme="light"] .peach-settings-sub-label,9488.light .peach-settings-nav-label,9489[data-theme="light"] .peach-settings-nav-label {9490  color: #79766F;9491}94929493/* Secondary action buttons (ghost / subtle): filled with input-well surface9494   so they read as recessed against the parchment card background. */9495.light .peach-btn--ghost:not(.peach-icon-btn),9496[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9497  background: #EEE7DD;9498  border-color: #DDD5CB;9499  color: #1A1208;9500}9501.light .peach-icon-btn,9502[data-theme="light"] .peach-icon-btn {9503  background: transparent;9504  border-color: transparent;9505}9506.light .peach-btn--subtle,9507[data-theme="light"] .peach-btn--subtle {9508  background: #EEE7DD;9509  border-color: #DDD5CB;9510}95119512/* Wide secondary action button on the lock screen — override the9513   hardcoded dark-mode rgba values with warm parchment equivalents. */9514.light .peach-lock-secondary,9515[data-theme="light"] .peach-lock-secondary {9516  background: #EEE7DD;9517  border-color: #DDD5CB;9518  color: #1A1208;9519}9520.light .peach-lock-secondary:hover,9521[data-theme="light"] .peach-lock-secondary:hover {9522  background: #F0E9DF;9523}95249525/* Entry row hover: bg-row lifts the row above the card surface. */9526.light .peach-entry-row:hover,9527[data-theme="light"] .peach-entry-row:hover {9528  background: #F2EBE1;9529}9530.light .peach-entry-row.is-active,9531[data-theme="light"] .peach-entry-row.is-active {9532  background: #F2EBE1;9533}9534.light .peach-entry-row.is-selected,9535[data-theme="light"] .peach-entry-row.is-selected {9536  background: #F5EDE2;9537}95389539/* ──────────────────────────────────────────────────────────────────────────9540   Pair-device flow — bird-stage animation (Phase 1)9541   See src/popup/components/PairingBirds.tsx and the brief §6.2.9542   Three-act animation gated on the [data-phase] attribute of9543   .peach-pair-pair; child layers (birds, sound arcs, flight wave, dot)9544   each react via either pose class or visibility flag.9545   Tokens: accent surfaces use var(--peach-accent); bird illustration9546   colours are baked into the SVG per the brand-peach exception in §3.1.9547   ────────────────────────────────────────────────────────────────────── */95489549.peach-pair-pair {9550  position: absolute;9551  inset: 0;9552  z-index: 3;9553  display: flex;9554  flex-direction: column;9555  padding: 14px 12px 12px;9556  width: 100%;9557  box-sizing: border-box;9558  gap: 0;9559  background:9560    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9561    var(--peach-bg);9562  color: var(--peach-t0);9563  overflow-y: auto;9564  overflow-x: hidden;9565  scrollbar-width: none;9566  isolation: isolate;9567  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9568}9569@keyframes peach-pair-overlay-in {9570  from { opacity: 0; transform: translateY(8px); }9571  to   { opacity: 1; transform: translateY(0); }9572}9573.peach-pair-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9574.peach-pair-pair::before {9575  content: '';9576  position: absolute;9577  inset: 0;9578  border-radius: inherit;9579  pointer-events: none;9580  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9581  z-index: 0;9582}9583.peach-pair-pair > * { position: relative; z-index: 1; }95849585/* Header --------------------------------------------------------------- */9586.peach-pair-head {9587  display: flex; align-items: center; gap: 10px;9588}9589.peach-pair-back {9590  width: 32px; height: 32px;9591  display: inline-flex; align-items: center; justify-content: center;9592  background: transparent;9593  border: none;9594  border-radius: 8px;9595  color: var(--peach-t1);9596  cursor: pointer;9597  transition: color 0.15s ease, box-shadow 0.15s ease;9598}9599.peach-pair-back:hover {9600  color: var(--peach-accent);9601  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9602}9603.peach-pair-title {9604  font-family: var(--font-display, Georgia, serif);9605  font-style: italic;9606  font-size: 24px;9607  font-weight: 500;9608  letter-spacing: 0.005em;9609  color: var(--peach-t0);9610  line-height: 1;9611}9612.peach-pair-head-spacer { flex: 1; }96139614/* Chip row ------------------------------------------------------------- */9615.peach-pair-chip-row {9616  display: flex;9617  align-items: center;9618  justify-content: flex-start;9619  margin-top: 12px;9620}9621.peach-pair-chip {9622  display: inline-flex; align-items: center; gap: 8px;9623  padding: 5px 10px 5px 8px;9624  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9625  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9626  border-radius: 999px;9627  font-family: var(--peach-mono, ui-monospace, monospace);9628  font-size: 11px;9629  letter-spacing: 0.04em;9630  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9631}9632.peach-pair-chip-dot {9633  width: 6px; height: 6px; border-radius: 50%;9634  background: var(--peach-accent);9635  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9636}9637.peach-pair-chip[data-phase="paired"] {9638  background: color-mix(in srgb, #4f9eda 12%, transparent);9639  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9640  color: #76b6e8;9641}9642.peach-pair-chip[data-phase="paired"] .peach-pair-chip-dot {9643  background: #76b6e8;9644  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9645}9646.peach-pair-chip[data-phase="timeout"],9647.peach-pair-chip[data-phase="mic_denied"],9648.peach-pair-chip[data-phase="version_mismatch"],9649.peach-pair-chip[data-phase="handshake_failed"] {9650  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9651  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9652  color: var(--peach-warn, #d29257);9653}9654.peach-pair-chip[data-phase="timeout"] .peach-pair-chip-dot,9655.peach-pair-chip[data-phase="mic_denied"] .peach-pair-chip-dot,9656.peach-pair-chip[data-phase="version_mismatch"] .peach-pair-chip-dot,9657.peach-pair-chip[data-phase="handshake_failed"] .peach-pair-chip-dot {9658  background: var(--peach-warn, #d29257);9659  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9660}966196629663/* Bird stage ----------------------------------------------------------- */9664.peach-pair-stage {9665  position: relative;9666  height: 180px;9667  margin: 8px auto 18px;9668  width: 300px;9669  display: flex;9670  align-items: flex-end;9671  justify-content: center;9672}9673.peach-pair-bird-slot {9674  position: absolute;9675  bottom: 0;9676  width: 108px;9677  height: 108px;9678  transform-origin: 50% 95%;9679}9680.peach-pair-bird-slot-desktop { left: 12px; }9681.peach-pair-bird-slot-mobile { right: 12px; }9682.peach-pair-stage.act-handshake .peach-pair-bird-slot-desktop,9683.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop {9684  transform: translateX(6px);9685  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9686}9687.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop { --bb-x: 6px; }9688.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { --bb-x: -6px; }9689.peach-pair-stage.act-paired .peach-pair-bird-slot {9690  animation: peach-pair-happy-bob 1.2s ease-in-out infinite;9691}9692.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { animation-delay: 0.2s; }9693@keyframes peach-pair-happy-bob {9694  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9695  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9696}96979698/* Bird internal -------------------------------------------------------- */9699.peach-pair-bird {9700  width: 108px;9701  height: 108px;9702  transform-origin: 50% 95%;9703}9704.peach-pair-bird svg { width: 100%; height: 100%; overflow: visible; }97059706.peach-pair-bird-body {9707  transform-origin: 50% 80%;9708  animation: peach-pair-bird-bob 2.4s ease-in-out infinite;9709}9710.peach-pair-bird-pose-chirping .peach-pair-bird-body { animation-duration: 1.4s; }9711.peach-pair-bird-pose-happy .peach-pair-bird-body   { animation: peach-pair-bird-celebrate 0.9s ease-in-out infinite; }9712.peach-pair-bird-pose-attentive .peach-pair-bird-body { animation-duration: 2.0s; }97139714@keyframes peach-pair-bird-bob {9715  0%, 100% { transform: translateY(0) rotate(0deg); }9716  50%      { transform: translateY(-2px) rotate(-1deg); }9717}9718@keyframes peach-pair-bird-celebrate {9719  0%, 100% { transform: translateY(0) rotate(0deg); }9720  25%      { transform: translateY(-4px) rotate(-2deg); }9721  75%      { transform: translateY(-4px) rotate(2deg); }9722}97239724.peach-pair-bird-wing {9725  transform-origin: 50% 50%;9726  animation: peach-pair-bird-flap 0.9s ease-in-out infinite;9727}9728.peach-pair-bird-pose-happy .peach-pair-bird-wing { animation-duration: 0.35s; }9729.peach-pair-bird-pose-attentive .peach-pair-bird-wing { animation-duration: 1.4s; }9730@keyframes peach-pair-bird-flap {9731  0%, 100% { transform: scaleY(1); }9732  50%      { transform: scaleY(0.85); }9733}97349735.peach-pair-bird-head-group {9736  transform-origin: 95px 52px;9737  animation: peach-pair-bird-bob-head 2.6s ease-in-out infinite;9738}9739.peach-pair-bird-pose-chirping .peach-pair-bird-head-group { animation-duration: 0.45s; }9740.peach-pair-bird-pose-attentive .peach-pair-bird-head-group { animation: none; }9741@keyframes peach-pair-bird-bob-head {9742  0%, 100% { transform: rotate(0deg); }9743  50%      { transform: rotate(3deg); }9744}97459746.peach-pair-bird-eye-group { transform-origin: center; }9747.peach-pair-bird-blink { animation: peach-pair-bird-blink 4s ease-in-out infinite; }9748@keyframes peach-pair-bird-blink {9749  0%, 92%, 100% { transform: scaleY(1); }9750  95%           { transform: scaleY(0.1); }9751}97529753.peach-pair-bird-aura {9754  animation: peach-pair-bird-aura 2.6s ease-in-out infinite;9755}9756.peach-pair-bird-pose-happy .peach-pair-bird-aura { animation-duration: 1.4s; }9757@keyframes peach-pair-bird-aura {9758  0%, 100% { opacity: 0; }9759  50%      { opacity: 0.18; }9760}97619762.peach-pair-bird-tail {9763  transform-origin: 50% 100%;9764  animation: peach-pair-bird-tail-wag 3s ease-in-out infinite;9765}9766@keyframes peach-pair-bird-tail-wag {9767  0%, 100% { transform: rotate(0deg); }9768  50%      { transform: rotate(2deg); }9769}97709771.peach-pair-bird-pose-happy .peach-pair-bird-shadow { animation: peach-pair-bird-shadow-pulse 0.9s ease-in-out infinite; }9772@keyframes peach-pair-bird-shadow-pulse {9773  0%, 100% { transform: scaleX(1); opacity: 0.45; }9774  50%      { transform: scaleX(0.92); opacity: 0.3; }9775}97769777/* Per-pose variants --------------------------------------------------- */9778.peach-pair-bird-pose-sad .peach-pair-bird-head-group { transform: translateY(4px) rotate(8deg); }9779.peach-pair-bird-pose-sad .peach-pair-bird-tuft { transform: rotate(15deg) translateY(2px); }9780.peach-pair-bird-pose-sad .peach-pair-bird-tail { transform: rotate(8deg) translateY(2px); }9781.peach-pair-bird-pose-hidden { opacity: 0; }97829783/* Rest state — bird stage at idle pose, primary CTA + paired list */9784.peach-pair-pair[data-phase="idle"] .peach-pair-stage {9785  height: 160px;9786}97879788/* Sound arcs ----------------------------------------------------------- */9789.peach-pair-arcs {9790  position: absolute;9791  top: 18px;9792  width: 96px;9793  height: 70px;9794  pointer-events: none;9795}9796.peach-pair-arcs-right { right: -60px; }9797.peach-pair-arcs-left  { left: -60px; transform: scaleX(-1); }9798.peach-pair-arc {9799  position: absolute;9800  top: 50%;9801  left: 0;9802  width: 40px;9803  height: 40px;9804  margin-top: -20px;9805  border: 1.2px solid #f4d5a8;9806  border-color: transparent #f4d5a8 transparent transparent;9807  border-radius: 50%;9808  opacity: 0;9809  animation: peach-pair-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9810}9811@keyframes peach-pair-arc-expand {9812  0%   { transform: scale(0.4); opacity: 0; }9813  20%  { opacity: 0.9; }9814  100% { transform: scale(1.6); opacity: 0; }9815}98169817/* Flight wave ---------------------------------------------------------- */9818.peach-pair-flight-track {9819  position: absolute;9820  inset: 32px 36px 38px 36px;9821  pointer-events: none;9822}9823.peach-pair-flight-wave {9824  position: absolute;9825  top: 8px;9826  left: 76px;9827  right: 76px;9828  height: 60px;9829  width: auto;9830  opacity: 0;9831  transition: opacity 0.15s ease;9832  stroke: #f4d5a8;9833  fill: none;9834}9835.peach-pair-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9836.peach-pair-flight-wave.is-visible { opacity: 1; }9837.peach-pair-flight-path,9838.peach-pair-flight-path-2 {9839  stroke-dasharray: 240;9840  stroke-dashoffset: 240;9841  stroke-linecap: round;9842  fill: none;9843}9844.peach-pair-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9845.peach-pair-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9846.peach-pair-flight-wave.is-visible .peach-pair-flight-path {9847  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9848}9849.peach-pair-flight-wave.is-visible .peach-pair-flight-path-2 {9850  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9851}9852@keyframes peach-pair-fly {9853  0%   { stroke-dashoffset: 240; opacity: 0; }9854  20%  { opacity: 1; }9855  100% { stroke-dashoffset: -120; opacity: 0; }9856}98579858/* Connection dot ------------------------------------------------------- */9859.peach-pair-dot {9860  position: absolute;9861  top: 50%; left: 50%;9862  transform: translate(-50%, -50%);9863  width: 40px; height: 40px;9864  opacity: 0;9865  pointer-events: none;9866  transition: opacity 0.3s ease;9867  color: var(--peach-accent);9868}9869.peach-pair-dot.is-visible { opacity: 1; }9870.peach-pair-dot-glow {9871  position: absolute; top: 50%; left: 50%;9872  transform: translate(-50%, -50%);9873  width: 38px; height: 38px;9874  border-radius: 50%;9875  filter: blur(10px);9876  opacity: 0.55;9877  background: var(--peach-accent);9878  animation: peach-pair-dot-bloom 1.4s ease-out;9879}9880.peach-pair-dot-core {9881  position: absolute; top: 50%; left: 50%;9882  transform: translate(-50%, -50%);9883  width: 8px; height: 8px;9884  border-radius: 50%;9885  background: var(--peach-accent);9886  box-shadow: 0 0 12px currentColor;9887  animation: peach-pair-dot-core 1.4s ease-out;9888}9889.peach-pair-dot-ring {9890  position: absolute; top: 50%; left: 50%;9891  width: 60px; height: 60px;9892  transform: translate(-50%, -50%);9893  animation: peach-pair-dot-ring 1.4s linear;9894  stroke: var(--peach-accent);9895}9896@keyframes peach-pair-dot-bloom {9897  0%   { width: 4px; height: 4px; opacity: 0; }9898  35%  { width: 60px; height: 60px; opacity: 0.7; }9899  100% { width: 38px; height: 38px; opacity: 0.55; }9900}9901@keyframes peach-pair-dot-core {9902  0%   { width: 0; height: 0; }9903  35%  { width: 12px; height: 12px; }9904  100% { width: 8px; height: 8px; }9905}9906@keyframes peach-pair-dot-ring {9907  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }9908  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }9909  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }9910}99119912/* Motes — drift upward across the stage */9913.peach-pair-motes {9914  position: absolute;9915  inset: 0;9916  pointer-events: none;9917}9918.peach-pair-mote {9919  position: absolute;9920  width: 2px; height: 2px;9921  background: color-mix(in srgb, var(--peach-text) 35%, transparent);9922  border-radius: 50%;9923  bottom: 32px;9924  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);9925  opacity: 0;9926  animation: peach-pair-mote-drift 6s linear infinite;9927  animation-delay: calc(var(--mote-i, 0) * 0.7s);9928}9929@keyframes peach-pair-mote-drift {9930  0%   { transform: translateY(0); opacity: 0; }9931  10%  { opacity: 0.6; }9932  90%  { opacity: 0.1; }9933  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }9934}99359936/* Status copy ---------------------------------------------------------- */9937.peach-pair-copy-host {9938  margin: 4px 4px 10px;9939  text-align: center;9940  min-height: 50px;9941}9942.peach-pair-copy {9943  animation: peach-pair-copy-in 0.35s ease both;9944}9945@keyframes peach-pair-copy-in {9946  from { opacity: 0; transform: translateY(4px); }9947  to   { opacity: 1; transform: translateY(0); }9948}9949.peach-pair-headline {9950  font-family: var(--font-display, Georgia, serif);9951  font-style: italic;9952  font-size: 20px;9953  font-weight: 500;9954  line-height: 1.2;9955  letter-spacing: 0.005em;9956  color: var(--peach-t0);9957  margin-bottom: 6px;9958}9959.peach-pair-copy-listening .peach-pair-headline,9960.peach-pair-copy-chirping .peach-pair-headline,9961.peach-pair-copy-idle .peach-pair-headline {9962  font-family: inherit;9963  font-style: normal;9964  font-weight: 500;9965  font-size: 15px;9966  color: var(--peach-t0);9967  letter-spacing: 0;9968}9969.peach-pair-copy-paired .peach-pair-headline {9970  color: var(--peach-t0);9971  font-weight: 600;9972}9973.peach-pair-sub {9974  font-size: 12.5px;9975  line-height: 1.45;9976  color: var(--peach-t1);9977  max-width: 280px;9978  margin: 0 auto;9979  text-wrap: pretty;9980}99819982/* Status action -------------------------------------------------------- */9983.peach-pair-action {9984  margin: 2px 4px 10px;9985  margin-top: auto;9986  display: flex;9987  flex-direction: column;9988  gap: 8px;9989}9990.peach-pair-action-waiting {9991  display: flex;9992  align-items: center;9993  justify-content: space-between;9994  gap: 12px;9995}9996.peach-pair-cancel {9997  min-width: 96px;9998}9999.peach-pair-listening {10000  display: inline-flex; align-items: center; gap: 4px;10001  font-family: var(--peach-mono, ui-monospace, monospace);10002  font-size: 9.5px;10003  text-transform: uppercase;10004  letter-spacing: 0.12em;10005  color: var(--peach-t1);10006  padding: 8px 10px;10007}10008.peach-pair-listen-dot {10009  width: 4px; height: 4px;10010  border-radius: 50%;10011  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);10012  animation: peach-pair-listen-pulse 1.2s ease-in-out infinite;10013}10014.peach-pair-listen-dot:nth-child(2) { animation-delay: 0.2s; }10015.peach-pair-listen-dot:nth-child(3) { animation-delay: 0.4s; }10016.peach-pair-listen-label { margin-left: 6px; }10017@keyframes peach-pair-listen-pulse {10018  0%, 100% { opacity: 0.25; transform: scale(0.9); }10019  50%      { opacity: 1;     transform: scale(1.15); }10020}1002110022.peach-pair-action-handshake {10023  display: flex;10024  flex-direction: column;10025  align-items: center;10026  gap: 8px;10027  padding: 8px 4px;10028}10029.peach-pair-meter {10030  width: 100%;10031  max-width: 280px;10032  height: 2px;10033  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);10034  border-radius: 2px;10035  position: relative;10036  overflow: hidden;10037}10038.peach-pair-meter-bar {10039  position: absolute;10040  top: 0; bottom: 0;10041  width: 30%;10042  left: -30%;10043  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);10044  animation: peach-pair-meter-sweep 1.4s ease-in-out infinite;10045}10046@keyframes peach-pair-meter-sweep {10047  0%   { left: -30%; }10048  100% { left: 100%; }10049}10050.peach-pair-meter-label {10051  font-family: var(--peach-mono, ui-monospace, monospace);10052  font-size: 9.5px;10053  text-transform: uppercase;10054  letter-spacing: 0.14em;10055  color: var(--peach-t1);10056}1005710058.peach-pair-action-paired {10059  display: flex;10060  align-items: center;10061  gap: 10px;10062}10063.peach-pair-device-confirm {10064  flex: 1;10065  display: inline-flex;10066  align-items: center;10067  gap: 8px;10068  padding: 9px 10px 9px 12px;10069  border-radius: 10px;10070  background: color-mix(in srgb, #76b6e8 12%, transparent);10071  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);10072  font-size: 12.5px;10073  color: var(--peach-t0);10074  min-width: 0;10075}10076.peach-pair-device-confirm-glyph {10077  display: inline-flex;10078  color: #76b6e8;10079}10080.peach-pair-device-confirm-name {10081  flex: 1;10082  overflow: hidden;10083  text-overflow: ellipsis;10084  white-space: nowrap;10085}10086.peach-pair-device-confirm-trust {10087  font-family: var(--peach-mono, ui-monospace, monospace);10088  font-size: 9.5px;10089  text-transform: uppercase;10090  letter-spacing: 0.1em;10091  color: #76b6e8;10092  padding: 2px 6px;10093  border-radius: 4px;10094  background: color-mix(in srgb, #76b6e8 14%, transparent);10095}10096.peach-pair-done {10097  min-width: 80px;10098}10099.peach-pair-retry {10100  align-self: center;10101  display: block;10102  margin: 6px auto 0;10103  min-width: 120px;10104}10105.peach-pair-mic-help {10106  font-size: 12px;10107  color: var(--peach-t1);10108  text-align: center;10109  max-width: 320px;10110  margin: 0 auto;10111}1011210113/* Rest state — bird stage at idle pose, primary CTA + paired list */10114.peach-pair-pair[data-phase="idle"] .peach-pair-stage {10115  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */10116  height: 160px;10117}10118.peach-pair-pair-start {10119  width: 100%;10120  display: inline-flex;10121  align-items: center;10122  justify-content: center;10123  gap: 8px;10124  padding: 11px 14px;10125  border-radius: 10px;10126  background: var(--peach-accent);10127  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);10128  color: #1a0905;10129  font-family: inherit;10130  font-size: 13px;10131  font-weight: 600;10132  letter-spacing: 0.01em;10133  cursor: pointer;10134  transition: filter 0.15s ease, transform 0.1s ease;10135}10136.peach-pair-pair-start:hover { filter: brightness(1.08); }10137.peach-pair-pair-start:active { transform: translateY(1px); }1013810139.peach-pair-paired-section {10140  margin-top: 14px;10141  display: flex;10142  flex-direction: column;10143  gap: 8px;10144}10145.peach-pair-paired-heading {10146  margin: 0;10147  font-family: var(--peach-mono, ui-monospace, monospace);10148  font-size: 10px;10149  font-weight: 500;10150  letter-spacing: 0.14em;10151  text-transform: uppercase;10152  color: var(--peach-t1);10153}1015410155/* Footer --------------------------------------------------------------- */10156.peach-pair-foot {10157  margin: 10px -4px -2px;10158  margin-top: auto;10159}10160.peach-pair-foot-divider {10161  height: 1px;10162  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);10163  margin-bottom: 10px;10164}10165.peach-pair-foot-text {10166  font-size: 11px;10167  line-height: 1.5;10168  color: var(--peach-t1);10169  text-align: center;10170  padding: 0 4px;10171  text-wrap: pretty;10172}1017310174/* Screen-reader-only live region. Kept off the visual flow but read by10175   assistive tech as the pairing phase advances. */10176.peach-sr-only {10177  position: absolute;10178  width: 1px; height: 1px;10179  padding: 0; margin: -1px;10180  overflow: hidden;10181  clip: rect(0, 0, 0, 0);10182  white-space: nowrap;10183  border: 0;10184}1018510186/* Reduced motion — stage simplifies to opacity transitions only */10187@media (prefers-reduced-motion: reduce) {10188  .peach-pair-bird-body,10189  .peach-pair-bird-head-group,10190  .peach-pair-bird-beak,10191  .peach-pair-bird-wing,10192  .peach-pair-bird-tuft,10193  .peach-pair-bird-tail,10194  .peach-pair-bird-eye-group,10195  .peach-pair-bird-aura,10196  .peach-pair-arc,10197  .peach-pair-flight-path,10198  .peach-pair-flight-path-2,10199  .peach-pair-dot-glow,10200  .peach-pair-dot-core,10201  .peach-pair-dot-ring,10202  .peach-pair-mote,10203  .peach-pair-meter-bar,10204  .peach-pair-listen-dot,10205  .peach-pair-bird-slot,10206  .peach-pair-bird-slot-mobile {10207    animation: none !important;10208    transition: opacity 0.2s linear !important;10209  }10210}1021110212/* ─────────────────────────────────────────────────────────────────10213   Settings → Sync surface. Wraps the same bird10214   animation used by the pairing flow with a paired-devices list and10215   the "Pair a device" CTA.10216   ───────────────────────────────────────────────────────────────── */10217.peach-pair-settings {10218  position: absolute;10219  inset: 0;10220  z-index: 3;10221  display: flex;10222  flex-direction: column;10223  gap: 18px;10224  padding: 14px 12px 12px;10225  width: 100%;10226  box-sizing: border-box;10227  overflow-y: auto;10228  overflow-x: hidden;10229  /* Same warm surface as the pairing screen — unifies the two views. */10230  background:10231    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),10232    var(--peach-bg);10233  color: var(--peach-t0);10234  isolation: isolate;10235  /* Hide native scrollbar — content fits 99% of the time and a chunky10236     gutter ruins the surface. */10237  scrollbar-width: none;10238  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;10239}10240.peach-pair-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }10241.peach-pair-settings::before {10242  content: '';10243  position: absolute;10244  inset: 0;10245  pointer-events: none;10246  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);10247  z-index: 0;10248}10249.peach-pair-settings > * { position: relative; z-index: 1; }1025010251.peach-pair-settings--pairing {10252  padding: 0;10253  align-items: stretch;10254  justify-content: stretch;10255  background: none;10256  isolation: auto;10257}10258.peach-pair-settings--pairing::before { display: none; }1025910260.peach-pair-settings-header {10261  display: flex;10262  align-items: center;10263  gap: 10px;10264}10265.peach-pair-settings-title {10266  margin: 0;10267  font-family: var(--font-display, Georgia, serif);10268  font-style: italic;10269  font-size: 24px;10270  font-weight: 500;10271  line-height: 1;10272  color: var(--peach-t0);10273  letter-spacing: 0.005em;10274}10275.peach-pair-settings-section {10276  margin: 6px 0 -4px;10277  font-size: 11px;10278  font-weight: 600;10279  letter-spacing: 0.08em;10280  text-transform: uppercase;10281  color: var(--peach-text-muted);10282}10283.peach-pair-settings-error {10284  font-size: 12px;10285  padding: 8px 10px;10286  border-radius: 8px;10287  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);10288  color: var(--peach-text);10289}10290.peach-pair-settings-footer {10291  margin-top: auto;10292  padding-top: 18px;10293  font-size: 11.5px;10294  line-height: 1.5;10295  color: var(--peach-text-muted);10296  text-align: center;10297}1029810299/* Hero card shown when no devices are paired yet. */10300.peach-pair-hero {10301  display: flex;10302  flex-direction: column;10303  align-items: center;10304  gap: 12px;10305  padding: 20px 12px 8px;10306  text-align: center;10307}10308.peach-pair-hero-svg {10309  display: block;10310  max-width: 100%;10311  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));10312}10313.peach-pair-hero-headline {10314  margin: 0;10315  font-family: var(--font-display, Georgia, serif);10316  font-style: italic;10317  font-size: 20px;10318  font-weight: 500;10319  line-height: 1.2;10320  letter-spacing: 0.005em;10321  color: var(--peach-t0);10322}10323.peach-pair-hero-sub {10324  margin: 0;10325  font-size: 13px;10326  line-height: 1.5;10327  color: var(--peach-t1);10328  max-width: 320px;10329  text-wrap: pretty;10330}1033110332.peach-pair-pair-cta {10333  display: flex;10334  justify-content: center;10335  padding: 4px 0 6px;10336}10337.peach-pair-pair-button {10338  display: inline-flex;10339  align-items: center;10340  gap: 8px;10341  min-width: 220px;10342  justify-content: center;10343}10344.peach-pair-pair-button-icon {10345  flex: 0 0 auto;10346}1034710348/* Paired devices list. Roomy rows that look at home next to the rest10349   of Settings; stale rows get a soft warm-warning border tint. */10350.peach-pair-device-list {10351  list-style: none;10352  margin: 0;10353  padding: 0;10354  display: flex;10355  flex-direction: column;10356  gap: 8px;10357}10358.peach-pair-device-row {10359  display: flex;10360  align-items: center;10361  gap: 12px;10362  padding: 12px;10363  border-radius: 10px;10364  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10365  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);10366}10367.peach-pair-device-row[data-stale="true"] {10368  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);10369}10370.peach-pair-device-icon {10371  width: 32px;10372  height: 32px;10373  display: flex;10374  align-items: center;10375  justify-content: center;10376  border-radius: 8px;10377  color: var(--peach-text);10378  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);10379}10380.peach-pair-device-info {10381  flex: 1;10382  display: flex;10383  flex-direction: column;10384  gap: 2px;10385  min-width: 0;10386}10387.peach-pair-device-name {10388  font-size: 14px;10389  font-weight: 600;10390  color: var(--peach-text);10391  overflow: hidden;10392  text-overflow: ellipsis;10393  white-space: nowrap;10394}10395.peach-pair-device-meta {10396  font-size: 11.5px;10397  color: var(--peach-text-muted);10398  display: flex;10399  flex-wrap: wrap;10400  align-items: center;10401  gap: 8px;10402}10403.peach-pair-device-badge {10404  font-size: 10.5px;10405  font-weight: 500;10406  letter-spacing: 0.02em;10407  padding: 2px 6px;10408  border-radius: 999px;10409  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10410  color: var(--peach-text);10411}10412.peach-pair-device-stale {10413  font-size: 10.5px;10414  font-weight: 500;10415  color: var(--peach-warn, #d29257);10416}10417.peach-pair-device-remove {10418  flex: 0 0 auto;10419  color: var(--peach-text-muted);10420}10421.peach-pair-device-remove:hover {10422  color: var(--peach-danger, #c25b4a);10423}10424.peach-pair-unpair-confirm {10425  display: flex;10426  gap: 6px;10427  align-items: center;10428}1042910430/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10431.peach-pair-pro-card {10432  position: relative;10433  margin: 18px 12px;10434  padding: 18px 20px 22px;10435  border-radius: 22px;10436  background:10437    radial-gradient(140% 90% at 50% 0%,10438      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10439      transparent 60%),10440    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10441  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10442  box-shadow:10443    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10444    0 18px 40px -24px rgba(0, 0, 0, 0.45);10445  display: flex;10446  flex-direction: column;10447  align-items: center;10448  gap: 10px;10449  text-align: center;10450  overflow: hidden;10451}10452.peach-pair-pro-stage {10453  position: relative;10454  width: 220px;10455  height: 140px;10456  display: flex;10457  align-items: flex-end;10458  justify-content: center;10459  margin-bottom: 2px;10460}10461.peach-pair-pro-bird-slot {10462  width: 140px;10463  height: 132px;10464  display: flex;10465  align-items: flex-end;10466  justify-content: center;10467  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10468}10469.peach-pair-pro-bird-slot .peach-pair-bird {10470  width: 100%;10471  height: 100%;10472}10473.peach-pair-pro-bird-slot .peach-pair-bird svg {10474  width: 100%;10475  height: 100%;10476  overflow: visible;10477}10478.peach-pair-pro-headline {10479  margin: 4px 0 0;10480  font-family: var(--font-display, "Cormorant Garamond", serif);10481  font-style: italic;10482  font-size: 19px;10483  font-weight: 500;10484  letter-spacing: 0.01em;10485  color: var(--peach-t0);10486  max-width: 280px;10487  line-height: 1.25;10488}10489.peach-pair-pro-body {10490  margin: 0;10491  font-size: 13px;10492  line-height: 1.55;10493  color: var(--peach-t1);10494  max-width: 300px;10495}10496.peach-pair-pro-cta {10497  margin-top: 4px;10498}10499.peach-pair-pro-foot {10500  margin: 2px 0 0;10501  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10502  font-size: 0.625rem;10503  letter-spacing: 0.08em;10504  text-transform: uppercase;10505  color: var(--peach-t2);10506  opacity: 0.75;10507}1050810509/* Shell border and shadow in light mode: match dark mode's near-invisible10510   border weight so the popup frame looks the same in both themes. */10511.light .peach-shell,10512.light .peach-screen {10513  border-color: rgba(26, 18, 8, 0.07);10514  box-shadow:10515    0 2px 8px rgba(80, 56, 32, 0.08),10516    0 14px 48px rgba(80, 56, 32, 0.10),10517    0 0 0 1px rgba(26, 18, 8, 0.04);10518}1051910520/* HOLE 4: the revoke confirmation carries its own disclosure, so it needs the10521   full row width rather than sitting inline beside the device name. */10522.peach-settings-row:has(> .peach-unpair-confirm) { flex-wrap: wrap; }10523.peach-unpair-confirm {10524  display: flex;10525  flex-direction: column;10526  gap: 8px;10527  width: 100%;10528}10529.peach-unpair-confirm-note {10530  margin: 0;10531  font-size: 0.6875rem;10532  line-height: 1.5;10533  color: var(--peach-t2);10534}1053510536/* Sync mode selector — three named choices (public / private / off). Replaces10537   the old binary "local network only" toggle; see docs/sync-lan-retirement.md. */10538.peach-sync-mode {10539  display: flex;10540  align-items: flex-start;10541  gap: 10px;10542  width: 100%;10543  text-align: left;10544  padding: 10px 12px;10545  margin-top: 8px;10546  border-radius: 10px;10547  border: 1px solid var(--peach-border);10548  background: color-mix(in srgb, var(--peach-t0) 3%, transparent);10549  color: var(--peach-t1);10550  cursor: pointer;10551  transition: border-color var(--peach-dur-80) var(--peach-curve-arrival),10552              background-color var(--peach-dur-80) var(--peach-curve-arrival);10553}10554.peach-sync-mode:hover:not(:disabled) {10555  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);10556}10557.peach-sync-mode.is-active {10558  border-color: var(--peach-accent);10559  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);10560}10561.peach-sync-mode:disabled { opacity: 0.6; cursor: default; }10562.peach-sync-mode-main { display: flex; flex-direction: column; gap: 3px; flex: 1; }10563.peach-sync-mode-title { font-size: 12px; }10564.peach-sync-mode-sub {10565  font-size: 11px;10566  line-height: 1.5;10567  color: var(--peach-t2);10568}10569.peach-sync-mode-pip {10570  flex: none;10571  margin-top: 3px;10572  width: 12px; height: 12px;10573  border-radius: 50%;10574  border: 1px solid var(--peach-t3);10575}10576.peach-sync-mode.is-active .peach-sync-mode-pip {10577  border-color: var(--peach-accent);10578  background:10579    radial-gradient(circle at 50% 50%, var(--peach-accent) 0 42%, transparent 44%);10580}10581.peach-sync-mode-disclosure {10582  margin: 10px 2px 0;10583  font-size: 11px;10584  line-height: 1.5;10585  color: var(--peach-t2);10586}10587.peach-sync-mode-warn { color: var(--peach-breach); }1058810589/* Compact form, used mid-pairing: a quiet line, not a decision to make. */10590.peach-sync-mode-summary {10591  margin: 8px 2px 0;10592  font-size: 11px;10593  color: var(--peach-t2);10594  text-align: center;10595}10596.peach-sync-mode-change {10597  background: none;10598  border: none;10599  padding: 0;10600  font: inherit;10601  color: var(--peach-accent);10602  text-decoration: underline;10603  cursor: pointer;10604}