popup.css

246.0 KB · raw

1html,2body,3#app,4.popup-root {5  width: 320px;6  min-height: 520px;7  height: 520px;8  margin: 0;9}1011body {12  overflow: hidden;13  background: var(--bg);14  color: var(--t0);15  font-family: var(--font-ui);16  font-weight: 300;17  position: relative;18}1920* {21  box-sizing: border-box;22}2324button,25input,26textarea,27select {28  font: inherit;29}3031button {32  border: 0;33}3435.popup-root {36  position: relative;37  overflow: hidden;38}3940.peach-theme {41  color: var(--peach-t0);42  font-family: var(--font-ui);43  font-weight: 300;44  box-sizing: border-box;45  text-align: left;46}47.peach-theme, .peach-theme * { box-sizing: inherit; }4849.peach-brand-mark {50  width: 14px;51  height: 14px;52  flex-shrink: 0;53}5455.peach-status-pip.is-hidden {56  display: none;57}5859.peach-status-pip.unlocked {60  background: var(--peach-health-ok);61  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);62}6364.peach-status-pip.pulse {65  animation: pip-pulse 400ms var(--peach-curve-settle) both;66}6768/* Shell */69.peach-shell, .peach-screen {70  background:71    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),72    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),73    var(--peach-bg);74  border: 1px solid var(--peach-t3);75  box-shadow:76    0 2px 8px rgba(0,0,0,0.55),77    0 14px 48px rgba(0,0,0,0.7),78    0 0 0 1px rgba(240,232,216,0.04);79  overflow: hidden;80}81.peach-shell {82  display: grid;83  grid-template-rows: auto 1fr;84  min-height: 520px;85  position: relative;86  isolation: isolate;87}8889.peach-shell[data-surface="extension"] {90  width: min(320px, 100vw);91  border-radius: 0;92  height: 520px;93  max-height: 520px;94  overflow: hidden;95}9697/* ── Lock screen – full-window lock/create stage ── */98.lock-screen--vault-stage {99  display: flex;100  flex-direction: column;101  gap: 18px;102  padding: 20px 18px 18px;103  justify-content: flex-start;104}105.lock-screen--vault-stage .peach-lock-panel {106  margin-top: auto;107}108.peach-lock-headline--unlock {109  max-width: 220px;110}111.peach-lock-hero--unlock {112  padding-top: 14px;113}114.peach-lock-panel--unlock {115  gap: 10px;116}117118.peach-lock-restore-link {119  background: transparent;120  border: none;121  cursor: pointer;122  font-family: var(--font-mono);123  font-size: 0.625rem;124  letter-spacing: 0.08em;125  color: var(--t1);126  padding: 5px 0;127  text-align: left;128  transition: color 150ms ease;129}130131.peach-lock-restore-link:hover {132  color: var(--t0);133}134.peach-shell[data-surface="extension"] .peach-stage {135  min-height: 250px;136}137138/* Screen (unlock) */139.peach-screen {140  width: min(320px, 100vw);141  min-height: 100%;142  height: 100%;143  border-radius: 0;144  padding: 16px 20px 18px;145  display: grid;146  gap: 14px;147}148.peach-screen[data-motion-phase="enter"] {149  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;150}151.peach-screen-header { min-height: 20px; }152153/* Wordmark */154.peach-wordmark {155  margin: 0;156  font-family: var(--font-display);157  font-size: 0.9375rem;158  font-style: italic;159  letter-spacing: 0.03em;160  color: var(--peach-t0);161  display: inline-flex;162  min-height: 1em;163}164165/* Motion text / char animation */166.peach-motion-text { display: inline-flex; min-height: 1em; }167.peach-motion-char {168  display: inline-block;169  white-space: pre;170  opacity: 0;171  transform: translateY(0.22em);172  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;173  animation-delay: calc(var(--peach-char-index, 0) * 20ms);174}175176/* Chrome */177.peach-chrome {178  position: relative;179  z-index: 10;180  padding: 16px 20px 0;181  display: flex;182  justify-content: space-between;183  align-items: center;184  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense185     fallback) per §15 regression guard. Without pointer-events:none, the186     empty header strip also sits above `.peach-overlay-view` (z-index:2)187     and swallows clicks meant for an overlay's back button / top search. */188  pointer-events: none;189}190.peach-chrome .peach-btn { pointer-events: auto; }191.peach-chrome.is-hidden-for-overlay,192.peach-search-wrap.is-hidden-for-overlay {193  opacity: 0;194  visibility: hidden;195  pointer-events: none;196}197/* 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.peach-btn:focus-visible {943  outline: none;944  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);945}946947/* Lock button */948.peach-lock-icon { transform-origin: center; }949.peach-lock-btn { color: var(--peach-accent); }950.peach-lock-btn.is-locking .peach-lock-icon {951  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);952}953954/* Biometric unlock button */955.peach-biometric-btn {956  display: flex;957  align-items: center;958  justify-content: center;959  gap: 6px;960  margin-top: 8px;961  width: 100%;962}963964/* Copy button */965.peach-copy-btn {966  position: relative; overflow: hidden;967  color: var(--peach-t2); border-color: var(--peach-t3);968}969.peach-copy-icon {970  display: inline-flex; align-items: center; justify-content: center;971  position: relative; z-index: 1;972}973.peach-copy-icon-svg { display: block; }974.peach-copy-sheen {975  position: absolute; inset: 0;976  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%);977  opacity: 0; transform: scaleX(0.15); transform-origin: left center;978}979.peach-copy-btn.is-copied {980  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;981  box-shadow:982    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),983    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),984    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);985}986.peach-copy-btn.is-copied .peach-copy-icon {987  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;988}989.peach-copy-btn.is-copied .peach-copy-sheen {990  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;991}992.peach-copy-btn.is-retreat {993  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;994}995.peach-copy-btn.is-retreat .peach-copy-sheen {996  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;997}998.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }999.peach-copy-drain-bar {1000  display: block; width: 100%; height: 100%;1001  background: var(--peach-accent); opacity: 0.7;1002  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;1003}10041005/* Unlock screen elements */1006.peach-underline-input {1007  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);1008  padding: 6px 0; background: transparent; color: var(--peach-t0);1009  outline: none;1010  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1011  font-size: 0.8125rem;1012  caret-color: var(--peach-accent);1013}1014.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }1015.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }1016.peach-hint {1017  margin: 0;1018  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1019  font-size: 0.625rem; color: var(--peach-t2);1020}1021.peach-unlock-footer {1022  margin-top: 4px; display: flex; align-items: center; gap: 7px;1023  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1024  font-size: 0.625rem; color: var(--peach-t2);1025}1026.peach-unlock-footer--lock {1027  padding-top: 2px;1028}10291030/* Desktop helper (peach-sync) code pairing — additive hooks. The shared pairing1031   classes (peach-pair-*) carry the shared layout; these only style the parts1032   unique to the typed-code path. Inline styles cover the SAS/confirm gate. */1033.peach-desktop-pair { display: flex; flex-direction: column; }1034.peach-desktop-enter,1035.peach-desktop-searching,1036.peach-desktop-paired,1037.peach-desktop-error {1038  display: flex; flex-direction: column; gap: 8px;1039  padding: 4px 18px 16px; text-align: center; align-items: center;1040}1041.peach-desktop-enter .peach-label { align-self: flex-start; }1042/* Sized for a full 19-character pairing code (A74H-48J3-KI32-OEP4) in a1043   320px popup — a 6-digit legacy helper code still reads fine at this size. */1044.peach-code-input {1045  text-align: center; letter-spacing: 0.12em; padding-left: 0.12em;1046  font-size: 15px;1047}1048.peach-code-input::placeholder { letter-spacing: 0.12em; }10491050/* Sync card "pair a device" options — bordered, raised tappable rows that read1051   as buttons on any card hue (theme-neutral light overlay, not the peach accent). */1052.peach-sync-pair-option {1053  display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;1054  width: 100%; text-align: left; cursor: pointer; font-family: inherit;1055  padding: 11px 12px; border-radius: 10px;1056  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);1057  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);1058  color: var(--peach-t0);1059  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;1060}1061.peach-sync-pair-option + .peach-sync-pair-option { margin-top: 8px; }1062.peach-sync-pair-option:hover {1063  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);1064  border-color: color-mix(in srgb, var(--peach-t0) 28%, transparent);1065}1066.peach-sync-pair-option:active { transform: translateY(1px); }1067.peach-sync-pair-option:disabled { opacity: 0.5; cursor: default; }1068.peach-sync-pair-option-icon { flex-shrink: 0; display: flex; align-items: center; color: var(--peach-t1); margin-top: 1px; }1069.peach-sync-pair-option-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }1070.peach-sync-pair-option-title { font-size: 0.8125rem; font-weight: 600; }1071.peach-sync-pair-option-sub { font-size: 0.6875rem; line-height: 1.45; color: var(--peach-t2); }1072.peach-sync-pair-option-chevron { flex-shrink: 0; color: var(--peach-t2); font-size: 1.05rem; line-height: 1.3; }10731074/* Breach badge */1075.peach-breach-badge {1076  display: flex;1077  position: relative;1078  z-index: 1;1079  align-items: center;1080  gap: 7px;1081  font-size: 0.5625rem;1082  color: var(--peach-breach);1083  padding: 5px 10px;1084  margin-bottom: 4px;1085  border-radius: 8px;1086  background: rgba(220, 80, 60, 0.07);1087  border: 1px solid rgba(220, 80, 60, 0.18);1088  letter-spacing: 0.04em;1089}10901091.peach-password-value.is-breached {1092  color: rgba(220, 80, 60, 0.75);1093  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1094}10951096/* ── Overlay views ─────────────────────────────────────────────────── */1097.peach-overlay-view {1098  position: absolute;1099  inset: 0;1100  display: flex;1101  flex-direction: column;1102  background:1103    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1104    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1105    var(--peach-bg);1106  z-index: 2;1107  overflow: hidden;1108  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1109}11101111.peach-overlay-view:has(.stk-shell) {1112  background: var(--peach-bg);1113}1114@keyframes overlay-in {1115  from { opacity: 0; transform: translateY(8px); }1116  to   { opacity: 1; transform: translateY(0); }1117}1118.peach-overlay-view.ov-enter-up {1119  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1120}1121.peach-overlay-view.ov-exit-up {1122  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1123}1124.peach-overlay-view.ov-enter-right {1125  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1126}1127.peach-overlay-view.ov-exit-right {1128  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1129}11301131@keyframes ov-enter-up {1132  from { opacity: 0; transform: translateY(18px); }1133  to   { opacity: 1; transform: translateY(0); }1134}1135@keyframes ov-exit-up {1136  from { opacity: 1; transform: translateY(0); }1137  to   { opacity: 0; transform: translateY(-12px); }1138}1139@keyframes ov-enter-right {1140  from { opacity: 0; transform: translateX(20px); }1141  to   { opacity: 1; transform: translateX(0); }1142}1143@keyframes ov-exit-right {1144  from { opacity: 1; transform: translateX(0); }1145  to   { opacity: 0; transform: translateX(20px); }1146}11471148/* Overlay shared header */1149.peach-overlay-header {1150  padding: 10px 12px 8px;1151  display: flex;1152  align-items: center;1153  gap: 10px;1154  flex-shrink: 0;1155}1156/* Back button — circular pill matching the settings stack masthead (.stk-back) */1157.peach-overlay-header .peach-btn--ghost.peach-icon-btn {1158  width: 28px;1159  height: 28px;1160  flex: 0 0 28px;1161  border-radius: 999px;1162  border: 1px solid var(--peach-border);1163  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);1164  color: var(--peach-t1);1165  padding: 0;1166}1167.peach-overlay-header .peach-btn--ghost.peach-icon-btn:hover {1168  color: var(--peach-t0);1169  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);1170  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1171}1172.peach-overlay-title {1173  font-family: var(--font-display);1174  font-style: italic;1175  font-weight: 400;1176  font-size: 20px;1177  line-height: 1;1178  color: var(--peach-t0);1179  flex: 1;1180  text-align: center;1181}1182/* Balances the 28px back button so the title stays visually centred */1183.peach-overlay-spacer {1184  width: 28px;1185  flex: 0 0 28px;1186}11871188.peach-overlay-card {1189  background: var(--peach-s1);1190  border: 1px solid var(--peach-t3);1191  border-radius: 12px;1192  overflow: hidden;1193  width: 100%;1194}11951196.peach-onboarding-alt-actions {1197  display: flex;1198  flex-direction: column;1199  gap: 4px;1200  padding: 0;1201}12021203.peach-settings-copy {1204  margin: 0 0 10px;1205  font-size: 0.6875rem;1206  line-height: 1.5;1207  color: var(--peach-t2);1208}12091210.peach-settings-copy strong {1211  color: var(--peach-t0);1212}12131214.peach-settings-copy--spacious {1215  margin-bottom: 12px;1216}12171218.peach-settings-copy--result {1219  color: var(--peach-accent);1220  font-size: 0.8125rem;1221  text-align: center;1222  padding: 8px 0;1223}12241225.peach-settings-copy--danger {1226  color: var(--peach-breach);1227}12281229.peach-settings-copy--success {1230  color: var(--peach-accent);1231}12321233.peach-inline-feedback {1234  font-size: 0.6875rem;1235  margin: 10px 0 0;1236}12371238.peach-inline-feedback--ok {1239  color: var(--peach-accent);1240}12411242.peach-inline-feedback--error {1243  color: var(--peach-breach);1244}12451246.peach-inline-feedback--muted {1247  color: var(--peach-t2);1248  font-size: 0.625rem;1249  margin: 4px 0;1250}12511252.peach-inline-feedback--spaced {1253  margin-top: 12px;1254}12551256.peach-settings-actions--row {1257  display: flex;1258  gap: 6px;1259}12601261.peach-settings-actions--end {1262  margin-top: 14px;1263  justify-content: flex-end;1264}12651266.peach-settings-stack {1267  display: flex;1268  flex-direction: column;1269  gap: 6px;1270}12711272.peach-settings-stack--tight {1273  gap: 4px;1274}12751276.peach-settings-stack--spacious {1277  gap: 8px;1278}12791280.peach-settings-input {1281  width: 100%;1282  box-sizing: border-box;1283  padding: 8px 10px;1284  background: rgba(0, 0, 0, 0.22);1285  border: 1px solid transparent;1286  border-radius: 6px;1287  color: var(--peach-t0);1288  font-family: var(--font-ui);1289  font-size: 0.75rem;1290  outline: none;1291  transition: border-color 120ms ease, background 120ms ease;1292}12931294.peach-settings-input:focus {1295  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1296  background: rgba(0, 0, 0, 0.28);1297}12981299.peach-settings-input[type="password"] {1300  font-family: var(--font-mono);1301  letter-spacing: 0.04em;1302}13031304.peach-hidden-file-input {1305  display: none;1306}13071308.peach-checkbox-note {1309  display: flex;1310  align-items: flex-start;1311  gap: 8px;1312  font-size: 0.6875rem;1313  color: var(--peach-t1);1314  cursor: pointer;1315  margin: 12px 0;1316}13171318.peach-checkbox-note input {1319  margin-top: 1px;1320}13211322.peach-danger-notice {1323  background: rgba(220, 80, 60, 0.08);1324  border: 1px solid rgba(220, 80, 60, 0.2);1325  border-radius: 6px;1326  padding: 9px 11px;1327  font-size: 0.6875rem;1328  color: var(--peach-t1);1329  line-height: 1.5;1330}13311332.peach-info-notice {1333  font-size: 0.6875rem;1334  color: var(--peach-t1);1335  line-height: 1.5;1336  background: var(--surface-card);1337  border: 1px solid var(--peach-t3);1338  border-radius: 6px;1339  padding: 8px 10px;1340}13411342.peach-info-notice--warn {1343  border-color: rgba(220, 38, 38, 0.4);1344  background: rgba(220, 38, 38, 0.06);1345  color: rgba(220, 38, 38, 0.92);1346  margin-bottom: 8px;1347}13481349/* Warm helpful-context note — reads as a soft aside, not an alert. */1350.peach-info-notice--note {1351  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);1352  border-color: color-mix(in srgb, var(--peach-accent) 18%, transparent);1353  color: var(--peach-t2);1354}13551356.peach-strength-row {1357  display: flex;1358  align-items: center;1359  gap: 8px;1360  margin-bottom: 10px;1361}13621363.peach-strength-track {1364  flex: 1;1365  height: 4px;1366  background: var(--peach-s2);1367  border-radius: 2px;1368  overflow: hidden;1369}13701371.peach-strength-fill {1372  height: 100%;1373  border-radius: 2px;1374  transition: width 120ms ease, background 120ms ease;1375}13761377/* ── Type selector tabs ── */1378.peach-type-tabs {1379  display: flex;1380  gap: 0;1381  background: var(--peach-t4);1382  border-radius: 8px;1383  padding: 3px;1384}13851386.peach-type-tab {1387  flex: 1;1388  display: flex;1389  align-items: center;1390  justify-content: center;1391  gap: 6px;1392  padding: 6px 10px;1393  border-radius: 6px;1394  border: none;1395  background: transparent;1396  cursor: pointer;1397  font-family: Inter, system-ui, sans-serif;1398  font-size: 0.6875rem;1399  font-weight: 400;1400  letter-spacing: 0.04em;1401  color: var(--peach-t1);1402  transition: background 150ms ease, color 150ms ease;1403}14041405.peach-type-tab.is-active {1406  background: var(--peach-s2);1407  color: var(--peach-t0);1408  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1409}14101411.peach-type-tab:not(.is-active):hover {1412  color: var(--peach-t0);1413}14141415.peach-type-tab svg {1416  opacity: 0.7;1417  flex-shrink: 0;1418}14191420.peach-type-tab.is-active svg {1421  opacity: 1;1422}14231424/* ── List view ───────────────────────────────────────────────────────── */1425.peach-list-top {1426  padding: 0 10px;1427  min-height: 46px;1428  display: flex;1429  align-items: center;1430  gap: 6px;1431  border-bottom: 1px solid var(--peach-t3);1432  flex-shrink: 0;1433  background: var(--peach-s1);1434}14351436.peach-vault-list {1437  flex: 1;1438  overflow-y: auto;1439  scrollbar-width: none;1440}1441.peach-vault-list::-webkit-scrollbar { display: none; }14421443/* Scrollbar — vault list */1444.peach-vault-list {1445  scrollbar-width: thin;1446  scrollbar-color: var(--peach-t3) transparent;1447}14481449.peach-vault-list::-webkit-scrollbar {1450  width: 3px;1451}14521453.peach-vault-list::-webkit-scrollbar-thumb {1454  background: var(--peach-t3);1455  border-radius: 2px;1456}14571458.peach-entry-row {1459  width: 100%;1460  display: flex;1461  align-items: center;1462  gap: 10px;1463  padding: 9px 16px;1464  background: transparent;1465  border: none;1466  border-bottom: 1px solid var(--peach-t3);1467  cursor: pointer;1468  color: inherit;1469  text-align: left;1470  transition: background 80ms ease;1471}1472.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1473.peach-entry-row:last-child { border-bottom: none; }1474.peach-entry-row.is-active {1475  box-shadow: inset 2px 0 0 var(--peach-accent);1476  background: rgba(240,232,216,0.03);1477}1478.peach-entry-row:focus-visible {1479  outline: none;1480  box-shadow: 0 0 0 1px var(--peach-border-accent);1481  background: rgba(240,232,216,0.03);1482}1483.peach-entry-row-icon {1484  width: 26px; height: 26px;1485  border-radius: 7px;1486  border: 1px solid var(--peach-t3);1487  display: flex; align-items: center; justify-content: center;1488  color: var(--peach-t2);1489  flex-shrink: 0;1490}1491.peach-entry-row-icon.is-breach {1492  border-color: rgba(220,80,60,0.3);1493  color: rgba(220,80,60,0.7);1494}14951496/* Title-initials chip used as the favicon fallback for login entries whose1497 * real favicon hasn't been cached by the browser yet (freshly-imported,1498 * never-visited domains). Background colour is hashed from the title so1499 * the same entry always shows the same chip. The chip fits the same1500 * 26×26 row icon slot the favicon would take. */1501.peach-favicon-initials {1502  display: inline-flex;1503  align-items: center;1504  justify-content: center;1505  width: 100%;1506  height: 100%;1507  border-radius: 4px;1508  font-family: "IBM Plex Mono", monospace;1509  font-size: 0.5625rem;1510  font-weight: 600;1511  letter-spacing: 0.04em;1512  color: rgba(240, 232, 216, 0.92);1513  text-transform: uppercase;1514  user-select: none;1515}1516.peach-entry-row-info { flex: 1; min-width: 0; }1517.peach-entry-row-name {1518  display: block;1519  font-family: var(--font-display);1520  font-size: 1.0625rem;1521  font-style: italic;1522  font-weight: 400;1523  color: var(--peach-t0);1524  line-height: 1.2;1525  white-space: nowrap;1526  overflow: hidden;1527  text-overflow: ellipsis;1528}1529.peach-entry-row-meta {1530  display: block;1531  font-family: "IBM Plex Mono", monospace;1532  font-size: 0.5625rem;1533  color: var(--peach-t2);1534  margin-top: 1px;1535  letter-spacing: 0.05em;1536}1537.peach-entry-row-dot {1538  width: 5px; height: 5px;1539  border-radius: 50%;1540  background: rgba(220,80,60,0.7);1541  flex-shrink: 0;1542}1543.peach-new-entry-row {1544  display: flex;1545  align-items: center;1546  justify-content: center;1547  gap: 6px;1548  width: 100%;1549  padding: 11px;1550  background: transparent;1551  border: none;1552  border-top: 1px solid var(--peach-t3);1553  color: var(--peach-t2);1554  font-family: "IBM Plex Mono", monospace;1555  font-size: 0.5625rem;1556  text-transform: uppercase;1557  letter-spacing: 0.14em;1558  cursor: pointer;1559  flex-shrink: 0;1560  transition: color 120ms ease, background 120ms ease;1561}1562.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }15631564/* ── Multi-select mode ─────────────────────────────────────────────── */15651566/* Select-mode trigger button in sort bar — same shape as trash btn */1567.peach-sort-select-btn {1568  display: flex;1569  align-items: center;1570  justify-content: center;1571  padding: 3px 5px;1572  background: transparent;1573  border: none;1574  cursor: pointer;1575  color: var(--peach-t2);1576  border-radius: 4px;1577  transition: color 140ms ease, background 140ms ease;1578}1579.peach-sort-select-btn:hover {1580  color: var(--peach-t1);1581  background: var(--peach-t3);1582}15831584/* Sort bar in select mode */1585.peach-select-cancel-btn {1586  background: transparent;1587  border: none;1588  padding: 0 4px;1589  cursor: pointer;1590  font-family: "IBM Plex Mono", monospace;1591  font-size: 0.5625rem;1592  letter-spacing: 0.12em;1593  text-transform: uppercase;1594  color: var(--peach-t2);1595  transition: color 140ms ease;1596  flex-shrink: 0;1597}1598.peach-select-cancel-btn:hover { color: var(--peach-t0); }15991600.peach-select-count-label {1601  flex: 1;1602  text-align: center;1603  font-family: "IBM Plex Mono", monospace;1604  font-size: 0.5625rem;1605  letter-spacing: 0.14em;1606  text-transform: uppercase;1607  color: var(--peach-t1);1608}16091610.peach-select-all-btn {1611  background: transparent;1612  border: none;1613  padding: 0 4px;1614  cursor: pointer;1615  font-family: "IBM Plex Mono", monospace;1616  font-size: 0.5625rem;1617  letter-spacing: 0.12em;1618  text-transform: uppercase;1619  color: var(--peach-t2);1620  transition: color 140ms ease;1621  flex-shrink: 0;1622}1623.peach-select-all-btn:hover { color: var(--peach-accent); }16241625/* List in select mode */1626.peach-vault-list.is-selecting .peach-entry-row {1627  cursor: default;1628}1629.peach-vault-list.is-selecting .peach-entry-row:hover {1630  background: rgba(240,232,216,0.02);1631}1632.peach-vault-list.is-selecting .peach-entry-row.is-selected {1633  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1634}1635.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1636  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1637}16381639/* Select indicator circles in icon slot */1640.peach-entry-row-icon.is-select-icon {1641  color: var(--peach-t2);1642}1643.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1644  color: var(--peach-accent);1645}16461647/* Delete action bar at bottom (replaces new-entry row) */1648.peach-select-action-bar {1649  display: flex;1650  align-items: center;1651  justify-content: center;1652  gap: 7px;1653  width: 100%;1654  padding: 11px;1655  background: transparent;1656  border: none;1657  border-top: 1px solid var(--peach-t3);1658  color: var(--peach-t1);1659  font-family: "IBM Plex Mono", monospace;1660  font-size: 0.5625rem;1661  text-transform: uppercase;1662  letter-spacing: 0.14em;1663  cursor: pointer;1664  flex-shrink: 0;1665  transition: color 120ms ease, background 120ms ease;1666}1667.peach-select-action-bar:not(:disabled):hover {1668  color: var(--peach-t0);1669  background: rgba(220,80,60,0.06);1670}1671.peach-select-action-bar:not(:disabled):hover svg {1672  stroke: rgba(220,80,60,0.8);1673}1674.peach-select-action-bar:disabled,1675.peach-select-action-bar.is-empty {1676  color: var(--peach-t2);1677  cursor: default;1678  opacity: 0.5;1679}1680.peach-search-counter-list {1681  white-space: nowrap;1682  flex-shrink: 0;1683}1684.peach-list-empty {1685  min-height: 180px;1686  display: grid;1687  place-items: center;1688  color: var(--peach-t2);1689  font-family: "IBM Plex Mono", monospace;1690  font-size: 0.6875rem;1691}16921693/* ── Settings view ───────────────────────────────────────────────────── */1694.peach-settings-body {1695  flex: 1;1696  overflow-y: auto;1697  min-height: 0;1698  display: flex;1699  flex-direction: column;1700  padding: 2px 0 10px;1701}1702.peach-settings-group {1703  margin: 4px 10px;1704  padding: 9px 14px 11px;1705  border-radius: 12px;1706  border: 1px solid rgba(255, 255, 255, 0.07);1707  background: rgba(26, 20, 16, 0.60);1708  backdrop-filter: blur(10px) saturate(1.3);1709  -webkit-backdrop-filter: blur(10px) saturate(1.3);1710}17111712.peach-settings-group + .peach-settings-group {1713  margin-top: 6px;1714}17151716@supports not (backdrop-filter: blur(1px)) {1717  .peach-settings-group {1718    background: rgba(26, 20, 16, 0.90);1719    border-color: rgba(255, 255, 255, 0.09);1720    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1721  }1722}17231724.light .peach-settings-group,1725[data-theme="light"] .peach-settings-group {1726  background: rgba(245, 237, 226, 0.70);1727  border-color: rgba(26, 18, 8, 0.08);1728  backdrop-filter: blur(10px) saturate(1.2);1729  -webkit-backdrop-filter: blur(10px) saturate(1.2);1730}17311732@supports not (backdrop-filter: blur(1px)) {1733  .light .peach-settings-group,1734  [data-theme="light"] .peach-settings-group {1735    background: rgba(245, 237, 226, 0.97);1736    border-color: rgba(26, 18, 8, 0.10);1737  }1738}1739.peach-export-intro {1740  padding-bottom: 8px;1741}1742.peach-export-card {1743  display: grid;1744  gap: 10px;1745}1746.peach-rune-canvas {1747  border-radius: 8px;1748  background: rgba(0, 0, 0, 0.22);1749  flex: 1;1750  align-self: center;1751}1752.peach-script-input {1753  font-family: "PeachScript", monospace;1754  font-size: 0.6875rem;1755  line-height: 1.9;1756  letter-spacing: 0.06em;1757  color: var(--peach-t0);1758  background: rgba(0, 0, 0, 0.22);1759  border: none;1760  border-radius: 6px;1761  padding: 12px;1762  width: 100%;1763  min-height: 96px;1764  resize: vertical;1765  word-break: break-all;1766  scrollbar-width: none;1767  -ms-overflow-style: none;1768}17691770.peach-script-input::-webkit-scrollbar { display: none; }1771.peach-csv-warning {1772  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1773  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1774  color: var(--peach-t0);1775  border-radius: 6px;1776  padding: 10px 12px;1777  margin-bottom: 8px;1778  font-size: 0.75rem;1779  line-height: 1.45;1780}1781.peach-export-card--primary {1782  background:1783    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1784}17851786/* Export menu — distribute the three format cards across the popup. */1787.peach-export-menu {1788  display: flex;1789  flex-direction: column;1790  flex: 1;1791  min-height: 0;1792}1793.peach-export-menu .peach-settings-group {1794  flex: 1;1795  display: flex;1796  flex-direction: column;1797  justify-content: center;1798  gap: 10px;1799}18001801/* Result view — the script-string fills the remaining vertical surface. */1802.peach-export-result-group {1803  flex: 1;1804  display: flex;1805  flex-direction: column;1806  min-height: 0;1807  border-bottom: none;1808}1809.peach-export-result-group .peach-export-card {1810  flex: 1;1811  min-height: 0;1812  display: flex;1813  flex-direction: column;1814  gap: 10px;1815}1816.peach-export-result-group .peach-export-card-copy {1817  flex-shrink: 0;1818}1819.peach-export-result-group .peach-settings-label {1820  flex-shrink: 0;1821}1822.peach-export-result-group button {1823  flex-shrink: 0;1824}1825.peach-export-card-head {1826  display: flex;1827  align-items: center;1828  justify-content: space-between;1829  gap: 10px;1830}1831.peach-export-card-copy {1832  margin: 0;1833  font-size: 0.75rem;1834  line-height: 1.55;1835  color: var(--peach-t1);1836}1837.peach-export-note {1838  margin: 0;1839  font-size: 0.625rem;1840  line-height: 1.5;1841  color: var(--peach-t2);1842}1843.peach-export-strength-track {1844  height: 3px;1845  background: var(--peach-border);1846  border-radius: 2px;1847  margin: 4px 0 2px;1848  overflow: hidden;1849}1850.peach-export-strength-fill {1851  height: 100%;1852  border-radius: 2px;1853  transition: width 250ms ease, background 250ms ease;1854}1855.peach-export-strength-warn {1856  margin: 0;1857  font-size: 0.625rem;1858  line-height: 1.5;1859  color: #e84040;1860  font-family: "IBM Plex Mono", monospace;1861}1862.peach-export-strength-hint {1863  margin: 0;1864  font-size: 0.625rem;1865  line-height: 1.5;1866  color: var(--peach-t2);1867  font-family: "IBM Plex Mono", monospace;1868}1869.peach-export-pill {1870  display: inline-flex;1871  align-items: center;1872  padding: 4px 8px;1873  border-radius: 999px;1874  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1875  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1876  color: var(--peach-accent);1877  font-family: "IBM Plex Mono", monospace;1878  font-size: 0.5rem;1879  letter-spacing: 0.12em;1880  text-transform: uppercase;1881  white-space: nowrap;1882}1883.peach-export-pill--danger {1884  border-color: rgba(220,80,60,0.22);1885  background: rgba(220,80,60,0.08);1886  color: var(--peach-breach);1887}1888.peach-settings-label {1889  margin: 0 0 6px;1890  font-family: "IBM Plex Mono", monospace;1891  font-size: 0.5rem;1892  text-transform: uppercase;1893  letter-spacing: 0.18em;1894  color: var(--peach-t2);1895}1896.peach-settings-row {1897  display: flex;1898  align-items: center;1899  justify-content: space-between;1900  gap: 12px;1901  min-height: 34px;1902  padding: 6px 0;1903  font-size: 0.8125rem;1904  color: var(--peach-t1);1905}1906.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1907.peach-settings-value {1908  font-family: "IBM Plex Mono", monospace;1909  font-size: 0.625rem;1910  color: var(--peach-t2);1911}19121913.peach-settings-value--status {1914  display: flex;1915  align-items: center;1916  gap: 6px;1917}19181919.peach-settings-link {1920  font-family: "IBM Plex Mono", monospace;1921  font-size: 0.625rem;1922  color: var(--peach-accent);1923  text-decoration: none;1924  cursor: pointer;1925}1926.peach-settings-link:hover {1927  text-decoration: underline;1928}19291930.peach-settings-row--stack {1931  flex-direction: column;1932  align-items: stretch;1933  gap: 6px;1934}19351936.peach-settings-row--top {1937  align-items: flex-start;1938}19391940.peach-settings-row-main {1941  display: flex;1942  flex-direction: column;1943  gap: 4px;1944  flex: 1;1945}1946.peach-toggle {1947  width: 28px; height: 16px;1948  border-radius: 999px;1949  background: var(--peach-t3);1950  border: 1px solid var(--peach-t3);1951  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1952  flex-shrink: 0;1953  transition: background 200ms ease, border-color 200ms ease;1954  cursor: pointer;1955}1956.peach-toggle.is-on {1957  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1958  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1959}1960.peach-toggle-knob {1961  width: 10px; height: 10px;1962  border-radius: 50%;1963  background: var(--peach-t2);1964  flex-shrink: 0;1965  transform: translateX(0px);1966  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1967}1968.peach-toggle.is-on .peach-toggle-knob {1969  background: var(--peach-accent);1970  transform: translateX(12px);1971}1972.peach-settings-footer {1973  display: flex;1974  align-items: center;1975  gap: 8px;1976  margin-top: auto;1977  padding: 14px 16px 8px;1978  font-family: "IBM Plex Mono", monospace;1979  font-size: 0.5625rem;1980  color: var(--peach-t2);1981}19821983/* ── Settings home navigation ──────────────────────────────────────────── */1984.peach-settings-nav-label {1985  margin: 0 0 2px;1986  padding: 12px 16px 4px;1987  font-family: "IBM Plex Mono", monospace;1988  font-size: 0.5rem;1989  text-transform: uppercase;1990  letter-spacing: 0.18em;1991  color: var(--peach-t2);1992}19931994.peach-settings-cat-row {1995  display: flex;1996  align-items: center;1997  gap: 10px;1998  width: 100%;1999  padding: 9px 16px;2000  background: none;2001  border: none;2002  border-bottom: 1px solid var(--peach-t3);2003  cursor: pointer;2004  text-align: left;2005  color: inherit;2006  transition: background var(--peach-dur-80) ease;2007}2008.peach-settings-cat-row:hover {2009  background: var(--peach-t3);2010}2011.peach-settings-cat-row:last-child {2012  border-bottom: none;2013}20142015.peach-settings-cat-icon {2016  width: 28px;2017  height: 28px;2018  border-radius: 7px;2019  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2020  color: var(--peach-accent);2021  display: flex;2022  align-items: center;2023  justify-content: center;2024  flex-shrink: 0;2025}2026/* Light theme: peach-on-cream is too low-contrast — both colors are warm.2027   Darken the icon stroke to ink and bump the bg tint so the icon reads2028   sharply while the cell still feels accent-tinted. */2029.light .peach-settings-cat-icon {2030  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);2031  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));2032}20332034.peach-settings-cat-content {2035  flex: 1;2036  display: flex;2037  flex-direction: column;2038  gap: 2px;2039  min-width: 0;2040}20412042.peach-settings-cat-name {2043  font-size: 0.8125rem;2044  font-weight: 450;2045  color: var(--peach-t0);2046  line-height: 1.2;2047}20482049.peach-settings-cat-desc {2050  font-size: 0.625rem;2051  color: var(--peach-t2);2052  line-height: 1.3;2053  white-space: nowrap;2054  overflow: hidden;2055  text-overflow: ellipsis;2056}20572058.peach-settings-cat-chevron {2059  color: var(--peach-t2);2060  flex-shrink: 0;2061  opacity: 0.5;2062}20632064/* ── Settings sub-view section labels ──────────────────────────────────── */2065.peach-settings-sub-label {2066  margin: 12px 0 4px;2067  font-family: "IBM Plex Mono", monospace;2068  font-size: 0.5rem;2069  text-transform: uppercase;2070  letter-spacing: 0.18em;2071  color: var(--peach-t2);2072}2073.peach-settings-sub-label:first-child {2074  margin-top: 4px;2075}20762077/* ── Settings: collapsible Advanced section ─────────────────────────────── */2078.peach-settings-advanced-toggle {2079  display: flex;2080  align-items: center;2081  justify-content: space-between;2082  width: 100%;2083  background: none;2084  border: none;2085  cursor: pointer;2086  padding: 12px 0 4px;2087  margin: 0;2088  color: inherit;2089}2090.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {2091  color: var(--peach-t1);2092}2093.peach-settings-advanced-chevron {2094  font-size: 0.5625rem;2095  color: var(--peach-t3);2096  letter-spacing: 0;2097  transition: color 120ms ease;2098}20992100/* ── Feedback form ──────────────────────────────────────────────────────── */2101.peach-feedback-group {2102  flex: 1;2103  display: flex;2104  flex-direction: column;2105  border-bottom: none;2106}21072108.peach-feedback-intro {2109  margin: 4px 0 14px;2110  font-size: 0.75rem;2111  line-height: 1.55;2112  color: var(--peach-t1);2113}21142115.peach-feedback-chips {2116  display: flex;2117  flex-wrap: wrap;2118  gap: 6px;2119  margin-bottom: 14px;2120}21212122.peach-feedback-chip {2123  padding: 4px 10px;2124  border-radius: 999px;2125  border: 1px solid var(--peach-t3);2126  background: none;2127  color: var(--peach-t2);2128  font-size: 0.6875rem;2129  font-family: var(--font-ui);2130  cursor: pointer;2131  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2132    background var(--peach-dur-80) ease;2133}2134.peach-feedback-chip:hover {2135  border-color: var(--peach-t2);2136  color: var(--peach-t1);2137}2138.peach-feedback-chip.is-active {2139  border-color: color-mix(in srgb, var(--peach-accent) 82%, white 18%);2140  background: color-mix(in srgb, var(--peach-accent) 22%, rgba(255, 255, 255, 0.08));2141  color: color-mix(in srgb, var(--peach-accent) 86%, white 14%);2142  box-shadow:2143    0 0 0 1px color-mix(in srgb, var(--peach-accent) 42%, transparent),2144    0 0 14px color-mix(in srgb, var(--peach-accent) 22%, transparent);2145  font-weight: 700;2146}21472148.peach-feedback-textarea {2149  flex: 1;2150  width: 100%;2151  min-height: 120px;2152  box-sizing: border-box;2153  background: rgba(0, 0, 0, 0.22);2154  border: 1px solid transparent;2155  border-radius: 6px;2156  color: var(--peach-t0);2157  font-size: 0.75rem;2158  font-family: var(--font-ui);2159  line-height: 1.5;2160  padding: 8px 10px;2161  resize: none;2162  outline: none;2163  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2164}2165.peach-feedback-textarea:focus {2166  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2167  background: rgba(0, 0, 0, 0.28);2168}2169.peach-feedback-textarea:focus {2170  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2171}2172.peach-feedback-textarea::placeholder {2173  color: var(--peach-t2);2174}21752176.peach-feedback-meta {2177  margin: 6px 0 0;2178  font-size: 0.625rem;2179  color: var(--peach-t2);2180  font-family: "IBM Plex Mono", monospace;2181}21822183.peach-feedback-result {2184  margin: 8px 0 0;2185  font-size: 0.6875rem;2186  font-family: "IBM Plex Mono", monospace;2187}2188.peach-feedback-result--ok { color: var(--peach-sync-ok); }2189.peach-feedback-result--err { color: var(--peach-breach); }21902191.peach-feedback-submit {2192  width: 100%;2193  margin-top: 12px;2194  justify-content: center;2195}21962197.peach-feedback-anon {2198  margin: 8px 0 0;2199  font-size: 0.625rem;2200  color: var(--peach-t2);2201  text-align: center;2202}22032204.peach-feedback-thanks {2205  margin: auto 0;2206  padding: 18px 14px;2207  border: 1px solid color-mix(in srgb, var(--peach-accent) 42%, transparent);2208  border-radius: 8px;2209  background:2210    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 16%, transparent), transparent),2211    rgba(0, 0, 0, 0.18);2212  color: var(--peach-t1);2213  text-align: center;2214}22152216.peach-feedback-thanks p {2217  margin: 0;2218  font-size: 0.75rem;2219  line-height: 1.5;2220}22212222.peach-feedback-thanks-title {2223  color: var(--peach-t0);2224  font-family: "Cormorant Garamond", serif;2225  font-size: 1.375rem !important;2226  line-height: 1.1 !important;2227  margin-bottom: 8px !important;2228}22292230.peach-passkey-badge {2231  margin-left: 8px;2232  font-size: 0.625rem;2233  letter-spacing: 0.06em;2234  text-transform: uppercase;2235  color: var(--peach-t2);2236  font-family: var(--font-ui);2237  vertical-align: middle;2238}22392240.peach-passkey-delete-btn {2241  color: var(--peach-breach);2242  border-color: rgba(229, 85, 85, 0.25);2243}22442245.peach-passkey-delete-confirm {2246  display: flex;2247  align-items: center;2248  gap: 8px;2249  padding: 8px 10px;2250  background: rgba(229, 85, 85, 0.06);2251  border: 1px solid rgba(229, 85, 85, 0.2);2252  border-radius: 6px;2253}22542255.peach-passkey-delete-confirm-copy {2256  flex: 1;2257  font-size: 0.6875rem;2258  color: var(--peach-t1);2259}22602261.peach-passkey-delete-btn--confirm {2262  color: var(--peach-breach);2263  border-color: rgba(229, 85, 85, 0.4);2264}22652266.peach-passkey-activity {2267  flex-direction: column;2268  align-items: flex-start;2269  gap: 4px;2270}22712272.peach-passkey-meta {2273  font-size: 0.6875rem;2274  color: var(--peach-t2);2275}22762277.peach-passkey-actions {2278  position: relative;2279  z-index: 1;2280  margin-top: 14px;2281  display: flex;2282  flex-direction: column;2283  gap: 8px;2284}22852286.peach-passkey-approval {2287  display: flex;2288  flex-direction: column;2289  align-items: center;2290  padding: 16px 20px 14px;2291  gap: 8px;2292  text-align: center;2293}22942295.peach-passkey-approval-icon {2296  width: 36px;2297  height: 36px;2298  border-radius: 10px;2299  background: var(--peach-s2);2300  border: 1px solid var(--peach-t3);2301  display: flex;2302  align-items: center;2303  justify-content: center;2304  flex-shrink: 0;2305  color: var(--peach-accent);2306}23072308.peach-passkey-approval-icon img,2309.peach-passkey-approval-icon svg {2310  width: 22px;2311  height: 22px;2312  border-radius: 5px;2313}23142315.peach-passkey-approval-rp {2316  font-family: var(--font-ui);2317  font-size: 0.75rem;2318  color: var(--peach-t2);2319  letter-spacing: 0.03em;2320}23212322.peach-passkey-approval-action {2323  font-family: var(--font-display);2324  font-style: italic;2325  font-weight: 300;2326  font-size: 18px;2327  color: var(--peach-t0);2328  line-height: 1.1;2329  margin: 1px 0;2330}23312332.peach-passkey-approval-user {2333  font-family: var(--font-mono);2334  font-size: 0.6875rem;2335  color: var(--peach-t1);2336  background: var(--peach-s2);2337  border: 1px solid var(--peach-t3);2338  border-radius: 4px;2339  padding: 3px 8px;2340}23412342.peach-passkey-approval-notice {2343  font-size: 0.625rem;2344  color: var(--peach-t2);2345  line-height: 1.5;2346  max-width: 220px;2347}23482349.peach-passkey-approval-actions {2350  display: flex;2351  gap: 8px;2352  width: 100%;2353  margin-top: 6px;2354}23552356.peach-passkey-approval-actions .peach-btn {2357  flex: 1;2358}23592360/* ── Inline generator drawer ── */2361.peach-generator-drawer {2362  display: grid;2363  grid-template-rows: 0fr;2364  transition: grid-template-rows 320ms var(--peach-curve-arrival);2365  overflow: hidden;2366}2367.peach-generator-drawer.is-open {2368  grid-template-rows: 1fr;2369}2370.peach-generator-drawer-inner {2371  min-height: 0;2372  overflow: hidden;2373}2374.peach-generator-drawer-content {2375  border-top: 1px solid var(--peach-t3);2376  padding: 8px 0 4px;2377  display: flex;2378  flex-direction: column;2379  gap: 8px;2380}23812382/* ── Compact generator (inside entry edit) ── */2383.peach-generator-drawer-content--compact {2384  border-top: 1px solid var(--peach-t3);2385  padding: 8px 0 2px;2386  gap: 7px;2387}2388.peach-pwgen-compact-display-row {2389  display: flex;2390  align-items: center;2391  gap: 6px;2392}2393.peach-pwgen-compact-output {2394  flex: 1;2395  min-width: 0;2396  font-family: "IBM Plex Mono", monospace;2397  font-size: 0.6875rem;2398  font-weight: 400;2399  letter-spacing: 0.04em;2400  color: var(--peach-t0);2401  background: rgba(240, 232, 216, 0.04);2402  border: 1px solid var(--peach-t3);2403  border-radius: 5px;2404  padding: 5px 8px;2405  line-height: 1.5;2406  outline: none;2407  transition: border-color 120ms ease;2408}24092410.peach-pwgen-compact-output:focus {2411  border-color: var(--peach-t1);2412}2413.peach-pwgen-compact-controls {2414  display: flex;2415  align-items: center;2416  gap: 6px;2417}2418.peach-pwgen-compact-slider {2419  flex: 1;2420  min-width: 0;2421  height: 2px !important;2422}2423.peach-pwgen-compact-controls .peach-pwgen-len-num {2424  flex-shrink: 0;2425  min-width: 18px;2426  text-align: right;2427}2428.peach-pwgen-compact-pills {2429  display: flex;2430  gap: 3px;2431  flex-shrink: 0;2432}2433.peach-pwgen-compact-pills .peach-pwgen-pill {2434  padding: 2px 7px;2435  font-size: 0.5rem;2436}2437.peach-pwgen-compact-use {2438  flex-shrink: 0;2439  font-size: 0.625rem !important;2440  padding: 3px 9px !important;2441  min-height: 22px !important;2442  border-radius: 5px !important;2443}24442445/* ── Password edit row (input + eye toggle side-by-side) ── */2446.peach-password-edit-row {2447  display: flex;2448  align-items: center;2449  gap: 6px;2450}2451.peach-password-edit-row .peach-inline-input {2452  flex: 1;2453  min-width: 0;2454}24552456/* ── Generate toggle link ── */2457.peach-generate-toggle-link {2458  display: inline-flex;2459  align-items: center;2460  gap: 5px;2461  background: none;2462  border: none;2463  padding: 0;2464  cursor: pointer;2465  font-family: "IBM Plex Mono", monospace;2466  font-size: 0.625rem;2467  color: var(--peach-t2);2468  letter-spacing: 0.04em;2469  transition: color 120ms ease;2470  align-self: flex-start;2471}2472.peach-generate-toggle-link:hover {2473  color: var(--peach-accent);2474}24752476/* Holds the generate + history toggle links on one row under the editor. */2477.peach-password-edit-links {2478  display: flex;2479  align-items: center;2480  gap: 14px;2481  flex-wrap: wrap;2482}24832484/* ── Past-password history list ── */2485.peach-password-history {2486  display: grid;2487  gap: 4px;2488  margin-top: 2px;2489  max-height: 168px;2490  overflow-y: auto;2491  scrollbar-width: thin;2492}2493.peach-history-row {2494  display: flex;2495  align-items: center;2496  justify-content: space-between;2497  gap: 8px;2498  padding: 5px 7px;2499  border-radius: 7px;2500  background: color-mix(in srgb, var(--peach-accent) 5%, transparent);2501  border: 1px solid color-mix(in srgb, var(--peach-accent) 9%, transparent);2502}2503.peach-history-main {2504  display: flex;2505  flex-direction: column;2506  gap: 1px;2507  min-width: 0;2508  flex: 1;2509}2510.peach-history-pw {2511  font-family: "IBM Plex Mono", monospace;2512  font-size: 0.6875rem;2513  color: var(--peach-t1);2514  white-space: nowrap;2515  overflow: hidden;2516  text-overflow: ellipsis;2517}2518.peach-history-pw .peach-password-mask {2519  letter-spacing: 0.08em;2520  color: var(--peach-t2);2521}2522.peach-history-age {2523  font-family: "IBM Plex Mono", monospace;2524  font-size: 0.5625rem;2525  color: var(--peach-t3, var(--peach-t2));2526  letter-spacing: 0.03em;2527}2528.peach-history-actions {2529  display: flex;2530  align-items: center;2531  gap: 2px;2532  flex-shrink: 0;2533}2534.peach-history-use {2535  font-family: "IBM Plex Mono", monospace;2536  font-size: 0.5625rem;2537  letter-spacing: 0.05em;2538  padding: 3px 7px;2539}2540.peach-history-empty {2541  font-family: "IBM Plex Mono", monospace;2542  font-size: 0.625rem;2543  line-height: 1.45;2544  color: var(--peach-t2);2545  padding: 6px 8px;2546  border-radius: 7px;2547  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);2548  border: 1px solid color-mix(in srgb, var(--peach-accent) 8%, transparent);2549}25502551/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2552.peach-entry-body {2553  flex: 1;2554  overflow-y: auto;2555  overflow-x: hidden;2556  scrollbar-width: none;2557  -ms-overflow-style: none;2558  overscroll-behavior: contain;2559  display: grid;2560  gap: 10px;2561  align-content: start;2562  padding: 10px 20px 14px;2563  min-width: 0;2564  min-height: 0;2565}2566.peach-entry-body::-webkit-scrollbar { display: none; }25672568/* Type-toggle pills + inline note toolbar */2569.peach-new-type-row {2570  display: flex;2571  align-items: center;2572  gap: 6px;2573  margin-bottom: 2px;2574}2575.peach-new-type-btn {2576  background: transparent;2577  border: 1px solid var(--peach-t3);2578  border-radius: 12px;2579  padding: 3px 10px;2580  font-family: "IBM Plex Mono", monospace;2581  font-size: 0.5625rem;2582  letter-spacing: 0.12em;2583  text-transform: uppercase;2584  color: var(--peach-t2);2585  cursor: pointer;2586  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2587}2588.peach-new-type-btn.is-active {2589  color: var(--peach-t0);2590  border-color: var(--peach-accent);2591  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2592}2593.peach-new-type-btn:not(.is-active):hover {2594  color: var(--peach-t1);2595  border-color: var(--peach-t2);2596}25972598/* Editable title */2599.peach-new-title-wrap { margin: 0 0 2px; }2600.peach-new-title-input {2601  background: transparent;2602  border: none;2603  outline: none;2604  width: 100%;2605  color: var(--peach-t0);2606  font-family: var(--font-display);2607  font-style: italic;2608  font-weight: 400;2609  font-size: 40px;2610  line-height: 0.95;2611  caret-color: var(--peach-accent);2612}2613.peach-new-title-input::placeholder { color: var(--peach-t2); }26142615/* Editable domain field */2616.peach-domain-edit-row {2617  display: flex;2618  align-items: center;2619  gap: 6px;2620}26212622.peach-domain-edit-row .peach-domain-value--edit {2623  flex: 1;2624  width: 0;2625}26262627.peach-domain-url-btn {2628  flex-shrink: 0;2629  background: transparent;2630  border: none;2631  cursor: pointer;2632  color: var(--peach-t3);2633  padding: 2px 3px;2634  display: flex;2635  align-items: center;2636  line-height: 0;2637  border-radius: 3px;2638  transition: color 120ms ease;2639}26402641.peach-domain-url-btn:hover {2642  color: var(--peach-accent);2643}26442645.peach-domain-value--edit {2646  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2647  font-size: 0.625rem;2648  font-style: italic;2649  letter-spacing: 0.12em;2650  color: var(--peach-t1);2651  background: transparent;2652  border: none;2653  border-bottom: 1px solid var(--peach-t3);2654  outline: none;2655  width: 100%;2656  padding: 2px 0;2657  caret-color: var(--peach-accent);2658  transition: border-color 140ms ease, color 140ms ease;2659}2660.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2661.peach-domain-value--edit:focus {2662  border-bottom-color: rgba(240, 232, 216, 0.28);2663  color: var(--peach-t0);2664}26652666/* Editable field values (username, password, totp) */2667.peach-field-value--edit {2668  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2669  font-size: 0.8125rem;2670  color: var(--peach-t0);2671  background: transparent;2672  border: none;2673  border-bottom: 1px solid var(--peach-t3);2674  outline: none;2675  flex: 1;2676  min-width: 0;2677  padding: 3px 0;2678  caret-color: var(--peach-accent);2679  transition: border-color 140ms ease, color 140ms ease;2680}2681.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2682.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2683.peach-field-value--edit:focus {2684  border-bottom-color: rgba(240, 232, 216, 0.28);2685  color: var(--peach-t0);2686}26872688/* "+ add optional field" links */2689.peach-entry-add-links {2690  display: flex;2691  gap: 12px;2692  flex-wrap: wrap;2693  margin-top: -2px;2694}2695.peach-add-field-link {2696  background: transparent;2697  border: none;2698  padding: 0;2699  cursor: pointer;2700  font-family: "IBM Plex Mono", monospace;2701  font-size: 0.5625rem;2702  letter-spacing: 0.1em;2703  text-transform: uppercase;2704  color: var(--peach-t2);2705  transition: color 140ms ease;2706}2707.peach-add-field-link:hover { color: var(--peach-accent); }27082709/* ── New entry form (legacy classes) ────────────────────────────────── */2710.peach-new-body {2711  flex: 1;2712  overflow-y: auto;2713  padding: 10px 20px 14px;2714}2715.peach-new-name-input {2716  background: transparent;2717  border: none;2718  outline: none;2719  width: 100%;2720  color: var(--peach-t0);2721  font-family: var(--font-display);2722  font-style: italic;2723  font-weight: 400;2724  font-size: 40px;2725  line-height: 0.95;2726  caret-color: var(--peach-accent);2727}2728.peach-new-name-input::placeholder { color: var(--peach-t2); }2729.peach-new-field-input {2730  background: transparent;2731  border: none;2732  outline: none;2733  flex: 1;2734  min-width: 0;2735  caret-color: var(--peach-accent);2736}2737.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }27382739/* ── Canary card ── */2740.peach-canary-card {2741  border: 1px solid rgba(217, 160, 48, 0.2);2742  background: rgba(217, 160, 48, 0.03);2743  border-radius: 8px;2744  padding: 12px;2745}27462747.peach-canary-settings-header {2748  display: flex;2749  align-items: center;2750  justify-content: space-between;2751  cursor: pointer;2752  user-select: none;2753}27542755.peach-canary-card .peach-label {2756  color: rgba(217, 160, 48, 0.85);2757}27582759.peach-canary-card .peach-new-field-input {2760  border-color: rgba(217, 160, 48, 0.25);2761}27622763.peach-canary-card .peach-new-field-input:focus {2764  border-color: rgba(217, 160, 48, 0.5);2765}27662767.peach-canary-body {2768  margin-top: 12px;2769  display: flex;2770  flex-direction: column;2771  gap: 10px;2772}27732774.peach-canary-explainer {2775  display: flex;2776  gap: 10px;2777  padding: 10px 12px;2778  border-radius: 10px;2779  background: rgba(217, 160, 48, 0.06);2780  border: 1px solid rgba(217, 160, 48, 0.22);2781  margin-bottom: 4px;2782}27832784.peach-canary-explainer-icon {2785  font-size: 1rem;2786  flex-shrink: 0;2787  line-height: 1.2;2788}27892790.peach-canary-explainer-title {2791  font-family: var(--font-ui);2792  font-size: 0.6875rem;2793  font-weight: 500;2794  color: rgba(217, 160, 48, 0.9);2795  margin: 0 0 3px;2796}27972798.peach-canary-explainer-copy {2799  font-family: var(--font-ui);2800  font-size: 0.625rem;2801  color: var(--peach-t2);2802  line-height: 1.55;2803  margin: 0;2804}28052806.peach-canary-hint {2807  font-size: 0.625rem;2808  color: var(--peach-t2);2809  font-family: Inter, system-ui, sans-serif;2810  line-height: 1.5;2811  margin-top: 4px;2812}28132814.peach-canary-actions-row {2815  display: flex;2816  align-items: center;2817  gap: 8px;2818}28192820.peach-canary-test-btn {2821  border-color: rgba(217, 160, 48, 0.3);2822  color: rgba(217, 160, 48, 0.85);2823}28242825.peach-canary-test-result {2826  font-size: 0.625rem;2827  font-family: Inter, system-ui, sans-serif;2828}28292830.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2831.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }28322833.peach-canary-badge {2834  display: flex;2835  position: relative;2836  z-index: 1;2837  align-items: center;2838  gap: 5px;2839  padding: 4px 10px;2840  background: rgba(217, 160, 48, 0.12);2841  border: 1px solid rgba(217, 160, 48, 0.35);2842  border-radius: 6px;2843  margin-bottom: 6px;2844  width: fit-content;2845}28462847.peach-canary-badge-label {2848  font-size: 0.625rem;2849  letter-spacing: 0.06em;2850  color: rgba(217, 160, 48, 0.9);2851  font-family: var(--font-ui);2852  text-transform: uppercase;2853}28542855.peach-canary-badge-icon {2856  font-size: 0.6875rem;2857}28582859.peach-canary-suppress-row {2860  display: flex;2861  align-items: center;2862  gap: 8px;2863  padding: 6px 10px;2864  background: rgba(217, 160, 48, 0.08);2865  border-radius: 6px;2866  margin-bottom: 8px;2867}28682869.peach-canary-suppress-label {2870  font-size: 0.6875rem;2871  color: rgba(217, 160, 48, 0.85);2872  cursor: pointer;2873  font-family: var(--font-ui);2874  letter-spacing: 0.04em;2875}28762877.peach-regen-panel {2878  position: relative;2879  z-index: 1;2880  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2881  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2882  border-radius: 8px;2883  padding: 12px;2884  margin-bottom: 8px;2885}28862887.peach-regen-panel-header {2888  display: flex;2889  align-items: center;2890  justify-content: space-between;2891  margin-bottom: 10px;2892}28932894.peach-regen-panel-title {2895  font-size: 0.6875rem;2896  font-weight: 600;2897  letter-spacing: 0.06em;2898  text-transform: uppercase;2899  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2900}29012902.peach-regen-output {2903  background: rgba(0, 0, 0, 0.2);2904  border-radius: 6px;2905  padding: 10px;2906  margin-bottom: 10px;2907  font-family: var(--font-mono);2908  font-size: 0.8125rem;2909  word-break: break-all;2910  color: var(--peach-t1);2911}29122913.peach-regen-actions {2914  display: flex;2915  gap: 6px;2916}29172918.peach-regen-actions--spaced {2919  margin-bottom: 8px;2920}29212922.peach-regen-action-grow {2923  flex: 1;2924}29252926.peach-regen-copy-btn {2927  padding: 0 8px;2928}29292930.peach-regen-success {2931  position: relative;2932  z-index: 1;2933  background: rgba(40, 180, 80, 0.1);2934  border: 1px solid rgba(40, 180, 80, 0.3);2935  border-radius: 8px;2936  padding: 10px 12px;2937  margin-bottom: 8px;2938  display: flex;2939  align-items: center;2940  gap: 8px;2941  font-size: 0.6875rem;2942  color: rgba(40, 180, 80, 0.9);2943}29442945/* ── Note editor overlay ── */2946.peach-note-editor {2947  position: absolute;2948  inset: 0;2949  z-index: 200;2950  display: flex;2951  flex-direction: column;2952  background:2953    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2954    var(--peach-bg);2955  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2956}29572958.peach-note-editor-header {2959  display: flex;2960  align-items: center;2961  gap: 10px;2962  padding: 14px 16px 10px;2963  border-bottom: 1px solid var(--peach-t3);2964  flex-shrink: 0;2965}29662967.peach-note-editor-back {2968  background: transparent;2969  border: none;2970  cursor: pointer;2971  color: var(--peach-t2);2972  padding: 4px 6px;2973  border-radius: 6px;2974  display: flex;2975  align-items: center;2976  transition: color 120ms ease, background 120ms ease;2977  flex-shrink: 0;2978}2979.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }29802981.peach-note-editor-label {2982  flex: 1;2983  font-family: var(--font-display);2984  font-style: italic;2985  font-size: 0.9375rem;2986  color: var(--peach-t1);2987  letter-spacing: 0.02em;2988}29892990.peach-note-editor-save-btn {2991  background: transparent;2992  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2993  border-radius: 8px;2994  color: var(--peach-accent);2995  font-family: "IBM Plex Mono", monospace;2996  font-size: 0.625rem;2997  letter-spacing: 0.06em;2998  text-transform: uppercase;2999  padding: 3px 10px;3000  cursor: pointer;3001  transition: background 120ms ease, border-color 120ms ease;3002}3003.peach-note-editor-save-btn:hover:not(:disabled) {3004  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3005  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3006}3007.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }30083009.peach-note-toolbar {3010  display: flex;3011  align-items: center;3012  gap: 3px;3013  padding: 6px 14px 5px;3014  border-bottom: 1px solid var(--peach-t3);3015  flex-shrink: 0;3016}30173018.peach-note-tool-btn {3019  background: transparent;3020  border: 1px solid transparent;3021  border-radius: 5px;3022  color: var(--peach-t2);3023  font-family: "IBM Plex Mono", monospace;3024  font-size: 0.625rem;3025  letter-spacing: 0.04em;3026  padding: 2px 8px;3027  cursor: pointer;3028  line-height: 1.6;3029  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;3030}3031.peach-note-tool-btn:hover {3032  background: var(--peach-t4);3033  color: var(--peach-t0);3034  border-color: var(--peach-t3);3035}30363037.peach-note-tool-icon {3038  padding: 3px 7px;3039  display: inline-flex;3040  align-items: center;3041  justify-content: center;3042}30433044.peach-note-tool-divider {3045  width: 1px;3046  height: 14px;3047  background: var(--peach-t3);3048  margin: 0 4px;3049  flex-shrink: 0;3050}30513052.peach-note-editor-body {3053  flex: 1;3054  overflow-y: auto;3055  padding: 16px 20px 20px;3056  outline: none;3057  font-family: var(--font-display);3058  font-size: 1rem;3059  line-height: 1.75;3060  color: var(--peach-t0);3061  scrollbar-width: none;3062  word-break: break-word;3063}3064.peach-note-editor-body:empty::before {3065  content: "write your note…";3066  color: var(--peach-t3);3067  font-style: italic;3068  pointer-events: none;3069}30703071/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */3072.peach-note-editor-inline {3073  display: flex;3074  flex-direction: column;3075  flex: 1;3076  min-height: 0;3077}3078.peach-note-editor-body--inline {3079  flex: 1;3080  min-height: 0;3081  font-size: 0.9375rem;3082  padding: 10px 20px 14px;3083}30843085/* Full-width toolbar row inside the body (Add.tsx note type).3086   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */3087.peach-note-toolbar-body {3088  display: flex;3089  align-items: center;3090  gap: 3px;3091  padding: 5px 20px 4px;3092  margin: 2px -20px 0;3093  border-bottom: 1px solid var(--peach-t3);3094  flex-shrink: 0;3095}30963097/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)3098   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn3099   and .peach-note-tool-divider button-level styles. */3100.peach-note-toolbar-inline {3101  display: flex;3102  align-items: center;3103  gap: 3px;3104  margin-left: auto;3105  padding-left: 10px;3106  border-left: 1px solid var(--peach-t3);3107  min-height: 22px;3108}31093110/* Entry.tsx toolbar row (no tabs, toolbar only) */3111.peach-entry-note-toolbar-row {3112  display: flex;3113  align-items: center;3114  margin: 4px 0 6px;3115  position: relative;3116  z-index: 1;3117}3118.peach-entry-note-toolbar-row .peach-note-toolbar-inline {3119  border-left: none;3120  padding-left: 0;3121  margin-left: 0;3122}31233124/* Note body — fills available vertical space in Add.tsx and Entry.tsx */3125.peach-note-body {3126  display: flex;3127  flex-direction: column;3128  flex: 1;3129  min-height: 0;3130  margin: 4px 0 0;3131}3132.peach-entry-body--new .peach-note-body {3133  margin: 8px -20px 0;3134}31353136/* Add.tsx body is a grid by default; swap to a flex column when a note is3137   active so the note body can stretch and pin the tags row to the bottom. */3138.peach-entry-body--new:has(.peach-note-body) {3139  display: flex;3140  flex-direction: column;3141}31423143/* Rich content element styles (editor + display) */3144.peach-note-editor-body h2,3145.peach-note-content h2 {3146  font-family: var(--font-display);3147  font-size: 20px;3148  font-weight: 600;3149  font-style: italic;3150  color: var(--peach-t0);3151  margin: 6px 0 2px;3152  line-height: 1.3;3153}3154.peach-note-editor-body ul,3155.peach-note-content ul {3156  padding-left: 18px;3157  margin: 3px 0;3158  list-style: disc;3159}3160.peach-note-editor-body ol,3161.peach-note-content ol {3162  padding-left: 18px;3163  margin: 3px 0;3164  list-style: decimal;3165}3166.peach-note-editor-body li,3167.peach-note-content li { margin: 2px 0; }3168.peach-note-editor-body hr,3169.peach-note-content hr {3170  border: none;3171  border-top: 1px solid var(--peach-t3);3172  margin: 10px 0;3173}31743175/* font size elements from execCommand */3176.peach-note-editor-body font[size="1"],3177.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }3178.peach-note-editor-body font[size="2"],3179.peach-note-content font[size="2"] { font-size: 0.8125rem; }3180.peach-note-editor-body font[size="3"],3181.peach-note-content font[size="3"] { font-size: 1rem; }3182.peach-note-editor-body font[size="4"],3183.peach-note-content font[size="4"] { font-size: 20px; }3184.peach-note-editor-body font[size="5"],3185.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }31863187/* bold / italic inside the editor and note display */3188.peach-note-editor-body b, .peach-note-editor-body strong,3189.peach-note-content b, .peach-note-content strong { font-weight: 700; }3190.peach-note-editor-body em, .peach-note-editor-body i,3191.peach-note-content em, .peach-note-content i { font-style: italic; }31923193/* note display — rendered HTML, no pre-wrap */3194.peach-note-content {3195  overflow: auto;3196  max-height: 340px;3197  word-break: break-word;3198}31993200/* ── Note textarea ── */3201.peach-note-textarea {3202  width: 100%;3203  min-height: 180px;3204  max-height: 280px;3205  resize: vertical;3206  background: var(--peach-t4);3207  border: 1px solid var(--peach-t3);3208  border-radius: 8px;3209  padding: 10px 12px;3210  font-family: "IBM Plex Mono", monospace;3211  font-size: 0.75rem;3212  line-height: 1.7;3213  color: var(--peach-t1);3214  outline: none;3215  transition: border-color 150ms ease;3216}32173218.peach-note-textarea:focus {3219  border-color: var(--peach-t2);3220}32213222.peach-note-char-count {3223  font-family: "IBM Plex Mono", monospace;3224  font-size: 0.5625rem;3225  color: var(--peach-t3);3226  text-align: right;3227  margin-top: 4px;3228  letter-spacing: 0.1em;3229}32303231/* ── Field input baseline ── */3232.peach-new-field-input {3233  width: 100%;3234  background: transparent;3235  border: none;3236  border-bottom: 1px solid var(--peach-t3);3237  padding: 4px 0;3238  color: var(--peach-t1);3239  font-family: "IBM Plex Mono", monospace;3240  font-size: 0.8125rem;3241  outline: none;3242  transition: border-color 150ms ease;3243}32443245.peach-new-field-input:focus {3246  border-bottom-color: var(--peach-t0);3247  color: var(--peach-t0);3248}32493250.peach-new-name-input {3251  width: 100%;3252  background: transparent;3253  border: none;3254  border-bottom: 1px solid var(--peach-t3);3255  padding: 6px 0;3256  font-family: var(--font-display);3257  font-style: italic;3258  font-size: 28px;3259  color: var(--peach-t0);3260  outline: none;3261  transition: border-color 150ms ease;3262}32633264.peach-new-name-input:focus {3265  border-bottom-color: var(--peach-t1);3266}32673268.peach-new-name-input::placeholder {3269  color: var(--peach-t2);3270  font-style: italic;3271}32723273.peach-new-field-input::placeholder {3274  color: var(--peach-t3);3275}32763277/* ── Demo entrance animation ── */3278#hd-shell {3279  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3280}3281@keyframes hd-shell-enter {3282  from { opacity: 0; transform: scale(0.96) translateY(16px); }3283  to   { opacity: 1; transform: scale(1) translateY(0); }3284}32853286/* ── Keyframes ── */3287@keyframes peach-char-enter {3288  from { opacity: 0; transform: translateY(0.22em); }3289  to   { opacity: 1; transform: translateY(0); }3290}3291@keyframes peach-content-enter {3292  from { opacity: 0.96; transform: translateY(4px); }3293  to   { opacity: 1; transform: translateY(0); }3294}3295@keyframes peach-content-exit {3296  from { opacity: 1; transform: translateY(0); }3297  to   { opacity: 0.92; transform: translateY(-3px); }3298}3299@keyframes peach-screen-enter {3300  from { opacity: 0; transform: translateY(14px); }3301  to   { opacity: 1; transform: translateY(0); }3302}3303@keyframes peach-shell-fade-in {3304  from { opacity: 0; }3305  to   { opacity: 1; }3306}3307@keyframes peach-veil-in {3308  from { opacity: 0; }3309  to   { opacity: 1; }3310}3311@keyframes peach-lock-settle {3312  0%   { transform: scale(0.9); }3313  65%  { transform: scale(1.08); }3314  100% { transform: scale(1); }3315}3316@keyframes peach-copy-confirm {3317  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3318  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); }3319}3320@keyframes peach-copy-retreat {3321  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); }3322  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3323}3324@keyframes peach-copy-flood {3325  from { opacity: 0; transform: scaleX(0.15); }3326  to   { opacity: 1; transform: scaleX(1); }3327}3328@keyframes peach-copy-icon-settle {3329  from  { transform: scale(0.84); }3330  70%   { transform: scale(1.08); }3331  to    { transform: scale(1); }3332}3333@keyframes peach-copy-sheen-retreat {3334  from { opacity: 1; transform: scaleX(1); }3335  to   { opacity: 0; transform: scaleX(0.15); }3336}3337@keyframes peach-copy-drain {3338  from { width: 100%; }3339  to   { width: 0; }3340}3341@keyframes peach-shake {3342  0%, 100% { transform: translateX(0); }3343  20%      { transform: translateX(-6px); }3344  40%      { transform: translateX(6px); }3345  60%      { transform: translateX(-4px); }3346  80%      { transform: translateX(4px); }3347}33483349@keyframes pip-pulse {3350  0% { transform: scale(1); }3351  40% { transform: scale(2.2); }3352  100% { transform: scale(1); }3353}335433553356/* ── Password generator ── */3357.peach-pwgen-body {3358  flex: 1; overflow-y: auto;3359  display: flex; flex-direction: column;3360}3361.peach-policy-badge {3362  display: flex; align-items: center;3363  padding: 6px 20px 0;3364  font-size: 0.625rem; font-family: Inter, sans-serif;3365  color: var(--peach-t2); letter-spacing: 0.04em;3366}3367.peach-pwgen-display {3368  padding: 14px 20px 12px;3369  border-bottom: 1px solid var(--peach-t3);3370  display: flex; align-items: flex-start; gap: 10px;3371}3372.peach-pwgen-display-row {3373  display: flex;3374  align-items: flex-start;3375  gap: 8px;3376  padding-bottom: 8px;3377  border-bottom: 1px solid var(--peach-t3);3378}3379.peach-pwgen-output {3380  flex: 1; min-width: 0; margin: 0;3381  font-family: "IBM Plex Mono", monospace;3382  font-size: 0.8125rem; color: var(--peach-t0);3383  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3384  white-space: normal;3385  padding: 10px 12px;3386  background: var(--peach-t4);3387  border-radius: 6px;3388  min-height: 36px;3389}3390.peach-pwgen-output-display {3391  flex: 1;3392  min-width: 0;3393  margin: 0;3394  font-family: var(--font-display);3395  font-style: italic;3396  font-weight: 300;3397  font-size: 32px;3398  line-height: 1.05;3399  color: var(--peach-t0);3400  word-break: break-all;3401  overflow-wrap: break-word;3402  white-space: normal;3403  letter-spacing: 0.02em;3404}3405.peach-pwgen-display-actions {3406  display: flex;3407  flex-direction: column;3408  gap: 4px;3409  flex-shrink: 0;3410  margin-top: 2px;3411}3412.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3413.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3414.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3415.peach-pwgen-len-num {3416  font-family: "IBM Plex Mono", monospace;3417  font-size: 0.75rem; color: var(--peach-accent);3418}3419.peach-pwgen-len-num--edit {3420  cursor: text;3421  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3422}3423.peach-pwgen-len-input {3424  font-family: "IBM Plex Mono", monospace;3425  font-size: 0.75rem;3426  color: var(--peach-accent);3427  background: transparent;3428  border: none;3429  border-bottom: 1px solid var(--peach-accent);3430  outline: none;3431  width: 32px;3432  text-align: right;3433  padding: 0;3434}3435.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3436.peach-pwgen-toggles { display: flex; flex-direction: column; }3437.peach-pwgen-charset-pills {3438  display: flex;3439  gap: 6px;3440  flex-wrap: wrap;3441}3442.peach-pwgen-pill {3443  padding: 4px 11px;3444  border-radius: 999px;3445  border: 1px solid var(--peach-t3);3446  background: transparent;3447  color: var(--peach-t2);3448  font-family: "IBM Plex Mono", monospace;3449  font-size: 0.5625rem;3450  letter-spacing: 0.08em;3451  cursor: pointer;3452  transition: all 150ms ease;3453}3454.peach-pwgen-pill.is-on {3455  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3456  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3457  color: var(--peach-accent);3458}3459.peach-pwgen-pill:not(.is-on):hover {3460  color: var(--peach-t1);3461  border-color: var(--peach-t2);3462}3463.peach-pwgen-use-btn {3464  width: 100%;3465  min-height: 34px;3466  border-radius: 8px;3467  margin-top: 2px;3468}3469.peach-generator-constraint-note {3470  font-family: 'IBM Plex Mono', monospace;3471  font-size: 10px;3472  color: var(--peach-t3);3473  letter-spacing: 0.04em;3474  margin: 0;3475  transition: opacity 200ms ease;3476}3477.peach-pwgen-toggle-row {3478  display: flex; align-items: center; justify-content: space-between;3479  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3480}3481.peach-pwgen-toggle-row:last-child { border-bottom: none; }3482.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }34833484/* Peach popup should not expose native scrollbars on internal panels. */3485.peach-settings-body,3486.peach-new-body,3487.peach-pwgen-body,3488.lock-screen,3489.peach-import-preview {3490  scrollbar-width: none;3491  -ms-overflow-style: none;3492  overscroll-behavior: contain;3493}3494.peach-settings-body::-webkit-scrollbar,3495.peach-new-body::-webkit-scrollbar,3496.peach-pwgen-body::-webkit-scrollbar,3497.lock-screen::-webkit-scrollbar,3498.peach-import-preview::-webkit-scrollbar {3499  width: 0;3500  height: 0;3501  display: none;3502}35033504.lock-screen {3505  height: 100%;3506  min-height: 100%;3507  overflow-y: auto;3508  padding: 18px 18px 16px;3509  gap: 14px;3510  grid-template-rows: auto auto auto 1fr auto;3511  align-content: stretch;3512  position: relative;3513  isolation: isolate;3514}3515.peach-screen.lock-screen--vault-stage {3516  display: flex;3517  flex-direction: column;3518  justify-content: flex-start;3519  gap: 18px;3520  padding: 20px 18px 18px;3521  overflow: hidden;3522}3523.peach-screen.lock-screen--vault-stage .peach-lock-panel {3524  margin-top: 0;3525}3526.lock-screen--onboarding {3527  display: flex;3528  flex-direction: column;3529  gap: 12px;3530  justify-content: flex-start;3531}35323533.lock-screen::before {3534  content: "";3535  position: absolute;3536  inset: 12px 18px auto auto;3537  width: 160px;3538  height: 160px;3539  border-radius: 999px;3540  background:3541    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%);3542  filter: blur(6px);3543  opacity: 0.7;3544  pointer-events: none;3545  z-index: 0;3546}35473548.peach-lock-rune-string {3549  flex: 1;3550  display: flex;3551  align-items: center;3552  justify-content: center;3553  gap: 6px;3554  font-family: PeachScript, monospace;3555  font-size: 0.8125rem;3556  letter-spacing: 0.05em;3557  pointer-events: none;3558  user-select: none;3559  position: relative;3560  z-index: 1;3561}35623563.peach-lock-rune-string span {3564  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3565  text-shadow:3566    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3567    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3568  transition: color 0.9s ease, text-shadow 0.9s ease;3569}35703571.peach-lock-rune-string span.is-glowing {3572  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3573  text-shadow:3574    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3575    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3576}35773578.lock-screen-header {3579  display: flex;3580  align-items: center;3581  justify-content: space-between;3582  position: relative;3583  z-index: 1;3584}35853586.lock-password-input.shake {3587  animation: peach-shake 300ms ease-in-out;3588}35893590.peach-hint-error {3591  color: rgba(220, 80, 60, 0.92);3592}35933594.peach-onboarding-headline {3595  margin: 0;3596  font-family: var(--font-display);3597  font-size: 35px;3598  line-height: 0.88;3599  font-style: italic;3600  font-weight: 400;3601  max-width: 252px;3602}36033604.peach-lock-copy {3605  display: grid;3606  gap: 8px;3607  position: relative;3608  z-index: 1;3609}36103611.peach-lock-copy--onboarding {3612  gap: 10px;3613}36143615.peach-lock-hero {3616  position: relative;3617  z-index: 1;3618  display: grid;3619  gap: 8px;3620  min-height: 0;3621  padding: 4px 2px 0;3622  border: none;3623  border-radius: 0;3624  background: transparent;3625  box-shadow: none;3626}3627.peach-lock-hero-art {3628  position: absolute;3629  right: -8px;3630  top: -6px;3631  width: 120px;3632  height: 120px;3633  display: flex;3634  align-items: center;3635  justify-content: center;3636  pointer-events: none;3637  opacity: 0.12;3638  filter: saturate(0.9);3639}3640.peach-lock-hero-mark {3641  width: 100%;3642  height: 100%;3643}3644/* Peach body stays brand-peach across every accent — we don't want a3645   green or blue peach when sage/sky is selected. Leaf + vein keep the3646   sage tint because a real peach has a sage leaf. In the new brand-kit3647   mark the leaf is path 1 and the vein stroke is path 2; the body and3648   back-lobe (paths 3 + 4) must stay untouched. */3649.peach-lock-hero-mark path:nth-child(1) {3650  fill: rgba(123, 144, 96, 0.88);3651}3652.peach-lock-hero-mark path:nth-child(2) {3653  stroke: rgba(94, 122, 66, 0.95);3654}3655.peach-lock-hero > *:not(.peach-lock-hero-art) {3656  position: relative;3657  z-index: 1;3658}36593660.peach-lock-eyebrow {3661  display: inline-flex;3662  align-items: center;3663  width: fit-content;3664  padding: 4px 9px;3665  border-radius: 999px;3666  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3667  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3668  color: var(--peach-t0);3669  font-family: "IBM Plex Mono", monospace;3670  font-size: 0.5rem;3671  letter-spacing: 0.18em;3672  text-transform: uppercase;3673}36743675.peach-lock-label-row {3676  display: flex;3677  align-items: center;3678  justify-content: space-between;3679  margin-bottom: 0;3680}36813682.peach-lock-reveal-btn {3683  display: inline-flex;3684  align-items: center;3685  gap: 4px;3686  background: none;3687  border: none;3688  cursor: pointer;3689  font-family: "IBM Plex Mono", monospace;3690  font-size: 0.5625rem;3691  letter-spacing: 0.06em;3692  color: var(--peach-t2);3693  padding: 2px 0;3694  transition: color 150ms ease;3695}36963697.peach-lock-reveal-btn:hover {3698  color: var(--peach-t1);3699}37003701.peach-lock-warning {3702  color: rgba(220, 80, 60, 0.85) !important;3703  line-height: 1.5;3704}37053706.peach-onboarding-cards {3707  display: grid;3708  gap: 8px;3709  position: relative;3710  z-index: 1;3711}37123713.peach-lock-panel {3714  position: relative;3715  z-index: 1;3716  display: grid;3717  gap: 9px;3718  padding: 14px 16px 15px;3719  border-radius: 18px;3720  border: 1px solid var(--peach-t3);3721  background:3722    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3723  box-shadow:3724    inset 0 1px 0 rgba(240, 232, 216, 0.04),3725    0 12px 28px rgba(0, 0, 0, 0.12);3726}37273728/* Glass surface — lock panel and settings groups */3729.peach-glass {3730  background: rgba(26, 20, 16, 0.65);3731  border: 1px solid rgba(255, 255, 255, 0.08);3732  border-radius: 12px;3733  backdrop-filter: blur(12px) saturate(1.4);3734  -webkit-backdrop-filter: blur(12px) saturate(1.4);3735}37363737@supports not (backdrop-filter: blur(1px)) {3738  .peach-glass {3739    background: rgba(26, 20, 16, 0.92);3740    border: 1px solid rgba(255, 255, 255, 0.10);3741    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3742  }3743}37443745.light .peach-glass,3746[data-theme="light"] .peach-glass {3747  background: rgba(240, 233, 223, 0.72);3748  border: 1px solid rgba(26, 18, 8, 0.08);3749  backdrop-filter: blur(12px) saturate(1.2);3750  -webkit-backdrop-filter: blur(12px) saturate(1.2);3751}37523753@supports not (backdrop-filter: blur(1px)) {3754  .light .peach-glass,3755  [data-theme="light"] .peach-glass {3756    background: rgba(240, 233, 223, 0.97);3757    border: 1px solid rgba(26, 18, 8, 0.10);3758  }3759}37603761/* Lock panel keeps its own border-radius over the generic glass token */3762.peach-lock-panel.peach-glass {3763  border-radius: 18px;3764  background: rgba(26, 20, 16, 0.65);3765  border: 1px solid rgba(255, 255, 255, 0.08);3766  box-shadow:3767    inset 0 1px 0 rgba(255, 255, 255, 0.05),3768    0 12px 28px rgba(0, 0, 0, 0.3);3769}37703771.light .peach-lock-panel.peach-glass,3772[data-theme="light"] .peach-lock-panel.peach-glass {3773  background: rgba(240, 233, 223, 0.82);3774  border: 1px solid rgba(26, 18, 8, 0.08);3775  box-shadow:3776    inset 0 1px 0 rgba(255, 255, 255, 0.4),3777    0 8px 24px rgba(80, 56, 32, 0.15);3778}37793780@supports not (backdrop-filter: blur(1px)) {3781  .peach-lock-panel.peach-glass {3782    background: rgba(26, 20, 16, 0.92);3783    box-shadow:3784      inset 0 1px 0 rgba(255, 255, 255, 0.05),3785      0 12px 28px rgba(0, 0, 0, 0.4);3786  }3787  .light .peach-lock-panel.peach-glass,3788  [data-theme="light"] .peach-lock-panel.peach-glass {3789    background: rgba(240, 233, 223, 0.98);3790  }3791}37923793.peach-lock-panel--secondary {3794  gap: 12px;3795}37963797.peach-lock-panel-header {3798  display: flex;3799  align-items: baseline;3800  justify-content: space-between;3801  gap: 12px;3802}38033804.peach-lock-option-grid {3805  display: grid;3806  gap: 10px;3807}38083809.peach-lock-option {3810  width: 100%;3811  display: grid;3812  gap: 6px;3813  padding: 14px 15px;3814  border-radius: 16px;3815  border: 1px solid rgba(240, 232, 216, 0.08);3816  background: rgba(240, 232, 216, 0.02);3817  color: var(--peach-t0);3818  text-align: left;3819  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3820}38213822.peach-lock-option:hover {3823  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3824  background: rgba(240, 232, 216, 0.04);3825  transform: translateY(-1px);3826}38273828.peach-lock-option-title {3829  font-size: 0.75rem;3830  color: var(--peach-t0);3831}38323833.peach-lock-option-copy {3834  font-size: 0.6875rem;3835  line-height: 1.55;3836  color: var(--peach-t1);3837}38383839.peach-onboarding-stack {3840  margin-top: 2px;3841}3842.peach-lock-panel-footer {3843  display: grid;3844  gap: 6px;3845  margin-top: 2px;3846  padding-top: 10px;3847  border-top: 1px solid rgba(240, 232, 216, 0.06);3848}38493850/* ── Restore tab view ─────────────────────────────────────────────────────3851   Tab-based restore screen replacing the old three-card picker. */38523853.peach-restore-tabview {3854  overflow: hidden;3855}38563857.peach-restore-tabcard {3858  flex: 1;3859  display: flex;3860  flex-direction: column;3861  gap: 0;3862  padding: 0;3863  overflow: hidden;3864  cursor: default;3865  user-select: none;3866  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3867}38683869/* ── Tab selector ─────────────────────────────────────────────────────── */38703871.peach-restore-tabs {3872  display: flex;3873  justify-content: space-around;3874  padding: 14px 10px 10px;3875  border-bottom: 1px solid var(--peach-t3);3876  gap: 2px;3877  overflow: hidden;3878  scrollbar-width: none;3879}3880.peach-restore-tabs::-webkit-scrollbar { display: none; }38813882.peach-restore-tab {3883  background: none;3884  border: none;3885  cursor: pointer;3886  padding: 3px 2px;3887  font-family: 'Cormorant Garamond', Georgia, serif;3888  font-style: italic;3889  font-size: 11px;3890  color: var(--peach-t2);3891  transition: color 150ms ease, text-shadow 150ms ease;3892  flex: 1;3893  min-width: 0;3894  text-align: center;3895  white-space: nowrap;3896  overflow: hidden;3897  text-overflow: ellipsis;3898}3899.peach-restore-tab:hover {3900  color: var(--peach-accent);3901  text-shadow:3902    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3903    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3904}3905.peach-restore-tab.is-active {3906  color: var(--peach-accent);3907  text-shadow:3908    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3909    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3910}39113912/* ── Content area ─────────────────────────────────────────────────────── */39133914.peach-restore-content {3915  padding: 16px 16px 14px;3916  display: flex;3917  flex-direction: column;3918  gap: 8px;3919  overflow: hidden;3920  scrollbar-width: none;3921  flex: 1;3922}3923.peach-restore-content::-webkit-scrollbar { display: none; }3924.peach-restore-content > * {3925  overflow: hidden;3926  scrollbar-width: none;3927}3928.peach-restore-content > *::-webkit-scrollbar { display: none; }39293930/* ── Shared tab inner layout ──────────────────────────────────────────── */39313932.peach-rt-symbols,3933.peach-rt-csv,3934.peach-rt-phone,3935.peach-restore-codex {3936  display: flex;3937  flex-direction: column;3938  gap: 8px;3939  overflow: hidden;3940}39413942.peach-restore-codex {3943  min-height: 0;3944  justify-content: center;3945}39463947.peach-restore-codex-title {3948  margin: 0;3949  font-family: var(--font-display);3950  font-size: 1rem;3951  font-style: italic;3952  color: var(--peach-t0);3953}39543955.peach-restore-codex-copy {3956  margin: 0;3957  font-size: 0.75rem;3958  line-height: 1.5;3959  color: var(--peach-t1);3960}39613962.peach-restore-codex-button {3963  width: 100%;3964  justify-content: center;3965}39663967.peach-rt-submit {3968  width: 100%;3969}39703971.peach-rt-error {3972  margin: 0;3973  font-size: 0.6875rem;3974  color: var(--peach-breach);3975  line-height: 1.4;3976}39773978/* ── PeachScript tab ──────────────────────────────────────────────────── */39793980.peach-restore-symbols-textarea {3981  font-family: 'PeachScript', monospace;3982  font-size: 13px;3983  line-height: 1.9;3984  letter-spacing: 0.1em;3985  word-break: break-all;3986  resize: none;3987  width: 100%;3988  min-height: 56px;3989  max-height: 72px;3990  overflow: hidden;3991  scrollbar-width: none;3992  -ms-overflow-style: none;3993  box-sizing: border-box;3994  padding: 6px 8px;3995  border-radius: 8px;3996  border: 1px solid var(--peach-t3);3997  background: rgba(240, 232, 216, 0.03);3998  color: var(--peach-t0);3999}4000.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }4001.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40024003.peach-restore-symbols-pass {4004  width: 100%;4005  box-sizing: border-box;4006  padding: 7px 10px;4007  border-radius: 8px;4008  border: 1px solid var(--peach-t3);4009  background: rgba(240, 232, 216, 0.03);4010  color: var(--peach-t0);4011  font-size: 0.8125rem;4012}4013.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }4014.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40154016.peach-rt-divider {4017  text-align: center;4018  font-size: 0.6875rem;4019  color: var(--peach-t2);4020  font-style: italic;4021}40224023.peach-rt-file-label {4024  width: 100%;4025  justify-content: center;4026}40274028.peach-rt-anim-canvas {4029  width: 100%;4030  height: 180px;4031  border-radius: 10px;4032  overflow: hidden;4033  display: block;4034}40354036/* ── CSV tab ──────────────────────────────────────────────────────────── */40374038.peach-rt-csv-sources {4039  margin: 0;4040  font-size: 0.6875rem;4041  color: var(--peach-t2);4042  line-height: 1.5;4043  text-align: center;4044}40454046.peach-rt-csv-warning {4047  margin: 0;4048  font-family: "IBM Plex Mono", monospace;4049  font-size: 0.5625rem;4050  letter-spacing: 0.12em;4051  color: var(--peach-breach);4052  text-align: center;4053}40544055/* ── From Phone tab ───────────────────────────────────────────────────── */40564057.peach-rt-phone-code {4058  margin: 0;4059  text-align: center;4060  font-family: "IBM Plex Mono", monospace;4061  font-size: 22px;4062  letter-spacing: 0.18em;4063  color: var(--peach-t0);4064}40654066.peach-rt-phone-qr {4067  display: block;4068  width: 96px;4069  height: 96px;4070  margin: 0 auto;4071  border-radius: 6px;4072  image-rendering: pixelated;4073  overflow: hidden;4074}40754076.peach-rt-phone-hint {4077  margin: 0;4078  font-size: 0.6875rem;4079  color: var(--peach-t2);4080  line-height: 1.55;4081  text-align: center;4082}40834084/* ── Intro popup ──────────────────────────────────────────────────────── */40854086.peach-restore-intro-overlay {4087  position: absolute;4088  inset: 0;4089  z-index: 100;4090  display: flex;4091  align-items: center;4092  justify-content: center;4093  padding: 20px;4094  background: rgba(12, 10, 6, 0.7);4095  backdrop-filter: blur(4px);4096  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4097}40984099.peach-restore-intro-card {4100  width: 100%;4101  display: flex;4102  flex-direction: column;4103  gap: 12px;4104  padding: 22px 20px 20px;4105  border-radius: 16px;4106  border: 1px solid var(--peach-t3);4107  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4108  backdrop-filter: blur(4px);4109  -webkit-backdrop-filter: blur(4px);4110  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4111}41124113.peach-restore-intro-headline {4114  margin: 0;4115  font-family: var(--font-display);4116  font-style: italic;4117  font-size: 20px;4118  font-weight: 400;4119  color: var(--peach-t0);4120}41214122.peach-restore-intro-body {4123  display: flex;4124  flex-direction: column;4125  gap: 8px;4126}4127.peach-restore-intro-body p {4128  margin: 0;4129  font-size: 0.75rem;4130  color: var(--peach-t1);4131  line-height: 1.5;4132}41334134.peach-restore-intro-btn {4135  width: 100%;4136  margin-top: 4px;4137}41384139/* Snapshot restore panel */4140.peach-snapshot-panel {4141  gap: 10px;4142  overflow-y: auto;4143  max-height: 340px;4144}4145.peach-snapshot-list {4146  display: flex;4147  flex-direction: column;4148  gap: 4px;4149}4150.peach-snapshot-row {4151  display: flex;4152  align-items: center;4153  justify-content: space-between;4154  width: 100%;4155  padding: 8px 10px;4156  border-radius: 8px;4157  border: 1px solid rgba(240, 232, 216, 0.07);4158  background: transparent;4159  cursor: pointer;4160  transition: border-color 120ms, background 120ms;4161  text-align: left;4162  gap: 8px;4163}4164.peach-snapshot-row:hover {4165  border-color: rgba(240, 232, 216, 0.14);4166  background: rgba(240, 232, 216, 0.03);4167}4168.peach-snapshot-row.is-selected {4169  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4170  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4171}4172.peach-snapshot-time {4173  font-size: 11.5px;4174  color: var(--peach-t0);4175  flex: 1;4176}4177.peach-snapshot-count {4178  font-family: "IBM Plex Mono", monospace;4179  font-size: 0.625rem;4180  color: var(--peach-t2);4181  flex-shrink: 0;4182}4183.peach-snapshot-confirm {4184  display: flex;4185  flex-direction: column;4186  gap: 8px;4187  padding-top: 10px;4188  border-top: 1px solid rgba(240, 232, 216, 0.06);4189}4190.peach-snapshot-warning {4191  display: flex;4192  align-items: flex-start;4193  gap: 6px;4194  font-size: 10.5px;4195  color: rgba(220, 80, 60, 0.85);4196  line-height: 1.55;4197}4198.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4199.peach-snapshot-confirm-row {4200  display: flex;4201  gap: 6px;4202  align-items: center;4203}4204.peach-snapshot-restore-btn {4205  width: 100%;4206}4207.peach-lock-hero--unlock .peach-lock-hero-art {4208  width: 112px;4209  height: 112px;4210  right: 0;4211  top: 2px;4212  opacity: 0.1;4213}42144215.peach-card {4216  border: 1px solid var(--peach-t3);4217  border-radius: 18px;4218  background:4219    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4220  box-shadow:4221    inset 0 0 0 1px var(--peach-border-accent),4222    inset 0 1px 0 rgba(240, 232, 216, 0.04),4223    0 12px 32px rgba(0, 0, 0, 0.14);4224  overflow: hidden;4225}42264227.peach-card-active {4228  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4229  box-shadow:4230    inset 0 1px 0 rgba(240, 232, 216, 0.05),4231    0 16px 38px rgba(0, 0, 0, 0.18),4232    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4233}42344235.peach-card-disabled {4236  opacity: 0.72;4237}42384239.peach-card-header {4240  width: 100%;4241  padding: 13px 16px 11px;4242  background: transparent;4243  color: var(--peach-t0);4244  display: flex;4245  justify-content: space-between;4246  align-items: center;4247  text-align: left;4248  font-size: 0.75rem;4249}42504251.peach-card-body {4252  padding: 0 16px 16px;4253  display: grid;4254  gap: 9px;4255}42564257.peach-card-tag {4258  color: var(--peach-t2);4259  font-family: "IBM Plex Mono", monospace;4260  font-size: 0.5625rem;4261  letter-spacing: 0.12em;4262  text-transform: uppercase;4263}42644265.peach-empty-copy {4266  display: grid;4267  gap: 6px;4268  color: var(--peach-t1);4269  font-size: 0.8125rem;4270}42714272.peach-lock-submit {4273  width: 100%;4274  box-shadow:4275    0 1px 0 rgba(255,255,255,0.10) inset,4276    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4277    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4278    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4279}42804281.peach-lock-secondary {4282  width: 100%;4283  border-color: var(--peach-t3);4284  background: rgba(240, 232, 216, 0.02);4285}42864287.peach-lock-secondary:hover {4288  background: rgba(240, 232, 216, 0.04);4289}42904291.peach-lock-note {4292  max-width: none;4293  line-height: 1.55;4294  margin: 0;4295}42964297.peach-overlay-action {4298  font-size: 0.625rem;4299  padding: 4px 8px;4300  letter-spacing: 0.06em;4301  min-width: 44px;4302  text-align: center;4303}43044305.peach-inline-action {4306  flex-shrink: 0;4307  font-size: 0.5625rem;4308  letter-spacing: 0.1em;4309  text-transform: uppercase;4310  padding: 4px 7px;4311}4312.peach-password-toggle-btn {4313  display: inline-flex;4314  align-items: center;4315  justify-content: center;4316  min-width: 30px;4317  min-height: 26px;4318  padding: 0 7px;4319  border: 1px solid var(--peach-t3);4320  border-radius: 999px;4321  background: rgba(240, 232, 216, 0.04);4322  color: var(--peach-t2);4323  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4324}4325.peach-password-toggle-btn:hover {4326  border-color: var(--peach-t2);4327  color: var(--peach-t0);4328  background: rgba(240, 232, 216, 0.06);4329}43304331.peach-new-textarea {4332  width: 100%;4333  min-height: 88px;4334  resize: vertical;4335  border: 0;4336  outline: none;4337  background: transparent;4338  color: var(--peach-t1);4339  font-family: "IBM Plex Mono", monospace;4340  font-size: 0.75rem;4341  line-height: 1.65;4342  caret-color: var(--peach-accent);4343}43444345.peach-new-textarea::placeholder {4346  color: var(--peach-t2);4347  opacity: 0.7;4348}43494350.peach-settings-actions {4351  display: grid;4352  gap: 8px;4353}43544355.peach-sync-section-label {4356  font-size: 0.6875rem;4357  color: var(--peach-t2);4358  text-transform: uppercase;4359  letter-spacing: 0.05em;4360}43614362.peach-sync-network-note {4363  margin: 0 0 6px;4364  font-size: 0.75rem;4365  color: var(--peach-t2);4366  line-height: 1.4;4367}43684369.peach-settings-row--tappable {4370  background: none;4371  border: none;4372  width: 100%;4373  text-align: left;4374  cursor: pointer;4375  color: var(--peach-t1);4376  font-size: 0.8125rem;4377}4378.peach-settings-row--tappable:hover {4379  color: var(--peach-t0);4380}43814382.peach-sync-pro-hint {4383  display: flex;4384  flex-direction: column;4385  align-items: flex-start;4386  gap: 8px;4387  padding: 12px 0 4px;4388}43894390.peach-sync-device-row {4391  display: flex;4392  justify-content: space-between;4393  align-items: center;4394  padding: 6px 0;4395  border-bottom: 1px solid var(--peach-t3);4396}43974398.peach-sync-device-info {4399  display: flex;4400  flex-direction: column;4401  gap: 2px;4402}44034404.peach-sync-device-name {4405  font-size: 0.8125rem;4406  color: var(--peach-t0);4407}44084409.peach-sync-device-meta {4410  font-size: 0.6875rem;4411  color: var(--peach-t2);4412}44134414.peach-sync-status-dot {4415  display: inline-block;4416  width: 8px;4417  height: 8px;4418  border-radius: 50%;4419  vertical-align: middle;4420}44214422.peach-sync-remove-btn {4423  color: var(--peach-breach);4424}44254426.peach-sync-advanced-row {4427  display: flex;4428  justify-content: space-between;4429  align-items: center;4430  padding: 6px 0;4431  gap: 12px;4432}44334434.peach-sync-advanced-info {4435  display: flex;4436  flex-direction: column;4437  gap: 2px;4438  flex: 1;4439}44404441.peach-sync-advanced-name {4442  font-size: 0.8125rem;4443  color: var(--peach-t0);4444}44454446.peach-sync-reset-confirm {4447  display: flex;4448  flex-direction: column;4449  gap: 8px;4450  padding: 10px;4451  border: 1px solid var(--peach-breach);4452  border-radius: 10px;4453  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4454}44554456.peach-sync-reset-confirm-headline {4457  font-size: 0.8125rem;4458  font-weight: 600;4459  color: var(--peach-t0);4460  margin: 0;4461}44624463.peach-sync-reset-confirm-body {4464  font-size: 0.75rem;4465  color: var(--peach-t1);4466  margin: 0;4467  line-height: 1.4;4468}44694470.peach-btn--danger {4471  background: var(--peach-breach);4472  color: #fff;4473  border-color: var(--peach-breach);4474}4475.peach-btn--danger:hover:not(:disabled) {4476  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4477}4478.peach-btn--danger:disabled {4479  opacity: 0.55;4480  cursor: not-allowed;4481}44824483.peach-sync-hero-icon {4484  color: var(--peach-t1);4485  opacity: 0.85;4486}44874488.peach-import-preview {4489  margin-bottom: 12px;4490  max-height: 152px;4491  overflow-y: auto;4492  border: 1px solid var(--peach-t3);4493  border-radius: 10px;4494  padding: 8px 10px;4495  display: grid;4496  gap: 8px;4497  background: rgba(240, 232, 216, 0.02);4498}44994500.peach-import-preview-row {4501  display: flex;4502  justify-content: space-between;4503  gap: 10px;4504  font-size: 0.6875rem;4505  color: var(--peach-t1);4506}45074508.peach-import-preview-title {4509  color: var(--peach-t0);4510  flex: 1;4511  min-width: 0;4512  overflow: hidden;4513  text-overflow: ellipsis;4514  white-space: nowrap;4515}45164517.peach-import-preview-meta {4518  color: var(--peach-t2);4519  flex-shrink: 0;4520  max-width: 42%;4521  overflow: hidden;4522  text-overflow: ellipsis;4523  white-space: nowrap;4524}45254526.peach-import-preview-more {4527  color: var(--peach-t2);4528  font-size: 0.625rem;4529}45304531.peach-restore-copy {4532  margin: 0;4533  color: var(--peach-t1);4534  font-size: 0.6875rem;4535  line-height: 1.6;4536}45374538.peach-restore-warning {4539  padding: 10px 12px;4540  border-radius: 12px;4541  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4542  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4543  color: var(--peach-t0);4544  font-size: 0.6875rem;4545  line-height: 1.55;4546}45474548.peach-provider-chips {4549  display: flex;4550  flex-wrap: wrap;4551  gap: 6px;4552}45534554.peach-provider-chip {4555  display: inline-flex;4556  align-items: center;4557  padding: 5px 8px;4558  border-radius: 999px;4559  border: 1px solid var(--peach-t3);4560  background: rgba(240, 232, 216, 0.02);4561  color: var(--peach-t1);4562  font-family: "IBM Plex Mono", monospace;4563  font-size: 0.5rem;4564  letter-spacing: 0.08em;4565  text-transform: uppercase;4566}45674568.peach-restore-file,4569.peach-restore-input {4570  width: 100%;4571  border-radius: 10px;4572  border: 1px solid var(--peach-t3);4573  background: var(--peach-s2);4574  color: var(--peach-t0);4575  font-size: 0.75rem;4576}45774578.peach-restore-file {4579  padding: 9px 10px;4580}45814582.peach-restore-file::file-selector-button {4583  margin-right: 10px;4584  padding: 7px 10px;4585  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4586  border-radius: 999px;4587  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4588  color: var(--peach-t0);4589  font-size: 0.625rem;4590  letter-spacing: 0.08em;4591  text-transform: uppercase;4592  cursor: pointer;4593}45944595.peach-restore-input {4596  padding: 10px 12px;4597}45984599.peach-auth-grid {4600  display: grid;4601  gap: 10px;4602}46034604.peach-import-summary {4605  color: var(--peach-t1);4606  font-size: 0.75rem;4607  line-height: 1.6;4608  margin-bottom: 12px;4609}46104611.peach-restore-error {4612  color: rgba(220, 80, 60, 0.95);4613  font-size: 0.75rem;4614  line-height: 1.55;4615}46164617.peach-passkey-card {4618  max-width: 400px;4619  margin: auto 16px;4620  align-self: center;4621  width: calc(100% - 32px);4622}46234624/* Center the approval card vertically inside the overlay-view (which sets4625 * flex-direction: column without justify-content). Without this, the card4626 * sits at the top with a tall empty band below — looks unfinished on the4627 * 320px popup. */4628.peach-overlay-view:has(.peach-passkey-card) {4629  justify-content: center;4630}46314632.peach-pro-badge {4633  padding: 2px 6px;4634  border-radius: 999px;4635  font-family: var(--font-ui);4636  font-size: 0.625rem;4637  letter-spacing: 0.08em;4638  text-transform: uppercase;4639  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4640  color: var(--peach-accent);4641}46424643/* ── Shortcuts rebind table ─────────────────────────────────── */4644.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4645.peach-shortcut-row {4646  display: flex;4647  align-items: center;4648  gap: 10px;4649  padding: 6px 0;4650}4651.peach-shortcut-row-label {4652  flex: 1;4653  font-size: 0.75rem;4654  color: var(--peach-t0);4655}4656.peach-shortcut-chip {4657  min-width: 64px;4658  padding: 4px 10px;4659  border-radius: 6px;4660  border: 1px solid var(--peach-t3);4661  background: var(--peach-input-bg, var(--surface-card));4662  color: var(--peach-t0);4663  font-family: var(--font-mono);4664  font-size: 0.6875rem;4665  letter-spacing: 0.04em;4666  cursor: pointer;4667  text-align: center;4668  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4669}4670.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4671.peach-shortcut-chip.is-custom {4672  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4673  color: var(--peach-accent);4674}4675.peach-shortcut-chip.is-capturing {4676  border-color: var(--peach-accent);4677  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4678  color: var(--peach-accent);4679  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4680}4681@keyframes peach-shortcut-capture-pulse {4682  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4683  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4684}4685.peach-shortcut-reset {4686  background: transparent;4687  border: none;4688  cursor: pointer;4689  color: var(--peach-t2);4690  padding: 4px 6px;4691  border-radius: 5px;4692  font-size: 0.875rem;4693  line-height: 1;4694  transition: color 120ms ease, background 120ms ease;4695}4696.peach-shortcut-reset:hover {4697  color: var(--peach-t0);4698  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4699}4700.peach-shortcuts-conflict {4701  margin: 4px 0 0;4702  padding: 8px 10px;4703  border-radius: 7px;4704  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4705  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4706  font-family: var(--font-mono);4707  font-size: 0.6875rem;4708  color: var(--peach-t0);4709}47104711/* ── Help dialog overlay (? to open) ────────────────────────── */4712.peach-shortcuts-help-backdrop {4713  position: fixed;4714  inset: 0;4715  background: rgba(0, 0, 0, 0.55);4716  backdrop-filter: blur(2px);4717  display: flex;4718  align-items: center;4719  justify-content: center;4720  z-index: 1000;4721  animation: peach-help-fade-in 140ms ease forwards;4722}4723@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4724.peach-shortcuts-help-card {4725  width: min(320px, 92vw);4726  max-height: 80vh;4727  overflow-y: auto;4728  border-radius: 14px;4729  border: 1px solid var(--peach-t3);4730  background: var(--peach-bg);4731  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4732  padding: 16px 18px 18px;4733  display: flex;4734  flex-direction: column;4735  gap: 12px;4736}4737.peach-shortcuts-help-head {4738  display: flex; align-items: center; justify-content: space-between;4739}4740.peach-shortcuts-help-head h3 {4741  margin: 0;4742  font-family: var(--font-display);4743  font-style: italic;4744  font-weight: 400;4745  font-size: 22px;4746  color: var(--peach-t0);4747}4748.peach-shortcuts-help-close {4749  background: transparent;4750  border: none;4751  color: var(--peach-t2);4752  cursor: pointer;4753  font-size: 0.875rem;4754  padding: 4px 8px;4755  border-radius: 5px;4756}4757.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4758.peach-shortcuts-help-body ul {4759  list-style: none; padding: 0; margin: 4px 0 12px;4760  display: grid; gap: 8px;4761}4762.peach-shortcuts-help-body li {4763  display: flex; align-items: center; justify-content: space-between; gap: 12px;4764  font-size: 0.75rem; color: var(--peach-t0);4765}4766.peach-shortcuts-help-body kbd {4767  font-family: var(--font-mono);4768  font-size: 0.6875rem;4769  padding: 3px 8px;4770  border-radius: 6px;4771  background: var(--surface-card);4772  border: 1px solid var(--peach-t3);4773  color: var(--peach-accent);4774  letter-spacing: 0.04em;4775}47764777/* ── Pro promo on Account screen ────────────────────────────── */4778.peach-pro-promo {4779  position: relative;4780  border-radius: 14px;4781  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4782  background:4783    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4784    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4785    var(--surface-card);4786  overflow: hidden;4787  margin-bottom: 14px;4788}4789.peach-pro-promo-glow {4790  position: absolute;4791  inset: -40% -20% auto auto;4792  width: 220px; height: 220px;4793  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4794  pointer-events: none;4795  filter: blur(8px);4796}4797.peach-pro-promo-inner {4798  position: relative;4799  padding: 18px 18px 16px;4800}4801.peach-pro-promo-title {4802  font-family: var(--font-display);4803  font-style: italic;4804  font-weight: 400;4805  font-size: 28px;4806  line-height: 1;4807  letter-spacing: -0.005em;4808  color: var(--peach-t0);4809  margin: 0 0 4px;4810}4811.peach-pro-promo-tagline {4812  font-family: var(--font-mono);4813  font-size: 0.625rem;4814  letter-spacing: 0.06em;4815  color: var(--peach-t2);4816  margin: 0 0 14px;4817}4818.peach-pro-promo-list {4819  list-style: none;4820  margin: 0 0 16px;4821  padding: 0;4822  display: grid;4823  gap: 9px;4824}4825.peach-pro-promo-list li {4826  display: flex;4827  align-items: flex-start;4828  gap: 9px;4829  font-size: 0.75rem;4830  color: var(--peach-t1);4831  line-height: 1.4;4832}4833.peach-pro-promo-list svg {4834  width: 14px;4835  height: 14px;4836  flex-shrink: 0;4837  color: var(--peach-accent);4838  margin-top: 2px;4839}4840.peach-pro-promo-list span {4841  color: var(--peach-t0);4842}4843.peach-pro-promo-cta {4844  width: 100%;4845  background: var(--peach-accent);4846  color: #fff;4847  border: none;4848  padding: 9px 12px;4849  border-radius: 9px;4850  font-size: 0.75rem;4851  font-weight: 500;4852  font-family: var(--font-ui);4853  letter-spacing: 0.02em;4854  text-decoration: none;4855  display: inline-flex;4856  align-items: center;4857  justify-content: center;4858  cursor: pointer;4859  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4860  box-shadow: 0 2px 16px var(--peach-glow);4861}4862.peach-pro-promo-cta:hover {4863  filter: brightness(1.07);4864  box-shadow: 0 4px 24px var(--peach-glow);4865  transform: translateY(-1px);4866}4867.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }48684869.peach-pro-or-divider {4870  display: flex;4871  align-items: center;4872  gap: 10px;4873  margin: 4px 0 12px;4874  font-family: var(--font-mono);4875  font-size: 0.625rem;4876  letter-spacing: 0.06em;4877  color: var(--peach-t2);4878  text-transform: uppercase;4879}4880.peach-pro-or-divider::before,4881.peach-pro-or-divider::after {4882  content: "";4883  flex: 1;4884  height: 1px;4885  background: var(--peach-t3);4886}48874888.peach-loading {4889  position: absolute;4890  inset: 0;4891  display: flex;4892  align-items: center;4893  justify-content: center;4894  background: var(--bg);4895  animation: peach-loading-pulse 1.2s ease-in-out infinite;4896}48974898@keyframes peach-loading-pulse {4899  0%, 100% { opacity: 0.6; }4900  50% { opacity: 1; }4901}49024903/* ── Health Dashboard ─────────────────────────────────────────────────── */4904.peach-health-body {4905  flex: 1;4906  overflow-y: auto;4907  display: flex;4908  flex-direction: column;4909  /* Hide the platform scrollbar — every other scrollable surface in the4910   * popup hides it; the Health view was the one outlier and it ruined the4911   * polish. Behavior unchanged, just no rail rendered. */4912  scrollbar-width: none;4913  -ms-overflow-style: none;4914}4915.peach-health-body::-webkit-scrollbar { display: none; }49164917/* Loading screen for the Vault Health view. The advanced report computation4918 * can run for a few seconds on a large vault — without a clear loading4919 * screen the surface looked broken (the entry view bleeds through the4920 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4921.peach-health-loading-screen {4922  flex: 1;4923  display: flex;4924  flex-direction: column;4925  align-items: center;4926  justify-content: center;4927  gap: 14px;4928  padding: 32px 28px;4929  text-align: center;4930}49314932.peach-health-loading-glyph {4933  width: 48px;4934  height: 48px;4935  display: flex;4936  align-items: center;4937  justify-content: center;4938  border-radius: 14px;4939  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4940  color: var(--peach-accent);4941}49424943.peach-health-loading-title {4944  margin: 0;4945  font-family: var(--font-display);4946  font-style: italic;4947  font-weight: 300;4948  font-size: 19px;4949  line-height: 1.2;4950  color: var(--peach-t0);4951}49524953.peach-health-loading-copy {4954  margin: 0;4955  max-width: 240px;4956  font-size: 0.75rem;4957  line-height: 1.55;4958  color: var(--peach-t2);4959}49604961.peach-health-loading-track {4962  width: 200px;4963  height: 3px;4964  margin-top: 6px;4965  border-radius: 999px;4966  background: rgba(240, 232, 216, 0.06);4967  overflow: hidden;4968}49694970.peach-health-loading-fill {4971  width: 40%;4972  height: 100%;4973  border-radius: inherit;4974  background: linear-gradient(4975    90deg,4976    transparent 0%,4977    var(--peach-accent) 50%,4978    transparent 100%4979  );4980  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4981}49824983@keyframes peach-health-loading-sweep {4984  0%   { transform: translateX(-100%); }4985  100% { transform: translateX(350%); }4986}49874988[data-motion="reduce"] .peach-health-loading-fill,4989[data-motion="reduce"] .peach-health-loading-glyph svg path {4990  animation: none;4991}49924993.peach-health-summary {4994  padding: 10px 16px 6px;4995  font-family: "IBM Plex Mono", monospace;4996  font-size: 0.6875rem;4997}4998.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4999.peach-health-summary-ok { color: var(--peach-t2); }50005001.peach-health-check-row {5002  padding: 0 16px 10px;5003}5004.peach-health-check-btn {5005  width: 100%;5006  display: flex;5007  align-items: center;5008  justify-content: center;5009}50105011.peach-health-sections {5012  flex: 1;5013  display: flex;5014  flex-direction: column;5015}50165017.peach-health-section {5018  border-bottom: 1px solid var(--peach-t3);5019}50205021.peach-health-section-header {5022  width: 100%;5023  display: flex;5024  align-items: center;5025  justify-content: space-between;5026  padding: 9px 16px;5027  background: transparent;5028  cursor: pointer;5029  color: var(--peach-t0);5030}50315032.peach-health-section-title-row {5033  display: flex;5034  align-items: center;5035  gap: 8px;5036}50375038.peach-health-count-badge {5039  display: inline-flex;5040  align-items: center;5041  justify-content: center;5042  min-width: 20px;5043  height: 18px;5044  padding: 0 5px;5045  border-radius: 999px;5046  background: rgba(220,80,60,0.15);5047  border: 1px solid rgba(220,80,60,0.25);5048  font-family: "IBM Plex Mono", monospace;5049  font-size: 0.5625rem;5050  color: rgba(220,80,60,0.9);5051}50525053.peach-health-section-title {5054  font-family: "IBM Plex Mono", monospace;5055  font-size: 0.6875rem;5056  text-transform: uppercase;5057  letter-spacing: 0.1em;5058  color: var(--peach-t1);5059}50605061.peach-health-chevron {5062  color: var(--peach-t2);5063  transition: transform 200ms ease;5064  flex-shrink: 0;5065}5066.peach-health-chevron.is-expanded {5067  transform: rotate(180deg);5068}50695070.peach-health-section-body {5071  padding: 0 16px 10px;5072  display: flex;5073  flex-direction: column;5074  gap: 4px;5075}50765077.peach-health-row {5078  display: flex;5079  align-items: flex-start;5080  justify-content: space-between;5081  gap: 8px;5082  padding: 6px 8px;5083  border-radius: 8px;5084  background: rgba(240,232,216,0.02);5085}50865087.peach-health-row-info {5088  flex: 1;5089  min-width: 0;5090  display: flex;5091  flex-direction: column;5092  gap: 2px;5093}50945095.peach-health-row-name {5096  font-family: var(--font-display);5097  font-size: 0.9375rem;5098  font-style: italic;5099  font-weight: 400;5100  color: var(--peach-t0);5101  white-space: nowrap;5102  overflow: hidden;5103  text-overflow: ellipsis;5104}51055106.peach-health-row-meta {5107  font-family: "IBM Plex Mono", monospace;5108  font-size: 0.5625rem;5109  color: var(--peach-t2);5110  letter-spacing: 0.05em;5111}51125113.peach-health-fix-btn {5114  font-size: 0.5625rem;5115  letter-spacing: 0.08em;5116  text-transform: uppercase;5117  padding: 4px 7px;5118  flex-shrink: 0;5119  display: flex;5120  align-items: center;5121}51225123.peach-health-empty {5124  font-family: "IBM Plex Mono", monospace;5125  font-size: 0.625rem;5126  color: var(--peach-t2);5127  padding: 6px 0;5128}51295130.peach-health-loading {5131  font-family: "IBM Plex Mono", monospace;5132  font-size: 0.625rem;5133  color: var(--peach-t2);5134  padding: 6px 0;5135  display: flex;5136  align-items: center;5137  gap: 6px;5138}51395140.peach-health-loading::before {5141  content: "";5142  width: 10px;5143  height: 10px;5144  border: 1.5px solid var(--peach-t3);5145  border-top-color: var(--peach-accent);5146  border-radius: 50%;5147  animation: peach-spin 600ms linear infinite;5148}51495150@keyframes peach-spin {5151  to { transform: rotate(360deg); }5152}51535154.peach-spinner {5155  width: 32px;5156  height: 32px;5157  border: 2px solid var(--peach-s2);5158  border-top-color: var(--peach-accent);5159  border-radius: 50%;5160  margin: 0 auto 16px;5161  animation: peach-spin 0.8s linear infinite;5162}51635164.peach-progress-screen {5165  text-align: center;5166  padding: 32px 16px;5167}51685169.peach-progress-screen-title {5170  font-size: 0.8125rem;5171  color: var(--peach-t0);5172  margin-bottom: 16px;5173}51745175.peach-progress-screen-stage {5176  font-size: 0.6875rem;5177  color: var(--peach-t2);5178  min-height: 14px;5179}51805181.peach-progress-screen-note {5182  font-size: 0.625rem;5183  color: var(--peach-t2);5184  margin-top: 8px;5185}51865187.peach-pairing-body {5188  flex: 1;5189  overflow-y: auto;5190  display: flex;5191  flex-direction: column;5192}51935194.peach-pairing-content {5195  flex: 1;5196  display: flex;5197  flex-direction: column;5198  align-items: center;5199  justify-content: center;5200  gap: 14px;5201  padding: 28px 20px;5202  text-align: center;5203}52045205.peach-pairing-code-screen {5206  gap: 18px;5207}52085209.peach-pairing-headline {5210  font-family: var(--font-display);5211  font-style: italic;5212  font-weight: 300;5213  font-size: 28px;5214  color: var(--peach-t0);5215  margin: 0;5216  line-height: 1;5217}52185219.peach-pairing-subline {5220  font-size: 0.75rem;5221  color: var(--peach-t2);5222  max-width: 220px;5223  line-height: 1.5;5224  margin: 0;5225}52265227.peach-pairing-subline--center {5228  text-align: center;5229}52305231/* 6-digit pairing code — both display (.peach-pairing-code) and entry5232   (.peach-pairing-code-input) share IBM Plex Mono / 36px / wide tracking5233   so the two modes feel like the same surface. */5234.peach-pairing-code {5235  font-family: "IBM Plex Mono", monospace;5236  font-size: 36px;5237  letter-spacing: 0.25em;5238  color: var(--peach-t0);5239  text-align: center;5240  padding: 24px 0;5241  text-shadow:5242    0 0 24px color-mix(in srgb, var(--peach-accent) 22%, transparent),5243    0 0 48px color-mix(in srgb, var(--peach-accent) 12%, transparent);5244  background: transparent;5245  border: 0;5246  cursor: default;5247  user-select: text;5248}52495250.peach-pairing-code--loading,5251.peach-pairing-code--expired {5252  font-size: 18px;5253  letter-spacing: 0.04em;5254  color: var(--peach-t2);5255  cursor: pointer;5256  text-shadow: none;5257}52585259.peach-pairing-qr-container {5260  display: flex;5261  flex-direction: column;5262  align-items: center;5263  gap: 10px;5264}52655266.peach-pairing-qr {5267  width: 240px;5268  height: 240px;5269  display: block;5270}52715272.peach-pairing-instruction {5273  font-size: 0.75rem;5274  color: var(--peach-t2);5275  text-align: center;5276  line-height: 1.5;5277  margin: 0;5278  max-width: 220px;5279}52805281.peach-pairing-expiry {5282  font-family: "IBM Plex Mono", monospace;5283  font-size: 13px;5284  letter-spacing: 0.06em;5285  color: var(--peach-t2);5286  margin: 0;5287}52885289.peach-pairing-regen {5290  font-size: 0.75rem;5291  color: var(--peach-accent);5292  background: transparent;5293  border: 0;5294  cursor: pointer;5295  padding: 4px 0;5296  text-decoration: underline;5297  text-underline-offset: 2px;5298}52995300.peach-pairing-code-input {5301  font-family: "IBM Plex Mono", monospace;5302  font-size: 36px;5303  letter-spacing: 0.25em;5304  color: var(--peach-t0);5305  background: transparent;5306  border: 0;5307  border-bottom: 1px solid var(--peach-t3);5308  outline: none;5309  text-align: center;5310  padding: 18px 0;5311  width: 220px;5312  caret-color: var(--peach-accent);5313  transition: border-color 160ms ease;5314}53155316.peach-pairing-code-input::placeholder {5317  color: var(--peach-t3);5318}53195320.peach-pairing-code-input:focus {5321  border-bottom-color: var(--peach-accent);5322}53235324.peach-pairing-toggle {5325  background: transparent;5326  border: 0;5327  color: var(--peach-t2);5328  font-size: 0.75rem;5329  padding: 8px 4px;5330  cursor: pointer;5331  transition: color 120ms ease;5332}53335334.peach-pairing-toggle:hover:not(:disabled) {5335  color: var(--peach-t1);5336}53375338.peach-pairing-toggle:disabled {5339  opacity: 0.5;5340  cursor: default;5341}53425343.peach-pairing-hint {5344  font-size: 0.6875rem;5345  color: var(--peach-t2);5346  margin: 0;5347  text-align: center;5348}53495350.peach-pairing-status {5351  display: flex;5352  align-items: center;5353  gap: 8px;5354  margin: 0;5355  font-size: 0.75rem;5356  color: var(--peach-t1);5357}53585359.peach-pairing-error {5360  margin: 0;5361  font-size: 0.6875rem;5362  color: var(--peach-breach);5363}53645365.peach-pairing-error--muted {5366  color: var(--peach-t2);5367}53685369.peach-pairing-spinner {5370  width: 12px;5371  height: 12px;5372  border: 1.5px solid var(--peach-t3);5373  border-top-color: var(--peach-accent);5374  border-radius: 50%;5375  animation: peach-spin 0.8s linear infinite;5376}53775378.peach-pairing-success-icon,5379.peach-pairing-error-icon,5380.peach-pairing-hero {5381  display: inline-flex;5382  align-items: center;5383  justify-content: center;5384}53855386/* Tag chips */5387.peach-tag-chip {5388  display: inline-flex;5389  align-items: center;5390  gap: 4px;5391  padding: 3px 8px;5392  border-radius: 999px;5393  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5394  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5395  color: var(--peach-t0);5396  font-family: "IBM Plex Mono", monospace;5397  font-size: 0.625rem;5398  letter-spacing: 0.04em;5399}54005401.peach-tag-chip-remove {5402  background: transparent;5403  border: none;5404  color: inherit;5405  opacity: 0.6;5406  cursor: pointer;5407  padding: 0;5408  font-size: 0.75rem;5409  line-height: 1;5410}54115412.peach-tag-chip-remove:hover {5413  opacity: 1;5414}54155416/* Tag input */5417.peach-tag-input-wrap {5418  border-bottom: 1px solid var(--peach-t3);5419}54205421.peach-tag-suggestions {5422  display: flex;5423  flex-wrap: wrap;5424  gap: 4px;5425  padding: 6px 0;5426}54275428.peach-tag-suggestion {5429  padding: 2px 8px;5430  border-radius: 999px;5431  border: 1px solid var(--peach-t3);5432  background: var(--peach-s2);5433  color: var(--peach-t1);5434  font-family: "IBM Plex Mono", monospace;5435  font-size: 0.625rem;5436  cursor: pointer;5437  transition: border-color 80ms ease, background 80ms ease;5438}54395440.peach-tag-suggestion:hover {5441  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5442  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5443}54445445/* Identity suggestions — shown below username/email inputs in new-entry form */5446@keyframes peach-suggest-in {5447  from { opacity: 0; transform: translateY(-4px); }5448  to   { opacity: 1; transform: none; }5449}54505451.peach-identity-suggestions {5452  display: flex;5453  flex-direction: column;5454  gap: 1px;5455  margin-top: 4px;5456  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5457}54585459.peach-identity-filter-row {5460  display: flex;5461  align-items: center;5462  gap: 4px;5463  padding: 2px 0 5px;5464}54655466.peach-identity-collapse-btn {5467  margin-left: auto;5468  background: transparent;5469  border: none;5470  cursor: pointer;5471  color: var(--peach-t3);5472  padding: 2px 4px;5473  display: flex;5474  align-items: center;5475  line-height: 0;5476  border-radius: 3px;5477  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5478}54795480.peach-identity-collapse-btn:hover {5481  color: var(--peach-t1);5482}54835484.peach-identity-collapse-btn.is-collapsed {5485  transform: rotate(-90deg);5486}54875488.peach-identity-rows {5489  display: grid;5490  grid-template-rows: 1fr;5491  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5492}54935494.peach-identity-rows.is-collapsed {5495  grid-template-rows: 0fr;5496}54975498.peach-identity-rows-inner {5499  overflow-y: auto;5500  min-height: 0;5501  max-height: 148px;5502  scrollbar-width: thin;5503  scrollbar-color: var(--peach-t3) transparent;5504  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5505  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5506}55075508.peach-identity-rows-inner::-webkit-scrollbar {5509  width: 4px;5510}55115512.peach-identity-rows-inner::-webkit-scrollbar-track {5513  background: transparent;5514}55155516.peach-identity-rows-inner::-webkit-scrollbar-thumb {5517  background: var(--peach-t3);5518  border-radius: 2px;5519}55205521.peach-identity-filter-pill {5522  padding: 2px 7px;5523  border-radius: 999px;5524  border: 1px solid var(--peach-t3);5525  background: transparent;5526  color: var(--peach-t2);5527  font-family: "IBM Plex Mono", monospace;5528  font-size: 0.6rem;5529  cursor: pointer;5530  transition: border-color 80ms, background 80ms, color 80ms;5531}55325533.peach-identity-filter-pill.is-on {5534  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5535  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5536  color: var(--peach-accent);5537}55385539.peach-identity-suggestion {5540  display: flex;5541  align-items: center;5542  gap: 6px;5543  width: 100%;5544  padding: 4px 6px;5545  border-radius: 5px;5546  border: none;5547  background: transparent;5548  cursor: pointer;5549  text-align: left;5550  transition: background 80ms ease;5551}55525553.peach-identity-suggestion:hover,5554.peach-identity-suggestion:focus {5555  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5556  outline: none;5557}55585559.peach-identity-suggestion-value {5560  font-family: "IBM Plex Mono", monospace;5561  font-size: 0.7rem;5562  color: var(--peach-t1);5563  overflow: hidden;5564  text-overflow: ellipsis;5565  white-space: nowrap;5566  flex: 1;5567  min-width: 0;5568}55695570.peach-identity-suggestion-type {5571  font-family: "IBM Plex Mono", monospace;5572  font-size: 0.55rem;5573  font-weight: 600;5574  flex-shrink: 0;5575  padding: 1px 4px;5576  border-radius: 3px;5577}55785579.peach-identity-suggestion-type--email {5580  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5581  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5582}55835584.peach-identity-suggestion-type--username {5585  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5586  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5587}55885589.peach-identity-suggestion-meta {5590  font-family: "IBM Plex Mono", monospace;5591  font-size: 0.6rem;5592  color: var(--peach-t3);5593  flex-shrink: 0;5594}55955596/* Tag filter strip */5597.peach-tag-filter-strip {5598  border-bottom: 1px solid var(--peach-t3);5599  flex-shrink: 0;5600}56015602.peach-tag-filter-chip {5603  display: inline-flex;5604  align-items: center;5605  padding: 4px 10px;5606  border-radius: 999px;5607  border: 1px solid var(--peach-t3);5608  background: transparent;5609  color: var(--peach-t2);5610  font-family: "IBM Plex Mono", monospace;5611  font-size: 0.5625rem;5612  letter-spacing: 0.06em;5613  text-transform: uppercase;5614  cursor: pointer;5615  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5616  white-space: nowrap;5617}56185619.peach-tag-filter-chip:hover {5620  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5621  color: var(--peach-t1);5622}56235624.peach-tag-filter-chip.is-selected {5625  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5626  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5627  color: var(--peach-t0);5628}56295630/* ─────────────────────────────────────────────────────────────────────────5631   v1.4.12 additions5632   ─────────────────────────────────────────────────────────────────────── */56335634/* Sort bar */5635.peach-sort-bar {5636  display: flex;5637  align-items: center;5638  gap: 4px;5639  padding: 5px 12px;5640  border-bottom: 1px solid var(--peach-t3);5641  flex-shrink: 0;5642  overflow-x: auto;5643  scrollbar-width: none;5644}56455646.peach-sort-btn {5647  padding: 2px 9px;5648  border-radius: 999px;5649  border: 1px solid transparent;5650  background: transparent;5651  color: var(--peach-t2);5652  font-family: "IBM Plex Mono", monospace;5653  font-size: 0.5625rem;5654  letter-spacing: 0.07em;5655  text-transform: uppercase;5656  cursor: pointer;5657  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5658  white-space: nowrap;5659}56605661.peach-sort-btn:hover {5662  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5663  color: var(--peach-t1);5664}56655666.peach-sort-btn.is-active {5667  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5668  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5669  color: var(--peach-t0);5670}56715672.peach-sort-scope-btn {5673  padding-inline: 8px;5674  font-size: 0.53125rem;5675  letter-spacing: 0.05em;5676}56775678.peach-sort-domain-hint {5679  margin-left: auto;5680  font-family: "IBM Plex Mono", monospace;5681  font-size: 0.5625rem;5682  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5683  white-space: nowrap;5684  overflow: hidden;5685  text-overflow: ellipsis;5686  max-width: 110px;5687}56885689/* Tab-match badge on entry rows */5690.peach-tab-match-badge {5691  display: inline-block;5692  width: 6px;5693  height: 6px;5694  border-radius: 50%;5695  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5696  margin-left: 5px;5697  vertical-align: middle;5698  flex-shrink: 0;5699  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5700}57015702.peach-entry-row.is-tab-match {5703  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5704  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5705}57065707.peach-entry-row.is-tab-match:hover {5708  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5709}57105711/* Entry list stagger entrance */5712@keyframes peach-entry-fadein {5713  from { opacity: 0; transform: translateY(4px); }5714  to   { opacity: 1; transform: translateY(0); }5715}57165717.peach-vault-list .peach-entry-row {5718  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5719}57205721/* Button press micro-interaction */5722.peach-btn:active {5723  transform: scale(0.95);5724  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5725}57265727.peach-sort-btn:active,5728.peach-tag-filter-chip:active {5729  transform: scale(0.93);5730  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5731}57325733/* Password strength bar (Lock view + shared) */5734.peach-password-strength {5735  display: flex;5736  align-items: center;5737  gap: 8px;5738  margin-top: 6px;5739}57405741.peach-strength-bar {5742  flex: 1;5743  height: 3px;5744  border-radius: 2px;5745  background: var(--peach-t3);5746  overflow: hidden;5747}57485749.peach-strength-fill {5750  height: 100%;5751  border-radius: 2px;5752  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5753              background 300ms ease;5754}57555756.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5757.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5758.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5759.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }57605761.peach-strength-label {5762  font-family: "IBM Plex Mono", monospace;5763  font-style: italic;5764  font-size: 0.5625rem;5765  font-weight: 300;5766  letter-spacing: 0.06em;5767  color: var(--peach-t2);5768  min-width: 36px;5769  text-align: right;5770}57715772.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5773.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5774.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5775.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57765777/* Duress form */5778.peach-duress-status {5779  padding: 2px 8px;5780  border-radius: 999px;5781  border: 1px solid var(--peach-t3);5782  font-family: "IBM Plex Mono", monospace;5783  font-size: 0.5625rem;5784  letter-spacing: 0.07em;5785  text-transform: uppercase;5786  color: var(--peach-t2);5787  flex-shrink: 0;5788}57895790.peach-duress-status.is-active {5791  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5792  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5793  color: var(--peach-t0);5794}57955796.peach-duress-form {5797  padding: 8px 0 4px;5798  display: flex;5799  flex-direction: column;5800  gap: 6px;5801}58025803.peach-duress-form .peach-label {5804  margin-top: 4px;5805}58065807.peach-duress-actions {5808  display: flex;5809  gap: 6px;5810  align-items: center;5811  margin-top: 4px;5812}58135814.peach-duress-actions .peach-btn:first-child {5815  margin-right: auto;5816}58175818/* Improved overlay spring entrance */5819.peach-overlay-view.ov-enter-up {5820  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5821}58225823@keyframes ov-enter-up-spring {5824  from { opacity: 0; transform: translateY(16px) scale(0.98); }5825  to   { opacity: 1; transform: translateY(0) scale(1); }5826}58275828.peach-overlay-view.ov-enter-right {5829  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5830}58315832@keyframes ov-enter-right-spring {5833  from { opacity: 0; transform: translateX(18px) scale(0.98); }5834  to   { opacity: 1; transform: translateX(0) scale(1); }5835}58365837/* ── Onboarding-mode restore screens (file import) ── */5838/* Used when MainImportView renders during onboarding (no vault yet).5839   Animates like a lock-screen transition. */5840.peach-lock-view {5841  position: absolute;5842  inset: 0;5843  display: flex;5844  flex-direction: column;5845  background:5846    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5847    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5848    var(--peach-bg);5849  z-index: 2;5850  overflow: hidden;5851  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5852}58535854.peach-lock-view-header {5855  display: flex;5856  align-items: center;5857  justify-content: space-between;5858  padding: 16px 18px 12px;5859  flex-shrink: 0;5860}58615862/* ───────── Settings: auto-lock select ───────── */5863.peach-settings-select {5864  font-family: "IBM Plex Mono", monospace;5865  font-size: 0.6875rem;5866  background: transparent;5867  border: 1px solid var(--peach-t3);5868  border-radius: 4px;5869  color: var(--peach-t1);5870  padding: 3px 6px;5871  cursor: pointer;5872  outline: none;5873}5874.peach-settings-select:focus {5875  border-color: var(--peach-accent);5876}58775878/* ───────── Duress status pill (new polished) ───────── */5879.peach-duress-status-pill {5880  font-family: "IBM Plex Mono", monospace;5881  font-size: 0.5625rem;5882  text-transform: uppercase;5883  letter-spacing: 0.12em;5884  padding: 2px 8px;5885  border-radius: 12px;5886  background: var(--peach-t3);5887  color: var(--peach-t2);5888  flex-shrink: 0;5889}5890.peach-duress-status-pill.is-active {5891  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5892  color: var(--peach-accent);5893}58945895/* ───────── Entry advanced disclosure (canary) ───────── */5896.peach-entry-advanced {5897  margin-top: 12px;5898  border-top: 1px solid var(--peach-t3);5899  padding-top: 10px;5900  position: relative;5901  z-index: 1;5902}5903.peach-entry-advanced-toggle {5904  display: flex;5905  align-items: center;5906  justify-content: space-between;5907  width: 100%;5908  background: transparent;5909  border: none;5910  cursor: pointer;5911  padding: 0;5912  color: var(--peach-t2);5913}5914.peach-canary-section {5915  margin-top: 10px;5916  display: grid;5917  gap: 6px;5918}59195920/* ───────── Import: merge/replace radio choices ───────── */5921.peach-import-choice {5922  display: flex;5923  align-items: flex-start;5924  gap: 10px;5925  padding: 8px 10px;5926  border: 1px solid var(--peach-t3);5927  border-radius: 10px;5928  cursor: pointer;5929  margin-bottom: 6px;5930  transition: border-color 120ms ease, background 120ms ease;5931}5932.peach-import-choice:hover {5933  border-color: var(--peach-accent);5934}5935.peach-import-choice input[type="radio"] {5936  margin-top: 3px;5937  accent-color: var(--peach-accent);5938  flex-shrink: 0;5939}5940.peach-import-choice-main {5941  display: flex;5942  flex-direction: column;5943  gap: 2px;5944  min-width: 0;5945}5946.peach-import-choice-label {5947  font-size: 0.75rem;5948  color: var(--peach-t0);5949}5950.peach-import-choice-sub {5951  font-size: 0.6875rem;5952  color: var(--peach-t2);5953  line-height: 1.5;5954}59555956/* ───────── Export: success confirmation strip ───────── */5957.peach-export-success {5958  display: flex;5959  align-items: flex-start;5960  gap: 10px;5961  padding: 12px;5962  border-radius: 12px;5963  border: 1px solid rgba(150, 175, 110, 0.3);5964  background: rgba(150, 175, 110, 0.08);5965  color: var(--peach-t0);5966  font-size: 0.75rem;5967  line-height: 1.55;5968}5969.peach-export-success-check {5970  color: rgba(150, 175, 110, 0.9);5971  font-size: 0.875rem;5972  flex-shrink: 0;5973}59745975/* ── Trash view ──────────────────────────────────────────────────────── */5976.peach-trash-entry-row {5977  display: flex;5978  align-items: center;5979  justify-content: space-between;5980  gap: 8px;5981  padding: 8px 0;5982  border-bottom: 1px solid var(--peach-border);5983}5984.peach-trash-entry-info {5985  flex: 1;5986  min-width: 0;5987  display: flex;5988  flex-direction: column;5989  gap: 2px;5990}5991.peach-trash-entry-title {5992  font-size: 0.8125rem;5993  color: var(--peach-t0);5994  overflow: hidden;5995  text-overflow: ellipsis;5996  white-space: nowrap;5997}5998.peach-trash-entry-meta {5999  font-family: var(--font-mono);6000  font-size: 0.5625rem;6001  color: var(--peach-t2);6002  letter-spacing: 0.04em;6003}6004.peach-trash-entry-actions {6005  display: flex;6006  align-items: center;6007  gap: 4px;6008  flex-shrink: 0;6009}6010.peach-trash-delete-btn {6011  background: transparent;6012  border: 0;6013  color: var(--peach-t3);6014  font-size: 1rem;6015  line-height: 1;6016  cursor: pointer;6017  padding: 2px 5px;6018  transition: color 0.15s;6019}6020.peach-trash-delete-btn:hover { color: var(--peach-breach); }6021.peach-trash-list {6022  overflow-y: auto;6023}6024.peach-trash-footer {6025  display: flex;6026  align-items: center;6027  gap: 8px;6028  padding: 8px 0 0;6029  border-top: 1px solid var(--peach-border);6030  margin-top: 4px;6031}6032.peach-trash-purge-all {6033  background: transparent;6034  border: 0;6035  color: var(--peach-t3);6036  font-size: 0.625rem;6037  cursor: pointer;6038  padding: 4px 0;6039  letter-spacing: 0.03em;6040  transition: color 0.2s;6041}6042.peach-trash-purge-all:hover { color: var(--peach-breach); }6043.peach-trash-purge-confirm-label {6044  font-size: 0.625rem;6045  color: var(--peach-t1);6046  flex: 1;6047}60486049/* ── Settings shortcuts grid ─────────────────────────────────────────── */6050.peach-shortcuts-grid {6051  display: grid;6052  grid-template-columns: auto 1fr;6053  gap: 6px 12px;6054  align-items: center;6055  padding: 4px 0;6056}6057.peach-shortcut-key {6058  font-family: var(--font-mono);6059  font-size: 0.625rem;6060  color: var(--peach-t0);6061  background: var(--peach-t3);6062  border-radius: 4px;6063  padding: 2px 6px;6064  white-space: nowrap;6065  text-align: center;6066}6067.peach-shortcut-desc {6068  font-size: 0.6875rem;6069  color: var(--peach-t1);6070}60716072/* ── Sort bar trash button ───────────────────────────────────────────── */6073.peach-sort-trash-btn {6074  display: flex;6075  align-items: center;6076  justify-content: center;6077  padding: 3px 5px;6078  background: transparent;6079  border: none;6080  cursor: pointer;6081  color: var(--peach-t2);6082  border-radius: 4px;6083  transition: color 140ms ease, background 140ms ease;6084}6085.peach-sort-trash-btn:hover {6086  color: var(--peach-t1);6087  background: var(--peach-t3);6088}6089.peach-sort-trash-btn.is-active {6090  color: var(--peach-accent);6091}60926093/* Accent color picker */6094.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6095.peach-accent-picker {6096  display: flex;6097  flex-wrap: wrap;6098  gap: 7px;6099  padding: 2px 0;6100}6101.peach-accent-swatch {6102  width: 22px;6103  height: 22px;6104  border-radius: 50%;6105  border: 2px solid transparent;6106  cursor: pointer;6107  padding: 0;6108  transition: transform 100ms;6109  outline-offset: 2px;6110}6111.peach-accent-swatch:hover { transform: scale(1.15); }6112.peach-accent-swatch.is-active {6113  border-color: var(--peach-t0);6114  transform: scale(1.1);6115}61166117.peach-pill-group {6118  display: flex;6119  gap: 6px;6120}6121.peach-pill-group .peach-btn.is-active {6122  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6123  border-color: var(--peach-accent);6124  color: var(--peach-t0);6125}61266127/* ── Card entry styles ───────────────────────────────────────── */6128.peach-card-number {6129  font-family: var(--peach-mono);6130  letter-spacing: 0.08em;6131}61326133.peach-card-network-badge {6134  font-size: 0.625rem;6135  padding: 1px 5px;6136  border-radius: 4px;6137  border: 0.5px solid var(--peach-border);6138  color: var(--peach-text-dim);6139  margin-left: 6px;6140  vertical-align: middle;6141}61426143.peach-card-expiry-row {6144  display: flex;6145  align-items: center;6146  gap: 8px;6147}61486149.peach-card-expiry-sep {6150  color: var(--peach-text-dim);6151}61526153/* ── Pro tier — upgrade screen ──────────────────────────────── */6154.peach-pro-mark {6155  font-size: 0.5625rem;6156  color: var(--peach-accent);6157  margin-left: 6px;6158  vertical-align: super;6159  opacity: 0.7;6160}61616162.peach-pro-mini-badge {6163  display: block;6164  font-size: 0.625rem;6165  font-style: italic;6166  color: var(--peach-accent);6167  letter-spacing: 0.04em;6168  margin-top: -2px;6169  padding-left: 2px;6170  opacity: 0.85;6171  text-align: center;6172}61736174.peach-wordmark-stack {6175  display: inline-flex;6176  flex-direction: column;6177  align-items: center;6178}61796180/* ── Pro tier — upgrade page ─────────────────────────────────── */6181/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61826183.peach-pro-upgrade {6184  display: flex;6185  flex-direction: column;6186  align-items: stretch;6187  gap: 10px;6188  padding: 2px 2px 12px;6189}61906191.peach-pro-eyebrow {6192  margin: 0;6193  font-family: var(--font-ui);6194  font-size: 0.625rem;6195  font-weight: 500;6196  letter-spacing: 0.12em;6197  color: var(--peach-accent);6198}61996200.peach-pro-headline {6201  margin: 0;6202  font-family: var(--font-display, "Cormorant Garamond", serif);6203  font-size: 30px;6204  font-weight: 700;6205  font-style: normal;6206  line-height: 1.05;6207  color: var(--peach-t0);6208  letter-spacing: -0.01em;6209}6210.peach-pro-headline em {6211  font-style: italic;6212  font-weight: 400;6213  color: var(--peach-accent);6214}62156216.peach-pro-subtitle {6217  margin: 0;6218  font-size: 0.6875rem;6219  line-height: 1.5;6220  color: var(--peach-t1);6221}62226223/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6224.peach-pro-section-label {6225  margin: 6px 0 0;6226  font-family: var(--font-ui);6227  font-size: 0.5625rem;6228  font-weight: 500;6229  letter-spacing: 0.12em;6230  text-transform: uppercase;6231  color: var(--peach-t2);6232}62336234/* 2-column numbered feature grid */6235.peach-pro-grid {6236  display: grid;6237  grid-template-columns: 1fr 1fr;6238  border-top: 1px solid var(--peach-border);6239  border-left: 1px solid var(--peach-border);6240}62416242.peach-pro-grid-item {6243  display: flex;6244  flex-direction: column;6245  gap: 2px;6246  padding: 8px 9px;6247  border-right: 1px solid var(--peach-border);6248  border-bottom: 1px solid var(--peach-border);6249}62506251.peach-pro-grid-item--wide {6252  grid-column: 1 / -1;6253}62546255.peach-pro-grid-num {6256  font-family: var(--font-mono);6257  font-size: 0.5625rem;6258  color: var(--peach-accent);6259  letter-spacing: 0.06em;6260  opacity: 0.85;6261}62626263.peach-pro-grid-name {6264  font-size: 0.8125rem;6265  font-weight: 500;6266  color: var(--peach-t0);6267  line-height: 1.2;6268}62696270.peach-pro-grid-desc {6271  font-size: 0.625rem;6272  color: var(--peach-t1);6273  line-height: 1.4;6274}62756276.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6277  animation: peach-pulse-accent 600ms ease-out forwards;6278}62796280@keyframes peach-pulse-accent {6281  0%   { opacity: 1; transform: scale(1.2); }6282  100% { opacity: 0.85; transform: scale(1); }6283}62846285/* Actions */6286.peach-pro-upgrade-actions {6287  display: flex;6288  flex-direction: column;6289  align-items: stretch;6290  gap: 10px;6291}62926293.peach-pro-pricing {6294  margin: 0;6295  font-size: 1rem;6296  font-weight: 600;6297  color: var(--peach-t0);6298  letter-spacing: 0.01em;6299}6300.peach-pro-pricing-sub {6301  font-size: 0.75rem;6302  font-weight: 400;6303  color: var(--peach-t1);6304  letter-spacing: 0.02em;6305}63066307.peach-pro-upgrade-cta {6308  display: flex;6309  align-items: center;6310  justify-content: center;6311  text-decoration: none;6312  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6313  border: 1px solid var(--peach-accent);6314  border-radius: 10px;6315  color: var(--peach-accent);6316  font-family: var(--font-ui);6317  font-size: 0.8125rem;6318  font-weight: 600;6319  letter-spacing: 0.06em;6320  padding: 11px 16px;6321  transition: background 0.15s ease, color 0.15s ease;6322}6323.peach-pro-upgrade-cta:hover {6324  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6325}63266327.peach-pro-key-divider {6328  display: flex;6329  align-items: center;6330  gap: 8px;6331  color: var(--peach-t2);6332  font-size: 0.5625rem;6333  letter-spacing: 0.1em;6334}6335.peach-pro-key-divider::before,6336.peach-pro-key-divider::after {6337  content: "";6338  flex: 1;6339  height: 1px;6340  background: var(--peach-border);6341}63426343/* Inline key entry row */6344.peach-pro-key-inline {6345  display: flex;6346  align-items: center;6347  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6348  border: 1px solid var(--peach-border);6349  border-radius: 8px;6350  overflow: hidden;6351}6352.peach-pro-key-inline-input {6353  flex: 1;6354  background: transparent;6355  border: none;6356  outline: none;6357  color: var(--peach-t1);6358  font-family: var(--font-mono);6359  font-size: 0.625rem;6360  letter-spacing: 0.06em;6361  padding: 9px 10px;6362}6363.peach-pro-key-inline-input::placeholder {6364  color: var(--peach-t2);6365}6366.peach-pro-key-apply {6367  background: transparent;6368  border: none;6369  border-left: 1px solid var(--peach-border);6370  color: var(--peach-t2);6371  font-family: var(--font-ui);6372  font-size: 0.5625rem;6373  font-weight: 600;6374  letter-spacing: 0.08em;6375  padding: 9px 10px;6376  cursor: pointer;6377  transition: color 0.15s ease;6378  flex-shrink: 0;6379}6380.peach-pro-key-apply:not(:disabled):hover {6381  color: var(--peach-accent);6382}6383.peach-pro-key-apply:disabled {6384  opacity: 0.35;6385  cursor: not-allowed;6386}63876388/* ── Pro tier — key ceremony ─────────────────────────────────── */6389.peach-pro-key-ceremony {6390  display: flex;6391  flex-direction: column;6392  align-items: center;6393  gap: 12px;6394  padding: 20px 4px 16px;6395}63966397.peach-pro-key-ceremony .peach-lock-rune-string {6398  font-size: 1rem;6399  gap: 12px;6400  flex: 0;6401  justify-content: center;6402}64036404.peach-pro-key-ceremony-label {6405  margin: 0;6406  font-size: 0.6875rem;6407  color: var(--peach-t2);6408  font-style: italic;6409  letter-spacing: 0.04em;6410}64116412.peach-pro-key-input {6413  font-family: var(--font-mono, monospace);6414  letter-spacing: 0.06em;6415  text-align: center;6416  width: 100%;6417  box-sizing: border-box;6418}64196420.peach-pro-key-error {6421  margin: 0;6422  font-size: 0.75rem;6423  text-align: center;6424  color: var(--peach-breach, #e55);6425  padding: 0;6426}64276428.peach-pro-key-activate {6429  width: 100%;6430  text-align: center;6431  box-sizing: border-box;6432  padding: 10px 20px;6433  font-size: 0.8125rem;6434}64356436.peach-pro-key-cancel {6437  background: transparent;6438  border: 0;6439  color: var(--peach-t2);6440  font-size: 0.6875rem;6441  cursor: pointer;6442  padding: 2px 8px;6443  transition: color 0.2s;6444}64456446.peach-pro-key-cancel:hover { color: var(--peach-accent); }64476448/* ── Pro tier — active state ─────────────────────────────────── */6449.peach-pro-active {6450  display: flex;6451  flex-direction: column;6452  align-items: center;6453  gap: 0;6454  padding: 8px 4px 16px;6455  min-height: 280px;6456}64576458.peach-pro-active-hero {6459  display: flex;6460  flex-direction: column;6461  align-items: center;6462  gap: 6px;6463  padding: 20px 0 8px;6464}64656466.peach-pro-active-mark-wrap {6467  display: flex;6468  align-items: center;6469  justify-content: center;6470  margin-bottom: 4px;6471}64726473.peach-pro-active-mark {6474  width: 60px;6475  height: 60px;6476}64776478.peach-pro-active-title {6479  font-family: var(--font-display, var(--font-ui));6480  font-size: 26px;6481  margin: 0;6482  color: var(--peach-t0);6483  letter-spacing: 0.01em;6484}64856486.peach-pro-active-since {6487  margin: 0;6488  font-size: 0.6875rem;6489  color: var(--peach-t2);6490  font-style: italic;6491}64926493.peach-pro-active-features {6494  display: flex;6495  flex-direction: column;6496  gap: 8px;6497  width: 100%;6498  padding: 14px 8px 0;6499  border-top: 1px solid var(--peach-border);6500  flex: 1;6501}65026503.peach-pro-active-feature {6504  display: flex;6505  align-items: center;6506  gap: 9px;6507}65086509.peach-pro-active-feature-mark {6510  color: var(--peach-accent);6511  font-size: 0.625rem;6512  opacity: 0.65;6513  flex-shrink: 0;6514}65156516.peach-pro-active-feature-name {6517  font-size: 0.75rem;6518  color: var(--peach-t1);6519}65206521.peach-pro-deactivate {6522  align-self: center;6523  background: transparent;6524  border: 0;6525  color: var(--peach-t3);6526  font-size: 0.625rem;6527  cursor: pointer;6528  padding: 8px 0 0;6529  margin-top: 16px;6530  letter-spacing: 0.03em;6531  transition: color 0.2s;6532}65336534.peach-pro-deactivate:hover { color: var(--peach-t2); }65356536.peach-pro-deactivate:disabled {6537  opacity: 0.5;6538  cursor: default;6539}65406541/* ── Pro card activation sparkles & thank-you ── */6542button.peach-pro-active-mark-wrap {6543  background: transparent;6544  border: 0;6545  padding: 0;6546  cursor: pointer;6547  position: relative;6548  overflow: visible;6549}65506551.peach-pro-sparks {6552  position: absolute;6553  inset: 0;6554  pointer-events: none;6555  overflow: visible;6556}65576558.peach-pro-spark {6559  position: absolute;6560  top: 50%;6561  left: 50%;6562  font-size: 9px;6563  line-height: 1;6564  opacity: 0;6565  transform: translate(-50%, -50%);6566  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6567}65686569@keyframes peach-pro-spark-fly {6570  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6571  25%  { opacity: 1; }6572  100% {6573    opacity: 0;6574    transform: translate(6575      calc(-50% + var(--spark-x, 0px)),6576      calc(-50% + var(--spark-y, -40px))6577    ) scale(0.8);6578  }6579}65806581.peach-pro-thankyou-text {6582  margin: 4px 0 0;6583  font-size: 0.6875rem;6584  font-style: italic;6585  color: currentColor;6586  opacity: 0;6587  animation: peach-pro-thankyou-flash 2.5s ease both;6588}65896590@keyframes peach-pro-thankyou-flash {6591  0%   { opacity: 0; transform: translateY(4px); }6592  15%  { opacity: 0.75; transform: translateY(0); }6593  75%  { opacity: 0.75; }6594  100% { opacity: 0; }6595}65966597/* ── Pro advanced health remediation queue ──────────────────── */6598.peach-health-pro-queue {6599  display: flex;6600  flex-direction: column;6601  gap: 10px;6602  padding: 12px;6603  margin: 0 0 12px;6604  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6605  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6606  border-radius: 10px;6607}66086609.peach-health-pro-queue-head {6610  display: flex;6611  justify-content: space-between;6612  align-items: baseline;6613}66146615.peach-health-pro-queue-title {6616  font-size: 0.75rem;6617  font-weight: 500;6618  letter-spacing: 0.04em;6619  text-transform: uppercase;6620  color: var(--peach-accent);6621}66226623.peach-health-pro-queue-score {6624  font-size: 0.6875rem;6625  color: var(--peach-t2);6626}66276628.peach-health-pro-row {6629  display: flex;6630  gap: 10px;6631  align-items: center;6632  padding: 8px 0;6633  border-top: 1px solid var(--peach-border);6634}66356636.peach-health-pro-row-info {6637  flex: 1;6638  display: flex;6639  flex-direction: column;6640  gap: 4px;6641  min-width: 0;6642}66436644.peach-health-pro-action {6645  flex: 0 0 auto;6646  padding: 4px 8px;6647  font-size: 0.5625rem;6648  letter-spacing: 0.08em;6649  text-transform: uppercase;6650}66516652.peach-health-pro-row-name {6653  font-size: 0.8125rem;6654  color: var(--peach-t0);6655  overflow: hidden;6656  text-overflow: ellipsis;6657  white-space: nowrap;6658}66596660.peach-health-pro-row-meta {6661  font-size: 0.6875rem;6662  color: var(--peach-t2);6663}66646665.peach-health-pro-bar {6666  height: 2px;6667  background: var(--peach-border);6668  border-radius: 2px;6669  overflow: hidden;6670  margin-top: 2px;6671}66726673.peach-health-pro-bar-fill {6674  height: 100%;6675  background: var(--peach-accent);6676  transition: width 200ms ease-out;6677}66786679/* ── Pro activation celebration ── */6680@keyframes peach-pro-bloom {6681  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6682  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6683                 drop-shadow(0 0 48px var(--peach-glow)); }6684  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6685}66866687@keyframes peach-pro-wordmark-in {6688  from { opacity: 0; transform: translateY(4px); }6689  to   { opacity: 1; transform: translateY(0); }6690}66916692@keyframes peach-pro-fade-out {6693  from { opacity: 1; }6694  to   { opacity: 0; }6695}66966697.peach-pro-celebration {6698  background:6699    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6700    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6701    var(--peach-bg);6702  border: 1px solid var(--peach-t3);6703  box-shadow:6704    0 2px 8px rgba(0,0,0,0.55),6705    0 14px 48px rgba(0,0,0,0.7),6706    0 0 0 1px rgba(240,232,216,0.04);6707  overflow: hidden;6708  width: 320px;6709  height: 520px;6710  display: flex;6711  flex-direction: column;6712  align-items: center;6713  justify-content: center;6714  gap: 8px;6715  padding: 32px 24px;6716  text-align: center;6717}67186719.peach-pro-celebration.is-leaving {6720  animation: peach-pro-fade-out 400ms ease forwards;6721}67226723.peach-pro-bloom-target {6724  display: flex;6725  align-items: center;6726  justify-content: center;6727  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6728  margin-bottom: 12px;6729}67306731.peach-pro-bloom-icon {6732  width: 48px;6733  height: 48px;6734}67356736.peach-pro-wordmark {6737  font-family: var(--font-display);6738  font-size: 22px;6739  font-style: italic;6740  font-weight: 400;6741  color: var(--peach-accent);6742  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6743}67446745.peach-pro-thankyou {6746  font-size: 0.75rem;6747  font-style: italic;6748  color: var(--peach-t2);6749  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6750}675167526753/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6754.peach-pro-notice-banner {6755  display: flex;6756  align-items: center;6757  gap: 8px;6758  padding: 7px 12px;6759  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6760  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6761  font-size: 0.6875rem;6762  color: var(--peach-t2);6763  font-family: "IBM Plex Mono", monospace;6764  flex-shrink: 0;6765}67666767.peach-pro-notice-link {6768  background: none;6769  border: none;6770  padding: 0;6771  cursor: pointer;6772  font-size: 0.6875rem;6773  color: var(--peach-accent);6774  font-family: "IBM Plex Mono", monospace;6775  margin-left: auto;6776  white-space: nowrap;6777}67786779.peach-pro-notice-close {6780  background: none;6781  border: none;6782  padding: 0 0 0 4px;6783  cursor: pointer;6784  font-size: 0.625rem;6785  color: var(--peach-t3);6786  line-height: 1;6787}67886789/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6790   Renders over whatever view is showing. 60-second expiry; the popup ticks6791   the countdown each second and clears the banner when it hits zero. */6792.peach-pair-request-banner {6793  display: flex;6794  flex-direction: column;6795  gap: 8px;6796  padding: 10px 12px;6797  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6798  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6799  font-family: "IBM Plex Mono", monospace;6800  flex-shrink: 0;6801}68026803.peach-pair-toast {6804  padding: 8px 12px;6805  font-family: "IBM Plex Mono", monospace;6806  font-size: 0.75rem;6807  color: var(--peach-t1);6808  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6809  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6810  flex-shrink: 0;6811  text-align: center;6812}68136814.peach-pair-toast strong {6815  color: var(--peach-t0);6816  font-weight: 500;6817}68186819.peach-pair-request-header {6820  display: flex;6821  align-items: center;6822  gap: 8px;6823  font-size: 0.75rem;6824  color: var(--peach-t1);6825}68266827.peach-pair-request-mark {6828  font-size: 0.875rem;6829  display: inline-flex;6830  align-items: center;6831}68326833.peach-pair-request-icon {6834  width: 1em;6835  height: 1em;6836}68376838.peach-pair-request-title {6839  font-weight: 600;6840  color: var(--peach-t0);6841}68426843.peach-pair-request-countdown {6844  margin-left: auto;6845  font-variant-numeric: tabular-nums;6846  color: var(--peach-t2);6847  font-size: 0.6875rem;6848}68496850.peach-pair-request-body {6851  margin: 0;6852  font-size: 0.75rem;6853  color: var(--peach-t1);6854  line-height: 1.4;6855}68566857.peach-pair-request-body strong {6858  color: var(--peach-t0);6859  font-weight: 600;6860}68616862.peach-pair-request-actions {6863  display: flex;6864  gap: 8px;6865  justify-content: flex-end;6866}68676868/* ─── First-run onboarding ──────────────────────────────────────────────6869   Three-card welcome shown once before vault creation. The PeachScript6870   rune background drifts behind everything at very low opacity — it's6871   atmosphere, not focus. The cards themselves use the same panel6872   language as the rest of the popup so the transition into NewVault is6873   continuous, not a jarring switch of visual register. */68746875.peach-onboarding {6876  position: relative;6877  display: flex;6878  flex-direction: column;6879  width: 100%;6880  height: 100%;6881  padding: 16px 16px 18px;6882  box-sizing: border-box;6883  overflow: hidden;6884  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6885}68866887.peach-onboarding.is-completing {6888  animation: peach-onboard-exit 200ms ease-out forwards;6889}68906891.peach-rune-background {6892  position: absolute;6893  inset: 0;6894  width: 100%;6895  height: 100%;6896  pointer-events: none;6897  z-index: 0;6898  transition: opacity 500ms ease-out;6899}69006901.peach-onboarding.is-completing .peach-rune-background {6902  opacity: 0;6903}69046905.peach-onboarding-header {6906  position: relative;6907  z-index: 1;6908  display: flex;6909  align-items: center;6910  margin-bottom: 14px;6911}69126913.peach-onboarding-card {6914  position: relative;6915  z-index: 1;6916  flex: 1;6917  display: flex;6918  flex-direction: column;6919  gap: 10px;6920  padding: 22px 20px;6921  border-radius: 16px;6922  border: 1px solid var(--peach-t3);6923  background:6924    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6925  backdrop-filter: blur(3px);6926  -webkit-backdrop-filter: blur(3px);6927  box-shadow:6928    inset 0 1px 0 rgba(240, 232, 216, 0.04),6929    0 12px 28px rgba(0, 0, 0, 0.12);6930  cursor: pointer;6931  user-select: none;6932  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6933}69346935.peach-onboarding-card.is-exiting {6936  animation: peach-card-out 120ms ease-in forwards;6937  pointer-events: none;6938}69396940.peach-onboarding-card-headline {6941  margin: 0;6942  font-family: var(--font-display);6943  font-style: italic;6944  font-weight: 400;6945  font-size: 22px;6946  line-height: 1.05;6947  color: var(--peach-t0);6948  white-space: pre-line;6949}69506951.peach-onboarding-divider {6952  margin: 4px 0 6px;6953  border: 0;6954  border-top: 1px solid var(--peach-t3);6955  width: 100%;6956}69576958.peach-onboarding-body {6959  margin: 0;6960  font-size: 0.8125rem;6961  line-height: 1.6;6962  color: var(--peach-t1);6963}69646965.peach-onboarding-warning {6966  display: flex;6967  align-items: flex-start;6968  gap: 8px;6969  margin: 6px 0 0;6970  padding-top: 8px;6971  border-top: 1px dashed var(--peach-t3);6972  font-size: 0.8125rem;6973  line-height: 1.5;6974  color: var(--peach-t1);6975}69766977.peach-onboarding-warning-icon {6978  color: var(--peach-accent);6979  font-size: 0.8125rem;6980  line-height: 1.5;6981  flex: 0 0 auto;6982}69836984.peach-onboarding-nav {6985  position: relative;6986  z-index: 1;6987  display: flex;6988  align-items: center;6989  justify-content: space-between;6990  margin-top: 12px;6991  padding: 0 4px;6992}69936994.peach-onboarding-dots {6995  display: flex;6996  align-items: center;6997  gap: 6px;6998}69997000.peach-onboarding-dot {7001  width: 6px;7002  height: 6px;7003  border-radius: 50%;7004  background: var(--peach-t2);7005  transition: width 200ms ease, height 200ms ease, background 200ms ease;7006}70077008.peach-onboarding-dot.is-active {7009  width: 8px;7010  height: 8px;7011  background: var(--peach-accent);7012}70137014.peach-onboarding-next {7015  background: none;7016  border: none;7017  padding: 4px 0;7018  cursor: pointer;7019  font-family: "IBM Plex Mono", monospace;7020  font-size: 0.6875rem;7021  letter-spacing: 0.04em;7022  color: var(--peach-t1);7023  transition: color 150ms ease;7024}70257026.peach-onboarding-next:hover {7027  color: var(--peach-t0);7028}70297030.peach-onboarding-next:disabled {7031  opacity: 0.5;7032  cursor: default;7033}70347035.peach-onboarding-back {7036  background: none;7037  border: none;7038  padding: 4px 0;7039  cursor: pointer;7040  font-family: "IBM Plex Mono", monospace;7041  font-size: 0.6875rem;7042  letter-spacing: 0.04em;7043  color: var(--peach-t2);7044  transition: color 150ms ease;7045}70467047.peach-onboarding-back:hover {7048  color: var(--peach-t0);7049}70507051.peach-onboarding-back:disabled {7052  opacity: 0.5;7053  cursor: default;7054}70557056/* Reserve back-button width on the first card so the dots stay centred */7057.peach-onboarding-back-spacer {7058  width: 44px;7059}70607061.peach-onboarding-choice-row {7062  display: grid;7063  grid-template-columns: 1fr;7064  gap: 8px;7065  margin-top: 14px;7066}70677068.peach-onboarding-choice {7069  min-height: 34px;7070  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);7071  border-radius: 8px;7072  padding: 8px 10px;7073  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7074  color: var(--peach-t0);7075  font-size: 0.76rem;7076  font-weight: 700;7077  text-align: left;7078}70797080.peach-onboarding-choice--adopt {7081  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);7082  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7083}70847085.peach-adopt-vault {7086  position: relative;7087  min-height: 100%;7088  padding: 22px;7089  display: grid;7090  place-items: center;7091}70927093.peach-adopt-card {7094  position: relative;7095  z-index: 1;7096  width: min(100%, 330px);7097  padding: 20px;7098  border-radius: 8px;7099  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7100  background: color-mix(in srgb, var(--peach-surface) 90%, transparent);7101  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);7102}71037104.peach-adopt-card h1 {7105  margin: 0 0 10px;7106  font-size: 1.28rem;7107  line-height: 1.15;7108}71097110.peach-adopt-card p {7111  margin: 0 0 14px;7112  color: var(--peach-t1);7113  line-height: 1.35;7114}71157116.peach-adopt-input {7117  margin-bottom: 12px;7118}71197120.peach-adopt-card textarea.peach-adopt-input {7121  width: 100%;7122  resize: vertical;7123  overflow-wrap: anywhere;7124  font-family: "IBM Plex Mono", monospace;7125  font-size: 0.64rem;7126}71277128.peach-adopt-qr-video {7129  display: block;7130  width: 100%;7131  max-height: 220px;7132  margin: 0 0 12px;7133  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);7134  border-radius: 8px;7135  background: #000;7136  object-fit: cover;7137}71387139.peach-adoption-source-invitation {7140  display: flex;7141  flex-direction: column;7142  align-items: center;7143  gap: 10px;7144  padding: 4px 18px 16px;7145  text-align: center;7146}71477148.peach-pair-qr {7149  display: block;7150  max-width: min(224px, 100%);7151  height: auto;7152  padding: 8px;7153  border-radius: 10px;7154  background: #fff;7155}71567157.peach-adoption-source-code {7158  width: 100%;7159  padding: 8px;7160  resize: none;7161  overflow-wrap: anywhere;7162  border: 1px solid var(--peach-border);7163  border-radius: 8px;7164  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);7165  color: var(--peach-t1);7166  font: 0.58rem/1.35 "IBM Plex Mono", monospace;7167}71687169.peach-adopt-card > .peach-btn + .peach-btn {7170  margin-top: 8px;7171}71727173.peach-adopt-actions {7174  display: flex;7175  gap: 10px;7176  margin-top: 14px;7177}71787179.peach-adopt-actions > button {7180  flex: 1;7181}71827183.peach-adopt-birds {7184  width: 120px;7185  height: 54px;7186  margin-bottom: 14px;7187  position: relative;7188}71897190.peach-adopt-birds::before {7191  content: "";7192  position: absolute;7193  left: 29px;7194  right: 29px;7195  top: 25px;7196  height: 1px;7197  background: color-mix(in srgb, var(--peach-accent) 50%, transparent);7198}71997200.peach-adopt-birds span {7201  position: absolute;7202  top: 11px;7203  width: 34px;7204  height: 28px;7205  border-radius: 50% 50% 46% 46%;7206  background: color-mix(in srgb, var(--peach-accent) 45%, var(--peach-t0));7207  box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 24%, transparent);7208  animation: peach-adopt-bob 1.8s ease-in-out infinite;7209}72107211.peach-adopt-birds span:first-child {7212  left: 12px;7213}72147215.peach-adopt-birds span:last-child {7216  right: 12px;7217  animation-delay: 0.25s;7218}72197220.peach-adopt-sas {7221  margin: 18px 0;7222  padding: 14px;7223  border-radius: 8px;7224  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);7225  color: var(--peach-t0);7226  font-size: 1.35rem;7227  font-weight: 800;7228  font-variant-numeric: tabular-nums;7229  text-align: center;7230}72317232@keyframes peach-adopt-bob {7233  0%, 100% { transform: translateY(0); }7234  50% { transform: translateY(-5px); }7235}72367237.peach-onboarding-mobile-card-buttons {7238  display: flex;7239  flex-direction: column;7240  gap: 8px;7241  margin-top: 16px;7242}72437244@keyframes peach-onboard-enter {7245  from { opacity: 0; transform: translateY(20px); }7246  to   { opacity: 1; transform: translateY(0); }7247}72487249@keyframes peach-onboard-exit {7250  from { opacity: 1; }7251  to   { opacity: 0; }7252}72537254@keyframes peach-card-in {7255  from { opacity: 0; transform: translateX(12px); }7256  to   { opacity: 1; transform: translateX(0); }7257}72587259@keyframes peach-card-out {7260  from { opacity: 1; transform: translateX(0); }7261  to   { opacity: 0; transform: translateX(-12px); }7262}72637264/* ─── New vault screen — matched to onboarding card language ─────────── */72657266/* Two classes so this beats the shared .peach-screen.lock-screen--vault-stage7267   rule (same element) without loosening the unlock/restore screens. The7268   create-vault screen is the only vault-stage view tall enough to overflow7269   the 520px popup, so its spacing is tuned to fit header → card → restore →7270   recovery warning with nothing clipped. */7271.peach-screen.peach-newvault {7272  position: relative;7273  display: flex;7274  flex-direction: column;7275  gap: 12px;7276  padding: 14px 16px 12px;7277  overflow: hidden;7278}72797280/* Suppress the warm-blob ambient art inherited from .lock-screen — the7281   new vault card now carries the visual weight. */7282.peach-newvault::before {7283  content: none;7284}72857286.peach-newvault-header {7287  position: relative;7288  z-index: 2;7289  display: flex;7290  align-items: center;7291  gap: 10px;7292  margin-bottom: 2px;7293}72947295.peach-newvault-back {7296  display: inline-flex;7297  align-items: center;7298  gap: 4px;7299  background: transparent;7300  border: none;7301  color: var(--peach-t2);7302  font-family: "IBM Plex Mono", monospace;7303  font-size: 0.625rem;7304  letter-spacing: 0.06em;7305  cursor: pointer;7306  padding: 4px 6px;7307  border-radius: 6px;7308  transition: color 120ms ease, background 120ms ease;7309}73107311.peach-newvault-back:hover {7312  color: var(--peach-t0);7313  background: rgba(240, 232, 216, 0.04);7314}73157316.peach-newvault-mark {7317  position: absolute;7318  right: -12px;7319  top: 6px;7320  width: 110px;7321  height: 110px;7322  pointer-events: none;7323  opacity: 0.10;7324  filter: saturate(0.9);7325  z-index: 0;7326}7327.peach-newvault-mark-art {7328  width: 100%;7329  height: 100%;7330}7331.peach-newvault-mark-art path:nth-child(1) {7332  fill: rgba(123, 144, 96, 0.88);7333}7334.peach-newvault-mark-art path:nth-child(2) {7335  stroke: rgba(94, 122, 66, 0.95);7336}73377338.peach-newvault-card {7339  position: relative;7340  z-index: 1;7341  display: flex;7342  flex-direction: column;7343  gap: 8px;7344  padding: 16px 20px 14px;7345  border-radius: 16px;7346  border: 1px solid var(--peach-t3);7347  background:7348    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7349  backdrop-filter: blur(3px);7350  -webkit-backdrop-filter: blur(3px);7351  box-shadow:7352    inset 0 1px 0 rgba(240, 232, 216, 0.04),7353    0 12px 28px rgba(0, 0, 0, 0.12);7354  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7355}73567357.peach-newvault-headline {7358  margin: 0;7359  font-family: var(--font-display);7360  font-style: italic;7361  font-weight: 400;7362  font-size: 24px;7363  line-height: 1.05;7364  color: var(--peach-t0);7365  white-space: pre-line;7366}73677368.peach-newvault-divider {7369  margin: 2px 0 4px;7370  border: 0;7371  border-top: 1px solid var(--peach-t3);7372  width: 100%;7373}73747375.peach-newvault-field {7376  display: flex;7377  flex-direction: column;7378  gap: 4px;7379}73807381.peach-newvault-label-row {7382  display: flex;7383  align-items: center;7384  justify-content: space-between;7385}73867387/* Monospace input scaled to the card. Replaces the 22px unlock-input7388   so the placeholder no longer overflows and the field reads as part7389   of the same surface as the body copy. */7390.peach-newvault-input {7391  font-size: 0.875rem;7392  letter-spacing: 0.18em;7393  padding: 8px 0;7394}7395.peach-newvault-input::placeholder {7396  letter-spacing: 0.18em;7397  color: var(--peach-t2);7398}73997400.peach-newvault-hint {7401  margin: 2px 0 0;7402  font-family: "IBM Plex Mono", monospace;7403  font-size: 0.625rem;7404  color: var(--peach-t2);7405  letter-spacing: 0.04em;7406}74077408.peach-newvault-submit {7409  margin-top: 4px;7410}74117412.peach-newvault-warning {7413  display: flex;7414  align-items: flex-start;7415  gap: 8px;7416  margin: 2px 0 0;7417  padding-top: 8px;7418  border-top: 1px dashed var(--peach-t3);7419  font-size: 0.75rem;7420  line-height: 1.45;7421  color: var(--peach-t1);7422}74237424.peach-newvault-warning-icon {7425  color: var(--peach-accent);7426  font-size: 0.8125rem;7427  line-height: 1.4;7428  flex: 0 0 auto;7429}74307431/* Restore options sit inside the card, directly under "create vault", so7432   they are always reachable without scrolling. The top divider mirrors the7433   warning's so the choice reads as a deliberate fork, not a footnote. */7434.peach-newvault-restore {7435  position: relative;7436  z-index: 1;7437  display: flex;7438  flex-direction: column;7439  gap: 4px;7440  margin-top: 4px;7441  padding-top: 10px;7442  border-top: 1px dashed var(--peach-t3);7443}74447445/* Settings body — warm accent gradient gives the glass something to blur against */7446.peach-settings-body {7447  background:7448    radial-gradient(7449      ellipse at 30% 20%,7450      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7451      transparent 60%7452    );7453}74547455/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7456/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7457 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7458 * (replacing the vault from a backup file) and "hazard" for actions that7459 * are absolutely irreversible (Panic). Both use the same card scaffold so7460 * they read as a pair, but the colour family signals the severity at a7461 * glance — yellow for caution, red for don't.7462 */7463.peach-danger-card {7464  --danger-tint: 235, 158, 52; /* amber */7465  display: flex;7466  flex-direction: column;7467  gap: 8px;7468  padding: 14px;7469  margin-top: 10px;7470  border-radius: 12px;7471  border: 1px solid rgba(var(--danger-tint), 0.32);7472  background:7473    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7474    rgba(var(--danger-tint), 0.04);7475  box-shadow:7476    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7477    0 0 24px rgba(var(--danger-tint), 0.04);7478  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7479}74807481.peach-danger-card:hover {7482  border-color: rgba(var(--danger-tint), 0.55);7483  box-shadow:7484    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7485    0 0 36px rgba(var(--danger-tint), 0.10);7486}74877488.peach-danger-card--hazard {7489  --danger-tint: 220, 38, 38; /* red */7490}74917492.peach-danger-card-head {7493  display: flex;7494  align-items: center;7495  gap: 10px;7496}74977498.peach-danger-card-glyph {7499  width: 28px;7500  height: 28px;7501  flex-shrink: 0;7502  display: flex;7503  align-items: center;7504  justify-content: center;7505  border-radius: 8px;7506  background: rgba(var(--danger-tint), 0.12);7507  color: rgba(var(--danger-tint), 0.95);7508  font-size: 1rem;7509  line-height: 1;7510}75117512.peach-danger-card-title {7513  margin: 0;7514  font-size: 0.8125rem;7515  font-weight: 600;7516  color: rgba(var(--danger-tint), 0.92);7517  letter-spacing: 0.01em;7518}75197520.peach-danger-card-copy {7521  margin: 0;7522  font-size: 0.6875rem;7523  line-height: 1.5;7524  color: var(--peach-t2);7525}75267527.peach-danger-card-button {7528  width: 100%;7529  padding: 9px;7530  margin-top: 4px;7531  background: transparent;7532  border: 1px solid rgba(var(--danger-tint), 0.45);7533  border-radius: 8px;7534  color: rgba(var(--danger-tint), 0.9);7535  font-size: 0.75rem;7536  font-weight: 500;7537  letter-spacing: 0.02em;7538  cursor: pointer;7539  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7540}75417542.peach-danger-card-button:hover {7543  background: rgba(var(--danger-tint), 0.10);7544  border-color: rgba(var(--danger-tint), 0.75);7545  color: rgb(var(--danger-tint));7546}75477548.peach-adoption-consent-backdrop {7549  position: fixed;7550  inset: 0;7551  z-index: 1000;7552  display: grid;7553  place-items: center;7554  padding: 18px;7555  background: rgba(15, 10, 5, 0.72);7556}75577558.peach-adoption-consent {7559  width: min(100%, 340px);7560  border: 1px solid color-mix(in srgb, #f59e0b 54%, var(--peach-border));7561  border-radius: 8px;7562  padding: 18px;7563  background: color-mix(in srgb, #2c1b08 84%, var(--peach-surface));7564  color: var(--peach-t0);7565  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.42);7566}75677568.peach-adoption-consent-icon {7569  width: 32px;7570  height: 32px;7571  display: grid;7572  place-items: center;7573  border-radius: 50%;7574  background: #f59e0b;7575  color: #1f1304;7576  font-weight: 800;7577}75787579.peach-adoption-consent h2 {7580  margin: 12px 0 8px;7581  font-size: 1.22rem;7582  line-height: 1.15;7583}75847585.peach-adoption-consent-device,7586.peach-adoption-consent-warning {7587  margin: 0 0 12px;7588  color: var(--peach-t1);7589  line-height: 1.35;7590}75917592.peach-adoption-consent-device strong {7593  color: var(--peach-t0);7594}75957596.peach-adoption-consent-warning {7597  color: #ffd79a;7598}75997600.peach-adoption-consent-sas {7601  display: flex;7602  justify-content: space-between;7603  align-items: center;7604  gap: 12px;7605  margin: 14px 0;7606  padding: 10px;7607  border-radius: 6px;7608  background: rgba(245, 158, 11, 0.12);7609}76107611/* Tracking, not interleaved spaces: eight digits with per-digit spaces no7612   longer fit beside the label at 320px. */7613.peach-adoption-consent-sas strong {7614  font-variant-numeric: tabular-nums;7615  letter-spacing: 0.18em;7616  white-space: nowrap;7617}76187619.peach-adoption-consent-actions {7620  display: flex;7621  justify-content: space-between;7622  gap: 10px;7623  margin-top: 16px;7624}76257626.peach-adoption-consent-actions > button {7627  flex: 1;7628}76297630/* ── Panic flow (three-step destruction) ───────────────────────────────── */7631.peach-panic {7632  display: flex;7633  flex-direction: column;7634  flex: 1;7635  min-height: 0;7636  padding: 28px 20px 20px;7637  gap: 18px;7638  overflow-y: auto;7639  scrollbar-width: none;7640  -ms-overflow-style: none;7641}76427643.peach-panic::-webkit-scrollbar { display: none; }76447645.peach-panic-step2 {7646  background: rgba(220, 38, 38, 0.04);7647}76487649.peach-panic-step3 {7650  position: relative;7651  background: #0f0505;7652  color: #ffffff;7653  overflow: hidden;7654}76557656.peach-panic-rune-bg {7657  position: absolute;7658  inset: 0;7659  opacity: 0.22;7660  pointer-events: none;7661  overflow: hidden;7662}76637664.peach-panic-rune-bg canvas {7665  width: 100% !important;7666  height: 100% !important;7667}76687669.peach-panic-icon {7670  font-size: 32px;7671  color: rgb(220, 38, 38);7672  line-height: 1;7673}76747675.peach-panic-title {7676  margin: 0;7677  font-size: 18px;7678  font-weight: 500;7679  color: var(--peach-t1);7680}76817682.peach-panic-title--severe {7683  font-size: 20px;7684  font-weight: 700;7685  color: rgb(220, 38, 38);7686}76877688.peach-panic-body {7689  margin: 0;7690  font-size: 0.8125rem;7691  line-height: 1.55;7692  color: var(--peach-t2);7693}76947695.peach-panic-body--severe {7696  color: rgba(220, 38, 38, 0.85);7697}76987699.peach-panic-body--final {7700  font-size: 1rem;7701  font-weight: 700;7702  color: rgb(255, 80, 80);7703  line-height: 1.4;7704}77057706.peach-panic-body--final-intro {7707  font-size: 1rem;7708  color: #ffffff;7709  font-weight: 400;7710}77117712.peach-panic-divider {7713  height: 1px;7714  background: rgba(255, 255, 255, 0.08);7715  margin: 4px 0;7716}77177718.peach-panic-confirm-input {7719  width: 100%;7720  padding: 10px 12px;7721  background: rgba(255, 255, 255, 0.02);7722  border: 1px solid rgba(220, 38, 38, 0.4);7723  border-radius: 8px;7724  color: var(--peach-t1);7725  font-family: "IBM Plex Mono", monospace;7726  font-size: 0.875rem;7727  letter-spacing: 0.12em;7728  text-transform: uppercase;7729}77307731.peach-panic-confirm-input:focus {7732  outline: none;7733  border-color: rgb(220, 38, 38);7734}77357736.peach-panic-confirm-input--match {7737  border-color: rgb(220, 38, 38);7738  color: rgb(220, 38, 38);7739}77407741.peach-panic-confirm-label {7742  font-size: 0.6875rem;7743  color: var(--peach-t2);7744  margin: 0 0 -8px;7745  letter-spacing: 0.06em;7746}77477748.peach-panic-actions {7749  display: flex;7750  flex-direction: column;7751  gap: 10px;7752  margin-top: auto;7753}77547755.peach-panic-button {7756  width: 100%;7757  padding: 12px;7758  border-radius: 8px;7759  font-size: 0.8125rem;7760  cursor: pointer;7761  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7762}77637764.peach-panic-button--primary {7765  background: var(--peach-accent);7766  border: 1px solid var(--peach-accent);7767  color: #ffffff;7768  font-weight: 600;7769}77707771.peach-panic-button--primary:hover {7772  background: color-mix(in srgb, var(--peach-accent) 88%, white);7773}77747775.peach-panic-button--danger {7776  background: rgb(220, 38, 38);7777  border: 1px solid rgb(220, 38, 38);7778  color: #ffffff;7779  font-weight: 600;7780}77817782.peach-panic-button--danger:disabled {7783  opacity: 0.35;7784  cursor: not-allowed;7785}77867787.peach-panic-button--ghost {7788  background: transparent;7789  border: 1px solid rgba(255, 255, 255, 0.18);7790  color: var(--peach-t2);7791}77927793.peach-panic-button--ghost:hover {7794  border-color: rgba(255, 255, 255, 0.32);7795  color: var(--peach-t1);7796}77977798.peach-panic-link {7799  background: transparent;7800  border: none;7801  padding: 4px 0;7802  color: rgba(220, 38, 38, 0.65);7803  font-size: 0.75rem;7804  cursor: pointer;7805  text-align: left;7806  text-decoration: underline;7807  text-underline-offset: 3px;7808}78097810.peach-panic-link:hover {7811  color: rgb(220, 38, 38);7812}78137814.peach-panic-bar {7815  background: rgb(220, 38, 38);7816  padding: 16px 20px;7817  margin: -28px -20px 0;7818  text-align: center;7819  font-size: 0.8125rem;7820  font-weight: 700;7821  letter-spacing: 0.12em;7822  color: #ffffff;7823}78247825.peach-panic-final-button {7826  width: 100%;7827  padding: 14px;7828  background: rgb(220, 38, 38);7829  border: none;7830  border-radius: 8px;7831  color: #ffffff;7832  font-size: 0.875rem;7833  font-weight: 700;7834  letter-spacing: 0.08em;7835  text-transform: uppercase;7836  cursor: pointer;7837  animation: peach-panic-pulse 2s ease-in-out infinite;7838}78397840.peach-settings-license {7841  margin-top: 10px;7842  padding-top: 10px;7843  border-top: 1px solid var(--peach-t3);7844}78457846.peach-settings-label {7847  font-size: 0.625rem;7848  letter-spacing: 0.08em;7849  color: var(--peach-t3);7850  display: block;7851  margin-bottom: 6px;7852}78537854.peach-settings-license-row {7855  display: flex;7856  align-items: center;7857  justify-content: space-between;7858  gap: 8px;7859}78607861.peach-settings-license-key {7862  font-family: 'IBM Plex Mono', monospace;7863  font-size: 0.75rem;7864  color: var(--peach-t0);7865  letter-spacing: 0.04em;7866  word-break: break-all;7867  flex: 1;7868  min-width: 0;7869}78707871.peach-settings-license-key--masked {7872  font-family: 'IBM Plex Mono', monospace;7873  font-size: 0.6rem;7874  color: var(--peach-t1);7875  letter-spacing: 0.18em;7876  user-select: none;7877}78787879.peach-settings-license-actions {7880  display: flex;7881  align-items: center;7882  gap: 2px;7883  flex-shrink: 0;7884}78857886.peach-settings-license-copy {7887  font-size: 0.6875rem;7888  color: var(--peach-accent);7889  background: transparent;7890  border: none;7891  cursor: pointer;7892  padding: 4px 8px;7893  border-radius: 4px;7894  flex-shrink: 0;7895  transition: opacity 150ms ease;7896}78977898.peach-settings-license-copy:hover {7899  opacity: 0.75;7900}79017902.peach-settings-license-toggle {7903  display: flex;7904  align-items: center;7905  justify-content: center;7906  background: transparent;7907  border: none;7908  cursor: pointer;7909  padding: 4px 6px;7910  border-radius: 4px;7911  color: var(--peach-t2);7912  transition: color 150ms ease;7913}79147915.peach-settings-license-toggle:hover {7916  color: var(--peach-t1);7917}79187919@keyframes peach-panic-pulse {7920  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }7921  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }7922}79237924[data-motion="reduce"] .peach-panic-final-button {7925  animation: none;7926}79277928/* Vault History — Settings → Vault sub-view */79297930.peach-history-list {7931  border: 1px solid var(--peach-border);7932  border-radius: 8px;7933  overflow: hidden;7934  margin: 8px 0 4px;7935}79367937.peach-history-row {7938  display: flex;7939  align-items: center;7940  justify-content: space-between;7941  padding: 9px 12px;7942  gap: 10px;7943  border-bottom: 1px solid var(--peach-border);7944}79457946.peach-history-row:last-child {7947  border-bottom: none;7948}79497950.peach-history-meta {7951  display: flex;7952  flex-direction: column;7953  gap: 2px;7954  min-width: 0;7955  flex: 1;7956}79577958.peach-history-time {7959  font-size: 0.75rem;7960  font-family: 'IBM Plex Mono', ui-monospace, monospace;7961  color: var(--peach-t0);7962  white-space: nowrap;7963  overflow: hidden;7964  text-overflow: ellipsis;7965}79667967.peach-history-sub {7968  font-size: 0.625rem;7969  color: var(--peach-t2);7970  letter-spacing: 0.06em;7971  text-transform: uppercase;7972  white-space: nowrap;7973  overflow: hidden;7974  text-overflow: ellipsis;7975}79767977.peach-history-btn {7978  flex-shrink: 0;7979  white-space: nowrap;7980  min-width: 56px;7981  text-align: center;7982}79837984.peach-history-btn.is-busy {7985  opacity: 0.65;7986}79877988.peach-history-footer {7989  font-size: 0.625rem;7990  color: var(--peach-t3);7991  letter-spacing: 0.05em;7992  text-align: right;7993  margin: 0;7994  padding: 2px 0 0;7995}79967997/* ── Context menu + swipe-copy flash ─────────────────────── */7998.peach-context-menu-backdrop {7999  position: fixed;8000  inset: 0;8001  background: rgba(0, 0, 0, 0.45);8002  z-index: 100;8003  display: flex;8004  align-items: flex-end;8005  justify-content: center;8006  animation: peach-ctx-fade 140ms ease both;8007}8008.peach-context-menu {8009  width: min(360px, calc(100vw - 24px));8010  margin-bottom: max(env(safe-area-inset-bottom), 12px);8011  background: var(--peach-bg);8012  border: 1px solid var(--peach-t3);8013  border-radius: 14px;8014  padding: 6px;8015  display: flex;8016  flex-direction: column;8017  gap: 2px;8018  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);8019  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;8020}8021@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }8022@keyframes peach-ctx-rise {8023  from { transform: translateY(16px); opacity: 0; }8024  to   { transform: translateY(0);    opacity: 1; }8025}8026.peach-context-menu-item {8027  background: transparent;8028  color: var(--peach-t0);8029  border: 0;8030  border-radius: 10px;8031  padding: 12px 14px;8032  text-align: left;8033  font: inherit;8034  cursor: pointer;8035}8036.peach-context-menu-item:hover,8037.peach-context-menu-item:focus-visible {8038  background: var(--peach-t3);8039}8040.peach-context-menu-item--danger {8041  color: var(--peach-health-bad, #d96868);8042}8043.peach-context-menu-item--cancel {8044  color: var(--peach-t2);8045  margin-top: 4px;8046  border-top: 1px solid var(--peach-t3);8047  border-radius: 0 0 10px 10px;8048}80498050/* Swipe-to-copy flash */8051.peach-entry-row.is-copy-flash {8052  animation: peach-copy-flash 600ms ease both;8053}8054@keyframes peach-copy-flash {8055  0%   { background: transparent; }8056  20%  { background: rgba(217, 153, 51, 0.32); }8057  100% { background: transparent; }8058}80598060html { font-size: 16px; }80618062/* ── Recovery word entry ─────────────────────────────────────────── */8063.peach-lock-recover-link {8064  display: block;8065  width: 100%;8066  margin-top: 12px;8067  background: none;8068  border: none;8069  font-family: "IBM Plex Mono", monospace;8070  font-size: 0.625rem;8071  letter-spacing: 0.06em;8072  color: var(--peach-t2);8073  cursor: pointer;8074  text-align: center;8075  padding: 4px;8076  transition: color 120ms ease;8077}8078.peach-lock-recover-link:hover {8079  color: var(--peach-t0);8080}80818082.lock-screen--recovery {8083  display: flex;8084  flex-direction: column;8085  align-items: stretch;8086  padding: 12px 20px 24px;8087  overflow: hidden;8088}80898090.peach-recovery-nav {8091  display: flex;8092  align-items: center;8093  position: relative;8094  z-index: 1;8095  margin-bottom: 4px;8096}80978098/* Mask runes to the top decorative band only — keep inputs and the8099   bottom CTA button clear. The bottom of the popup is reserved for8100   submit buttons; rendering runes there overlaps the button glyph. */8101.peach-rune-background--recovery {8102  -webkit-mask-image: linear-gradient(8103    to bottom,8104    black 0px, black 85px,8105    transparent 110px,8106    transparent 100%8107  );8108  mask-image: linear-gradient(8109    to bottom,8110    black 0px, black 85px,8111    transparent 110px,8112    transparent 100%8113  );8114}81158116.peach-recovery-header {8117  text-align: center;8118  margin-bottom: 16px;8119  margin-top: 4px;8120}8121.peach-recovery-header .peach-onboarding-headline {8122  font-size: 1.25rem;8123  font-weight: 300;8124  letter-spacing: 0.02em;8125  margin: 0 0 4px;8126}8127.peach-recovery-header .peach-hint {8128  font-family: "IBM Plex Mono", monospace;8129  font-size: 0.625rem;8130  color: var(--peach-t2);8131  letter-spacing: 0.04em;8132  margin: 0;8133}81348135/* 12-word grid: 2 columns × 6 rows */8136.peach-recovery-grid {8137  display: grid;8138  grid-template-columns: repeat(2, 1fr);8139  gap: 12px 20px;8140  width: 100%;8141  margin-bottom: 0;8142}81438144.peach-recovery-word-slot {8145  display: flex;8146  align-items: center;8147  gap: 6px;8148  min-width: 0;8149}81508151.peach-recovery-word-index {8152  font-family: "IBM Plex Mono", monospace;8153  font-size: 0.5rem;8154  color: rgba(255, 255, 255, 0.35);8155  min-width: 14px;8156  flex-shrink: 0;8157  text-align: right;8158  letter-spacing: 0.04em;8159}81608161.peach-recovery-word-input {8162  flex: 1;8163  min-width: 0;8164  background: transparent;8165  border: none;8166  border-bottom: 1px solid rgba(255, 255, 255, 0.22);8167  color: var(--peach-t0);8168  font-family: "IBM Plex Mono", monospace;8169  font-size: 0.6875rem;8170  letter-spacing: 0.06em;8171  padding: 5px 2px 4px;8172  outline: none;8173  text-transform: lowercase;8174  transition: border-color 120ms ease;8175}8176.peach-recovery-word-input::placeholder {8177  color: rgba(255, 255, 255, 0.18);8178}8179.peach-recovery-word-input:focus {8180  border-bottom-color: var(--peach-accent);8181}81828183.peach-recovery-submit {8184  width: 100%;8185  margin-top: auto;8186}81878188.peach-recovery-new-password-form {8189  width: 100%;8190  display: flex;8191  flex-direction: column;8192  gap: 16px;8193  margin-bottom: 8px;8194}8195.peach-recovery-new-password-form .peach-newvault-field {8196  display: flex;8197  flex-direction: column;8198  gap: 4px;8199}82008201/* ── Recovery words display (post-create) ────────────────────────── */8202.lock-screen--recovery-display {8203  display: flex;8204  flex-direction: column;8205  align-items: stretch;8206  padding: 0 20px 20px;8207  min-height: 0;8208  overflow-y: auto;8209}82108211.peach-recovery-words-display {8212  width: 100%;8213  margin-bottom: 16px;8214  border: 1px solid var(--peach-t3);8215  border-radius: 8px;8216  padding: 12px 14px;8217  background: rgba(245, 240, 234, 0.04);8218}82198220.peach-recovery-words-label {8221  font-family: "IBM Plex Mono", monospace;8222  font-size: 0.5rem;8223  letter-spacing: 0.08em;8224  color: var(--peach-t2);8225  text-transform: uppercase;8226  margin-bottom: 10px;8227}82288229.peach-recovery-word-list {8230  list-style: none;8231  margin: 0;8232  padding: 0;8233  display: grid;8234  grid-template-columns: repeat(2, 1fr);8235  gap: 6px 16px;8236}82378238.peach-recovery-word-item {8239  display: flex;8240  align-items: baseline;8241  gap: 5px;8242}82438244.peach-recovery-word-num {8245  font-family: "IBM Plex Mono", monospace;8246  font-size: 0.5rem;8247  color: var(--peach-t2);8248  width: 14px;8249  flex: 0 0 14px;8250  text-align: right;8251  letter-spacing: 0.04em;8252  font-variant-numeric: tabular-nums;8253}82548255.peach-recovery-download-btn {8256  display: block;8257  margin: 10px auto 0;8258  padding: 4px 10px;8259  background: transparent;8260  border: 1px solid var(--peach-border);8261  border-radius: 6px;8262  color: var(--peach-t2);8263  font-family: "IBM Plex Mono", monospace;8264  font-size: 0.5625rem;8265  letter-spacing: 0.06em;8266  text-transform: lowercase;8267  cursor: pointer;8268  transition: border-color 0.15s, color 0.15s;8269}82708271.peach-recovery-download-btn:hover {8272  border-color: var(--peach-accent);8273  color: var(--peach-t0);8274}82758276.peach-recovery-word-text {8277  font-family: "IBM Plex Mono", monospace;8278  font-size: 0.6875rem;8279  letter-spacing: 0.06em;8280  color: var(--peach-t0);8281  text-transform: lowercase;8282}82838284.peach-hint--warning {8285  color: var(--peach-accent);8286  font-style: italic;8287}8288.peach-hint--success {8289  color: var(--peach-t2);8290  font-family: "IBM Plex Mono", monospace;8291  font-size: 0.625rem;8292  letter-spacing: 0.06em;8293}82948295/* Confirmation step */8296.peach-recovery-confirm {8297  width: 100%;8298  flex: 1;8299  display: flex;8300  flex-direction: column;8301}8302.peach-recovery-confirm-label {8303  font-family: "IBM Plex Mono", monospace;8304  font-size: 0.5625rem;8305  letter-spacing: 0.04em;8306  color: var(--peach-t2);8307  text-align: center;8308  margin: 0 0 12px;8309}8310.peach-recovery-confirm-fields {8311  display: flex;8312  flex-direction: column;8313  gap: 14px;8314  margin-bottom: 10px;8315}8316.peach-recovery-confirm-field {8317  display: flex;8318  align-items: center;8319  gap: 8px;8320}8321.peach-recovery-confirm-num {8322  font-family: "IBM Plex Mono", monospace;8323  font-size: 0.5rem;8324  color: var(--peach-t2);8325  min-width: 44px;8326  letter-spacing: 0.04em;8327}8328.peach-recovery-confirm-input {8329  flex: 1;8330  background: transparent;8331  border: none;8332  border-bottom: 1px solid var(--peach-t3);8333  color: var(--peach-t0);8334  font-family: "IBM Plex Mono", monospace;8335  font-size: 0.6875rem;8336  letter-spacing: 0.06em;8337  padding: 4px 2px 3px;8338  outline: none;8339  text-transform: lowercase;8340  transition: border-color 120ms ease;8341}8342.peach-recovery-confirm-input:focus {8343  border-bottom-color: var(--peach-accent);8344}8345.peach-recovery-confirm-input:disabled {8346  opacity: 0.4;8347  cursor: not-allowed;8348}8349.peach-recovery-confirm-btn {8350  width: 100%;8351  margin-top: auto;8352}83538354/* ============================================================8355   Sync info sheet8356   ============================================================ */83578358.peach-sync-info-backdrop {8359  position: fixed;8360  inset: 0;8361  z-index: 200;8362  background: rgba(0, 0, 0, 0.55);8363  display: flex;8364  align-items: flex-end;8365  animation: peach-fade-in 200ms ease forwards;8366}83678368@keyframes peach-fade-in {8369  from { opacity: 0; }8370  to   { opacity: 1; }8371}83728373.peach-sync-info-sheet {8374  width: 100%;8375  background: var(--peach-bg-card, var(--peach-bg));8376  border-top-left-radius: 20px;8377  border-top-right-radius: 20px;8378  padding: 12px 24px 32px;8379  display: flex;8380  flex-direction: column;8381  gap: 20px;8382  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8383}83848385@keyframes peach-sheet-up {8386  from { transform: translateY(100%); }8387  to   { transform: translateY(0); }8388}83898390.peach-sync-info-handle {8391  width: 36px;8392  height: 4px;8393  border-radius: 2px;8394  background: var(--peach-border);8395  margin: 0 auto 4px;8396  flex-shrink: 0;8397}83988399.peach-sync-info-title {8400  font-family: 'Cormorant Garamond', serif;8401  font-style: italic;8402  font-size: 26px;8403  font-weight: 600;8404  color: var(--peach-t0);8405  margin: 0;8406  line-height: 1.2;8407}84088409.peach-sync-info-body {8410  display: flex;8411  flex-direction: column;8412  gap: 14px;8413}84148415.peach-sync-info-point {8416  display: flex;8417  gap: 12px;8418  align-items: flex-start;8419  font-size: 14px;8420  color: var(--peach-t2);8421  line-height: 1.6;8422  margin: 0;8423}84248425.peach-sync-info-icon {8426  color: var(--peach-accent);8427  font-size: 16px;8428  flex-shrink: 0;8429  margin-top: 1px;8430}84318432.peach-sync-info-actions {8433  display: flex;8434  flex-direction: column;8435  gap: 12px;8436  margin-top: 4px;8437}84388439.peach-sync-info-pro-link {8440  background: none;8441  border: none;8442  font-size: 13px;8443  color: var(--peach-t3);8444  cursor: pointer;8445  padding: 0;8446  font-family: inherit;8447  text-align: center;8448  transition: color 150ms ease;8449}84508451.peach-sync-info-pro-link:hover {8452  color: var(--peach-accent);8453}84548455.peach-btn--full {8456  width: 100%;8457}84588459/* ── Sync screen ── */84608461.peach-sync-coming-soon {8462  display: flex;8463  align-items: flex-start;8464  gap: 10px;8465  padding: 12px 14px;8466  background: var(--peach-s1);8467  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8468  border-radius: 10px;8469}8470.peach-sync-coming-soon__icon {8471  flex-shrink: 0;8472  color: var(--peach-accent);8473  margin-top: 1px;8474  line-height: 0;8475}8476.peach-sync-coming-soon__title {8477  font-family: 'Cormorant Garamond', serif;8478  font-weight: 500;8479  font-size: 13px;8480  color: var(--peach-accent);8481  margin: 0 0 5px;8482  line-height: 1.3;8483}8484.peach-sync-coming-soon__body {8485  font-size: 12px;8486  color: var(--peach-t1);8487  line-height: 1.55;8488  margin: 0;8489}84908491.peach-sync-screen {8492  display: flex;8493  flex-direction: column;8494  height: 100%;8495}84968497.peach-sync-content {8498  flex: 1;8499  overflow-y: auto;8500  padding: 24px 20px 40px;8501  display: flex;8502  flex-direction: column;8503  gap: 24px;8504}85058506/* Intro (State A) */8507.peach-sync-headline {8508  font-family: 'Cormorant Garamond', serif;8509  font-style: italic;8510  font-size: 28px;8511  font-weight: 600;8512  color: var(--peach-t0);8513  margin: 0 0 10px;8514  line-height: 1.2;8515}85168517.peach-sync-intro-body {8518  font-size: 14px;8519  color: var(--peach-t1);8520  line-height: 1.6;8521  margin: 0;8522}85238524.peach-sync-pro-note {8525  display: flex;8526  flex-direction: column;8527  gap: 8px;8528  background: var(--peach-t3);8529  border-radius: 10px;8530  padding: 12px 14px;8531}85328533.peach-sync-pro-note-text {8534  font-size: 12px;8535  color: var(--peach-t2);8536  line-height: 1.5;8537  margin: 0;8538}85398540.peach-sync-pro-link {8541  background: none;8542  border: none;8543  font-size: 12px;8544  color: var(--peach-accent);8545  cursor: pointer;8546  padding: 0;8547  font-family: inherit;8548  text-align: left;8549}85508551/* Status (State C) */8552.peach-sync-status {8553  padding: 12px 0;8554  border-bottom: 1px solid var(--peach-border);8555}85568557.peach-sync-status-row {8558  display: flex;8559  align-items: center;8560  gap: 8px;8561}85628563.peach-sync-dot {8564  width: 7px;8565  height: 7px;8566  border-radius: 50%;8567  flex-shrink: 0;8568}85698570.peach-sync-dot--green { background: var(--peach-health-ok); }8571.peach-sync-dot--amber { background: var(--peach-accent); }85728573.peach-sync-status-text {8574  font-family: 'IBM Plex Mono', monospace;8575  font-size: 11px;8576  color: var(--peach-t2);8577}85788579/* Paired devices */8580.peach-sync-section {8581  display: flex;8582  flex-direction: column;8583  gap: 2px;8584}85858586.peach-sync-section-label {8587  font-family: 'IBM Plex Mono', monospace;8588  font-size: 10px;8589  letter-spacing: 0.1em;8590  color: var(--peach-t3);8591  margin: 0 0 10px;8592}85938594.peach-sync-device-row {8595  display: flex;8596  justify-content: space-between;8597  align-items: baseline;8598  padding: 10px 0;8599  border-bottom: 1px solid var(--peach-border);8600  gap: 12px;8601}86028603.peach-sync-device-name {8604  font-size: 14px;8605  color: var(--peach-t1);8606}86078608.peach-sync-device-meta {8609  font-family: 'IBM Plex Mono', monospace;8610  font-size: 11px;8611  color: var(--peach-t3);8612  white-space: nowrap;8613}86148615.peach-sync-hub-note {8616  padding: 14px 16px;8617  border: 1px solid var(--peach-border);8618  border-radius: 10px;8619  display: flex;8620  flex-direction: column;8621  gap: 6px;8622  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8623}86248625.peach-sync-hub-note-title {8626  font-size: 13px;8627  font-weight: 600;8628  color: var(--peach-t0);8629  margin: 0;8630}86318632.peach-sync-hub-note-body {8633  font-size: 12px;8634  color: var(--peach-t2);8635  line-height: 1.6;8636  margin: 0;8637}86388639/* Action buttons */8640.peach-sync-actions {8641  display: flex;8642  gap: 10px;8643  flex-wrap: wrap;8644}86458646/* Upgrade prompt (State B) */8647.peach-sync-upgrade {8648  display: flex;8649  flex-direction: column;8650  gap: 12px;8651  padding: 16px;8652  border: 1px solid var(--peach-border);8653  border-radius: 10px;8654}86558656.peach-sync-upgrade-text {8657  font-size: 13px;8658  color: var(--peach-t2);8659  line-height: 1.6;8660  margin: 0;8661}86628663/* Network note */8664.peach-sync-network-note {8665  font-size: 12px;8666  color: var(--peach-t3);8667  line-height: 1.6;8668  margin: 0;8669}86708671/* Advanced */8672.peach-sync-advanced {8673  margin-top: auto;8674  padding-top: 16px;8675  border-top: 1px solid var(--peach-border);8676}86778678.peach-sync-advanced-toggle {8679  display: flex;8680  align-items: center;8681  gap: 8px;8682  background: none;8683  border: none;8684  font-family: 'IBM Plex Mono', monospace;8685  font-size: 11px;8686  letter-spacing: 0.08em;8687  color: var(--peach-t3);8688  cursor: pointer;8689  padding: 0;8690  text-transform: uppercase;8691}86928693.peach-sync-advanced-chevron {8694  display: inline-block;8695  transition: transform 200ms ease;8696  font-size: 10px;8697}86988699.peach-sync-advanced-chevron.is-open {8700  transform: rotate(90deg);8701}87028703.peach-sync-advanced-content {8704  margin-top: 14px;8705}87068707.peach-sync-advanced-row {8708  display: flex;8709  justify-content: space-between;8710  align-items: center;8711  gap: 16px;8712}87138714.peach-sync-advanced-title {8715  font-size: 14px;8716  color: var(--peach-t1);8717  margin: 0 0 2px;8718}87198720.peach-sync-advanced-subtitle {8721  font-size: 12px;8722  color: var(--peach-t3);8723  margin: 0;8724  line-height: 1.5;8725}87268727/* ── Add Device — Android scan tabs ─────────────────────────────────────── */87288729.peach-pairing-tabs {8730  display: flex;8731  border: 1px solid var(--peach-border);8732  border-radius: 8px;8733  overflow: hidden;8734  margin-bottom: 4px;8735}87368737.peach-pairing-tab {8738  flex: 1;8739  padding: 10px 0;8740  background: none;8741  border: none;8742  font-family: 'IBM Plex Mono', monospace;8743  font-size: 11px;8744  letter-spacing: 0.06em;8745  color: var(--peach-t2);8746  cursor: pointer;8747  transition: background 150ms, color 150ms;8748}87498750.peach-pairing-tab.is-active {8751  background: var(--peach-accent);8752  color: #fff;8753  font-weight: 600;8754}87558756.peach-pairing-tab:not(.is-active):active {8757  background: var(--peach-border);8758}87598760/* Camera view */8761.peach-pairing-camera-container {8762  position: relative;8763  width: 100%;8764  aspect-ratio: 1;8765  border-radius: 12px;8766  overflow: hidden;8767  background: #000;8768  flex-shrink: 0;8769}87708771.peach-pairing-video {8772  width: 100%;8773  height: 100%;8774  object-fit: cover;8775}87768777.peach-pairing-scan-frame {8778  position: absolute;8779  top: 50%;8780  left: 50%;8781  transform: translate(-50%, -50%);8782  width: 60%;8783  aspect-ratio: 1;8784  border: 2px solid var(--peach-accent);8785  border-radius: 8px;8786  pointer-events: none;8787}87888789/* ── Notes Mode ── */87908791/* Overlay that crossfades over the vault */8792.peach-notes-overlay {8793  position: fixed;8794  inset: 0;8795  z-index: 90;8796  opacity: 0;8797  pointer-events: none;8798  animation: peach-mode-in 220ms ease-in forwards;8799}88008801.peach-notes-overlay.is-visible {8802  opacity: 1;8803  pointer-events: auto;8804}88058806@keyframes peach-mode-in {8807  from { opacity: 0; }8808  to   { opacity: 1; }8809}88108811/* Top-level notes surface */8812.peach-notes-mode {8813  position: absolute;8814  inset: 0;8815  background: var(--peach-bg);8816  display: flex;8817  flex-direction: column;8818}88198820/* Rune canvas positioned behind content */8821.peach-note-rune-canvas {8822  position: absolute;8823  inset: 0;8824  width: 100%;8825  height: 100%;8826  pointer-events: none;8827  z-index: 0;8828}88298830/* TOC wrapper */8831.peach-notes-toc-wrapper {8832  position: absolute;8833  inset: 0;8834  z-index: 1;8835  opacity: 1;8836  pointer-events: auto;8837  transition: opacity 200ms ease;8838}88398840.peach-notes-toc-wrapper.is-hidden {8841  opacity: 0;8842  pointer-events: none;8843}88448845/* Editor wrapper */8846.peach-notes-editor-wrapper {8847  position: absolute;8848  inset: 0;8849  z-index: 2;8850  opacity: 0;8851  pointer-events: none;8852  transition: opacity 200ms ease;8853}88548855.peach-notes-editor-wrapper.is-visible {8856  opacity: 1;8857  pointer-events: auto;8858}88598860/* TOC inner */8861.peach-notes-toc {8862  position: relative;8863  display: flex;8864  flex-direction: column;8865  height: 100%;8866  padding-top: env(safe-area-inset-top, 0px);8867  padding-bottom: env(safe-area-inset-bottom, 0px);8868}88698870/* Shared header */8871.peach-notes-header {8872  display: flex;8873  align-items: center;8874  padding: 12px 16px;8875  gap: 12px;8876  flex-shrink: 0;8877  min-height: 52px;8878  position: relative;8879  z-index: 2;8880}88818882.peach-notes-back {8883  font-size: 22px;8884  color: var(--peach-t2);8885  background: none;8886  border: none;8887  padding: 4px;8888  cursor: pointer;8889  line-height: 1;8890  flex-shrink: 0;8891  transition: color 150ms ease;8892  -webkit-tap-highlight-color: transparent;8893}88948895.peach-notes-back:active { color: var(--peach-t0); }88968897.peach-notes-header-title {8898  flex: 1;8899  font-family: 'Cormorant Garamond', serif;8900  font-style: italic;8901  font-size: 22px;8902  color: var(--peach-t0);8903  text-align: center;8904}89058906.peach-notes-header-title.is-breadcrumb {8907  font-family: 'IBM Plex Mono', monospace;8908  font-style: normal;8909  font-size: 11px;8910  color: var(--peach-t3);8911  letter-spacing: 0.08em;8912  text-transform: uppercase;8913  cursor: pointer;8914}89158916.peach-notes-header-actions {8917  display: flex;8918  gap: 8px;8919  flex-shrink: 0;8920}89218922.peach-notes-header-btn {8923  width: 36px;8924  height: 36px;8925  display: flex;8926  align-items: center;8927  justify-content: center;8928  background: none;8929  border: none;8930  color: var(--peach-t2);8931  cursor: pointer;8932  border-radius: 8px;8933  font-size: 16px;8934  transition: color 150ms ease, background 150ms ease;8935  -webkit-tap-highlight-color: transparent;8936}89378938.peach-notes-header-btn:active {8939  background: rgba(255,255,255,0.06);8940  color: var(--peach-t0);8941}89428943/* Inline search bar */8944.peach-notes-search-input {8945  flex: 1;8946  background: none;8947  border: none;8948  outline: none;8949  font-family: 'IBM Plex Mono', monospace;8950  font-size: 13px;8951  color: var(--peach-t0);8952  padding: 4px 0;8953  letter-spacing: 0.02em;8954}89558956.peach-notes-search-input::placeholder {8957  color: var(--peach-t3);8958}89598960/* TOC list */8961.peach-notes-list-container {8962  flex: 1;8963  overflow-y: auto;8964  overflow-x: hidden;8965  scrollbar-width: none;8966  -webkit-overflow-scrolling: touch;8967  overscroll-behavior: contain;8968  position: relative;8969  z-index: 1;8970}89718972.peach-notes-list-container::-webkit-scrollbar { display: none; }89738974/* Note row */8975.peach-note-row {8976  position: relative;8977  display: grid;8978  grid-template-columns: 44px 8px 1fr 8px auto;8979  align-items: center;8980  min-height: 72px;8981  padding: 16px 20px;8982  border-bottom: 0.5px solid var(--peach-border);8983  cursor: pointer;8984  overflow: hidden;8985  touch-action: pan-y;8986  user-select: none;8987  -webkit-user-select: none;8988  -webkit-tap-highlight-color: transparent;8989}89908991.peach-note-row:first-child {8992  border-top: 0.5px solid var(--peach-border);8993}89948995.peach-note-row:active {8996  background: rgba(255,255,255,0.02);8997}89988999.peach-note-numeral {9000  font-family: 'Cormorant Garamond', serif;9001  font-style: italic;9002  font-size: 15px;9003  color: var(--peach-accent);9004  text-align: right;9005  line-height: 1;9006  flex-shrink: 0;9007}90089009.peach-note-title-gap { /* grid spacer */ }90109011.peach-note-title {9012  font-family: 'Cormorant Garamond', serif;9013  font-style: italic;9014  font-size: 18px;9015  color: var(--peach-t0);9016  line-height: 1.3;9017  min-width: 0;9018  overflow-wrap: break-word;9019}90209021.peach-note-title-match {9022  color: var(--peach-accent);9023}90249025.peach-note-date {9026  font-family: 'IBM Plex Mono', monospace;9027  font-size: 11px;9028  color: var(--peach-t2);9029  white-space: nowrap;9030  text-align: right;9031  flex-shrink: 0;9032  grid-column: 5;9033}90349035/* Swipe underlays */9036.peach-note-row-underlay {9037  position: absolute;9038  inset: 0;9039  display: flex;9040  align-items: center;9041  padding: 0 24px;9042  font-family: 'IBM Plex Mono', monospace;9043  font-size: 11px;9044  letter-spacing: 0.1em;9045  pointer-events: none;9046  z-index: 0;9047}90489049.peach-note-row-underlay--delete {9050  background: #8B2020;9051  color: rgba(255,255,255,0.9);9052  justify-content: flex-end;9053}90549055.peach-note-row-underlay--archive {9056  background: var(--peach-accent);9057  color: #0C0A06;9058  justify-content: flex-start;9059}90609061/* Delete confirm strip */9062.peach-note-delete-confirm {9063  position: absolute;9064  inset: 0;9065  background: var(--peach-bg);9066  display: flex;9067  align-items: center;9068  gap: 12px;9069  padding: 0 20px;9070  font-family: 'IBM Plex Mono', monospace;9071  font-size: 11px;9072  color: var(--peach-t1);9073  letter-spacing: 0.04em;9074  animation: peach-delete-confirm-in 150ms ease both;9075  z-index: 10;9076}90779078@keyframes peach-delete-confirm-in {9079  from { opacity: 0; }9080  to   { opacity: 1; }9081}90829083.peach-note-delete-confirm-btn {9084  background: #8B2020;9085  color: rgba(255,255,255,0.9);9086  border: none;9087  border-radius: 6px;9088  padding: 4px 10px;9089  font-family: 'IBM Plex Mono', monospace;9090  font-size: 10px;9091  cursor: pointer;9092  letter-spacing: 0.06em;9093}90949095.peach-note-delete-cancel-btn {9096  background: none;9097  border: none;9098  color: var(--peach-t3);9099  font-family: 'IBM Plex Mono', monospace;9100  font-size: 10px;9101  cursor: pointer;9102  letter-spacing: 0.06em;9103  padding: 4px 6px;9104}91059106/* + New note button */9107.peach-notes-new-btn {9108  font-family: 'IBM Plex Mono', monospace;9109  font-size: 12px;9110  color: var(--peach-t3);9111  text-align: center;9112  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));9113  background: none;9114  border: none;9115  width: 100%;9116  cursor: pointer;9117  letter-spacing: 0.04em;9118  transition: color 150ms ease;9119  -webkit-tap-highlight-color: transparent;9120}91219122.peach-notes-new-btn:active { color: var(--peach-accent); }91239124/* Empty state */9125.peach-notes-empty {9126  display: flex;9127  flex-direction: column;9128  align-items: center;9129  justify-content: center;9130  flex: 1;9131  padding: 48px 32px;9132  gap: 16px;9133}91349135.peach-notes-empty-text {9136  font-family: 'Cormorant Garamond', serif;9137  font-style: italic;9138  font-size: 20px;9139  color: var(--peach-t3);9140  text-align: center;9141  margin: 0;9142  line-height: 1.4;9143  white-space: pre-line;9144}91459146/* ── Editor surface ── */91479148.peach-note-editor-surface {9149  position: absolute;9150  inset: 0;9151  background: var(--peach-bg);9152  display: flex;9153  flex-direction: column;9154  padding-top: env(safe-area-inset-top, 0px);9155}91569157.peach-note-editor-scroll {9158  flex: 1;9159  overflow-y: auto;9160  overflow-x: hidden;9161  scrollbar-width: none;9162  -webkit-overflow-scrolling: touch;9163  padding: 0 24px 120px;9164  position: relative;9165  z-index: 1;9166}91679168.peach-note-editor-scroll::-webkit-scrollbar { display: none; }91699170/* Desktop toolbar (always visible above body) */9171.peach-note-toolbar-desktop-inline {9172  display: flex;9173  align-items: center;9174  gap: 2px;9175  padding: 6px 0 12px;9176  margin-bottom: 4px;9177  border-bottom: 0.5px solid var(--peach-border);9178}91799180/* Title field */9181.peach-note-title-field {9182  font-family: 'Cormorant Garamond', serif;9183  font-style: italic;9184  font-size: 32px;9185  font-weight: 600;9186  color: var(--peach-t0);9187  line-height: 1.2;9188  padding: 8px 0 0;9189  outline: none;9190  min-height: 44px;9191  word-break: break-word;9192  position: relative;9193  z-index: 1;9194}91959196.peach-note-title-field:empty::before {9197  content: attr(data-placeholder);9198  color: var(--peach-t3);9199  pointer-events: none;9200}92019202/* Hairline separator */9203.peach-note-hairline {9204  height: 0.5px;9205  background: var(--peach-border);9206  margin: 12px 0 20px;9207  position: relative;9208  z-index: 1;9209}92109211/* Body field */9212.peach-note-body-field {9213  font-family: 'DM Sans', sans-serif;9214  font-size: 16px;9215  color: var(--peach-t0);9216  line-height: 1.85;9217  padding: 0;9218  outline: none;9219  min-height: 240px;9220  word-break: break-word;9221  position: relative;9222  z-index: 1;9223}92249225.peach-note-body-field:empty::before {9226  content: attr(data-placeholder);9227  color: var(--peach-t3);9228  font-style: italic;9229  pointer-events: none;9230}92319232.peach-note-body-field h2 {9233  font-family: 'Cormorant Garamond', serif;9234  font-style: italic;9235  font-size: 22px;9236  font-weight: 600;9237  color: var(--peach-t0);9238  margin: 20px 0 8px;9239}92409241.peach-note-body-field blockquote {9242  border-left: 2px solid var(--peach-accent);9243  margin: 12px 0;9244  padding-left: 16px;9245  color: var(--peach-t1);9246  font-style: italic;9247}92489249.peach-note-body-field ul,9250.peach-note-body-field ol {9251  padding-left: 20px;9252  margin: 8px 0;9253}92549255.peach-note-body-field li {9256  margin: 4px 0;9257}92589259.peach-note-body-field hr {9260  border: none;9261  border-top: 0.5px solid var(--peach-border);9262  margin: 16px 0;9263}92649265/* Saved indicator */9266.peach-note-saved-indicator {9267  font-family: 'IBM Plex Mono', monospace;9268  font-size: 11px;9269  color: var(--peach-t3);9270  letter-spacing: 0.04em;9271  text-align: right;9272  padding: 6px 24px;9273  flex-shrink: 0;9274  transition: opacity 300ms ease;9275  pointer-events: none;9276  position: relative;9277  z-index: 1;9278}92799280/* Mobile keyboard toolbar */9281.peach-note-toolbar-mobile {9282  display: flex;9283  align-items: center;9284  padding: 8px 16px;9285  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));9286  background: var(--peach-bg);9287  border-top: 0.5px solid var(--peach-border);9288  gap: 4px;9289  flex-shrink: 0;9290  position: relative;9291  z-index: 10;9292}92939294.peach-note-toolbar-btn {9295  min-width: 36px;9296  height: 36px;9297  display: flex;9298  align-items: center;9299  justify-content: center;9300  background: none;9301  border: none;9302  border-radius: 8px;9303  cursor: pointer;9304  font-size: 14px;9305  color: var(--peach-t1);9306  font-family: 'DM Sans', sans-serif;9307  font-weight: 600;9308  transition: background 100ms ease, color 100ms ease;9309  -webkit-tap-highlight-color: transparent;9310}93119312.peach-note-toolbar-btn--italic { font-style: italic; }9313.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }9314.peach-note-toolbar-btn:active { background: rgba(255,255,255,0.08); }93159316.peach-note-toolbar-divider {9317  width: 0.5px;9318  height: 20px;9319  background: var(--peach-border);9320  margin: 0 4px;9321  flex-shrink: 0;9322}93239324.peach-note-toolbar-spacer { flex: 1; }93259326/* Desktop: larger headline in TOC */9327@media (min-width: 400px) {9328  .peach-notes-header-title:not(.is-breadcrumb) {9329    font-size: 32px;9330  }93319332  .peach-note-row {9333    min-height: 64px;9334    padding: 14px 16px;9335  }9336}93379338/* Flying title — shared element during expansion/collapse */93399340/* ─── Light theme overrides ───────────────────────────────────────────────9341   Tokens that cannot be expressed as variable substitutions — hardcoded9342   context-specific values that need separate light-mode rules. */93439344/* Settings section headers: use text-label (#79766F) per restoration brief —9345   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9346   presence without fighting the light parchment background. */9347.light .peach-settings-sub-label,9348[data-theme="light"] .peach-settings-sub-label,9349.light .peach-settings-nav-label,9350[data-theme="light"] .peach-settings-nav-label {9351  color: #79766F;9352}93539354/* Secondary action buttons (ghost / subtle): filled with input-well surface9355   so they read as recessed against the parchment card background. */9356.light .peach-btn--ghost:not(.peach-icon-btn),9357[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9358  background: #EEE7DD;9359  border-color: #DDD5CB;9360  color: #1A1208;9361}9362.light .peach-icon-btn,9363[data-theme="light"] .peach-icon-btn {9364  background: transparent;9365  border-color: transparent;9366}9367.light .peach-btn--subtle,9368[data-theme="light"] .peach-btn--subtle {9369  background: #EEE7DD;9370  border-color: #DDD5CB;9371}93729373/* Wide secondary action button on the lock screen — override the9374   hardcoded dark-mode rgba values with warm parchment equivalents. */9375.light .peach-lock-secondary,9376[data-theme="light"] .peach-lock-secondary {9377  background: #EEE7DD;9378  border-color: #DDD5CB;9379  color: #1A1208;9380}9381.light .peach-lock-secondary:hover,9382[data-theme="light"] .peach-lock-secondary:hover {9383  background: #F0E9DF;9384}93859386/* Entry row hover: bg-row lifts the row above the card surface. */9387.light .peach-entry-row:hover,9388[data-theme="light"] .peach-entry-row:hover {9389  background: #F2EBE1;9390}9391.light .peach-entry-row.is-active,9392[data-theme="light"] .peach-entry-row.is-active {9393  background: #F2EBE1;9394}9395.light .peach-entry-row.is-selected,9396[data-theme="light"] .peach-entry-row.is-selected {9397  background: #F5EDE2;9398}93999400/* ──────────────────────────────────────────────────────────────────────────9401   Pair-device flow — bird-stage animation (Phase 1)9402   See src/popup/components/PairingBirds.tsx and the brief §6.2.9403   Three-act animation gated on the [data-phase] attribute of9404   .peach-pair-pair; child layers (birds, sound arcs, flight wave, dot)9405   each react via either pose class or visibility flag.9406   Tokens: accent surfaces use var(--peach-accent); bird illustration9407   colours are baked into the SVG per the brand-peach exception in §3.1.9408   ────────────────────────────────────────────────────────────────────── */94099410.peach-pair-pair {9411  position: absolute;9412  inset: 0;9413  z-index: 3;9414  display: flex;9415  flex-direction: column;9416  padding: 14px 12px 12px;9417  width: 100%;9418  box-sizing: border-box;9419  gap: 0;9420  background:9421    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9422    var(--peach-bg);9423  color: var(--peach-t0);9424  overflow-y: auto;9425  overflow-x: hidden;9426  scrollbar-width: none;9427  isolation: isolate;9428  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9429}9430@keyframes peach-pair-overlay-in {9431  from { opacity: 0; transform: translateY(8px); }9432  to   { opacity: 1; transform: translateY(0); }9433}9434.peach-pair-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9435.peach-pair-pair::before {9436  content: '';9437  position: absolute;9438  inset: 0;9439  border-radius: inherit;9440  pointer-events: none;9441  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9442  z-index: 0;9443}9444.peach-pair-pair > * { position: relative; z-index: 1; }94459446/* Header --------------------------------------------------------------- */9447.peach-pair-head {9448  display: flex; align-items: center; gap: 10px;9449}9450.peach-pair-back {9451  width: 32px; height: 32px;9452  display: inline-flex; align-items: center; justify-content: center;9453  background: transparent;9454  border: none;9455  border-radius: 8px;9456  color: var(--peach-t1);9457  cursor: pointer;9458  transition: color 0.15s ease, box-shadow 0.15s ease;9459}9460.peach-pair-back:hover {9461  color: var(--peach-accent);9462  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9463}9464.peach-pair-title {9465  font-family: var(--font-display, Georgia, serif);9466  font-style: italic;9467  font-size: 24px;9468  font-weight: 500;9469  letter-spacing: 0.005em;9470  color: var(--peach-t0);9471  line-height: 1;9472}9473.peach-pair-head-spacer { flex: 1; }94749475/* Chip row ------------------------------------------------------------- */9476.peach-pair-chip-row {9477  display: flex;9478  align-items: center;9479  justify-content: flex-start;9480  margin-top: 12px;9481}9482.peach-pair-chip {9483  display: inline-flex; align-items: center; gap: 8px;9484  padding: 5px 10px 5px 8px;9485  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9486  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9487  border-radius: 999px;9488  font-family: var(--peach-mono, ui-monospace, monospace);9489  font-size: 11px;9490  letter-spacing: 0.04em;9491  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9492}9493.peach-pair-chip-dot {9494  width: 6px; height: 6px; border-radius: 50%;9495  background: var(--peach-accent);9496  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9497}9498.peach-pair-chip[data-phase="paired"] {9499  background: color-mix(in srgb, #4f9eda 12%, transparent);9500  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9501  color: #76b6e8;9502}9503.peach-pair-chip[data-phase="paired"] .peach-pair-chip-dot {9504  background: #76b6e8;9505  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9506}9507.peach-pair-chip[data-phase="timeout"],9508.peach-pair-chip[data-phase="mic_denied"],9509.peach-pair-chip[data-phase="version_mismatch"],9510.peach-pair-chip[data-phase="handshake_failed"] {9511  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9512  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9513  color: var(--peach-warn, #d29257);9514}9515.peach-pair-chip[data-phase="timeout"] .peach-pair-chip-dot,9516.peach-pair-chip[data-phase="mic_denied"] .peach-pair-chip-dot,9517.peach-pair-chip[data-phase="version_mismatch"] .peach-pair-chip-dot,9518.peach-pair-chip[data-phase="handshake_failed"] .peach-pair-chip-dot {9519  background: var(--peach-warn, #d29257);9520  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9521}95229523/* Bird stage ----------------------------------------------------------- */9524.peach-pair-stage {9525  position: relative;9526  margin: 14px 0 8px;9527  height: 180px;9528  border-radius: 12px;9529  background:9530    radial-gradient(ellipse 70% 60% at 50% 30%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9531    radial-gradient(ellipse 90% 100% at 50% 100%, color-mix(in srgb, #d8748a 14%, transparent), transparent 70%),9532    color-mix(in srgb, var(--peach-bg) 92%, #000);9533  border: 1px solid color-mix(in srgb, var(--peach-t0) 8%, transparent);9534  overflow: hidden;9535  isolation: isolate;9536}9537.peach-pair-stage::after {9538  content: '';9539  position: absolute;9540  left: 12%; right: 12%;9541  bottom: 36px;9542  height: 1px;9543  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 14%, transparent), transparent);9544}95459546.peach-pair-bird-slot {9547  position: absolute;9548  bottom: 8px;9549  width: 100px;9550  height: 110px;9551  display: flex;9552  align-items: flex-end;9553  justify-content: center;9554}9555.peach-pair-bird-slot-desktop { left: 28px; }9556.peach-pair-bird-slot-mobile { right: 28px; }95579558/* Mobile bird hops in from the right when handshake begins */9559.peach-pair-bird-slot-mobile {9560  opacity: 1;9561  transform: translateX(-6px);9562  transition: opacity 0.4s ease, transform 0.65s cubic-bezier(.5, 1.7, .4, 1);9563}9564.peach-pair-stage.act-listening .peach-pair-bird-slot-mobile,9565.peach-pair-stage.act-chirping .peach-pair-bird-slot-mobile,9566.peach-pair-stage.act-idle .peach-pair-bird-slot-mobile {9567  opacity: 0;9568  transform: translateX(60px) rotate(8deg);9569}9570.peach-pair-stage.act-handshake .peach-pair-bird-slot-desktop,9571.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop {9572  transform: translateX(6px);9573  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9574}95759576/* Paired: both birds bob together */9577.peach-pair-stage.act-paired .peach-pair-bird-slot {9578  animation: peach-pair-happy-bob 1.2s ease-in-out infinite;9579}9580.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { animation-delay: 0.2s; }9581.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop { --bb-x: 6px; }9582.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { --bb-x: -6px; }9583@keyframes peach-pair-happy-bob {9584  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9585  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9586}95879588/* Bird internal -------------------------------------------------------- */9589.peach-pair-bird {9590  width: 108px;9591  height: 108px;9592  transform-origin: 50% 95%;9593}9594.peach-pair-bird svg { width: 100%; height: 100%; overflow: visible; }95959596.peach-pair-bird-body {9597  transform-origin: 50% 80%;9598  animation: peach-pair-bird-bob 2.4s ease-in-out infinite;9599}9600@keyframes peach-pair-bird-bob {9601  0%, 100% { transform: translateY(0) scale(1, 1); }9602  50%      { transform: translateY(-1.5px) scale(1.01, 0.99); }9603}96049605.peach-pair-bird-eye-group {9606  animation: peach-pair-blink 5.2s steps(1, end) infinite;9607  transform-origin: center;9608  transform-box: fill-box;9609}9610@keyframes peach-pair-blink {9611  0%, 92%, 96%, 100% { transform: scaleY(1); }9612  94%                { transform: scaleY(0.05); }9613}96149615/* Pose: chirping — beak opens, head bobs, aura blooms */9616.peach-pair-bird-pose-chirping .peach-pair-bird-body {9617  animation:9618    peach-pair-bird-bob 2.4s ease-in-out infinite,9619    peach-pair-squeeze 1.7s ease-in-out infinite;9620}9621@keyframes peach-pair-squeeze {9622  0%, 70%, 100% { transform-origin: 50% 85%; }9623  78%           { transform: scale(1.04, 0.96) translateY(1px); }9624  86%           { transform: scale(0.98, 1.02); }9625}9626.peach-pair-bird-pose-chirping .peach-pair-bird-head-group {9627  animation: peach-pair-head-bob 1.7s ease-in-out infinite;9628}9629@keyframes peach-pair-head-bob {9630  0%, 70%, 100% { transform: translateY(0) rotate(0); }9631  78%           { transform: translateY(-3px) rotate(-4deg); }9632  86%           { transform: translateY(-1px) rotate(-2deg); }9633}9634.peach-pair-bird-pose-chirping .peach-pair-bird-beak {9635  animation: peach-pair-beak-open 1.7s ease-in-out infinite;9636}9637@keyframes peach-pair-beak-open {9638  0%, 70%, 100% { transform: rotate(0) scaleX(1); }9639  78%           { transform: rotate(-14deg) scaleX(1.05) translateY(-1px); }9640  86%           { transform: rotate(-6deg); }9641}9642.peach-pair-bird-pose-chirping .peach-pair-bird-aura {9643  animation: peach-pair-aura 1.7s ease-in-out infinite;9644}9645@keyframes peach-pair-aura {9646  0%, 100% { opacity: 0; }9647  50%      { opacity: 0.8; }9648}9649.peach-pair-bird-pose-chirping .peach-pair-bird-tail {9650  animation: peach-pair-tail-twitch 1.7s ease-in-out infinite;9651  transform-origin: 100% 50%;9652}9653@keyframes peach-pair-tail-twitch {9654  0%, 75%, 100% { transform: rotate(0); }9655  82%           { transform: rotate(-3deg) translateX(-1px); }9656}96579658/* Pose: attentive — head tilts toward partner */9659.peach-pair-bird-pose-attentive .peach-pair-bird-head-group {9660  animation: peach-pair-head-tilt 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9661}9662@keyframes peach-pair-head-tilt {9663  0%   { transform: rotate(0) translateY(0); }9664  60%  { transform: rotate(-10deg) translateY(-1px) translateX(2px); }9665  100% { transform: rotate(-6deg); }9666}9667.peach-pair-bird-pose-attentive .peach-pair-bird-tail {9668  animation: peach-pair-tail-cock 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9669  transform-origin: 100% 50%;9670}9671@keyframes peach-pair-tail-cock {9672  0%   { transform: rotate(0); }9673  100% { transform: rotate(-4deg); }9674}96759676/* Pose: happy — wing flutter, tuft perk, tail wag */9677.peach-pair-bird-pose-happy .peach-pair-bird-wing {9678  transform-origin: 80% 60%;9679  animation: peach-pair-wing-flutter 0.32s ease-in-out 5;9680}9681@keyframes peach-pair-wing-flutter {9682  0%, 100% { transform: rotate(0) translateY(0); }9683  50%      { transform: rotate(-16deg) translateY(-2px); }9684}9685.peach-pair-bird-pose-happy .peach-pair-bird-tuft {9686  transform-origin: 0% 100%;9687  animation: peach-pair-tuft-perk 0.4s ease-in-out 3;9688}9689@keyframes peach-pair-tuft-perk {9690  0%, 100% { transform: rotate(0); }9691  50%      { transform: rotate(-15deg) translateY(-1px); }9692}9693.peach-pair-bird-pose-happy .peach-pair-bird-tail {9694  transform-origin: 100% 50%;9695  animation: peach-pair-tail-wag 0.5s ease-in-out 4;9696}9697@keyframes peach-pair-tail-wag {9698  0%, 100% { transform: rotate(0); }9699  25%      { transform: rotate(6deg); }9700  75%      { transform: rotate(-6deg); }9701}9702.peach-pair-bird-pose-happy .peach-pair-bird-head-group {9703  animation: peach-pair-head-perk 0.5s ease-out;9704}9705@keyframes peach-pair-head-perk {9706  0%   { transform: translateY(0); }9707  40%  { transform: translateY(-3px) rotate(2deg); }9708  100% { transform: translateY(0); }9709}97109711/* Pose: sad — body droops forward */9712.peach-pair-bird-pose-sad .peach-pair-bird-body {9713  transform: translateY(5px) rotate(-2deg);9714  animation: none;9715}9716.peach-pair-bird-pose-sad .peach-pair-bird-head-group {9717  transform: translateY(4px) rotate(8deg);9718}9719.peach-pair-bird-pose-sad .peach-pair-bird-tuft { transform: rotate(15deg) translateY(2px); }9720.peach-pair-bird-pose-sad .peach-pair-bird-tail { transform: rotate(8deg) translateY(2px); }97219722.peach-pair-bird-pose-hidden { opacity: 0; }97239724/* Sound arcs ----------------------------------------------------------- */9725.peach-pair-arcs {9726  position: absolute;9727  top: 18px;9728  width: 96px;9729  height: 70px;9730  pointer-events: none;9731}9732.peach-pair-arcs-right { right: -60px; }9733.peach-pair-arcs-left  { left: -60px; transform: scaleX(-1); }9734.peach-pair-arc {9735  position: absolute;9736  top: 50%;9737  left: 0;9738  width: 40px;9739  height: 40px;9740  margin-top: -20px;9741  border: 1.2px solid #f4d5a8;9742  border-color: transparent #f4d5a8 transparent transparent;9743  border-radius: 50%;9744  opacity: 0;9745  animation: peach-pair-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9746}9747@keyframes peach-pair-arc-expand {9748  0%   { transform: scale(0.4); opacity: 0; }9749  20%  { opacity: 0.9; }9750  100% { transform: scale(1.6); opacity: 0; }9751}97529753/* Flight wave ---------------------------------------------------------- */9754.peach-pair-flight-track {9755  position: absolute;9756  inset: 32px 36px 38px 36px;9757  pointer-events: none;9758}9759.peach-pair-flight-wave {9760  position: absolute;9761  top: 8px;9762  left: 76px;9763  right: 76px;9764  height: 60px;9765  width: auto;9766  opacity: 0;9767  transition: opacity 0.15s ease;9768  stroke: #f4d5a8;9769  fill: none;9770}9771.peach-pair-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9772.peach-pair-flight-wave.is-visible { opacity: 1; }9773.peach-pair-flight-path,9774.peach-pair-flight-path-2 {9775  stroke-dasharray: 240;9776  stroke-dashoffset: 240;9777  stroke-linecap: round;9778  fill: none;9779}9780.peach-pair-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9781.peach-pair-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9782.peach-pair-flight-wave.is-visible .peach-pair-flight-path {9783  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9784}9785.peach-pair-flight-wave.is-visible .peach-pair-flight-path-2 {9786  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9787}9788@keyframes peach-pair-fly {9789  0%   { stroke-dashoffset: 240; opacity: 0; }9790  20%  { opacity: 1; }9791  100% { stroke-dashoffset: -120; opacity: 0; }9792}97939794/* Connection dot ------------------------------------------------------- */9795.peach-pair-dot {9796  position: absolute;9797  top: 50%; left: 50%;9798  transform: translate(-50%, -50%);9799  width: 40px; height: 40px;9800  opacity: 0;9801  pointer-events: none;9802  transition: opacity 0.3s ease;9803  color: var(--peach-accent);9804}9805.peach-pair-dot.is-visible { opacity: 1; }9806.peach-pair-dot-glow {9807  position: absolute; top: 50%; left: 50%;9808  transform: translate(-50%, -50%);9809  width: 38px; height: 38px;9810  border-radius: 50%;9811  filter: blur(10px);9812  opacity: 0.55;9813  background: var(--peach-accent);9814  animation: peach-pair-dot-bloom 1.4s ease-out;9815}9816.peach-pair-dot-core {9817  position: absolute; top: 50%; left: 50%;9818  transform: translate(-50%, -50%);9819  width: 8px; height: 8px;9820  border-radius: 50%;9821  background: var(--peach-accent);9822  box-shadow: 0 0 12px currentColor;9823  animation: peach-pair-dot-core 1.4s ease-out;9824}9825.peach-pair-dot-ring {9826  position: absolute; top: 50%; left: 50%;9827  width: 60px; height: 60px;9828  transform: translate(-50%, -50%);9829  animation: peach-pair-dot-ring 1.4s linear;9830  stroke: var(--peach-accent);9831}9832@keyframes peach-pair-dot-bloom {9833  0%   { width: 4px; height: 4px; opacity: 0; }9834  35%  { width: 60px; height: 60px; opacity: 0.7; }9835  100% { width: 38px; height: 38px; opacity: 0.55; }9836}9837@keyframes peach-pair-dot-core {9838  0%   { width: 0; height: 0; }9839  35%  { width: 12px; height: 12px; }9840  100% { width: 8px; height: 8px; }9841}9842@keyframes peach-pair-dot-ring {9843  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }9844  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }9845  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }9846}98479848/* Motes — drift upward across the stage */9849.peach-pair-motes {9850  position: absolute;9851  inset: 0;9852  pointer-events: none;9853}9854.peach-pair-mote {9855  position: absolute;9856  width: 2px; height: 2px;9857  background: color-mix(in srgb, var(--peach-text) 35%, transparent);9858  border-radius: 50%;9859  bottom: 32px;9860  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);9861  opacity: 0;9862  animation: peach-pair-mote-drift 6s linear infinite;9863  animation-delay: calc(var(--mote-i, 0) * 0.7s);9864}9865@keyframes peach-pair-mote-drift {9866  0%   { transform: translateY(0); opacity: 0; }9867  10%  { opacity: 0.6; }9868  90%  { opacity: 0.1; }9869  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }9870}98719872/* Status copy ---------------------------------------------------------- */9873.peach-pair-copy-host {9874  margin: 4px 4px 10px;9875  text-align: center;9876  min-height: 50px;9877}9878.peach-pair-copy {9879  animation: peach-pair-copy-in 0.35s ease both;9880}9881@keyframes peach-pair-copy-in {9882  from { opacity: 0; transform: translateY(4px); }9883  to   { opacity: 1; transform: translateY(0); }9884}9885.peach-pair-headline {9886  font-family: var(--font-display, Georgia, serif);9887  font-style: italic;9888  font-size: 20px;9889  font-weight: 500;9890  line-height: 1.2;9891  letter-spacing: 0.005em;9892  color: var(--peach-t0);9893  margin-bottom: 6px;9894}9895.peach-pair-copy-listening .peach-pair-headline,9896.peach-pair-copy-chirping .peach-pair-headline,9897.peach-pair-copy-idle .peach-pair-headline {9898  font-family: inherit;9899  font-style: normal;9900  font-weight: 500;9901  font-size: 15px;9902  color: var(--peach-t0);9903  letter-spacing: 0;9904}9905.peach-pair-copy-paired .peach-pair-headline {9906  color: var(--peach-t0);9907  font-weight: 600;9908}9909.peach-pair-sub {9910  font-size: 12.5px;9911  line-height: 1.45;9912  color: var(--peach-t1);9913  max-width: 280px;9914  margin: 0 auto;9915  text-wrap: pretty;9916}99179918/* Status action -------------------------------------------------------- */9919.peach-pair-action {9920  margin: 2px 4px 10px;9921  margin-top: auto;9922  display: flex;9923  flex-direction: column;9924  gap: 8px;9925}9926.peach-pair-action-waiting {9927  display: flex;9928  align-items: center;9929  justify-content: space-between;9930  gap: 12px;9931}9932.peach-pair-cancel {9933  min-width: 96px;9934}9935.peach-pair-listening {9936  display: inline-flex; align-items: center; gap: 4px;9937  font-family: var(--peach-mono, ui-monospace, monospace);9938  font-size: 9.5px;9939  text-transform: uppercase;9940  letter-spacing: 0.12em;9941  color: var(--peach-t1);9942  padding: 8px 10px;9943}9944.peach-pair-listen-dot {9945  width: 4px; height: 4px;9946  border-radius: 50%;9947  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);9948  animation: peach-pair-listen-pulse 1.2s ease-in-out infinite;9949}9950.peach-pair-listen-dot:nth-child(2) { animation-delay: 0.2s; }9951.peach-pair-listen-dot:nth-child(3) { animation-delay: 0.4s; }9952.peach-pair-listen-label { margin-left: 6px; }9953@keyframes peach-pair-listen-pulse {9954  0%, 100% { opacity: 0.25; transform: scale(0.9); }9955  50%      { opacity: 1;     transform: scale(1.15); }9956}99579958.peach-pair-action-handshake {9959  display: flex;9960  flex-direction: column;9961  align-items: center;9962  gap: 8px;9963  padding: 8px 4px;9964}9965.peach-pair-meter {9966  width: 100%;9967  max-width: 280px;9968  height: 2px;9969  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);9970  border-radius: 2px;9971  position: relative;9972  overflow: hidden;9973}9974.peach-pair-meter-bar {9975  position: absolute;9976  top: 0; bottom: 0;9977  width: 30%;9978  left: -30%;9979  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);9980  animation: peach-pair-meter-sweep 1.4s ease-in-out infinite;9981}9982@keyframes peach-pair-meter-sweep {9983  0%   { left: -30%; }9984  100% { left: 100%; }9985}9986.peach-pair-meter-label {9987  font-family: var(--peach-mono, ui-monospace, monospace);9988  font-size: 9.5px;9989  text-transform: uppercase;9990  letter-spacing: 0.14em;9991  color: var(--peach-t1);9992}99939994.peach-pair-action-paired {9995  display: flex;9996  align-items: center;9997  gap: 10px;9998}9999.peach-pair-device-confirm {10000  flex: 1;10001  display: inline-flex;10002  align-items: center;10003  gap: 8px;10004  padding: 9px 10px 9px 12px;10005  border-radius: 10px;10006  background: color-mix(in srgb, #76b6e8 12%, transparent);10007  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);10008  font-size: 12.5px;10009  color: var(--peach-t0);10010  min-width: 0;10011}10012.peach-pair-device-confirm-glyph {10013  display: inline-flex;10014  color: #76b6e8;10015}10016.peach-pair-device-confirm-name {10017  flex: 1;10018  overflow: hidden;10019  text-overflow: ellipsis;10020  white-space: nowrap;10021}10022.peach-pair-device-confirm-trust {10023  font-family: var(--peach-mono, ui-monospace, monospace);10024  font-size: 9.5px;10025  text-transform: uppercase;10026  letter-spacing: 0.1em;10027  color: #76b6e8;10028  padding: 2px 6px;10029  border-radius: 4px;10030  background: color-mix(in srgb, #76b6e8 14%, transparent);10031}10032.peach-pair-done {10033  min-width: 80px;10034}10035.peach-pair-retry {10036  align-self: center;10037  display: block;10038  margin: 6px auto 0;10039  min-width: 120px;10040}10041.peach-pair-mic-help {10042  font-size: 12px;10043  color: var(--peach-t1);10044  text-align: center;10045  max-width: 320px;10046  margin: 0 auto;10047}1004810049/* Rest state — bird stage at idle pose, primary CTA + paired list */10050.peach-pair-pair[data-phase="idle"] .peach-pair-stage {10051  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */10052  height: 160px;10053}10054.peach-pair-pair-start {10055  width: 100%;10056  display: inline-flex;10057  align-items: center;10058  justify-content: center;10059  gap: 8px;10060  padding: 11px 14px;10061  border-radius: 10px;10062  background: var(--peach-accent);10063  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);10064  color: #1a0905;10065  font-family: inherit;10066  font-size: 13px;10067  font-weight: 600;10068  letter-spacing: 0.01em;10069  cursor: pointer;10070  transition: filter 0.15s ease, transform 0.1s ease;10071}10072.peach-pair-pair-start:hover { filter: brightness(1.08); }10073.peach-pair-pair-start:active { transform: translateY(1px); }1007410075.peach-pair-paired-section {10076  margin-top: 14px;10077  display: flex;10078  flex-direction: column;10079  gap: 8px;10080}10081.peach-pair-paired-heading {10082  margin: 0;10083  font-family: var(--peach-mono, ui-monospace, monospace);10084  font-size: 10px;10085  font-weight: 500;10086  letter-spacing: 0.14em;10087  text-transform: uppercase;10088  color: var(--peach-t1);10089}1009010091/* Footer --------------------------------------------------------------- */10092.peach-pair-foot {10093  margin: 10px -4px -2px;10094  margin-top: auto;10095}10096.peach-pair-foot-divider {10097  height: 1px;10098  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);10099  margin-bottom: 10px;10100}10101.peach-pair-foot-text {10102  font-size: 11px;10103  line-height: 1.5;10104  color: var(--peach-t1);10105  text-align: center;10106  padding: 0 4px;10107  text-wrap: pretty;10108}1010910110/* Screen-reader-only live region. Kept off the visual flow but read by10111   assistive tech as the pairing phase advances. */10112.peach-sr-only {10113  position: absolute;10114  width: 1px; height: 1px;10115  padding: 0; margin: -1px;10116  overflow: hidden;10117  clip: rect(0, 0, 0, 0);10118  white-space: nowrap;10119  border: 0;10120}1012110122/* Reduced motion — stage simplifies to opacity transitions only */10123@media (prefers-reduced-motion: reduce) {10124  .peach-pair-bird-body,10125  .peach-pair-bird-head-group,10126  .peach-pair-bird-beak,10127  .peach-pair-bird-wing,10128  .peach-pair-bird-tuft,10129  .peach-pair-bird-tail,10130  .peach-pair-bird-eye-group,10131  .peach-pair-bird-aura,10132  .peach-pair-arc,10133  .peach-pair-flight-path,10134  .peach-pair-flight-path-2,10135  .peach-pair-dot-glow,10136  .peach-pair-dot-core,10137  .peach-pair-dot-ring,10138  .peach-pair-mote,10139  .peach-pair-meter-bar,10140  .peach-pair-listen-dot,10141  .peach-pair-bird-slot,10142  .peach-pair-bird-slot-mobile {10143    animation: none !important;10144    transition: opacity 0.2s linear !important;10145  }10146}1014710148/* ─────────────────────────────────────────────────────────────────10149   Settings → Sync surface. Wraps the same bird10150   animation used by the pairing flow with a paired-devices list and10151   the "Pair a device" CTA.10152   ───────────────────────────────────────────────────────────────── */10153.peach-pair-settings {10154  position: absolute;10155  inset: 0;10156  z-index: 3;10157  display: flex;10158  flex-direction: column;10159  gap: 18px;10160  padding: 14px 12px 12px;10161  width: 100%;10162  box-sizing: border-box;10163  overflow-y: auto;10164  overflow-x: hidden;10165  /* Same warm surface as the pairing screen — unifies the two views. */10166  background:10167    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),10168    var(--peach-bg);10169  color: var(--peach-t0);10170  isolation: isolate;10171  /* Hide native scrollbar — content fits 99% of the time and a chunky10172     gutter ruins the surface. */10173  scrollbar-width: none;10174  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;10175}10176.peach-pair-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }10177.peach-pair-settings::before {10178  content: '';10179  position: absolute;10180  inset: 0;10181  pointer-events: none;10182  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);10183  z-index: 0;10184}10185.peach-pair-settings > * { position: relative; z-index: 1; }1018610187.peach-pair-settings--pairing {10188  padding: 0;10189  align-items: stretch;10190  justify-content: stretch;10191  background: none;10192  isolation: auto;10193}10194.peach-pair-settings--pairing::before { display: none; }1019510196.peach-pair-settings-header {10197  display: flex;10198  align-items: center;10199  gap: 10px;10200}10201.peach-pair-settings-title {10202  margin: 0;10203  font-family: var(--font-display, Georgia, serif);10204  font-style: italic;10205  font-size: 24px;10206  font-weight: 500;10207  line-height: 1;10208  color: var(--peach-t0);10209  letter-spacing: 0.005em;10210}10211.peach-pair-settings-section {10212  margin: 6px 0 -4px;10213  font-size: 11px;10214  font-weight: 600;10215  letter-spacing: 0.08em;10216  text-transform: uppercase;10217  color: var(--peach-text-muted);10218}10219.peach-pair-settings-error {10220  font-size: 12px;10221  padding: 8px 10px;10222  border-radius: 8px;10223  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);10224  color: var(--peach-text);10225}10226.peach-pair-settings-footer {10227  margin-top: auto;10228  padding-top: 18px;10229  font-size: 11.5px;10230  line-height: 1.5;10231  color: var(--peach-text-muted);10232  text-align: center;10233}1023410235/* Hero card shown when no devices are paired yet. */10236.peach-pair-hero {10237  display: flex;10238  flex-direction: column;10239  align-items: center;10240  gap: 12px;10241  padding: 20px 12px 8px;10242  text-align: center;10243}10244.peach-pair-hero-svg {10245  display: block;10246  max-width: 100%;10247  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));10248}10249.peach-pair-hero-headline {10250  margin: 0;10251  font-family: var(--font-display, Georgia, serif);10252  font-style: italic;10253  font-size: 20px;10254  font-weight: 500;10255  line-height: 1.2;10256  letter-spacing: 0.005em;10257  color: var(--peach-t0);10258}10259.peach-pair-hero-sub {10260  margin: 0;10261  font-size: 13px;10262  line-height: 1.5;10263  color: var(--peach-t1);10264  max-width: 320px;10265  text-wrap: pretty;10266}1026710268.peach-pair-pair-cta {10269  display: flex;10270  justify-content: center;10271  padding: 4px 0 6px;10272}10273.peach-pair-pair-button {10274  display: inline-flex;10275  align-items: center;10276  gap: 8px;10277  min-width: 220px;10278  justify-content: center;10279}10280.peach-pair-pair-button-icon {10281  flex: 0 0 auto;10282}1028310284/* Paired devices list. Roomy rows that look at home next to the rest10285   of Settings; stale rows get a soft warm-warning border tint. */10286.peach-pair-device-list {10287  list-style: none;10288  margin: 0;10289  padding: 0;10290  display: flex;10291  flex-direction: column;10292  gap: 8px;10293}10294.peach-pair-device-row {10295  display: flex;10296  align-items: center;10297  gap: 12px;10298  padding: 12px;10299  border-radius: 10px;10300  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10301  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);10302}10303.peach-pair-device-row[data-stale="true"] {10304  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);10305}10306.peach-pair-device-icon {10307  width: 32px;10308  height: 32px;10309  display: flex;10310  align-items: center;10311  justify-content: center;10312  border-radius: 8px;10313  color: var(--peach-text);10314  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);10315}10316.peach-pair-device-info {10317  flex: 1;10318  display: flex;10319  flex-direction: column;10320  gap: 2px;10321  min-width: 0;10322}10323.peach-pair-device-name {10324  font-size: 14px;10325  font-weight: 600;10326  color: var(--peach-text);10327  overflow: hidden;10328  text-overflow: ellipsis;10329  white-space: nowrap;10330}10331.peach-pair-device-meta {10332  font-size: 11.5px;10333  color: var(--peach-text-muted);10334  display: flex;10335  flex-wrap: wrap;10336  align-items: center;10337  gap: 8px;10338}10339.peach-pair-device-badge {10340  font-size: 10.5px;10341  font-weight: 500;10342  letter-spacing: 0.02em;10343  padding: 2px 6px;10344  border-radius: 999px;10345  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10346  color: var(--peach-text);10347}10348.peach-pair-device-stale {10349  font-size: 10.5px;10350  font-weight: 500;10351  color: var(--peach-warn, #d29257);10352}10353.peach-pair-device-remove {10354  flex: 0 0 auto;10355  color: var(--peach-text-muted);10356}10357.peach-pair-device-remove:hover {10358  color: var(--peach-danger, #c25b4a);10359}10360.peach-pair-unpair-confirm {10361  display: flex;10362  gap: 6px;10363  align-items: center;10364}1036510366/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10367.peach-pair-pro-card {10368  position: relative;10369  margin: 18px 12px;10370  padding: 18px 20px 22px;10371  border-radius: 22px;10372  background:10373    radial-gradient(140% 90% at 50% 0%,10374      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10375      transparent 60%),10376    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10377  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10378  box-shadow:10379    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10380    0 18px 40px -24px rgba(0, 0, 0, 0.45);10381  display: flex;10382  flex-direction: column;10383  align-items: center;10384  gap: 10px;10385  text-align: center;10386  overflow: hidden;10387}10388.peach-pair-pro-stage {10389  position: relative;10390  width: 220px;10391  height: 140px;10392  display: flex;10393  align-items: flex-end;10394  justify-content: center;10395  margin-bottom: 2px;10396}10397.peach-pair-pro-bird-slot {10398  width: 140px;10399  height: 132px;10400  display: flex;10401  align-items: flex-end;10402  justify-content: center;10403  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10404}10405.peach-pair-pro-bird-slot .peach-pair-bird {10406  width: 100%;10407  height: 100%;10408}10409.peach-pair-pro-bird-slot .peach-pair-bird svg {10410  width: 100%;10411  height: 100%;10412  overflow: visible;10413}10414.peach-pair-pro-headline {10415  margin: 4px 0 0;10416  font-family: var(--font-display, "Cormorant Garamond", serif);10417  font-style: italic;10418  font-size: 19px;10419  font-weight: 500;10420  letter-spacing: 0.01em;10421  color: var(--peach-t0);10422  max-width: 280px;10423  line-height: 1.25;10424}10425.peach-pair-pro-body {10426  margin: 0;10427  font-size: 13px;10428  line-height: 1.55;10429  color: var(--peach-t1);10430  max-width: 300px;10431}10432.peach-pair-pro-cta {10433  margin-top: 4px;10434}10435.peach-pair-pro-foot {10436  margin: 2px 0 0;10437  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10438  font-size: 0.625rem;10439  letter-spacing: 0.08em;10440  text-transform: uppercase;10441  color: var(--peach-t2);10442  opacity: 0.75;10443}1044410445/* Shell border and shadow in light mode: match dark mode's near-invisible10446   border weight so the popup frame looks the same in both themes. */10447.light .peach-shell,10448.light .peach-screen {10449  border-color: rgba(26, 18, 8, 0.07);10450  box-shadow:10451    0 2px 8px rgba(80, 56, 32, 0.08),10452    0 14px 48px rgba(80, 56, 32, 0.10),10453    0 0 0 1px rgba(26, 18, 8, 0.04);10454}