popup.css

174.1 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112.peach-mobile-root,13body.peach-mobile,14.peach-mobile #app,15.peach-mobile #pre-lock,16.peach-mobile .popup-root {17  width: 100vw;18  min-height: 100dvh;19  height: 100dvh;20  margin: 0;21}2223body {24  overflow: hidden;25  background: var(--bg);26  color: var(--t0);27  font-family: var(--font-ui);28  font-weight: 300;29  position: relative;30}3132body.peach-mobile {33  min-height: 100dvh;34  height: 100dvh;35  overflow: hidden;36  transition: padding-bottom 180ms ease;37}3839* {40  box-sizing: border-box;41}4243button,44input,45textarea,46select {47  font: inherit;48}4950button {51  border: 0;52}5354#pre-lock {55  position: absolute;56  inset: 0;57  z-index: 10;58}5960#pre-lock[hidden] {61  display: none;62}6364.popup-root {65  position: relative;66  overflow: hidden;67}6869body.peach-mobile .popup-root {70  padding:71    env(safe-area-inset-top)72    env(safe-area-inset-right)73    env(safe-area-inset-bottom)74    env(safe-area-inset-left);75  overflow: hidden;76}7778.peach-theme {79  color: var(--peach-t0);80  font-family: var(--font-ui);81  font-weight: 300;82  box-sizing: border-box;83  text-align: left;84}85.peach-theme, .peach-theme * { box-sizing: inherit; }8687.peach-brand-mark {88  width: 14px;89  height: 14px;90  flex-shrink: 0;91}9293.peach-status-pip.is-hidden {94  display: none;95}9697.peach-status-pip.unlocked {98  background: var(--peach-health-ok);99  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);100}101102.peach-status-pip.pulse {103  animation: pip-pulse 400ms var(--peach-curve-settle) both;104}105106/* Shell */107.peach-shell, .peach-screen {108  background:109    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),110    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),111    var(--peach-bg);112  border: 1px solid var(--peach-t3);113  box-shadow:114    0 2px 8px rgba(0,0,0,0.55),115    0 14px 48px rgba(0,0,0,0.7),116    0 0 0 1px rgba(240,232,216,0.04);117  overflow: hidden;118}119.peach-shell {120  display: grid;121  grid-template-rows: auto 1fr;122  min-height: 520px;123  position: relative;124  isolation: isolate;125}126127.peach-shell[data-surface="extension"] {128  width: min(320px, 100vw);129  border-radius: 0;130  height: 520px;131  max-height: 520px;132  overflow: hidden;133}134135body.peach-mobile .peach-shell[data-surface="extension"],136body.peach-mobile .peach-screen {137  width: 100%;138  height: 100%;139  max-height: none;140  min-height: 100%;141  border: 0;142  box-shadow: none;143}144145body.peach-mobile .peach-shell[data-surface="extension"] {146  grid-template-rows: auto minmax(0, 1fr);147}148149body.peach-mobile .peach-stage,150body.peach-mobile .peach-overlay-view,151body.peach-mobile .peach-settings-content {152  overscroll-behavior: contain;153}154155/* ── Lock screen – full-window lock/create stage ── */156.lock-screen--vault-stage {157  display: flex;158  flex-direction: column;159  gap: 18px;160  padding: 20px 18px 18px;161  justify-content: flex-start;162}163.lock-screen--vault-stage .peach-lock-panel {164  margin-top: auto;165}166.peach-lock-headline--unlock {167  max-width: 220px;168}169.peach-lock-hero--unlock {170  padding-top: 14px;171}172.peach-lock-panel--unlock {173  gap: 10px;174}175176.peach-lock-restore-link {177  background: transparent;178  border: none;179  cursor: pointer;180  font-family: var(--font-mono);181  font-size: 0.625rem;182  letter-spacing: 0.08em;183  color: var(--t1);184  padding: 5px 0;185  text-align: left;186  transition: color 150ms ease;187}188189.peach-lock-restore-link:hover {190  color: var(--t0);191}192.peach-shell[data-surface="extension"] .peach-stage {193  min-height: 250px;194}195196/* Screen (unlock) */197.peach-screen {198  width: min(320px, 100vw);199  min-height: 100%;200  height: 100%;201  border-radius: 0;202  padding: 16px 20px 18px;203  display: grid;204  gap: 14px;205}206.peach-screen[data-motion-phase="enter"] {207  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;208}209.peach-screen-header { min-height: 20px; }210211/* Wordmark */212.peach-wordmark {213  margin: 0;214  font-family: var(--font-display);215  font-size: 0.9375rem;216  font-style: italic;217  letter-spacing: 0.03em;218  color: var(--peach-t0);219  display: inline-flex;220  min-height: 1em;221}222223/* Motion text / char animation */224.peach-motion-text { display: inline-flex; min-height: 1em; }225.peach-motion-char {226  display: inline-block;227  white-space: pre;228  opacity: 0;229  transform: translateY(0.22em);230  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;231  animation-delay: calc(var(--peach-char-index, 0) * 20ms);232}233234/* Chrome */235.peach-chrome {236  position: relative;237  z-index: 10;238  padding: 16px 20px 0;239  display: flex;240  justify-content: space-between;241  align-items: center;242  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense243     fallback) per §15 regression guard. Without pointer-events:none, the244     empty header strip also sits above `.peach-overlay-view` (z-index:2)245     and swallows clicks meant for an overlay's back button / top search. */246  pointer-events: none;247}248.peach-chrome .peach-btn { pointer-events: auto; }249.peach-chrome.is-hidden-for-overlay,250.peach-search-wrap.is-hidden-for-overlay {251  opacity: 0;252  visibility: hidden;253  pointer-events: none;254}255.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }256.peach-status-pip {257  width: 5px;258  height: 5px;259  border-radius: 50%;260  background: var(--peach-t3);261  display: inline-flex;262  flex-shrink: 0;263  transition: background 400ms ease, box-shadow 400ms ease;264}265.peach-chrome-actions { display: flex; gap: 6px; }266267/* Shell body */268.peach-shell-body {269  position: relative;270  display: grid;271  grid-template-rows: 1fr auto;272  min-height: 0;273  min-width: 0;274  width: 100%;275  overflow: hidden;276  height: 100%;277}278.peach-shell-veil {279  position: absolute; inset: 0;280  background: #000; opacity: 0;281  pointer-events: none; z-index: 1;282}283.peach-shell[data-motion-phase="enter"] .peach-shell-body {284  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;285}286.peach-shell[data-motion-phase="exit"] .peach-shell-veil {287  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;288}289290/* Content frame */291.peach-content-frame {292  display: grid;293  grid-template-rows: 1fr auto;294  grid-template-columns: minmax(0, 1fr);295  align-content: start;296  min-height: 0;297  min-width: 0;298  overflow: hidden;299  transition: opacity 80ms ease, transform 80ms ease;300}301.peach-content-frame.navigating {302  opacity: 0.93;303  transform: translateX(2px);304}305.peach-content-frame[data-content-phase="enter"] {306  animation: peach-content-enter 135ms ease-out both;307}308.peach-content-frame[data-content-phase="exit"] {309  animation: peach-content-exit 95ms ease-in forwards;310}311.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }312313/* Stage */314.peach-stage {315  padding: 10px 20px 12px;316  display: grid;317  gap: 12px;318  align-content: start;319  min-width: 0;320  min-height: 0;321  max-width: 100%;322  overflow-y: auto;323  overflow-x: hidden;324  scrollbar-width: none;325  -ms-overflow-style: none;326  overscroll-behavior: contain;327}328.peach-stage::-webkit-scrollbar { display: none; }329330/* Entry name */331.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }332.peach-entry-header {333  position: relative;334  z-index: 1;335  display: flex;336  align-items: flex-start;337  gap: 6px;338  min-width: 0;339}340.peach-entry-header-name {341  flex: 1;342  min-width: 0;343}344.peach-entry-name {345  margin: 0;346  padding-bottom: 0.12em;347  font-family: var(--font-display);348  font-style: italic; font-weight: 400;349  font-size: 44px; line-height: 0.95;350  color: var(--peach-t0);351  display: -webkit-box;352  -webkit-line-clamp: 2;353  -webkit-box-orient: vertical;354  overflow: hidden;355  text-wrap: balance;356}357.peach-entry-name--lg { font-size: 40px; }358.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }359.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }360.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }361362/* Trash icon in entry header */363.peach-entry-trash-btn {364  flex-shrink: 0;365  padding: 4px;366  margin-top: 4px;367  background: transparent;368  border: none;369  cursor: pointer;370  color: var(--peach-t2);371  border-radius: 4px;372  transition: color 140ms ease, background 140ms ease;373  display: flex;374  align-items: center;375  justify-content: center;376}377.peach-entry-trash-btn:hover {378  color: var(--peach-t1);379  background: var(--peach-t3);380}381.peach-entry-trash-confirm {382  display: flex;383  align-items: center;384  gap: 6px;385  flex-shrink: 0;386  margin-top: 6px;387  flex-wrap: nowrap;388}389.peach-entry-trash-confirm-label {390  font-family: var(--font-mono);391  font-size: 0.5625rem;392  letter-spacing: 0.1em;393  color: var(--peach-t2);394  white-space: nowrap;395}396.peach-entry-name-button {397  padding: 0;398  background: transparent;399  text-align: left;400  cursor: pointer;401  max-width: 100%;402  overflow: hidden;403  display: block;404}405.peach-entry-name-char {406  display: inline-block;407  white-space: pre;408  opacity: 0;409  transform: translateY(0.22em);410  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;411  animation-delay: calc(var(--char-index, 0) * 20ms);412}413414/* Domain */415.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }416.peach-domain-row {417  width: 100%; border: 0; background: transparent; color: inherit;418  padding: 0; display: flex; justify-content: space-between; align-items: baseline;419  cursor: default;420}421.peach-domain-value {422  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;423  font-size: 0.625rem; font-style: italic;424  letter-spacing: 0.12em; color: var(--peach-t1);425}426427/* Fields */428.peach-fields { display: grid; gap: 10px; }429.peach-field-card { display: grid; gap: 7px; }430.peach-label {431  font-family: Inter, system-ui, sans-serif;432  text-transform: uppercase; letter-spacing: 0.2em;433  font-size: 0.5rem; color: var(--peach-t2);434}435.peach-field-value-row {436  display: flex; justify-content: space-between;437  align-items: center; gap: 8px;438  min-width: 0;439}440.peach-field-value {441  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;442  font-size: 0.8125rem; color: var(--peach-t1);443  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;444  flex: 1;445  min-width: 0;446}447.peach-password-value {448  display: inline-flex;449  align-items: center;450  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;451  font-size: 1rem; letter-spacing: 0.3em; color: var(--peach-t0);452  overflow: hidden;453  text-overflow: ellipsis;454  white-space: nowrap;455  flex: 1;456  min-width: 0;457  max-width: 100%;458}459.peach-password-value.is-revealed {460  font-size: 0.875rem;461  letter-spacing: 0.08em;462}463.peach-password-text,464.peach-password-mask {465  display: block;466  width: 100%;467  overflow: hidden;468  white-space: nowrap;469  /* Render as uniform mid-line bullets, not baseline periods */470  font-family: Inter, system-ui, sans-serif;471  font-size: 0.625rem;472  letter-spacing: 3px;473  user-select: none;474}475.peach-field-actions { display: flex; gap: 4px; align-items: center; }476.peach-password-strength { display: flex; align-items: center; gap: 8px; }477.peach-strength-bar { display: flex; gap: 3px; }478.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }479.peach-strength-label {480  font-family: "IBM Plex Mono", monospace;481  font-style: italic;482  font-size: 0.5625rem;483  font-weight: 300;484  min-width: 36px;485  text-align: right;486  color: var(--peach-t2);487  letter-spacing: 0.06em;488}489490.peach-strength-hairline {491  display: flex;492  align-items: center;493  gap: 10px;494  margin-top: -2px;495}496497.peach-strength-hairline-track {498  flex: 1;499  height: 3px;500  border-radius: 2px;501  background: var(--peach-s2);502  overflow: hidden;503}504505.peach-strength-hairline-fill {506  height: 100%;507  border-radius: 2px;508  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),509    background 400ms ease;510}511512/* Note content (display) */513.peach-note-content {514  border-top: 1px solid var(--peach-t3);515  padding-top: 10px;516  font-family: var(--font-display);517  font-size: 0.9375rem;518  line-height: 1.75;519  color: var(--peach-t1);520}521522/* ── Inline editing ─────────────────────────────────────────────────── */523524/* Clickable display values */525.peach-inline-clickable {526  cursor: text;527  border-radius: 3px;528  transition: background 150ms ease;529}530.peach-inline-clickable:hover {531  background: rgba(240, 232, 216, 0.05);532}533534/* Subtle "edit" hint that appears on hover */535.peach-inline-edit-hint {536  font-family: Inter, system-ui, sans-serif;537  font-size: 0.5625rem;538  text-transform: uppercase;539  letter-spacing: 0.14em;540  color: var(--peach-t2);541  opacity: 0;542  transition: opacity 120ms ease;543  pointer-events: none;544  margin-left: 6px;545  flex-shrink: 0;546}547.peach-domain-row:hover .peach-inline-edit-hint {548  opacity: 1;549}550551/* Title editing */552.peach-inline-title-wrap {553  display: flex;554  flex-direction: column;555  gap: 6px;556}557.peach-inline-title-input {558  font-family: var(--font-display);559  font-style: italic;560  font-weight: 400;561  font-size: 40px;562  line-height: 0.95;563  color: var(--peach-t0);564  background: transparent;565  border: none;566  border-bottom: 1px solid var(--peach-accent);567  outline: none;568  width: 100%;569  padding: 2px 0;570}571572/* Generic inline field */573.peach-inline-field-wrap {574  display: flex;575  flex-direction: column;576  gap: 6px;577}578.peach-inline-input {579  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;580  font-size: 0.8125rem;581  color: var(--peach-t0);582  background: transparent;583  border: none;584  border-bottom: 1px solid var(--peach-accent);585  outline: none;586  width: 100%;587  padding: 3px 0;588}589.peach-inline-textarea {590  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;591  font-size: 0.6875rem;592  line-height: 1.7;593  color: var(--peach-t0);594  background: rgba(240, 232, 216, 0.04);595  border: 1px solid var(--peach-accent);596  border-radius: 4px;597  outline: none;598  width: 100%;599  padding: 8px;600  resize: vertical;601  min-height: 80px;602}603604/* Save / cancel row */605.peach-inline-actions {606  display: flex;607  gap: 6px;608  align-items: center;609}610.peach-inline-save-btn,611.peach-inline-cancel-btn {612  display: inline-flex;613  align-items: center;614  justify-content: center;615  width: 26px;616  height: 26px;617  border-radius: 4px;618  border: none;619  cursor: pointer;620  transition: background 140ms ease, opacity 140ms ease;621  flex-shrink: 0;622}623.peach-inline-save-btn {624  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);625  color: var(--peach-accent);626}627.peach-inline-save-btn:hover:not(:disabled) {628  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);629}630.peach-inline-cancel-btn {631  background: rgba(240, 232, 216, 0.06);632  color: var(--peach-t2);633}634.peach-inline-cancel-btn:hover:not(:disabled) {635  background: rgba(240, 232, 216, 0.12);636  color: var(--peach-t1);637}638.peach-inline-save-btn:disabled,639.peach-inline-cancel-btn:disabled {640  opacity: 0.4;641  cursor: not-allowed;642}643644/* Inline password generator wrapper */645.peach-inline-generator-wrap {646  margin-top: 10px;647  padding-top: 10px;648  border-top: 1px solid var(--peach-t3);649  display: flex;650  flex-direction: column;651  gap: 8px;652}653.peach-inline-generator-cancel {654  align-self: flex-start;655  font-size: 0.6875rem;656  color: var(--peach-t2);657}658659/* "is-editing" card state */660.peach-field-card.is-editing {661  background: rgba(240, 232, 216, 0.02);662  border-radius: 6px;663  padding: 8px;664  margin: -8px;665}666667/* Inline tag editor on Entry detail view */668.peach-inline-tag-editor {669  display: flex;670  flex-direction: column;671  gap: 6px;672}673674/* Quiet inline "+ add X" link in the entry detail body */675.peach-entry-add-link {676  justify-self: start;677  margin-top: 8px;678}679680/* Additional URLs editor revealed by clicking the URL field */681.peach-additional-urls {682  display: flex;683  flex-direction: column;684  gap: 6px;685  margin-top: 8px;686}687.peach-additional-urls-label {688  font-size: 0.5625rem;689  letter-spacing: 0.1em;690  text-transform: uppercase;691  color: var(--peach-t2);692  margin-bottom: 2px;693}694.peach-additional-url-row {695  display: flex;696  align-items: center;697  gap: 6px;698}699.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }700.peach-additional-url-remove {701  background: transparent;702  border: 1px solid var(--peach-t3);703  color: var(--peach-t2);704  width: 22px;705  height: 22px;706  border-radius: 4px;707  cursor: pointer;708  font-size: 0.875rem;709  line-height: 1;710  display: inline-flex;711  align-items: center;712  justify-content: center;713  flex-shrink: 0;714  transition: color 120ms ease, border-color 120ms ease;715}716.peach-additional-url-remove:hover:not(:disabled) {717  color: var(--peach-accent);718  border-color: var(--peach-border-accent);719}720.peach-additional-urls-add { align-self: flex-start; }721722/* Delete row */723.peach-entry-delete-row {724  display: flex;725  align-items: center;726  gap: 8px;727  padding-top: 18px;728  margin-top: 8px;729  border-top: 1px solid var(--peach-t3);730}731.peach-delete-btn {732  font-size: 0.6875rem;733  color: var(--peach-t2);734  padding: 4px 0;735}736.peach-delete-confirm-text {737  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;738  font-size: 0.6875rem;739  font-style: italic;740  color: var(--peach-t2);741  flex-shrink: 0;742}743744/* TOTP band */745.peach-totp-band {746  border-top: 1px solid var(--peach-t3);747  padding: 12px 20px 14px;748  position: relative;749  display: grid;750  grid-template-columns: 1fr auto;751  gap: 10px;752}753.peach-totp-main {754  min-width: 0;755  cursor: pointer;756  user-select: none;757}758.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }759.peach-totp-code-row {760  display: flex;761  align-items: flex-end;762  gap: 10px;763  min-width: 0;764}765.peach-totp-code {766  margin: 2px 0 0;767  font-family: var(--font-display);768  font-style: italic;769  font-weight: 300;770  font-size: 38px; color: var(--peach-accent);771  line-height: 0.95; min-height: 1em;772  min-width: 0;773}774.peach-totp-code-text {775  display: inline-flex;776  overflow: hidden;777  text-overflow: ellipsis;778  white-space: nowrap;779}780.peach-totp-copy-btn {781  margin-bottom: 2px;782  flex-shrink: 0;783  border-color: transparent;784}785.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }786.peach-totp-countdown {787  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;788  font-size: 22px; color: var(--peach-t1);789}790.peach-totp-ring { transform: rotate(-90deg); }791.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }792.peach-totp-ring-progress {793  fill: none; stroke: var(--peach-accent); stroke-width: 2;794  stroke-linecap: round;795  transition: stroke-dashoffset 1s linear, stroke 500ms ease;796}797/* Search bar */798.peach-search-wrap {799  border-top: 1px solid var(--peach-t3);800  background: var(--peach-s1);801  min-height: 54px; position: relative;802  box-shadow: inset 0 6px 18px transparent;803  transition: box-shadow 700ms ease;804}805.peach-search-wrap::before {806  content: "";807  position: absolute;808  left: 0;809  top: 0;810  height: 2px;811  width: var(--peach-totp-progress, 0%);812  background: var(--peach-accent);813  opacity: 0;814  transition: width 1s linear, opacity 180ms ease;815  pointer-events: none;816}817.peach-shell[data-totp-active="true"] .peach-search-wrap::before {818  opacity: 0.9;819}820.peach-shell[data-totp-active="true"] .peach-search-wrap {821  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);822}823824@keyframes peach-totp-code-flare {825  0%   { filter: brightness(1); }826  25%  { filter: brightness(1.3); }827  100% { filter: brightness(1); }828}829.peach-totp-code.is-hot {830  animation: peach-totp-code-flare 3000ms ease-in-out both;831}832.peach-search-bar {833  min-height: 54px;834  display: grid;835  grid-template-columns: auto minmax(0, 1fr) auto;836  align-items: center;837  gap: 8px; padding: 0 9px 0 12px;838}839.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }840.peach-search-input {841  border: 0; background: transparent; color: var(--peach-t0);842  font-family: var(--font-display);843  font-style: italic; font-size: 18px;844  outline: none; width: 100%; min-width: 0; padding: 0;845  caret-color: var(--peach-accent);846}847.peach-search-input::placeholder { color: var(--peach-t2); }848.peach-search-meta {849  display: grid;850  grid-auto-flow: column;851  align-items: center;852  justify-content: end;853  gap: 6px;854  min-width: max-content;855}856.peach-search-counter {857  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;858  font-size: 0.625rem; color: var(--peach-t2);859  display: inline-flex;860  align-items: center;861  line-height: 1;862}863.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }864865/* Buttons */866.peach-btn {867  border: 1px solid transparent; border-radius: 12px;868  background: transparent; color: var(--peach-t0);869  font-family: Inter, system-ui, sans-serif;870  font-size: 0.75rem; letter-spacing: 0.02em; padding: 8px 12px;871  cursor: pointer;872  transition:873    background-color var(--peach-dur-80) var(--peach-curve-arrival),874    color var(--peach-dur-80) var(--peach-curve-arrival),875    border-color var(--peach-dur-150) var(--peach-curve-arrival);876}877.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }878.peach-btn:disabled {879  opacity: 0.45;880  cursor: not-allowed;881}882.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 0.6875rem; }883.peach-btn--md { min-height: 38px; }884.peach-btn--accent {885  background: var(--peach-accent);886  color: rgba(0,0,0,0.78);887  box-shadow:888    0 1px 0 rgba(255,255,255,0.08) inset,889    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),890    0 3px 16px var(--peach-glow),891    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);892}893.peach-btn--accent:hover:not(:disabled) {894  background: var(--peach-accent);895  filter: brightness(1.10) saturate(1.05);896  box-shadow:897    0 1px 0 rgba(255,255,255,0.10) inset,898    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),899    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),900    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);901}902.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }903.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }904.peach-icon-btn {905  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;906  display: inline-flex; align-items: center; justify-content: center;907}908909.peach-btn:focus-visible {910  outline: none;911  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);912}913914/* Lock button */915.peach-lock-icon { transform-origin: center; }916.peach-lock-btn.is-locking { color: var(--peach-accent); }917.peach-lock-btn.is-locking .peach-lock-icon {918  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);919}920921/* Biometric unlock button */922.peach-biometric-btn {923  display: flex;924  align-items: center;925  justify-content: center;926  gap: 6px;927  margin-top: 8px;928  width: 100%;929}930931/* Copy button */932.peach-copy-btn {933  position: relative; overflow: hidden;934  color: var(--peach-t2); border-color: var(--peach-t3);935}936.peach-copy-icon {937  display: inline-flex; align-items: center; justify-content: center;938  position: relative; z-index: 1;939}940.peach-copy-icon-svg { display: block; }941.peach-copy-sheen {942  position: absolute; inset: 0;943  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%);944  opacity: 0; transform: scaleX(0.15); transform-origin: left center;945}946.peach-copy-btn.is-copied {947  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;948  box-shadow:949    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),950    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),951    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);952}953.peach-copy-btn.is-copied .peach-copy-icon {954  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;955}956.peach-copy-btn.is-copied .peach-copy-sheen {957  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;958}959.peach-copy-btn.is-retreat {960  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;961}962.peach-copy-btn.is-retreat .peach-copy-sheen {963  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;964}965.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }966.peach-copy-drain-bar {967  display: block; width: 100%; height: 100%;968  background: var(--peach-accent); opacity: 0.7;969  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;970}971972/* Unlock screen elements */973.peach-unlock-headline {974  margin: 2px 0 0;975  font-family: var(--font-display);976  font-size: 52px; line-height: 0.95;977  font-style: italic; font-weight: 400;978}979.peach-subline {980  margin: 0;981  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;982  font-size: 0.625rem; color: var(--peach-t2); font-style: italic;983}984.peach-subline--lock {985  max-width: 248px;986  line-height: 1.5;987}988.peach-underline-input {989  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);990  padding: 6px 0; background: transparent; color: var(--peach-t0);991  outline: none;992  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;993  font-size: 0.8125rem;994  caret-color: var(--peach-accent);995}996.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }997.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }998.peach-hint {999  margin: 0;1000  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1001  font-size: 0.625rem; color: var(--peach-t2);1002}1003.peach-unlock-footer {1004  margin-top: 4px; display: flex; align-items: center; gap: 7px;1005  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1006  font-size: 0.625rem; color: var(--peach-t2);1007}1008.peach-unlock-footer--lock {1009  padding-top: 2px;1010}10111012/* Breach badge */1013.peach-breach-badge {1014  display: flex;1015  position: relative;1016  z-index: 1;1017  align-items: center;1018  gap: 7px;1019  font-size: 0.5625rem;1020  color: var(--peach-breach);1021  padding: 5px 10px;1022  margin-bottom: 4px;1023  border-radius: 8px;1024  background: rgba(220, 80, 60, 0.07);1025  border: 1px solid rgba(220, 80, 60, 0.18);1026  letter-spacing: 0.04em;1027}10281029.peach-breach-action {1030  margin-left: auto;1031  font-size: 0.625rem;1032  padding: 3px 8px;1033}10341035.peach-password-value.is-breached {1036  color: rgba(220, 80, 60, 0.75);1037  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1038}10391040/* ── Overlay views ─────────────────────────────────────────────────── */1041.peach-overlay-view {1042  position: absolute;1043  inset: 0;1044  display: flex;1045  flex-direction: column;1046  background:1047    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1048    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1049    var(--peach-bg);1050  z-index: 2;1051  overflow: hidden;1052  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1053}1054@keyframes overlay-in {1055  from { opacity: 0; transform: translateY(8px); }1056  to   { opacity: 1; transform: translateY(0); }1057}1058.peach-overlay-view.ov-enter-up {1059  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1060}1061.peach-overlay-view.ov-exit-up {1062  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1063}1064.peach-overlay-view.ov-enter-right {1065  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1066}1067.peach-overlay-view.ov-exit-right {1068  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1069}10701071@keyframes ov-enter-up {1072  from { opacity: 0; transform: translateY(18px); }1073  to   { opacity: 1; transform: translateY(0); }1074}1075@keyframes ov-exit-up {1076  from { opacity: 1; transform: translateY(0); }1077  to   { opacity: 0; transform: translateY(-12px); }1078}1079@keyframes ov-enter-right {1080  from { opacity: 0; transform: translateX(20px); }1081  to   { opacity: 1; transform: translateX(0); }1082}1083@keyframes ov-exit-right {1084  from { opacity: 1; transform: translateX(0); }1085  to   { opacity: 0; transform: translateX(20px); }1086}10871088/* Overlay shared header */1089.peach-overlay-header {1090  padding: 10px 12px;1091  display: flex;1092  align-items: center;1093  gap: 8px;1094  border-bottom: 1px solid var(--peach-t3);1095  flex-shrink: 0;1096}1097.peach-overlay-title {1098  font-family: "IBM Plex Mono", monospace;1099  font-size: 0.5625rem;1100  text-transform: uppercase;1101  letter-spacing: 0.18em;1102  color: var(--peach-t2);1103  flex: 1;1104  text-align: center;1105}11061107.peach-overlay-card {1108  background: var(--peach-s1);1109  border: 1px solid var(--peach-t3);1110  border-radius: 12px;1111  overflow: hidden;1112  width: 100%;1113}11141115.peach-onboarding-alt-actions {1116  display: flex;1117  flex-direction: column;1118  gap: 4px;1119  padding: 0;1120}11211122.peach-settings-copy {1123  margin: 0 0 10px;1124  font-size: 0.6875rem;1125  line-height: 1.5;1126  color: var(--peach-t2);1127}11281129.peach-settings-copy strong {1130  color: var(--peach-t0);1131}11321133.peach-settings-copy--spacious {1134  margin-bottom: 12px;1135}11361137.peach-settings-copy--result {1138  color: var(--peach-accent);1139  font-size: 0.8125rem;1140  text-align: center;1141  padding: 8px 0;1142}11431144.peach-settings-copy--danger {1145  color: var(--peach-breach);1146}11471148.peach-settings-copy--success {1149  color: var(--peach-accent);1150}11511152.peach-inline-feedback {1153  font-size: 0.6875rem;1154  margin: 10px 0 0;1155}11561157.peach-inline-feedback--ok {1158  color: var(--peach-accent);1159}11601161.peach-inline-feedback--error {1162  color: var(--peach-breach);1163}11641165.peach-inline-feedback--muted {1166  color: var(--peach-t2);1167  font-size: 0.625rem;1168  margin: 4px 0;1169}11701171.peach-inline-feedback--spaced {1172  margin-top: 12px;1173}11741175.peach-settings-actions--row {1176  display: flex;1177  gap: 6px;1178}11791180.peach-settings-actions--end {1181  margin-top: 14px;1182  justify-content: flex-end;1183}11841185.peach-settings-stack {1186  display: flex;1187  flex-direction: column;1188  gap: 6px;1189}11901191.peach-settings-stack--tight {1192  gap: 4px;1193}11941195.peach-settings-stack--spacious {1196  gap: 8px;1197}11981199.peach-settings-input {1200  width: 100%;1201  box-sizing: border-box;1202  padding: 8px 10px;1203  background: rgba(0, 0, 0, 0.22);1204  border: 1px solid transparent;1205  border-radius: 6px;1206  color: var(--peach-t0);1207  font-family: var(--font-ui);1208  font-size: 0.75rem;1209  outline: none;1210  transition: border-color 120ms ease, background 120ms ease;1211}12121213.peach-settings-input:focus {1214  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1215  background: rgba(0, 0, 0, 0.28);1216}12171218.peach-settings-input[type="password"] {1219  font-family: var(--font-mono);1220  letter-spacing: 0.04em;1221}12221223.peach-hidden-file-input {1224  display: none;1225}12261227.peach-checkbox-note {1228  display: flex;1229  align-items: flex-start;1230  gap: 8px;1231  font-size: 0.6875rem;1232  color: var(--peach-t1);1233  cursor: pointer;1234  margin: 12px 0;1235}12361237.peach-checkbox-note input {1238  margin-top: 1px;1239}12401241.peach-danger-notice {1242  background: rgba(220, 80, 60, 0.08);1243  border: 1px solid rgba(220, 80, 60, 0.2);1244  border-radius: 6px;1245  padding: 9px 11px;1246  font-size: 0.6875rem;1247  color: var(--peach-t1);1248  line-height: 1.5;1249}12501251.peach-info-notice {1252  font-size: 0.6875rem;1253  color: var(--peach-t1);1254  line-height: 1.5;1255  background: var(--surface-card);1256  border: 1px solid var(--peach-t3);1257  border-radius: 6px;1258  padding: 8px 10px;1259}12601261.peach-info-notice--warn {1262  border-color: rgba(220, 38, 38, 0.4);1263  background: rgba(220, 38, 38, 0.06);1264  color: rgba(220, 38, 38, 0.92);1265  margin-bottom: 8px;1266}12671268.peach-strength-row {1269  display: flex;1270  align-items: center;1271  gap: 8px;1272  margin-bottom: 10px;1273}12741275.peach-strength-track {1276  flex: 1;1277  height: 4px;1278  background: var(--peach-s2);1279  border-radius: 2px;1280  overflow: hidden;1281}12821283.peach-strength-fill {1284  height: 100%;1285  border-radius: 2px;1286  transition: width 120ms ease, background 120ms ease;1287}12881289/* ── Type selector tabs ── */1290.peach-type-tabs {1291  display: flex;1292  gap: 0;1293  background: var(--peach-t4);1294  border-radius: 8px;1295  padding: 3px;1296}12971298.peach-type-tab {1299  flex: 1;1300  display: flex;1301  align-items: center;1302  justify-content: center;1303  gap: 6px;1304  padding: 6px 10px;1305  border-radius: 6px;1306  border: none;1307  background: transparent;1308  cursor: pointer;1309  font-family: Inter, system-ui, sans-serif;1310  font-size: 0.6875rem;1311  font-weight: 400;1312  letter-spacing: 0.04em;1313  color: var(--peach-t1);1314  transition: background 150ms ease, color 150ms ease;1315}13161317.peach-type-tab.is-active {1318  background: var(--peach-s2);1319  color: var(--peach-t0);1320  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1321}13221323.peach-type-tab:not(.is-active):hover {1324  color: var(--peach-t0);1325}13261327.peach-type-tab svg {1328  opacity: 0.7;1329  flex-shrink: 0;1330}13311332.peach-type-tab.is-active svg {1333  opacity: 1;1334}13351336/* ── List view ───────────────────────────────────────────────────────── */1337.peach-list-top {1338  padding: 0 10px;1339  min-height: 46px;1340  display: flex;1341  align-items: center;1342  gap: 6px;1343  border-bottom: 1px solid var(--peach-t3);1344  flex-shrink: 0;1345  background: var(--peach-s1);1346}1347.peach-vault-list {1348  flex: 1;1349  overflow-y: auto;1350  scrollbar-width: none;1351}1352.peach-vault-list::-webkit-scrollbar { display: none; }13531354/* Scrollbar — vault list */1355.peach-vault-list {1356  scrollbar-width: thin;1357  scrollbar-color: var(--peach-t3) transparent;1358}13591360.peach-vault-list::-webkit-scrollbar {1361  width: 3px;1362}13631364.peach-vault-list::-webkit-scrollbar-thumb {1365  background: var(--peach-t3);1366  border-radius: 2px;1367}13681369.peach-entry-row {1370  width: 100%;1371  display: flex;1372  align-items: center;1373  gap: 10px;1374  padding: 9px 16px;1375  background: transparent;1376  border: none;1377  border-bottom: 1px solid var(--peach-t3);1378  cursor: pointer;1379  color: inherit;1380  text-align: left;1381  transition: background 80ms ease;1382}1383.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1384.peach-entry-row:last-child { border-bottom: none; }1385.peach-entry-row.is-active {1386  box-shadow: inset 2px 0 0 var(--peach-accent);1387  background: rgba(240,232,216,0.03);1388}1389.peach-entry-row:focus-visible {1390  outline: none;1391  box-shadow: 0 0 0 1px var(--peach-border-accent);1392  background: rgba(240,232,216,0.03);1393}1394.peach-entry-row-icon {1395  width: 26px; height: 26px;1396  border-radius: 7px;1397  border: 1px solid var(--peach-t3);1398  display: flex; align-items: center; justify-content: center;1399  color: var(--peach-t2);1400  flex-shrink: 0;1401}1402.peach-entry-row-icon.is-breach {1403  border-color: rgba(220,80,60,0.3);1404  color: rgba(220,80,60,0.7);1405}14061407/* Title-initials chip used as the favicon fallback for login entries whose1408 * real favicon hasn't been cached by the browser yet (freshly-imported,1409 * never-visited domains). Background colour is hashed from the title so1410 * the same entry always shows the same chip. The chip fits the same1411 * 26×26 row icon slot the favicon would take. */1412.peach-favicon-initials {1413  display: inline-flex;1414  align-items: center;1415  justify-content: center;1416  width: 100%;1417  height: 100%;1418  border-radius: 4px;1419  font-family: "IBM Plex Mono", monospace;1420  font-size: 0.5625rem;1421  font-weight: 600;1422  letter-spacing: 0.04em;1423  color: rgba(240, 232, 216, 0.92);1424  text-transform: uppercase;1425  user-select: none;1426}1427.peach-entry-row-info { flex: 1; min-width: 0; }1428.peach-entry-row-name {1429  display: block;1430  font-family: var(--font-display);1431  font-size: 1.0625rem;1432  font-style: italic;1433  font-weight: 400;1434  color: var(--peach-t0);1435  line-height: 1.2;1436  white-space: nowrap;1437  overflow: hidden;1438  text-overflow: ellipsis;1439}1440.peach-entry-row-meta {1441  display: block;1442  font-family: "IBM Plex Mono", monospace;1443  font-size: 0.5625rem;1444  color: var(--peach-t2);1445  margin-top: 1px;1446  letter-spacing: 0.05em;1447}1448.peach-entry-row-dot {1449  width: 5px; height: 5px;1450  border-radius: 50%;1451  background: rgba(220,80,60,0.7);1452  flex-shrink: 0;1453}1454.peach-new-entry-row {1455  display: flex;1456  align-items: center;1457  justify-content: center;1458  gap: 6px;1459  width: 100%;1460  padding: 11px;1461  background: transparent;1462  border: none;1463  border-top: 1px solid var(--peach-t3);1464  color: var(--peach-t2);1465  font-family: "IBM Plex Mono", monospace;1466  font-size: 0.5625rem;1467  text-transform: uppercase;1468  letter-spacing: 0.14em;1469  cursor: pointer;1470  flex-shrink: 0;1471  transition: color 120ms ease, background 120ms ease;1472}1473.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14741475/* ── Multi-select mode ─────────────────────────────────────────────── */14761477/* Select-mode trigger button in sort bar — same shape as trash btn */1478.peach-sort-select-btn {1479  display: flex;1480  align-items: center;1481  justify-content: center;1482  padding: 3px 5px;1483  background: transparent;1484  border: none;1485  cursor: pointer;1486  color: var(--peach-t2);1487  border-radius: 4px;1488  transition: color 140ms ease, background 140ms ease;1489}1490.peach-sort-select-btn:hover {1491  color: var(--peach-t1);1492  background: var(--peach-t3);1493}14941495/* Sort bar in select mode */1496.peach-select-cancel-btn {1497  background: transparent;1498  border: none;1499  padding: 0 4px;1500  cursor: pointer;1501  font-family: "IBM Plex Mono", monospace;1502  font-size: 0.5625rem;1503  letter-spacing: 0.12em;1504  text-transform: uppercase;1505  color: var(--peach-t2);1506  transition: color 140ms ease;1507  flex-shrink: 0;1508}1509.peach-select-cancel-btn:hover { color: var(--peach-t0); }15101511.peach-select-count-label {1512  flex: 1;1513  text-align: center;1514  font-family: "IBM Plex Mono", monospace;1515  font-size: 0.5625rem;1516  letter-spacing: 0.14em;1517  text-transform: uppercase;1518  color: var(--peach-t1);1519}15201521.peach-select-all-btn {1522  background: transparent;1523  border: none;1524  padding: 0 4px;1525  cursor: pointer;1526  font-family: "IBM Plex Mono", monospace;1527  font-size: 0.5625rem;1528  letter-spacing: 0.12em;1529  text-transform: uppercase;1530  color: var(--peach-t2);1531  transition: color 140ms ease;1532  flex-shrink: 0;1533}1534.peach-select-all-btn:hover { color: var(--peach-accent); }15351536/* List in select mode */1537.peach-vault-list.is-selecting .peach-entry-row {1538  cursor: default;1539}1540.peach-vault-list.is-selecting .peach-entry-row:hover {1541  background: rgba(240,232,216,0.02);1542}1543.peach-vault-list.is-selecting .peach-entry-row.is-selected {1544  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1545}1546.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1547  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1548}15491550/* Select indicator circles in icon slot */1551.peach-entry-row-icon.is-select-icon {1552  color: var(--peach-t2);1553}1554.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1555  color: var(--peach-accent);1556}15571558/* Delete action bar at bottom (replaces new-entry row) */1559.peach-select-action-bar {1560  display: flex;1561  align-items: center;1562  justify-content: center;1563  gap: 7px;1564  width: 100%;1565  padding: 11px;1566  background: transparent;1567  border: none;1568  border-top: 1px solid var(--peach-t3);1569  color: var(--peach-t1);1570  font-family: "IBM Plex Mono", monospace;1571  font-size: 0.5625rem;1572  text-transform: uppercase;1573  letter-spacing: 0.14em;1574  cursor: pointer;1575  flex-shrink: 0;1576  transition: color 120ms ease, background 120ms ease;1577}1578.peach-select-action-bar:not(:disabled):hover {1579  color: var(--peach-t0);1580  background: rgba(220,80,60,0.06);1581}1582.peach-select-action-bar:not(:disabled):hover svg {1583  stroke: rgba(220,80,60,0.8);1584}1585.peach-select-action-bar:disabled,1586.peach-select-action-bar.is-empty {1587  color: var(--peach-t2);1588  cursor: default;1589  opacity: 0.5;1590}1591.peach-search-counter-list {1592  white-space: nowrap;1593  flex-shrink: 0;1594}1595.peach-list-empty {1596  min-height: 180px;1597  display: grid;1598  place-items: center;1599  color: var(--peach-t2);1600  font-family: "IBM Plex Mono", monospace;1601  font-size: 0.6875rem;1602}16031604/* ── Settings view ───────────────────────────────────────────────────── */1605.peach-settings-body {1606  flex: 1;1607  overflow-y: auto;1608  min-height: 0;1609  display: flex;1610  flex-direction: column;1611  padding: 2px 0 10px;1612}1613.peach-settings-group {1614  margin: 4px 10px;1615  padding: 9px 14px 11px;1616  border-radius: 12px;1617  border: 1px solid rgba(255, 255, 255, 0.07);1618  background: rgba(26, 20, 16, 0.60);1619  backdrop-filter: blur(10px) saturate(1.3);1620  -webkit-backdrop-filter: blur(10px) saturate(1.3);1621}16221623.peach-settings-group + .peach-settings-group {1624  margin-top: 6px;1625}16261627@supports not (backdrop-filter: blur(1px)) {1628  .peach-settings-group {1629    background: rgba(26, 20, 16, 0.90);1630    border-color: rgba(255, 255, 255, 0.09);1631    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1632  }1633}16341635.light .peach-settings-group,1636[data-theme="light"] .peach-settings-group {1637  background: rgba(253, 248, 244, 0.68);1638  border-color: rgba(0, 0, 0, 0.07);1639  backdrop-filter: blur(10px) saturate(1.2);1640  -webkit-backdrop-filter: blur(10px) saturate(1.2);1641}16421643@supports not (backdrop-filter: blur(1px)) {1644  .light .peach-settings-group,1645  [data-theme="light"] .peach-settings-group {1646    background: rgba(253, 248, 244, 0.95);1647    border-color: rgba(0, 0, 0, 0.09);1648  }1649}1650.peach-export-intro {1651  padding-bottom: 8px;1652}1653.peach-export-card {1654  display: grid;1655  gap: 10px;1656}1657.peach-rune-canvas {1658  border-radius: 8px;1659  background: rgba(0, 0, 0, 0.22);1660  flex: 1;1661  align-self: center;1662}1663.peach-script-input {1664  font-family: "PeachScript", monospace;1665  font-size: 0.6875rem;1666  line-height: 1.9;1667  letter-spacing: 0.06em;1668  color: var(--peach-t0);1669  background: rgba(0, 0, 0, 0.22);1670  border: none;1671  border-radius: 6px;1672  padding: 12px;1673  width: 100%;1674  min-height: 96px;1675  resize: vertical;1676  word-break: break-all;1677  scrollbar-width: none;1678  -ms-overflow-style: none;1679}16801681.peach-script-input::-webkit-scrollbar { display: none; }1682.peach-qr-canvas-wrap {1683  display: flex;1684  justify-content: center;1685  padding: 12px 0 6px;1686}1687.peach-qr-canvas-wrap canvas {1688  display: block;1689  background: #ffffff;1690  border-radius: 6px;1691  max-width: 100%;1692  height: auto;1693}1694.peach-csv-warning {1695  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1696  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1697  color: var(--peach-t0);1698  border-radius: 6px;1699  padding: 10px 12px;1700  margin-bottom: 8px;1701  font-size: 0.75rem;1702  line-height: 1.45;1703}1704.peach-export-card--primary {1705  background:1706    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1707}17081709/* Export menu — distribute the three format cards across the popup. */1710.peach-export-menu {1711  display: flex;1712  flex-direction: column;1713  flex: 1;1714  min-height: 0;1715}1716.peach-export-menu .peach-settings-group {1717  flex: 1;1718  display: flex;1719  flex-direction: column;1720  justify-content: center;1721  gap: 10px;1722}17231724/* Result view — the script-string fills the remaining vertical surface. */1725.peach-export-result-group {1726  flex: 1;1727  display: flex;1728  flex-direction: column;1729  min-height: 0;1730  border-bottom: none;1731}1732.peach-export-result-group .peach-export-card {1733  flex: 1;1734  min-height: 0;1735  display: flex;1736  flex-direction: column;1737  gap: 10px;1738}1739.peach-export-result-group .peach-export-card-copy {1740  flex-shrink: 0;1741}1742.peach-export-result-group .peach-settings-label {1743  flex-shrink: 0;1744}1745.peach-export-result-group button {1746  flex-shrink: 0;1747}1748.peach-export-card-head {1749  display: flex;1750  align-items: center;1751  justify-content: space-between;1752  gap: 10px;1753}1754.peach-export-card-copy {1755  margin: 0;1756  font-size: 0.75rem;1757  line-height: 1.55;1758  color: var(--peach-t1);1759}1760.peach-export-note {1761  margin: 0;1762  font-size: 0.625rem;1763  line-height: 1.5;1764  color: var(--peach-t2);1765}1766.peach-export-pill {1767  display: inline-flex;1768  align-items: center;1769  padding: 4px 8px;1770  border-radius: 999px;1771  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1772  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1773  color: var(--peach-accent);1774  font-family: "IBM Plex Mono", monospace;1775  font-size: 0.5rem;1776  letter-spacing: 0.12em;1777  text-transform: uppercase;1778  white-space: nowrap;1779}1780.peach-export-pill--danger {1781  border-color: rgba(220,80,60,0.22);1782  background: rgba(220,80,60,0.08);1783  color: var(--peach-breach);1784}1785.peach-export-password-stack {1786  gap: 8px;1787}1788.peach-settings-label {1789  margin: 0 0 6px;1790  font-family: "IBM Plex Mono", monospace;1791  font-size: 0.5rem;1792  text-transform: uppercase;1793  letter-spacing: 0.18em;1794  color: var(--peach-t2);1795}1796.peach-settings-row {1797  display: flex;1798  align-items: center;1799  justify-content: space-between;1800  gap: 12px;1801  min-height: 34px;1802  padding: 6px 0;1803  font-size: 0.8125rem;1804  color: var(--peach-t1);1805}1806.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1807.peach-settings-value {1808  font-family: "IBM Plex Mono", monospace;1809  font-size: 0.625rem;1810  color: var(--peach-t2);1811}18121813.peach-settings-value--status {1814  display: flex;1815  align-items: center;1816  gap: 6px;1817}18181819.peach-settings-link {1820  font-family: "IBM Plex Mono", monospace;1821  font-size: 0.625rem;1822  color: var(--peach-accent);1823  text-decoration: none;1824  cursor: pointer;1825}1826.peach-settings-link:hover {1827  text-decoration: underline;1828}18291830.peach-settings-row--stack {1831  flex-direction: column;1832  align-items: stretch;1833  gap: 6px;1834}18351836.peach-settings-row--top {1837  align-items: flex-start;1838}18391840.peach-settings-row-main {1841  display: flex;1842  flex-direction: column;1843  gap: 4px;1844  flex: 1;1845}1846.peach-toggle {1847  width: 28px; height: 16px;1848  border-radius: 999px;1849  background: var(--peach-t3);1850  border: 1px solid var(--peach-t3);1851  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1852  flex-shrink: 0;1853  transition: background 200ms ease, border-color 200ms ease;1854  cursor: pointer;1855}1856.peach-toggle.is-on {1857  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1858  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1859}1860.peach-toggle-knob {1861  width: 10px; height: 10px;1862  border-radius: 50%;1863  background: var(--peach-t2);1864  flex-shrink: 0;1865  transform: translateX(0px);1866  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1867}1868.peach-toggle.is-on .peach-toggle-knob {1869  background: var(--peach-accent);1870  transform: translateX(12px);1871}1872.peach-settings-footer {1873  display: flex;1874  align-items: center;1875  gap: 8px;1876  margin-top: auto;1877  padding: 14px 16px 8px;1878  font-family: "IBM Plex Mono", monospace;1879  font-size: 0.5625rem;1880  color: var(--peach-t2);1881}18821883/* ── Settings home navigation ──────────────────────────────────────────── */1884.peach-settings-nav-label {1885  margin: 0 0 2px;1886  padding: 12px 16px 4px;1887  font-family: "IBM Plex Mono", monospace;1888  font-size: 0.5rem;1889  text-transform: uppercase;1890  letter-spacing: 0.18em;1891  color: var(--peach-t2);1892}18931894.peach-settings-cat-row {1895  display: flex;1896  align-items: center;1897  gap: 10px;1898  width: 100%;1899  padding: 9px 16px;1900  background: none;1901  border: none;1902  border-bottom: 1px solid var(--peach-t3);1903  cursor: pointer;1904  text-align: left;1905  color: inherit;1906  transition: background var(--peach-dur-80) ease;1907}1908.peach-settings-cat-row:hover {1909  background: var(--peach-t3);1910}1911.peach-settings-cat-row:last-child {1912  border-bottom: none;1913}19141915.peach-settings-cat-icon {1916  width: 28px;1917  height: 28px;1918  border-radius: 7px;1919  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1920  color: var(--peach-accent);1921  display: flex;1922  align-items: center;1923  justify-content: center;1924  flex-shrink: 0;1925}1926/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1927   Darken the icon stroke to ink and bump the bg tint so the icon reads1928   sharply while the cell still feels accent-tinted. */1929.light .peach-settings-cat-icon {1930  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1931  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1932}19331934.peach-settings-cat-content {1935  flex: 1;1936  display: flex;1937  flex-direction: column;1938  gap: 2px;1939  min-width: 0;1940}19411942.peach-settings-cat-name {1943  font-size: 0.8125rem;1944  font-weight: 450;1945  color: var(--peach-t0);1946  line-height: 1.2;1947}19481949.peach-settings-cat-desc {1950  font-size: 0.625rem;1951  color: var(--peach-t2);1952  line-height: 1.3;1953  white-space: nowrap;1954  overflow: hidden;1955  text-overflow: ellipsis;1956}19571958.peach-settings-cat-chevron {1959  color: var(--peach-t2);1960  flex-shrink: 0;1961  opacity: 0.5;1962}19631964/* ── Settings sub-view section labels ──────────────────────────────────── */1965.peach-settings-sub-label {1966  margin: 12px 0 4px;1967  font-family: "IBM Plex Mono", monospace;1968  font-size: 0.5rem;1969  text-transform: uppercase;1970  letter-spacing: 0.18em;1971  color: var(--peach-t2);1972}1973.peach-settings-sub-label:first-child {1974  margin-top: 4px;1975}19761977/* ── Settings: collapsible Advanced section ─────────────────────────────── */1978.peach-settings-advanced-toggle {1979  display: flex;1980  align-items: center;1981  justify-content: space-between;1982  width: 100%;1983  background: none;1984  border: none;1985  cursor: pointer;1986  padding: 12px 0 4px;1987  margin: 0;1988  color: inherit;1989}1990.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {1991  color: var(--peach-t1);1992}1993.peach-settings-advanced-chevron {1994  font-size: 0.5625rem;1995  color: var(--peach-t3);1996  letter-spacing: 0;1997  transition: color 120ms ease;1998}19992000/* ── Feedback form ──────────────────────────────────────────────────────── */2001.peach-feedback-group {2002  flex: 1;2003  display: flex;2004  flex-direction: column;2005  border-bottom: none;2006}20072008.peach-feedback-intro {2009  margin: 4px 0 14px;2010  font-size: 0.75rem;2011  line-height: 1.55;2012  color: var(--peach-t1);2013}20142015.peach-feedback-chips {2016  display: flex;2017  flex-wrap: wrap;2018  gap: 6px;2019  margin-bottom: 14px;2020}20212022.peach-feedback-chip {2023  padding: 4px 10px;2024  border-radius: 999px;2025  border: 1px solid var(--peach-t3);2026  background: none;2027  color: var(--peach-t2);2028  font-size: 0.6875rem;2029  font-family: var(--font-ui);2030  cursor: pointer;2031  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2032    background var(--peach-dur-80) ease;2033}2034.peach-feedback-chip:hover {2035  border-color: var(--peach-t2);2036  color: var(--peach-t1);2037}2038.peach-feedback-chip.is-active {2039  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2040  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2041  color: var(--peach-accent);2042}20432044.peach-feedback-textarea {2045  flex: 1;2046  width: 100%;2047  min-height: 120px;2048  box-sizing: border-box;2049  background: rgba(0, 0, 0, 0.22);2050  border: 1px solid transparent;2051  border-radius: 6px;2052  color: var(--peach-t0);2053  font-size: 0.75rem;2054  font-family: var(--font-ui);2055  line-height: 1.5;2056  padding: 8px 10px;2057  resize: none;2058  outline: none;2059  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2060}2061.peach-feedback-textarea:focus {2062  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2063  background: rgba(0, 0, 0, 0.28);2064}2065.peach-feedback-textarea:focus {2066  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2067}2068.peach-feedback-textarea::placeholder {2069  color: var(--peach-t2);2070}20712072.peach-feedback-meta {2073  margin: 6px 0 0;2074  font-size: 0.625rem;2075  color: var(--peach-t2);2076  font-family: "IBM Plex Mono", monospace;2077}20782079.peach-feedback-result {2080  margin: 8px 0 0;2081  font-size: 0.6875rem;2082  font-family: "IBM Plex Mono", monospace;2083}2084.peach-feedback-result--ok { color: var(--peach-sync-ok); }2085.peach-feedback-result--err { color: var(--peach-breach); }20862087.peach-feedback-submit {2088  width: 100%;2089  margin-top: 12px;2090  justify-content: center;2091}20922093.peach-feedback-anon {2094  margin: 8px 0 0;2095  font-size: 0.625rem;2096  color: var(--peach-t2);2097  text-align: center;2098}20992100.peach-passkey-badge {2101  margin-left: 8px;2102  font-size: 0.625rem;2103  letter-spacing: 0.06em;2104  text-transform: uppercase;2105  color: var(--peach-t2);2106  font-family: var(--font-ui);2107  vertical-align: middle;2108}21092110.peach-passkey-delete-btn {2111  color: var(--peach-breach);2112  border-color: rgba(229, 85, 85, 0.25);2113}21142115.peach-passkey-delete-confirm {2116  display: flex;2117  align-items: center;2118  gap: 8px;2119  padding: 8px 10px;2120  background: rgba(229, 85, 85, 0.06);2121  border: 1px solid rgba(229, 85, 85, 0.2);2122  border-radius: 6px;2123}21242125.peach-passkey-delete-confirm-copy {2126  flex: 1;2127  font-size: 0.6875rem;2128  color: var(--peach-t1);2129}21302131.peach-passkey-delete-btn--confirm {2132  color: var(--peach-breach);2133  border-color: rgba(229, 85, 85, 0.4);2134}21352136.peach-passkey-activity {2137  flex-direction: column;2138  align-items: flex-start;2139  gap: 4px;2140}21412142.peach-passkey-meta {2143  font-size: 0.6875rem;2144  color: var(--peach-t2);2145}21462147.peach-passkey-actions {2148  position: relative;2149  z-index: 1;2150  margin-top: 14px;2151  display: flex;2152  flex-direction: column;2153  gap: 8px;2154}21552156.peach-passkey-approval {2157  display: flex;2158  flex-direction: column;2159  align-items: center;2160  padding: 22px 20px 18px;2161  gap: 10px;2162  text-align: center;2163}21642165.peach-passkey-approval-icon {2166  width: 46px;2167  height: 46px;2168  border-radius: 12px;2169  background: var(--peach-s2);2170  border: 1px solid var(--peach-t3);2171  display: flex;2172  align-items: center;2173  justify-content: center;2174  flex-shrink: 0;2175  color: var(--peach-accent);2176}21772178.peach-passkey-approval-icon img,2179.peach-passkey-approval-icon svg {2180  width: 28px;2181  height: 28px;2182  border-radius: 6px;2183}21842185.peach-passkey-approval-rp {2186  font-family: var(--font-ui);2187  font-size: 0.75rem;2188  color: var(--peach-t2);2189  letter-spacing: 0.03em;2190}21912192.peach-passkey-approval-action {2193  font-family: var(--font-display);2194  font-style: italic;2195  font-weight: 300;2196  font-size: 22px;2197  color: var(--peach-t0);2198  line-height: 1.1;2199  margin: 2px 0;2200}22012202.peach-passkey-approval-user {2203  font-family: var(--font-mono);2204  font-size: 0.6875rem;2205  color: var(--peach-t1);2206  background: var(--peach-s2);2207  border: 1px solid var(--peach-t3);2208  border-radius: 4px;2209  padding: 3px 8px;2210}22112212.peach-passkey-approval-notice {2213  font-size: 0.625rem;2214  color: var(--peach-t2);2215  line-height: 1.5;2216  max-width: 220px;2217}22182219.peach-passkey-approval-actions {2220  display: flex;2221  gap: 8px;2222  width: 100%;2223  margin-top: 6px;2224}22252226.peach-passkey-approval-actions .peach-btn {2227  flex: 1;2228}22292230/* ── Inline generator drawer ── */2231.peach-generator-drawer {2232  display: grid;2233  grid-template-rows: 0fr;2234  transition: grid-template-rows 320ms var(--peach-curve-arrival);2235  overflow: hidden;2236}2237.peach-generator-drawer.is-open {2238  grid-template-rows: 1fr;2239}2240.peach-generator-drawer-inner {2241  min-height: 0;2242  overflow: hidden;2243}2244.peach-generator-drawer-content {2245  border-top: 1px solid var(--peach-t3);2246  padding: 8px 0 4px;2247  display: flex;2248  flex-direction: column;2249  gap: 8px;2250}22512252/* ── Compact generator (inside entry edit) ── */2253.peach-generator-drawer-content--compact {2254  border-top: 1px solid var(--peach-t3);2255  padding: 8px 0 2px;2256  gap: 7px;2257}2258.peach-pwgen-compact-display-row {2259  display: flex;2260  align-items: center;2261  gap: 6px;2262}2263.peach-pwgen-compact-output {2264  flex: 1;2265  min-width: 0;2266  font-family: "IBM Plex Mono", monospace;2267  font-size: 0.6875rem;2268  font-weight: 400;2269  letter-spacing: 0.04em;2270  color: var(--peach-t0);2271  background: rgba(240, 232, 216, 0.04);2272  border: 1px solid var(--peach-t3);2273  border-radius: 5px;2274  padding: 5px 8px;2275  word-break: break-all;2276  line-height: 1.5;2277}2278.peach-pwgen-compact-controls {2279  display: flex;2280  align-items: center;2281  gap: 6px;2282}2283.peach-pwgen-compact-slider {2284  flex: 1;2285  min-width: 0;2286  height: 2px !important;2287}2288.peach-pwgen-compact-controls .peach-pwgen-len-num {2289  flex-shrink: 0;2290  min-width: 18px;2291  text-align: right;2292}2293.peach-pwgen-compact-pills {2294  display: flex;2295  gap: 3px;2296  flex-shrink: 0;2297}2298.peach-pwgen-compact-pills .peach-pwgen-pill {2299  padding: 2px 7px;2300  font-size: 0.5rem;2301}2302.peach-pwgen-compact-use {2303  flex-shrink: 0;2304  font-size: 0.625rem !important;2305  padding: 3px 9px !important;2306  min-height: 22px !important;2307  border-radius: 5px !important;2308}23092310/* ── Password edit row (input + eye toggle side-by-side) ── */2311.peach-password-edit-row {2312  display: flex;2313  align-items: center;2314  gap: 6px;2315}2316.peach-password-edit-row .peach-inline-input {2317  flex: 1;2318  min-width: 0;2319}23202321/* ── Generate toggle link ── */2322.peach-generate-toggle-link {2323  display: inline-flex;2324  align-items: center;2325  gap: 5px;2326  background: none;2327  border: none;2328  padding: 0;2329  cursor: pointer;2330  font-family: "IBM Plex Mono", monospace;2331  font-size: 0.625rem;2332  color: var(--peach-t2);2333  letter-spacing: 0.04em;2334  transition: color 120ms ease;2335  align-self: flex-start;2336}2337.peach-generate-toggle-link:hover {2338  color: var(--peach-accent);2339}23402341/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2342.peach-entry-body {2343  flex: 1;2344  overflow-y: auto;2345  overflow-x: hidden;2346  scrollbar-width: none;2347  -ms-overflow-style: none;2348  overscroll-behavior: contain;2349  display: grid;2350  gap: 10px;2351  align-content: start;2352  padding: 10px 20px 14px;2353  min-width: 0;2354  min-height: 0;2355}2356.peach-entry-body::-webkit-scrollbar { display: none; }23572358/* Type-toggle pills + inline note toolbar */2359.peach-new-type-row {2360  display: flex;2361  align-items: center;2362  gap: 6px;2363  margin-bottom: 2px;2364}2365.peach-new-type-btn {2366  background: transparent;2367  border: 1px solid var(--peach-t3);2368  border-radius: 12px;2369  padding: 3px 10px;2370  font-family: "IBM Plex Mono", monospace;2371  font-size: 0.5625rem;2372  letter-spacing: 0.12em;2373  text-transform: uppercase;2374  color: var(--peach-t2);2375  cursor: pointer;2376  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2377}2378.peach-new-type-btn.is-active {2379  color: var(--peach-t0);2380  border-color: var(--peach-accent);2381  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2382}2383.peach-new-type-btn:not(.is-active):hover {2384  color: var(--peach-t1);2385  border-color: var(--peach-t2);2386}23872388/* Editable title */2389.peach-new-title-wrap { margin: 0 0 2px; }2390.peach-new-title-input {2391  background: transparent;2392  border: none;2393  outline: none;2394  width: 100%;2395  color: var(--peach-t0);2396  font-family: var(--font-display);2397  font-style: italic;2398  font-weight: 400;2399  font-size: 40px;2400  line-height: 0.95;2401  caret-color: var(--peach-accent);2402}2403.peach-new-title-input::placeholder { color: var(--peach-t2); }24042405/* Editable domain field */2406.peach-domain-value--edit {2407  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2408  font-size: 0.625rem;2409  font-style: italic;2410  letter-spacing: 0.12em;2411  color: var(--peach-t1);2412  background: transparent;2413  border: none;2414  border-bottom: 1px solid var(--peach-t3);2415  outline: none;2416  width: 100%;2417  padding: 2px 0;2418  caret-color: var(--peach-accent);2419  transition: border-color 140ms ease, color 140ms ease;2420}2421.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2422.peach-domain-value--edit:focus {2423  border-bottom-color: rgba(240, 232, 216, 0.28);2424  color: var(--peach-t0);2425}24262427/* Editable field values (username, password, totp) */2428.peach-field-value--edit {2429  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2430  font-size: 0.8125rem;2431  color: var(--peach-t0);2432  background: transparent;2433  border: none;2434  border-bottom: 1px solid var(--peach-t3);2435  outline: none;2436  flex: 1;2437  min-width: 0;2438  padding: 3px 0;2439  caret-color: var(--peach-accent);2440  transition: border-color 140ms ease, color 140ms ease;2441}2442.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2443.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2444.peach-field-value--edit:focus {2445  border-bottom-color: rgba(240, 232, 216, 0.28);2446  color: var(--peach-t0);2447}24482449/* "+ add optional field" links */2450.peach-entry-add-links {2451  display: flex;2452  gap: 12px;2453  flex-wrap: wrap;2454  margin-top: -2px;2455}2456.peach-add-field-link {2457  background: transparent;2458  border: none;2459  padding: 0;2460  cursor: pointer;2461  font-family: "IBM Plex Mono", monospace;2462  font-size: 0.5625rem;2463  letter-spacing: 0.1em;2464  text-transform: uppercase;2465  color: var(--peach-t2);2466  transition: color 140ms ease;2467}2468.peach-add-field-link:hover { color: var(--peach-accent); }24692470/* ── New entry form (legacy classes) ────────────────────────────────── */2471.peach-new-body {2472  flex: 1;2473  overflow-y: auto;2474  padding: 10px 20px 14px;2475}2476.peach-new-name-input {2477  background: transparent;2478  border: none;2479  outline: none;2480  width: 100%;2481  color: var(--peach-t0);2482  font-family: var(--font-display);2483  font-style: italic;2484  font-weight: 400;2485  font-size: 40px;2486  line-height: 0.95;2487  caret-color: var(--peach-accent);2488}2489.peach-new-name-input::placeholder { color: var(--peach-t2); }2490.peach-new-field-input {2491  background: transparent;2492  border: none;2493  outline: none;2494  flex: 1;2495  min-width: 0;2496  caret-color: var(--peach-accent);2497}2498.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }24992500/* ── Canary card ── */2501.peach-canary-card {2502  border: 1px solid rgba(217, 160, 48, 0.2);2503  background: rgba(217, 160, 48, 0.03);2504  border-radius: 8px;2505  padding: 12px;2506}25072508.peach-canary-settings-header {2509  display: flex;2510  align-items: center;2511  justify-content: space-between;2512  cursor: pointer;2513  user-select: none;2514}25152516.peach-canary-card .peach-label {2517  color: rgba(217, 160, 48, 0.85);2518}25192520.peach-canary-card .peach-new-field-input {2521  border-color: rgba(217, 160, 48, 0.25);2522}25232524.peach-canary-card .peach-new-field-input:focus {2525  border-color: rgba(217, 160, 48, 0.5);2526}25272528.peach-canary-body {2529  margin-top: 12px;2530  display: flex;2531  flex-direction: column;2532  gap: 10px;2533}25342535.peach-canary-explainer {2536  display: flex;2537  gap: 10px;2538  padding: 10px 12px;2539  border-radius: 10px;2540  background: rgba(217, 160, 48, 0.06);2541  border: 1px solid rgba(217, 160, 48, 0.22);2542  margin-bottom: 4px;2543}25442545.peach-canary-explainer-icon {2546  font-size: 1rem;2547  flex-shrink: 0;2548  line-height: 1.2;2549}25502551.peach-canary-explainer-title {2552  font-family: var(--font-ui);2553  font-size: 0.6875rem;2554  font-weight: 500;2555  color: rgba(217, 160, 48, 0.9);2556  margin: 0 0 3px;2557}25582559.peach-canary-explainer-copy {2560  font-family: var(--font-ui);2561  font-size: 0.625rem;2562  color: var(--peach-t2);2563  line-height: 1.55;2564  margin: 0;2565}25662567.peach-canary-hint {2568  font-size: 0.625rem;2569  color: var(--peach-t2);2570  font-family: Inter, system-ui, sans-serif;2571  line-height: 1.5;2572  margin-top: 4px;2573}25742575.peach-canary-actions-row {2576  display: flex;2577  align-items: center;2578  gap: 8px;2579}25802581.peach-canary-test-btn {2582  border-color: rgba(217, 160, 48, 0.3);2583  color: rgba(217, 160, 48, 0.85);2584}25852586.peach-canary-test-result {2587  font-size: 0.625rem;2588  font-family: Inter, system-ui, sans-serif;2589}25902591.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2592.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }25932594.peach-canary-badge {2595  display: flex;2596  position: relative;2597  z-index: 1;2598  align-items: center;2599  gap: 5px;2600  padding: 4px 10px;2601  background: rgba(217, 160, 48, 0.12);2602  border: 1px solid rgba(217, 160, 48, 0.35);2603  border-radius: 6px;2604  margin-bottom: 6px;2605  width: fit-content;2606}26072608.peach-canary-badge-label {2609  font-size: 0.625rem;2610  letter-spacing: 0.06em;2611  color: rgba(217, 160, 48, 0.9);2612  font-family: var(--font-ui);2613  text-transform: uppercase;2614}26152616.peach-canary-badge-icon {2617  font-size: 0.6875rem;2618}26192620.peach-canary-suppress-row {2621  display: flex;2622  align-items: center;2623  gap: 8px;2624  padding: 6px 10px;2625  background: rgba(217, 160, 48, 0.08);2626  border-radius: 6px;2627  margin-bottom: 8px;2628}26292630.peach-canary-suppress-label {2631  font-size: 0.6875rem;2632  color: rgba(217, 160, 48, 0.85);2633  cursor: pointer;2634  font-family: var(--font-ui);2635  letter-spacing: 0.04em;2636}26372638.peach-regen-panel {2639  position: relative;2640  z-index: 1;2641  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2642  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2643  border-radius: 8px;2644  padding: 12px;2645  margin-bottom: 8px;2646}26472648.peach-regen-panel-header {2649  display: flex;2650  align-items: center;2651  justify-content: space-between;2652  margin-bottom: 10px;2653}26542655.peach-regen-panel-title {2656  font-size: 0.6875rem;2657  font-weight: 600;2658  letter-spacing: 0.06em;2659  text-transform: uppercase;2660  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2661}26622663.peach-regen-output {2664  background: rgba(0, 0, 0, 0.2);2665  border-radius: 6px;2666  padding: 10px;2667  margin-bottom: 10px;2668  font-family: var(--font-mono);2669  font-size: 0.8125rem;2670  word-break: break-all;2671  color: var(--peach-t1);2672}26732674.peach-regen-actions {2675  display: flex;2676  gap: 6px;2677}26782679.peach-regen-actions--spaced {2680  margin-bottom: 8px;2681}26822683.peach-regen-action-grow {2684  flex: 1;2685}26862687.peach-regen-copy-btn {2688  padding: 0 8px;2689}26902691.peach-regen-success {2692  position: relative;2693  z-index: 1;2694  background: rgba(40, 180, 80, 0.1);2695  border: 1px solid rgba(40, 180, 80, 0.3);2696  border-radius: 8px;2697  padding: 10px 12px;2698  margin-bottom: 8px;2699  display: flex;2700  align-items: center;2701  gap: 8px;2702  font-size: 0.6875rem;2703  color: rgba(40, 180, 80, 0.9);2704}27052706/* ── Note editor overlay ── */2707.peach-note-editor {2708  position: absolute;2709  inset: 0;2710  z-index: 200;2711  display: flex;2712  flex-direction: column;2713  background:2714    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2715    var(--peach-bg);2716  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2717}27182719.peach-note-editor-header {2720  display: flex;2721  align-items: center;2722  gap: 10px;2723  padding: 14px 16px 10px;2724  border-bottom: 1px solid var(--peach-t3);2725  flex-shrink: 0;2726}27272728.peach-note-editor-back {2729  background: transparent;2730  border: none;2731  cursor: pointer;2732  color: var(--peach-t2);2733  padding: 4px 6px;2734  border-radius: 6px;2735  display: flex;2736  align-items: center;2737  transition: color 120ms ease, background 120ms ease;2738  flex-shrink: 0;2739}2740.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }27412742.peach-note-editor-label {2743  flex: 1;2744  font-family: var(--font-display);2745  font-style: italic;2746  font-size: 0.9375rem;2747  color: var(--peach-t1);2748  letter-spacing: 0.02em;2749}27502751.peach-note-editor-save-btn {2752  background: transparent;2753  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2754  border-radius: 8px;2755  color: var(--peach-accent);2756  font-family: "IBM Plex Mono", monospace;2757  font-size: 0.625rem;2758  letter-spacing: 0.06em;2759  text-transform: uppercase;2760  padding: 3px 10px;2761  cursor: pointer;2762  transition: background 120ms ease, border-color 120ms ease;2763}2764.peach-note-editor-save-btn:hover:not(:disabled) {2765  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2766  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2767}2768.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }27692770.peach-note-toolbar {2771  display: flex;2772  align-items: center;2773  gap: 3px;2774  padding: 6px 14px 5px;2775  border-bottom: 1px solid var(--peach-t3);2776  flex-shrink: 0;2777}27782779.peach-note-tool-btn {2780  background: transparent;2781  border: 1px solid transparent;2782  border-radius: 5px;2783  color: var(--peach-t2);2784  font-family: "IBM Plex Mono", monospace;2785  font-size: 0.625rem;2786  letter-spacing: 0.04em;2787  padding: 2px 8px;2788  cursor: pointer;2789  line-height: 1.6;2790  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2791}2792.peach-note-tool-btn:hover {2793  background: var(--peach-t4);2794  color: var(--peach-t0);2795  border-color: var(--peach-t3);2796}27972798.peach-note-tool-icon {2799  padding: 3px 7px;2800  display: inline-flex;2801  align-items: center;2802  justify-content: center;2803}28042805.peach-note-tool-divider {2806  width: 1px;2807  height: 14px;2808  background: var(--peach-t3);2809  margin: 0 4px;2810  flex-shrink: 0;2811}28122813.peach-note-editor-body {2814  flex: 1;2815  overflow-y: auto;2816  padding: 16px 20px 20px;2817  outline: none;2818  font-family: var(--font-display);2819  font-size: 1rem;2820  line-height: 1.75;2821  color: var(--peach-t0);2822  scrollbar-width: none;2823  word-break: break-word;2824}2825.peach-note-editor-body:empty::before {2826  content: "write your note…";2827  color: var(--peach-t3);2828  font-style: italic;2829  pointer-events: none;2830}28312832/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2833.peach-note-editor-inline {2834  display: flex;2835  flex-direction: column;2836  flex: 1;2837  min-height: 0;2838}2839.peach-note-editor-body--inline {2840  flex: 1;2841  min-height: 0;2842  font-size: 0.9375rem;2843  padding: 10px 20px 14px;2844}28452846/* Full-width toolbar row inside the body (Add.tsx note type).2847   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2848.peach-note-toolbar-body {2849  display: flex;2850  align-items: center;2851  gap: 3px;2852  padding: 5px 20px 4px;2853  margin: 2px -20px 0;2854  border-bottom: 1px solid var(--peach-t3);2855  flex-shrink: 0;2856}28572858/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2859   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2860   and .peach-note-tool-divider button-level styles. */2861.peach-note-toolbar-inline {2862  display: flex;2863  align-items: center;2864  gap: 3px;2865  margin-left: auto;2866  padding-left: 10px;2867  border-left: 1px solid var(--peach-t3);2868  min-height: 22px;2869}28702871/* Entry.tsx toolbar row (no tabs, toolbar only) */2872.peach-entry-note-toolbar-row {2873  display: flex;2874  align-items: center;2875  margin: 4px 0 6px;2876  position: relative;2877  z-index: 1;2878}2879.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2880  border-left: none;2881  padding-left: 0;2882  margin-left: 0;2883}28842885/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2886.peach-note-body {2887  display: flex;2888  flex-direction: column;2889  flex: 1;2890  min-height: 0;2891  margin: 4px 0 0;2892}2893.peach-entry-body--new .peach-note-body {2894  margin: 8px -20px 0;2895}28962897/* Add.tsx body is a grid by default; swap to a flex column when a note is2898   active so the note body can stretch and pin the tags row to the bottom. */2899.peach-entry-body--new:has(.peach-note-body) {2900  display: flex;2901  flex-direction: column;2902}29032904/* Rich content element styles (editor + display) */2905.peach-note-editor-body h2,2906.peach-note-content h2 {2907  font-family: var(--font-display);2908  font-size: 20px;2909  font-weight: 600;2910  font-style: italic;2911  color: var(--peach-t0);2912  margin: 6px 0 2px;2913  line-height: 1.3;2914}2915.peach-note-editor-body ul,2916.peach-note-content ul {2917  padding-left: 18px;2918  margin: 3px 0;2919  list-style: disc;2920}2921.peach-note-editor-body ol,2922.peach-note-content ol {2923  padding-left: 18px;2924  margin: 3px 0;2925  list-style: decimal;2926}2927.peach-note-editor-body li,2928.peach-note-content li { margin: 2px 0; }2929.peach-note-editor-body hr,2930.peach-note-content hr {2931  border: none;2932  border-top: 1px solid var(--peach-t3);2933  margin: 10px 0;2934}29352936/* font size elements from execCommand */2937.peach-note-editor-body font[size="1"],2938.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }2939.peach-note-editor-body font[size="2"],2940.peach-note-content font[size="2"] { font-size: 0.8125rem; }2941.peach-note-editor-body font[size="3"],2942.peach-note-content font[size="3"] { font-size: 1rem; }2943.peach-note-editor-body font[size="4"],2944.peach-note-content font[size="4"] { font-size: 20px; }2945.peach-note-editor-body font[size="5"],2946.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }29472948/* bold / italic inside the editor and note display */2949.peach-note-editor-body b, .peach-note-editor-body strong,2950.peach-note-content b, .peach-note-content strong { font-weight: 700; }2951.peach-note-editor-body em, .peach-note-editor-body i,2952.peach-note-content em, .peach-note-content i { font-style: italic; }29532954/* note display — rendered HTML, no pre-wrap */2955.peach-note-content {2956  overflow: auto;2957  max-height: 340px;2958  word-break: break-word;2959}29602961/* ── Note textarea ── */2962.peach-note-textarea {2963  width: 100%;2964  min-height: 180px;2965  max-height: 280px;2966  resize: vertical;2967  background: var(--peach-t4);2968  border: 1px solid var(--peach-t3);2969  border-radius: 8px;2970  padding: 10px 12px;2971  font-family: "IBM Plex Mono", monospace;2972  font-size: 0.75rem;2973  line-height: 1.7;2974  color: var(--peach-t1);2975  outline: none;2976  transition: border-color 150ms ease;2977}29782979.peach-note-textarea:focus {2980  border-color: var(--peach-t2);2981}29822983.peach-note-char-count {2984  font-family: "IBM Plex Mono", monospace;2985  font-size: 0.5625rem;2986  color: var(--peach-t3);2987  text-align: right;2988  margin-top: 4px;2989  letter-spacing: 0.1em;2990}29912992/* ── Field input baseline ── */2993.peach-new-field-input {2994  width: 100%;2995  background: transparent;2996  border: none;2997  border-bottom: 1px solid var(--peach-t3);2998  padding: 4px 0;2999  color: var(--peach-t1);3000  font-family: "IBM Plex Mono", monospace;3001  font-size: 0.8125rem;3002  outline: none;3003  transition: border-color 150ms ease;3004}30053006.peach-new-field-input:focus {3007  border-bottom-color: var(--peach-t0);3008  color: var(--peach-t0);3009}30103011.peach-new-name-input {3012  width: 100%;3013  background: transparent;3014  border: none;3015  border-bottom: 1px solid var(--peach-t3);3016  padding: 6px 0;3017  font-family: var(--font-display);3018  font-style: italic;3019  font-size: 28px;3020  color: var(--peach-t0);3021  outline: none;3022  transition: border-color 150ms ease;3023}30243025.peach-new-name-input:focus {3026  border-bottom-color: var(--peach-t1);3027}30283029.peach-new-name-input::placeholder {3030  color: var(--peach-t2);3031  font-style: italic;3032}30333034.peach-new-field-input::placeholder {3035  color: var(--peach-t3);3036}30373038/* ── Demo entrance animation ── */3039#hd-shell {3040  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3041}3042@keyframes hd-shell-enter {3043  from { opacity: 0; transform: scale(0.96) translateY(16px); }3044  to   { opacity: 1; transform: scale(1) translateY(0); }3045}30463047/* ── Keyframes ── */3048@keyframes peach-char-enter {3049  from { opacity: 0; transform: translateY(0.22em); }3050  to   { opacity: 1; transform: translateY(0); }3051}3052@keyframes peach-content-enter {3053  from { opacity: 0.96; transform: translateY(4px); }3054  to   { opacity: 1; transform: translateY(0); }3055}3056@keyframes peach-content-exit {3057  from { opacity: 1; transform: translateY(0); }3058  to   { opacity: 0.92; transform: translateY(-3px); }3059}3060@keyframes peach-screen-enter {3061  from { opacity: 0; transform: translateY(14px); }3062  to   { opacity: 1; transform: translateY(0); }3063}3064@keyframes peach-shell-fade-in {3065  from { opacity: 0; }3066  to   { opacity: 1; }3067}3068@keyframes peach-veil-in {3069  from { opacity: 0; }3070  to   { opacity: 1; }3071}3072@keyframes peach-lock-settle {3073  0%   { transform: scale(0.9); }3074  65%  { transform: scale(1.08); }3075  100% { transform: scale(1); }3076}3077@keyframes peach-copy-confirm {3078  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3079  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); }3080}3081@keyframes peach-copy-retreat {3082  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); }3083  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3084}3085@keyframes peach-copy-flood {3086  from { opacity: 0; transform: scaleX(0.15); }3087  to   { opacity: 1; transform: scaleX(1); }3088}3089@keyframes peach-copy-icon-settle {3090  from  { transform: scale(0.84); }3091  70%   { transform: scale(1.08); }3092  to    { transform: scale(1); }3093}3094@keyframes peach-copy-sheen-retreat {3095  from { opacity: 1; transform: scaleX(1); }3096  to   { opacity: 0; transform: scaleX(0.15); }3097}3098@keyframes peach-copy-drain {3099  from { width: 100%; }3100  to   { width: 0; }3101}3102@keyframes peach-shake {3103  0%, 100% { transform: translateX(0); }3104  20%      { transform: translateX(-6px); }3105  40%      { transform: translateX(6px); }3106  60%      { transform: translateX(-4px); }3107  80%      { transform: translateX(4px); }3108}31093110@keyframes pip-pulse {3111  0% { transform: scale(1); }3112  40% { transform: scale(2.2); }3113  100% { transform: scale(1); }3114}311531163117/* ── Password generator ── */3118.peach-pwgen-body {3119  flex: 1; overflow-y: auto;3120  display: flex; flex-direction: column;3121}3122.peach-policy-badge {3123  display: flex; align-items: center;3124  padding: 6px 20px 0;3125  font-size: 0.625rem; font-family: Inter, sans-serif;3126  color: var(--peach-t2); letter-spacing: 0.04em;3127}3128.peach-pwgen-display {3129  padding: 14px 20px 12px;3130  border-bottom: 1px solid var(--peach-t3);3131  display: flex; align-items: flex-start; gap: 10px;3132}3133.peach-pwgen-display-row {3134  display: flex;3135  align-items: flex-start;3136  gap: 8px;3137  padding-bottom: 8px;3138  border-bottom: 1px solid var(--peach-t3);3139}3140.peach-pwgen-output {3141  flex: 1; min-width: 0; margin: 0;3142  font-family: "IBM Plex Mono", monospace;3143  font-size: 0.8125rem; color: var(--peach-t0);3144  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3145  white-space: normal;3146  padding: 10px 12px;3147  background: var(--peach-t4);3148  border-radius: 6px;3149  min-height: 36px;3150}3151.peach-pwgen-output-display {3152  flex: 1;3153  min-width: 0;3154  margin: 0;3155  font-family: var(--font-display);3156  font-style: italic;3157  font-weight: 300;3158  font-size: 32px;3159  line-height: 1.05;3160  color: var(--peach-t0);3161  word-break: break-all;3162  overflow-wrap: break-word;3163  white-space: normal;3164  letter-spacing: 0.02em;3165}3166.peach-pwgen-display-actions {3167  display: flex;3168  flex-direction: column;3169  gap: 4px;3170  flex-shrink: 0;3171  margin-top: 2px;3172}3173.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3174.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3175.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3176.peach-pwgen-len-num {3177  font-family: "IBM Plex Mono", monospace;3178  font-size: 0.75rem; color: var(--peach-accent);3179}3180.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3181.peach-pwgen-toggles { display: flex; flex-direction: column; }3182.peach-pwgen-charset-pills {3183  display: flex;3184  gap: 6px;3185  flex-wrap: wrap;3186}3187.peach-pwgen-pill {3188  padding: 4px 11px;3189  border-radius: 999px;3190  border: 1px solid var(--peach-t3);3191  background: transparent;3192  color: var(--peach-t2);3193  font-family: "IBM Plex Mono", monospace;3194  font-size: 0.5625rem;3195  letter-spacing: 0.08em;3196  cursor: pointer;3197  transition: all 150ms ease;3198}3199.peach-pwgen-pill.is-on {3200  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3201  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3202  color: var(--peach-accent);3203}3204.peach-pwgen-pill:not(.is-on):hover {3205  color: var(--peach-t1);3206  border-color: var(--peach-t2);3207}3208.peach-pwgen-use-btn {3209  width: 100%;3210  min-height: 34px;3211  border-radius: 8px;3212  margin-top: 2px;3213}3214.peach-pwgen-toggle-row {3215  display: flex; align-items: center; justify-content: space-between;3216  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3217}3218.peach-pwgen-toggle-row:last-child { border-bottom: none; }3219.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }32203221.peach-screen-prelock {3222  z-index: 10;3223}32243225.prelock-form {3226  display: grid;3227  gap: 12px;3228}32293230/* Peach popup should not expose native scrollbars on internal panels. */3231.peach-settings-body,3232.peach-new-body,3233.peach-pwgen-body,3234.lock-screen,3235.peach-import-preview {3236  scrollbar-width: none;3237  -ms-overflow-style: none;3238  overscroll-behavior: contain;3239}3240.peach-settings-body::-webkit-scrollbar,3241.peach-new-body::-webkit-scrollbar,3242.peach-pwgen-body::-webkit-scrollbar,3243.lock-screen::-webkit-scrollbar,3244.peach-import-preview::-webkit-scrollbar {3245  width: 0;3246  height: 0;3247  display: none;3248}32493250.lock-screen {3251  height: 100%;3252  min-height: 100%;3253  overflow-y: auto;3254  padding: 18px 18px 16px;3255  gap: 14px;3256  grid-template-rows: auto auto auto 1fr auto;3257  align-content: stretch;3258  position: relative;3259  isolation: isolate;3260}3261.peach-screen.lock-screen--vault-stage {3262  display: flex;3263  flex-direction: column;3264  justify-content: flex-start;3265  gap: 18px;3266  padding: 20px 18px 18px;3267  overflow: hidden;3268}3269.peach-screen.lock-screen--vault-stage .peach-lock-panel {3270  margin-top: 0;3271}3272.lock-screen--onboarding {3273  display: flex;3274  flex-direction: column;3275  gap: 12px;3276  justify-content: flex-start;3277}32783279.lock-screen::before {3280  content: "";3281  position: absolute;3282  inset: 12px 18px auto auto;3283  width: 160px;3284  height: 160px;3285  border-radius: 999px;3286  background:3287    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%);3288  filter: blur(6px);3289  opacity: 0.7;3290  pointer-events: none;3291  z-index: 0;3292}32933294.peach-lock-rune-string {3295  flex: 1;3296  display: flex;3297  align-items: center;3298  justify-content: center;3299  gap: 6px;3300  font-family: PeachScript, monospace;3301  font-size: 0.8125rem;3302  letter-spacing: 0.05em;3303  pointer-events: none;3304  user-select: none;3305  position: relative;3306  z-index: 1;3307}33083309.peach-lock-rune-string span {3310  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3311  text-shadow:3312    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3313    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3314  transition: color 0.9s ease, text-shadow 0.9s ease;3315}33163317.peach-lock-rune-string span.is-glowing {3318  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3319  text-shadow:3320    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3321    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3322}33233324.lock-screen-header {3325  display: flex;3326  align-items: center;3327  justify-content: space-between;3328  position: relative;3329  z-index: 1;3330}33313332.lock-password-input.shake {3333  animation: peach-shake 300ms ease-in-out;3334}33353336.peach-hint-error {3337  color: rgba(220, 80, 60, 0.92);3338}33393340.peach-onboarding-headline {3341  margin: 0;3342  font-family: var(--font-display);3343  font-size: 35px;3344  line-height: 0.88;3345  font-style: italic;3346  font-weight: 400;3347  max-width: 252px;3348}33493350.peach-lock-copy {3351  display: grid;3352  gap: 8px;3353  position: relative;3354  z-index: 1;3355}33563357.peach-lock-copy--onboarding {3358  gap: 10px;3359}33603361.peach-lock-hero {3362  position: relative;3363  z-index: 1;3364  display: grid;3365  gap: 8px;3366  min-height: 0;3367  padding: 4px 2px 0;3368  border: none;3369  border-radius: 0;3370  background: transparent;3371  box-shadow: none;3372}3373.peach-lock-hero-art {3374  position: absolute;3375  right: -8px;3376  top: -6px;3377  width: 120px;3378  height: 120px;3379  display: flex;3380  align-items: center;3381  justify-content: center;3382  pointer-events: none;3383  opacity: 0.12;3384  filter: saturate(0.9);3385}3386.peach-lock-hero-mark {3387  width: 100%;3388  height: 100%;3389}3390/* Peach body stays brand-peach across every accent — we don't want a3391   green or blue peach when sage/sky is selected. Leaf + stem keep the3392   sage tint because a real peach has a sage leaf. */3393.peach-lock-hero-mark path:nth-child(2),3394.peach-lock-hero-mark path:nth-child(3) {3395  stroke: rgba(123, 144, 96, 0.88);3396  fill: rgba(123, 144, 96, 0.88);3397}3398.peach-lock-hero > *:not(.peach-lock-hero-art) {3399  position: relative;3400  z-index: 1;3401}34023403.peach-lock-eyebrow {3404  display: inline-flex;3405  align-items: center;3406  width: fit-content;3407  padding: 4px 9px;3408  border-radius: 999px;3409  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3410  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3411  color: var(--peach-t0);3412  font-family: "IBM Plex Mono", monospace;3413  font-size: 0.5rem;3414  letter-spacing: 0.18em;3415  text-transform: uppercase;3416}34173418.peach-lock-label-row {3419  display: flex;3420  align-items: center;3421  justify-content: space-between;3422  margin-bottom: 0;3423}34243425.peach-lock-reveal-btn {3426  display: inline-flex;3427  align-items: center;3428  gap: 4px;3429  background: none;3430  border: none;3431  cursor: pointer;3432  font-family: "IBM Plex Mono", monospace;3433  font-size: 0.5625rem;3434  letter-spacing: 0.06em;3435  color: var(--peach-t2);3436  padding: 2px 0;3437  transition: color 150ms ease;3438}34393440.peach-lock-reveal-btn:hover {3441  color: var(--peach-t1);3442}34433444.peach-lock-warning {3445  color: rgba(220, 80, 60, 0.85) !important;3446  line-height: 1.5;3447}34483449.peach-onboarding-cards {3450  display: grid;3451  gap: 8px;3452  position: relative;3453  z-index: 1;3454}34553456.peach-lock-panel {3457  position: relative;3458  z-index: 1;3459  display: grid;3460  gap: 9px;3461  padding: 14px 16px 15px;3462  border-radius: 18px;3463  border: 1px solid var(--peach-t3);3464  background:3465    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3466  box-shadow:3467    inset 0 1px 0 rgba(240, 232, 216, 0.04),3468    0 12px 28px rgba(0, 0, 0, 0.12);3469}34703471/* Glass surface — lock panel and settings groups */3472.peach-glass {3473  background: rgba(26, 20, 16, 0.65);3474  border: 1px solid rgba(255, 255, 255, 0.08);3475  border-radius: 12px;3476  backdrop-filter: blur(12px) saturate(1.4);3477  -webkit-backdrop-filter: blur(12px) saturate(1.4);3478}34793480@supports not (backdrop-filter: blur(1px)) {3481  .peach-glass {3482    background: rgba(26, 20, 16, 0.92);3483    border: 1px solid rgba(255, 255, 255, 0.10);3484    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3485  }3486}34873488.light .peach-glass,3489[data-theme="light"] .peach-glass {3490  background: rgba(253, 248, 244, 0.70);3491  border: 1px solid rgba(0, 0, 0, 0.07);3492  backdrop-filter: blur(12px) saturate(1.2);3493  -webkit-backdrop-filter: blur(12px) saturate(1.2);3494}34953496@supports not (backdrop-filter: blur(1px)) {3497  .light .peach-glass,3498  [data-theme="light"] .peach-glass {3499    background: rgba(253, 248, 244, 0.95);3500    border: 1px solid rgba(0, 0, 0, 0.09);3501  }3502}35033504/* Lock panel keeps its own border-radius over the generic glass token */3505.peach-lock-panel.peach-glass {3506  border-radius: 18px;3507  background: rgba(26, 20, 16, 0.65);3508  border: 1px solid rgba(255, 255, 255, 0.08);3509  box-shadow:3510    inset 0 1px 0 rgba(255, 255, 255, 0.05),3511    0 12px 28px rgba(0, 0, 0, 0.3);3512}35133514.light .peach-lock-panel.peach-glass,3515[data-theme="light"] .peach-lock-panel.peach-glass {3516  background: rgba(238, 227, 204, 0.75);3517  border: 1px solid rgba(34, 24, 9, 0.10);3518  box-shadow:3519    inset 0 1px 0 rgba(255, 255, 255, 0.5),3520    0 8px 24px rgba(80, 56, 32, 0.15);3521}35223523@supports not (backdrop-filter: blur(1px)) {3524  .peach-lock-panel.peach-glass {3525    background: rgba(26, 20, 16, 0.92);3526    box-shadow:3527      inset 0 1px 0 rgba(255, 255, 255, 0.05),3528      0 12px 28px rgba(0, 0, 0, 0.4);3529  }3530  .light .peach-lock-panel.peach-glass,3531  [data-theme="light"] .peach-lock-panel.peach-glass {3532    background: rgba(238, 227, 204, 0.96);3533  }3534}35353536.peach-lock-panel--secondary {3537  gap: 12px;3538}35393540.peach-lock-panel-header {3541  display: flex;3542  align-items: baseline;3543  justify-content: space-between;3544  gap: 12px;3545}35463547.peach-lock-option-grid {3548  display: grid;3549  gap: 10px;3550}35513552.peach-lock-option {3553  width: 100%;3554  display: grid;3555  gap: 6px;3556  padding: 14px 15px;3557  border-radius: 16px;3558  border: 1px solid rgba(240, 232, 216, 0.08);3559  background: rgba(240, 232, 216, 0.02);3560  color: var(--peach-t0);3561  text-align: left;3562  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3563}35643565.peach-lock-option:hover {3566  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3567  background: rgba(240, 232, 216, 0.04);3568  transform: translateY(-1px);3569}35703571.peach-lock-option-title {3572  font-size: 0.75rem;3573  color: var(--peach-t0);3574}35753576.peach-lock-option-copy {3577  font-size: 0.6875rem;3578  line-height: 1.55;3579  color: var(--peach-t1);3580}35813582.peach-onboarding-stack {3583  margin-top: 2px;3584}3585.peach-lock-panel-footer {3586  display: grid;3587  gap: 6px;3588  margin-top: 2px;3589  padding-top: 10px;3590  border-top: 1px solid rgba(240, 232, 216, 0.06);3591}35923593/* ── Restore tab view ─────────────────────────────────────────────────────3594   Tab-based restore screen replacing the old three-card picker. */35953596.peach-restore-tabview {3597  overflow: hidden;3598}35993600.peach-restore-tabcard {3601  flex: 1;3602  display: flex;3603  flex-direction: column;3604  gap: 0;3605  padding: 0;3606  overflow: hidden;3607  cursor: default;3608  user-select: none;3609  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3610}36113612/* ── Tab selector ─────────────────────────────────────────────────────── */36133614.peach-restore-tabs {3615  display: flex;3616  justify-content: space-around;3617  padding: 14px 10px 10px;3618  border-bottom: 1px solid var(--peach-t3);3619  gap: 2px;3620  overflow: hidden;3621  scrollbar-width: none;3622}3623.peach-restore-tabs::-webkit-scrollbar { display: none; }36243625.peach-restore-tab {3626  background: none;3627  border: none;3628  cursor: pointer;3629  padding: 3px 2px;3630  font-family: 'Cormorant Garamond', Georgia, serif;3631  font-style: italic;3632  font-size: 11px;3633  color: var(--peach-t2);3634  transition: color 150ms ease, text-shadow 150ms ease;3635  flex: 1;3636  min-width: 0;3637  text-align: center;3638  white-space: nowrap;3639  overflow: hidden;3640  text-overflow: ellipsis;3641}3642.peach-restore-tab:hover {3643  color: var(--peach-accent);3644  text-shadow:3645    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3646    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3647}3648.peach-restore-tab.is-active {3649  color: var(--peach-accent);3650  text-shadow:3651    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3652    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3653}36543655/* ── Content area ─────────────────────────────────────────────────────── */36563657.peach-restore-content {3658  padding: 16px 16px 14px;3659  display: flex;3660  flex-direction: column;3661  gap: 8px;3662  overflow: hidden;3663  scrollbar-width: none;3664  flex: 1;3665}3666.peach-restore-content::-webkit-scrollbar { display: none; }3667.peach-restore-content > * {3668  overflow: hidden;3669  scrollbar-width: none;3670}3671.peach-restore-content > *::-webkit-scrollbar { display: none; }36723673/* ── Shared tab inner layout ──────────────────────────────────────────── */36743675.peach-rt-symbols,3676.peach-rt-mayan,3677.peach-rt-csv,3678.peach-rt-phone {3679  display: flex;3680  flex-direction: column;3681  gap: 8px;3682  overflow: hidden;3683}36843685.peach-rt-submit {3686  width: 100%;3687}36883689.peach-rt-error {3690  margin: 0;3691  font-size: 0.6875rem;3692  color: var(--peach-breach);3693  line-height: 1.4;3694}36953696/* ── PeachScript tab ──────────────────────────────────────────────────── */36973698.peach-restore-symbols-textarea {3699  font-family: 'PeachScript', monospace;3700  font-size: 13px;3701  line-height: 1.9;3702  letter-spacing: 0.1em;3703  word-break: break-all;3704  resize: none;3705  width: 100%;3706  min-height: 56px;3707  max-height: 72px;3708  overflow: hidden;3709  scrollbar-width: none;3710  -ms-overflow-style: none;3711  box-sizing: border-box;3712  padding: 6px 8px;3713  border-radius: 8px;3714  border: 1px solid var(--peach-t3);3715  background: rgba(240, 232, 216, 0.03);3716  color: var(--peach-t0);3717}3718.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }3719.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }37203721.peach-restore-symbols-pass {3722  width: 100%;3723  box-sizing: border-box;3724  padding: 7px 10px;3725  border-radius: 8px;3726  border: 1px solid var(--peach-t3);3727  background: rgba(240, 232, 216, 0.03);3728  color: var(--peach-t0);3729  font-size: 0.8125rem;3730}3731.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }3732.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }37333734.peach-rt-divider {3735  text-align: center;3736  font-size: 0.6875rem;3737  color: var(--peach-t2);3738  font-style: italic;3739}37403741.peach-rt-file-label {3742  width: 100%;3743  justify-content: center;3744}37453746.peach-rt-anim-canvas {3747  width: 100%;3748  height: 180px;3749  border-radius: 10px;3750  overflow: hidden;3751  display: block;3752}37533754/* ── Mayan Code tab ───────────────────────────────────────────────────── */37553756.peach-rt-upload-zone {3757  display: flex;3758  align-items: center;3759  justify-content: center;3760  height: 64px;3761  border-radius: 10px;3762  border: 1px dashed var(--peach-t3);3763  background: rgba(240, 232, 216, 0.02);3764  cursor: pointer;3765  transition: border-color 150ms ease, background 150ms ease;3766  overflow: hidden;3767}3768.peach-rt-upload-zone:hover {3769  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3770  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);3771}3772.peach-rt-upload-zone.is-busy {3773  cursor: default;3774  opacity: 0.6;3775}37763777.peach-rt-upload-label {3778  font-size: 0.75rem;3779  color: var(--peach-t2);3780  font-style: italic;3781}37823783.peach-rt-entry-line {3784  margin: 0;3785  font-size: 0.75rem;3786  color: var(--peach-t1);3787  font-style: italic;3788  text-align: center;3789}37903791/* ── CSV tab ──────────────────────────────────────────────────────────── */37923793.peach-rt-csv-sources {3794  margin: 0;3795  font-size: 0.6875rem;3796  color: var(--peach-t2);3797  line-height: 1.5;3798  text-align: center;3799}38003801.peach-rt-csv-warning {3802  margin: 0;3803  font-family: "IBM Plex Mono", monospace;3804  font-size: 0.5625rem;3805  letter-spacing: 0.12em;3806  color: var(--peach-breach);3807  text-align: center;3808}38093810/* ── From Phone tab ───────────────────────────────────────────────────── */38113812.peach-rt-phone-code {3813  margin: 0;3814  text-align: center;3815  font-family: "IBM Plex Mono", monospace;3816  font-size: 22px;3817  letter-spacing: 0.18em;3818  color: var(--peach-t0);3819}38203821.peach-rt-phone-qr {3822  display: block;3823  width: 96px;3824  height: 96px;3825  margin: 0 auto;3826  border-radius: 6px;3827  image-rendering: pixelated;3828  overflow: hidden;3829}38303831.peach-rt-phone-hint {3832  margin: 0;3833  font-size: 0.6875rem;3834  color: var(--peach-t2);3835  line-height: 1.55;3836  text-align: center;3837}38383839.peach-rt-phone-gate-text {3840  margin: 0;3841  font-size: 0.8125rem;3842  color: var(--peach-t1);3843  text-align: center;3844}38453846/* ── Intro popup ──────────────────────────────────────────────────────── */38473848.peach-restore-intro-overlay {3849  position: absolute;3850  inset: 0;3851  z-index: 100;3852  display: flex;3853  align-items: center;3854  justify-content: center;3855  padding: 20px;3856  background: rgba(12, 10, 6, 0.7);3857  backdrop-filter: blur(4px);3858  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3859}38603861.peach-restore-intro-card {3862  width: 100%;3863  display: flex;3864  flex-direction: column;3865  gap: 12px;3866  padding: 22px 20px 20px;3867  border-radius: 16px;3868  border: 1px solid var(--peach-t3);3869  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));3870  backdrop-filter: blur(4px);3871  -webkit-backdrop-filter: blur(4px);3872  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);3873}38743875.peach-restore-intro-headline {3876  margin: 0;3877  font-family: var(--font-display);3878  font-style: italic;3879  font-size: 20px;3880  font-weight: 400;3881  color: var(--peach-t0);3882}38833884.peach-restore-intro-body {3885  display: flex;3886  flex-direction: column;3887  gap: 8px;3888}3889.peach-restore-intro-body p {3890  margin: 0;3891  font-size: 0.75rem;3892  color: var(--peach-t1);3893  line-height: 1.5;3894}38953896.peach-restore-intro-btn {3897  width: 100%;3898  margin-top: 4px;3899}39003901/* Snapshot restore panel */3902.peach-snapshot-panel {3903  gap: 10px;3904  overflow-y: auto;3905  max-height: 340px;3906}3907.peach-snapshot-list {3908  display: flex;3909  flex-direction: column;3910  gap: 4px;3911}3912.peach-snapshot-row {3913  display: flex;3914  align-items: center;3915  justify-content: space-between;3916  width: 100%;3917  padding: 8px 10px;3918  border-radius: 8px;3919  border: 1px solid rgba(240, 232, 216, 0.07);3920  background: transparent;3921  cursor: pointer;3922  transition: border-color 120ms, background 120ms;3923  text-align: left;3924  gap: 8px;3925}3926.peach-snapshot-row:hover {3927  border-color: rgba(240, 232, 216, 0.14);3928  background: rgba(240, 232, 216, 0.03);3929}3930.peach-snapshot-row.is-selected {3931  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3932  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3933}3934.peach-snapshot-time {3935  font-size: 11.5px;3936  color: var(--peach-t0);3937  flex: 1;3938}3939.peach-snapshot-count {3940  font-family: "IBM Plex Mono", monospace;3941  font-size: 0.625rem;3942  color: var(--peach-t2);3943  flex-shrink: 0;3944}3945.peach-snapshot-confirm {3946  display: flex;3947  flex-direction: column;3948  gap: 8px;3949  padding-top: 10px;3950  border-top: 1px solid rgba(240, 232, 216, 0.06);3951}3952.peach-snapshot-warning {3953  display: flex;3954  align-items: flex-start;3955  gap: 6px;3956  font-size: 10.5px;3957  color: rgba(220, 80, 60, 0.85);3958  line-height: 1.55;3959}3960.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3961.peach-snapshot-confirm-row {3962  display: flex;3963  gap: 6px;3964  align-items: center;3965}3966.peach-snapshot-restore-btn {3967  width: 100%;3968}3969.peach-lock-hero--unlock .peach-lock-hero-art {3970  width: 112px;3971  height: 112px;3972  right: 0;3973  top: 2px;3974  opacity: 0.1;3975}39763977.peach-card {3978  border: 1px solid var(--peach-t3);3979  border-radius: 18px;3980  background:3981    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3982  box-shadow:3983    inset 0 0 0 1px var(--peach-border-accent),3984    inset 0 1px 0 rgba(240, 232, 216, 0.04),3985    0 12px 32px rgba(0, 0, 0, 0.14);3986  overflow: hidden;3987}39883989.peach-card-active {3990  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3991  box-shadow:3992    inset 0 1px 0 rgba(240, 232, 216, 0.05),3993    0 16px 38px rgba(0, 0, 0, 0.18),3994    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3995}39963997.peach-card-disabled {3998  opacity: 0.72;3999}40004001.peach-card-header {4002  width: 100%;4003  padding: 13px 16px 11px;4004  background: transparent;4005  color: var(--peach-t0);4006  display: flex;4007  justify-content: space-between;4008  align-items: center;4009  text-align: left;4010  font-size: 0.75rem;4011}40124013.peach-card-body {4014  padding: 0 16px 16px;4015  display: grid;4016  gap: 9px;4017}40184019.peach-card-tag {4020  color: var(--peach-t2);4021  font-family: "IBM Plex Mono", monospace;4022  font-size: 0.5625rem;4023  letter-spacing: 0.12em;4024  text-transform: uppercase;4025}40264027.peach-empty-copy {4028  display: grid;4029  gap: 6px;4030  color: var(--peach-t1);4031  font-size: 0.8125rem;4032}40334034.peach-lock-submit {4035  width: 100%;4036  box-shadow:4037    0 1px 0 rgba(255,255,255,0.10) inset,4038    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4039    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4040    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4041}40424043.peach-lock-secondary {4044  width: 100%;4045  border-color: var(--peach-t3);4046  background: rgba(240, 232, 216, 0.02);4047}40484049.peach-lock-secondary:hover {4050  background: rgba(240, 232, 216, 0.04);4051}40524053.peach-lock-note {4054  max-width: none;4055  line-height: 1.55;4056  margin: 0;4057}40584059.peach-overlay-action {4060  font-size: 0.625rem;4061  padding: 4px 8px;4062  letter-spacing: 0.06em;4063  min-width: 44px;4064  text-align: center;4065}40664067.peach-overlay-spacer {4068  width: 32px;4069}40704071.peach-inline-action {4072  flex-shrink: 0;4073  font-size: 0.5625rem;4074  letter-spacing: 0.1em;4075  text-transform: uppercase;4076  padding: 4px 7px;4077}4078.peach-password-toggle-btn {4079  display: inline-flex;4080  align-items: center;4081  justify-content: center;4082  min-width: 30px;4083  min-height: 26px;4084  padding: 0 7px;4085  border: 1px solid var(--peach-t3);4086  border-radius: 999px;4087  background: rgba(240, 232, 216, 0.04);4088  color: var(--peach-t2);4089  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4090}4091.peach-password-toggle-btn:hover {4092  border-color: var(--peach-t2);4093  color: var(--peach-t0);4094  background: rgba(240, 232, 216, 0.06);4095}40964097.peach-new-textarea {4098  width: 100%;4099  min-height: 88px;4100  resize: vertical;4101  border: 0;4102  outline: none;4103  background: transparent;4104  color: var(--peach-t1);4105  font-family: "IBM Plex Mono", monospace;4106  font-size: 0.75rem;4107  line-height: 1.65;4108  caret-color: var(--peach-accent);4109}41104111.peach-new-textarea::placeholder {4112  color: var(--peach-t2);4113  opacity: 0.7;4114}41154116.peach-settings-actions {4117  display: grid;4118  gap: 8px;4119}41204121.peach-sync-section-label {4122  font-size: 0.6875rem;4123  color: var(--peach-t2);4124  text-transform: uppercase;4125  letter-spacing: 0.05em;4126}41274128.peach-sync-device-row {4129  display: flex;4130  justify-content: space-between;4131  align-items: center;4132  padding: 6px 0;4133  border-bottom: 1px solid var(--peach-t3);4134}41354136.peach-sync-device-info {4137  display: flex;4138  flex-direction: column;4139  gap: 2px;4140}41414142.peach-sync-device-name {4143  font-size: 0.8125rem;4144  color: var(--peach-t0);4145}41464147.peach-sync-device-meta {4148  font-size: 0.6875rem;4149  color: var(--peach-t2);4150}41514152.peach-sync-status-dot {4153  display: inline-block;4154  width: 8px;4155  height: 8px;4156  border-radius: 50%;4157  vertical-align: middle;4158}41594160.peach-sync-remove-btn {4161  color: var(--peach-breach);4162}41634164.peach-sync-advanced-row {4165  display: flex;4166  justify-content: space-between;4167  align-items: center;4168  padding: 6px 0;4169  gap: 12px;4170}41714172.peach-sync-advanced-info {4173  display: flex;4174  flex-direction: column;4175  gap: 2px;4176  flex: 1;4177}41784179.peach-sync-advanced-name {4180  font-size: 0.8125rem;4181  color: var(--peach-t0);4182}41834184.peach-sync-reset-confirm {4185  display: flex;4186  flex-direction: column;4187  gap: 8px;4188  padding: 10px;4189  border: 1px solid var(--peach-breach);4190  border-radius: 10px;4191  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4192}41934194.peach-sync-reset-confirm-headline {4195  font-size: 0.8125rem;4196  font-weight: 600;4197  color: var(--peach-t0);4198  margin: 0;4199}42004201.peach-sync-reset-confirm-body {4202  font-size: 0.75rem;4203  color: var(--peach-t1);4204  margin: 0;4205  line-height: 1.4;4206}42074208.peach-btn--danger {4209  background: var(--peach-breach);4210  color: #fff;4211  border-color: var(--peach-breach);4212}4213.peach-btn--danger:hover:not(:disabled) {4214  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4215}4216.peach-btn--danger:disabled {4217  opacity: 0.55;4218  cursor: not-allowed;4219}42204221.peach-sync-hero-icon {4222  color: var(--peach-t1);4223  opacity: 0.85;4224}42254226.peach-import-preview {4227  margin-bottom: 12px;4228  max-height: 152px;4229  overflow-y: auto;4230  border: 1px solid var(--peach-t3);4231  border-radius: 10px;4232  padding: 8px 10px;4233  display: grid;4234  gap: 8px;4235  background: rgba(240, 232, 216, 0.02);4236}42374238.peach-import-preview-row {4239  display: flex;4240  justify-content: space-between;4241  gap: 10px;4242  font-size: 0.6875rem;4243  color: var(--peach-t1);4244}42454246.peach-import-preview-title {4247  color: var(--peach-t0);4248  flex: 1;4249  min-width: 0;4250  overflow: hidden;4251  text-overflow: ellipsis;4252  white-space: nowrap;4253}42544255.peach-import-preview-meta {4256  color: var(--peach-t2);4257  flex-shrink: 0;4258  max-width: 42%;4259  overflow: hidden;4260  text-overflow: ellipsis;4261  white-space: nowrap;4262}42634264.peach-import-preview-more {4265  color: var(--peach-t2);4266  font-size: 0.625rem;4267}42684269.peach-restore-copy {4270  margin: 0;4271  color: var(--peach-t1);4272  font-size: 0.6875rem;4273  line-height: 1.6;4274}42754276.peach-restore-warning {4277  padding: 10px 12px;4278  border-radius: 12px;4279  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4280  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4281  color: var(--peach-t0);4282  font-size: 0.6875rem;4283  line-height: 1.55;4284}42854286.peach-provider-chips {4287  display: flex;4288  flex-wrap: wrap;4289  gap: 6px;4290}42914292.peach-provider-chip {4293  display: inline-flex;4294  align-items: center;4295  padding: 5px 8px;4296  border-radius: 999px;4297  border: 1px solid var(--peach-t3);4298  background: rgba(240, 232, 216, 0.02);4299  color: var(--peach-t1);4300  font-family: "IBM Plex Mono", monospace;4301  font-size: 0.5rem;4302  letter-spacing: 0.08em;4303  text-transform: uppercase;4304}43054306.peach-restore-file,4307.peach-restore-input {4308  width: 100%;4309  border-radius: 10px;4310  border: 1px solid var(--peach-t3);4311  background: var(--peach-s2);4312  color: var(--peach-t0);4313  font-size: 0.75rem;4314}43154316.peach-restore-file {4317  padding: 9px 10px;4318}43194320.peach-restore-file::file-selector-button {4321  margin-right: 10px;4322  padding: 7px 10px;4323  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4324  border-radius: 999px;4325  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4326  color: var(--peach-t0);4327  font-size: 0.625rem;4328  letter-spacing: 0.08em;4329  text-transform: uppercase;4330  cursor: pointer;4331}43324333.peach-restore-input {4334  padding: 10px 12px;4335}43364337.peach-auth-grid {4338  display: grid;4339  gap: 10px;4340}43414342.peach-import-summary {4343  color: var(--peach-t1);4344  font-size: 0.75rem;4345  line-height: 1.6;4346  margin-bottom: 12px;4347}43484349.peach-restore-error {4350  color: rgba(220, 80, 60, 0.95);4351  font-size: 0.75rem;4352  line-height: 1.55;4353}43544355.peach-passkey-card {4356  max-width: 400px;4357  margin: auto 16px;4358  align-self: center;4359  width: calc(100% - 32px);4360}43614362/* Center the approval card vertically inside the overlay-view (which sets4363 * flex-direction: column without justify-content). Without this, the card4364 * sits at the top with a tall empty band below — looks unfinished on the4365 * 320px popup. */4366.peach-overlay-view:has(.peach-passkey-card) {4367  justify-content: center;4368}43694370.peach-pro-badge {4371  padding: 2px 6px;4372  border-radius: 999px;4373  font-family: var(--font-ui);4374  font-size: 0.625rem;4375  letter-spacing: 0.08em;4376  text-transform: uppercase;4377  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4378  color: var(--peach-accent);4379}43804381/* ── Shortcuts rebind table ─────────────────────────────────── */4382.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4383.peach-shortcut-row {4384  display: flex;4385  align-items: center;4386  gap: 10px;4387  padding: 6px 0;4388}4389.peach-shortcut-row-label {4390  flex: 1;4391  font-size: 0.75rem;4392  color: var(--peach-t0);4393}4394.peach-shortcut-chip {4395  min-width: 64px;4396  padding: 4px 10px;4397  border-radius: 6px;4398  border: 1px solid var(--peach-t3);4399  background: var(--peach-input-bg, var(--surface-card));4400  color: var(--peach-t0);4401  font-family: var(--font-mono);4402  font-size: 0.6875rem;4403  letter-spacing: 0.04em;4404  cursor: pointer;4405  text-align: center;4406  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4407}4408.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4409.peach-shortcut-chip.is-custom {4410  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4411  color: var(--peach-accent);4412}4413.peach-shortcut-chip.is-capturing {4414  border-color: var(--peach-accent);4415  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4416  color: var(--peach-accent);4417  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4418}4419@keyframes peach-shortcut-capture-pulse {4420  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4421  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4422}4423.peach-shortcut-reset {4424  background: transparent;4425  border: none;4426  cursor: pointer;4427  color: var(--peach-t2);4428  padding: 4px 6px;4429  border-radius: 5px;4430  font-size: 0.875rem;4431  line-height: 1;4432  transition: color 120ms ease, background 120ms ease;4433}4434.peach-shortcut-reset:hover {4435  color: var(--peach-t0);4436  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4437}4438.peach-shortcuts-conflict {4439  margin: 4px 0 0;4440  padding: 8px 10px;4441  border-radius: 7px;4442  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4443  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4444  font-family: var(--font-mono);4445  font-size: 0.6875rem;4446  color: var(--peach-t0);4447}44484449/* ── Help dialog overlay (? to open) ────────────────────────── */4450.peach-shortcuts-help-backdrop {4451  position: fixed;4452  inset: 0;4453  background: rgba(0, 0, 0, 0.55);4454  backdrop-filter: blur(2px);4455  display: flex;4456  align-items: center;4457  justify-content: center;4458  z-index: 1000;4459  animation: peach-help-fade-in 140ms ease forwards;4460}4461@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4462.peach-shortcuts-help-card {4463  width: min(320px, 92vw);4464  max-height: 80vh;4465  overflow-y: auto;4466  border-radius: 14px;4467  border: 1px solid var(--peach-t3);4468  background: var(--peach-bg);4469  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4470  padding: 16px 18px 18px;4471  display: flex;4472  flex-direction: column;4473  gap: 12px;4474}4475.peach-shortcuts-help-head {4476  display: flex; align-items: center; justify-content: space-between;4477}4478.peach-shortcuts-help-head h3 {4479  margin: 0;4480  font-family: var(--font-display);4481  font-style: italic;4482  font-weight: 400;4483  font-size: 22px;4484  color: var(--peach-t0);4485}4486.peach-shortcuts-help-close {4487  background: transparent;4488  border: none;4489  color: var(--peach-t2);4490  cursor: pointer;4491  font-size: 0.875rem;4492  padding: 4px 8px;4493  border-radius: 5px;4494}4495.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4496.peach-shortcuts-help-body ul {4497  list-style: none; padding: 0; margin: 4px 0 12px;4498  display: grid; gap: 8px;4499}4500.peach-shortcuts-help-body li {4501  display: flex; align-items: center; justify-content: space-between; gap: 12px;4502  font-size: 0.75rem; color: var(--peach-t0);4503}4504.peach-shortcuts-help-body kbd {4505  font-family: var(--font-mono);4506  font-size: 0.6875rem;4507  padding: 3px 8px;4508  border-radius: 6px;4509  background: var(--surface-card);4510  border: 1px solid var(--peach-t3);4511  color: var(--peach-accent);4512  letter-spacing: 0.04em;4513}45144515/* ── Pro promo on Account screen ────────────────────────────── */4516.peach-pro-promo {4517  position: relative;4518  border-radius: 14px;4519  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4520  background:4521    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4522    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4523    var(--surface-card);4524  overflow: hidden;4525  margin-bottom: 14px;4526}4527.peach-pro-promo-glow {4528  position: absolute;4529  inset: -40% -20% auto auto;4530  width: 220px; height: 220px;4531  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4532  pointer-events: none;4533  filter: blur(8px);4534}4535.peach-pro-promo-inner {4536  position: relative;4537  padding: 18px 18px 16px;4538}4539.peach-pro-promo-title {4540  font-family: var(--font-display);4541  font-style: italic;4542  font-weight: 400;4543  font-size: 28px;4544  line-height: 1;4545  letter-spacing: -0.005em;4546  color: var(--peach-t0);4547  margin: 0 0 4px;4548}4549.peach-pro-promo-tagline {4550  font-family: var(--font-mono);4551  font-size: 0.625rem;4552  letter-spacing: 0.06em;4553  color: var(--peach-t2);4554  margin: 0 0 14px;4555}4556.peach-pro-promo-list {4557  list-style: none;4558  margin: 0 0 16px;4559  padding: 0;4560  display: grid;4561  gap: 9px;4562}4563.peach-pro-promo-list li {4564  display: flex;4565  align-items: flex-start;4566  gap: 9px;4567  font-size: 0.75rem;4568  color: var(--peach-t1);4569  line-height: 1.4;4570}4571.peach-pro-promo-list svg {4572  width: 14px;4573  height: 14px;4574  flex-shrink: 0;4575  color: var(--peach-accent);4576  margin-top: 2px;4577}4578.peach-pro-promo-list span {4579  color: var(--peach-t0);4580}4581.peach-pro-promo-cta {4582  width: 100%;4583  background: var(--peach-accent);4584  color: #fff;4585  border: none;4586  padding: 9px 12px;4587  border-radius: 9px;4588  font-size: 0.75rem;4589  font-weight: 500;4590  font-family: var(--font-ui);4591  letter-spacing: 0.02em;4592  text-decoration: none;4593  display: inline-flex;4594  align-items: center;4595  justify-content: center;4596  cursor: pointer;4597  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4598  box-shadow: 0 2px 16px var(--peach-glow);4599}4600.peach-pro-promo-cta:hover {4601  filter: brightness(1.07);4602  box-shadow: 0 4px 24px var(--peach-glow);4603  transform: translateY(-1px);4604}4605.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }46064607.peach-pro-or-divider {4608  display: flex;4609  align-items: center;4610  gap: 10px;4611  margin: 4px 0 12px;4612  font-family: var(--font-mono);4613  font-size: 0.625rem;4614  letter-spacing: 0.06em;4615  color: var(--peach-t2);4616  text-transform: uppercase;4617}4618.peach-pro-or-divider::before,4619.peach-pro-or-divider::after {4620  content: "";4621  flex: 1;4622  height: 1px;4623  background: var(--peach-t3);4624}46254626.peach-loading {4627  position: absolute;4628  inset: 0;4629  display: flex;4630  align-items: center;4631  justify-content: center;4632  background: var(--bg);4633  animation: peach-loading-pulse 1.2s ease-in-out infinite;4634}46354636@keyframes peach-loading-pulse {4637  0%, 100% { opacity: 0.6; }4638  50% { opacity: 1; }4639}46404641/* ── Health Dashboard ─────────────────────────────────────────────────── */4642.peach-health-body {4643  flex: 1;4644  overflow-y: auto;4645  display: flex;4646  flex-direction: column;4647  /* Hide the platform scrollbar — every other scrollable surface in the4648   * popup hides it; the Health view was the one outlier and it ruined the4649   * polish. Behavior unchanged, just no rail rendered. */4650  scrollbar-width: none;4651  -ms-overflow-style: none;4652}4653.peach-health-body::-webkit-scrollbar { display: none; }46544655/* Loading screen for the Vault Health view. The advanced report computation4656 * can run for a few seconds on a large vault — without a clear loading4657 * screen the surface looked broken (the entry view bleeds through the4658 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4659.peach-health-loading-screen {4660  flex: 1;4661  display: flex;4662  flex-direction: column;4663  align-items: center;4664  justify-content: center;4665  gap: 14px;4666  padding: 32px 28px;4667  text-align: center;4668}46694670.peach-health-loading-glyph {4671  width: 48px;4672  height: 48px;4673  display: flex;4674  align-items: center;4675  justify-content: center;4676  border-radius: 14px;4677  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4678  color: var(--peach-accent);4679}46804681.peach-health-loading-title {4682  margin: 0;4683  font-family: var(--font-display);4684  font-style: italic;4685  font-weight: 300;4686  font-size: 19px;4687  line-height: 1.2;4688  color: var(--peach-t0);4689}46904691.peach-health-loading-copy {4692  margin: 0;4693  max-width: 240px;4694  font-size: 0.75rem;4695  line-height: 1.55;4696  color: var(--peach-t2);4697}46984699.peach-health-loading-track {4700  width: 200px;4701  height: 3px;4702  margin-top: 6px;4703  border-radius: 999px;4704  background: rgba(240, 232, 216, 0.06);4705  overflow: hidden;4706}47074708.peach-health-loading-fill {4709  width: 40%;4710  height: 100%;4711  border-radius: inherit;4712  background: linear-gradient(4713    90deg,4714    transparent 0%,4715    var(--peach-accent) 50%,4716    transparent 100%4717  );4718  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4719}47204721@keyframes peach-health-loading-sweep {4722  0%   { transform: translateX(-100%); }4723  100% { transform: translateX(350%); }4724}47254726[data-motion="reduce"] .peach-health-loading-fill,4727[data-motion="reduce"] .peach-health-loading-glyph svg path {4728  animation: none;4729}47304731.peach-health-summary {4732  padding: 10px 16px 6px;4733  font-family: "IBM Plex Mono", monospace;4734  font-size: 0.6875rem;4735}4736.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4737.peach-health-summary-ok { color: var(--peach-t2); }47384739.peach-health-check-row {4740  padding: 0 16px 10px;4741}4742.peach-health-check-btn {4743  width: 100%;4744  display: flex;4745  align-items: center;4746  justify-content: center;4747}47484749.peach-health-sections {4750  flex: 1;4751  display: flex;4752  flex-direction: column;4753}47544755.peach-health-section {4756  border-bottom: 1px solid var(--peach-t3);4757}47584759.peach-health-section-header {4760  width: 100%;4761  display: flex;4762  align-items: center;4763  justify-content: space-between;4764  padding: 9px 16px;4765  background: transparent;4766  cursor: pointer;4767  color: var(--peach-t0);4768}47694770.peach-health-section-title-row {4771  display: flex;4772  align-items: center;4773  gap: 8px;4774}47754776.peach-health-count-badge {4777  display: inline-flex;4778  align-items: center;4779  justify-content: center;4780  min-width: 20px;4781  height: 18px;4782  padding: 0 5px;4783  border-radius: 999px;4784  background: rgba(220,80,60,0.15);4785  border: 1px solid rgba(220,80,60,0.25);4786  font-family: "IBM Plex Mono", monospace;4787  font-size: 0.5625rem;4788  color: rgba(220,80,60,0.9);4789}47904791.peach-health-section-title {4792  font-family: "IBM Plex Mono", monospace;4793  font-size: 0.6875rem;4794  text-transform: uppercase;4795  letter-spacing: 0.1em;4796  color: var(--peach-t1);4797}47984799.peach-health-chevron {4800  color: var(--peach-t2);4801  transition: transform 200ms ease;4802  flex-shrink: 0;4803}4804.peach-health-chevron.is-expanded {4805  transform: rotate(180deg);4806}48074808.peach-health-section-body {4809  padding: 0 16px 10px;4810  display: flex;4811  flex-direction: column;4812  gap: 4px;4813}48144815.peach-health-row {4816  display: flex;4817  align-items: flex-start;4818  justify-content: space-between;4819  gap: 8px;4820  padding: 6px 8px;4821  border-radius: 8px;4822  background: rgba(240,232,216,0.02);4823}48244825.peach-health-row-info {4826  flex: 1;4827  min-width: 0;4828  display: flex;4829  flex-direction: column;4830  gap: 2px;4831}48324833.peach-health-row-name {4834  font-family: var(--font-display);4835  font-size: 0.9375rem;4836  font-style: italic;4837  font-weight: 400;4838  color: var(--peach-t0);4839  white-space: nowrap;4840  overflow: hidden;4841  text-overflow: ellipsis;4842}48434844.peach-health-row-meta {4845  font-family: "IBM Plex Mono", monospace;4846  font-size: 0.5625rem;4847  color: var(--peach-t2);4848  letter-spacing: 0.05em;4849}48504851.peach-health-fix-btn {4852  font-size: 0.5625rem;4853  letter-spacing: 0.08em;4854  text-transform: uppercase;4855  padding: 4px 7px;4856  flex-shrink: 0;4857  display: flex;4858  align-items: center;4859}48604861.peach-health-empty {4862  font-family: "IBM Plex Mono", monospace;4863  font-size: 0.625rem;4864  color: var(--peach-t2);4865  padding: 6px 0;4866}48674868.peach-health-loading {4869  font-family: "IBM Plex Mono", monospace;4870  font-size: 0.625rem;4871  color: var(--peach-t2);4872  padding: 6px 0;4873  display: flex;4874  align-items: center;4875  gap: 6px;4876}48774878.peach-health-loading::before {4879  content: "";4880  width: 10px;4881  height: 10px;4882  border: 1.5px solid var(--peach-t3);4883  border-top-color: var(--peach-accent);4884  border-radius: 50%;4885  animation: peach-spin 600ms linear infinite;4886}48874888@keyframes peach-spin {4889  to { transform: rotate(360deg); }4890}48914892.peach-spinner {4893  width: 32px;4894  height: 32px;4895  border: 2px solid var(--peach-s2);4896  border-top-color: var(--peach-accent);4897  border-radius: 50%;4898  margin: 0 auto 16px;4899  animation: peach-spin 0.8s linear infinite;4900}49014902.peach-progress-screen {4903  text-align: center;4904  padding: 32px 16px;4905}49064907.peach-progress-screen-title {4908  font-size: 0.8125rem;4909  color: var(--peach-t0);4910  margin-bottom: 16px;4911}49124913.peach-progress-screen-stage {4914  font-size: 0.6875rem;4915  color: var(--peach-t2);4916  min-height: 14px;4917}49184919.peach-progress-screen-note {4920  font-size: 0.625rem;4921  color: var(--peach-t2);4922  margin-top: 8px;4923}49244925.peach-pairing-body {4926  flex: 1;4927  overflow-y: auto;4928  display: flex;4929  flex-direction: column;4930}49314932.peach-pairing-content {4933  flex: 1;4934  display: flex;4935  flex-direction: column;4936  align-items: center;4937  justify-content: center;4938  gap: 14px;4939  padding: 28px 20px;4940  text-align: center;4941}49424943.peach-pairing-code-screen {4944  gap: 18px;4945}49464947.peach-pairing-headline {4948  font-family: var(--font-display);4949  font-style: italic;4950  font-weight: 300;4951  font-size: 28px;4952  color: var(--peach-t0);4953  margin: 0;4954  line-height: 1;4955}49564957.peach-pairing-subline {4958  font-size: 0.75rem;4959  color: var(--peach-t2);4960  max-width: 220px;4961  line-height: 1.5;4962  margin: 0;4963}49644965.peach-pairing-subline--center {4966  text-align: center;4967}49684969/* 6-digit pairing code — both display (.peach-pairing-code) and entry4970   (.peach-pairing-code-input) share IBM Plex Mono / 36px / wide tracking4971   so the two modes feel like the same surface. */4972.peach-pairing-code {4973  font-family: "IBM Plex Mono", monospace;4974  font-size: 36px;4975  letter-spacing: 0.25em;4976  color: var(--peach-t0);4977  text-align: center;4978  padding: 24px 0;4979  text-shadow:4980    0 0 24px color-mix(in srgb, var(--peach-accent) 22%, transparent),4981    0 0 48px color-mix(in srgb, var(--peach-accent) 12%, transparent);4982  background: transparent;4983  border: 0;4984  cursor: default;4985  user-select: text;4986}49874988.peach-pairing-code--loading,4989.peach-pairing-code--expired {4990  font-size: 18px;4991  letter-spacing: 0.04em;4992  color: var(--peach-t2);4993  cursor: pointer;4994  text-shadow: none;4995}49964997.peach-pairing-code-input {4998  font-family: "IBM Plex Mono", monospace;4999  font-size: 36px;5000  letter-spacing: 0.25em;5001  color: var(--peach-t0);5002  background: transparent;5003  border: 0;5004  border-bottom: 1px solid var(--peach-t3);5005  outline: none;5006  text-align: center;5007  padding: 18px 0;5008  width: 220px;5009  caret-color: var(--peach-accent);5010  transition: border-color 160ms ease;5011}50125013.peach-pairing-code-input::placeholder {5014  color: var(--peach-t3);5015}50165017.peach-pairing-code-input:focus {5018  border-bottom-color: var(--peach-accent);5019}50205021.peach-pairing-toggle {5022  background: transparent;5023  border: 0;5024  color: var(--peach-t2);5025  font-size: 0.75rem;5026  padding: 8px 4px;5027  cursor: pointer;5028  transition: color 120ms ease;5029}50305031.peach-pairing-toggle:hover:not(:disabled) {5032  color: var(--peach-t1);5033}50345035.peach-pairing-toggle:disabled {5036  opacity: 0.5;5037  cursor: default;5038}50395040.peach-pairing-hint {5041  font-size: 0.6875rem;5042  color: var(--peach-t2);5043  margin: 0;5044  text-align: center;5045}50465047.peach-pairing-status {5048  display: flex;5049  align-items: center;5050  gap: 8px;5051  margin: 0;5052  font-size: 0.75rem;5053  color: var(--peach-t1);5054}50555056.peach-pairing-error {5057  margin: 0;5058  font-size: 0.6875rem;5059  color: var(--peach-breach);5060}50615062.peach-pairing-error--muted {5063  color: var(--peach-t2);5064}50655066.peach-pairing-spinner {5067  width: 12px;5068  height: 12px;5069  border: 1.5px solid var(--peach-t3);5070  border-top-color: var(--peach-accent);5071  border-radius: 50%;5072  animation: peach-spin 0.8s linear infinite;5073}50745075.peach-pairing-success-icon,5076.peach-pairing-error-icon,5077.peach-pairing-hero {5078  display: inline-flex;5079  align-items: center;5080  justify-content: center;5081}50825083/* Tag chips */5084.peach-tag-chip {5085  display: inline-flex;5086  align-items: center;5087  gap: 4px;5088  padding: 3px 8px;5089  border-radius: 999px;5090  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5091  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5092  color: var(--peach-t0);5093  font-family: "IBM Plex Mono", monospace;5094  font-size: 0.625rem;5095  letter-spacing: 0.04em;5096}50975098.peach-tag-chip-remove {5099  background: transparent;5100  border: none;5101  color: inherit;5102  opacity: 0.6;5103  cursor: pointer;5104  padding: 0;5105  font-size: 0.75rem;5106  line-height: 1;5107}51085109.peach-tag-chip-remove:hover {5110  opacity: 1;5111}51125113/* Tag input */5114.peach-tag-input-wrap {5115  border-bottom: 1px solid var(--peach-t3);5116}51175118.peach-tag-suggestions {5119  display: flex;5120  flex-wrap: wrap;5121  gap: 4px;5122  padding: 6px 0;5123}51245125.peach-tag-suggestion {5126  padding: 2px 8px;5127  border-radius: 999px;5128  border: 1px solid var(--peach-t3);5129  background: var(--peach-s2);5130  color: var(--peach-t1);5131  font-family: "IBM Plex Mono", monospace;5132  font-size: 0.625rem;5133  cursor: pointer;5134  transition: border-color 80ms ease, background 80ms ease;5135}51365137.peach-tag-suggestion:hover {5138  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5139  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5140}51415142/* Tag filter strip */5143.peach-tag-filter-strip {5144  border-bottom: 1px solid var(--peach-t3);5145  flex-shrink: 0;5146}51475148.peach-tag-filter-chip {5149  display: inline-flex;5150  align-items: center;5151  padding: 4px 10px;5152  border-radius: 999px;5153  border: 1px solid var(--peach-t3);5154  background: transparent;5155  color: var(--peach-t2);5156  font-family: "IBM Plex Mono", monospace;5157  font-size: 0.5625rem;5158  letter-spacing: 0.06em;5159  text-transform: uppercase;5160  cursor: pointer;5161  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5162  white-space: nowrap;5163}51645165.peach-tag-filter-chip:hover {5166  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5167  color: var(--peach-t1);5168}51695170.peach-tag-filter-chip.is-selected {5171  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5172  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5173  color: var(--peach-t0);5174}51755176/* ─────────────────────────────────────────────────────────────────────────5177   v1.4.12 additions5178   ─────────────────────────────────────────────────────────────────────── */51795180/* Sort bar */5181.peach-sort-bar {5182  display: flex;5183  align-items: center;5184  gap: 4px;5185  padding: 5px 12px;5186  border-bottom: 1px solid var(--peach-t3);5187  flex-shrink: 0;5188  overflow-x: auto;5189  scrollbar-width: none;5190}51915192.peach-sort-btn {5193  padding: 2px 9px;5194  border-radius: 999px;5195  border: 1px solid transparent;5196  background: transparent;5197  color: var(--peach-t2);5198  font-family: "IBM Plex Mono", monospace;5199  font-size: 0.5625rem;5200  letter-spacing: 0.07em;5201  text-transform: uppercase;5202  cursor: pointer;5203  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5204  white-space: nowrap;5205}52065207.peach-sort-btn:hover {5208  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5209  color: var(--peach-t1);5210}52115212.peach-sort-btn.is-active {5213  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5214  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5215  color: var(--peach-t0);5216}52175218.peach-sort-domain-hint {5219  margin-left: auto;5220  font-family: "IBM Plex Mono", monospace;5221  font-size: 0.5625rem;5222  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5223  white-space: nowrap;5224  overflow: hidden;5225  text-overflow: ellipsis;5226  max-width: 110px;5227}52285229/* Tab-match badge on entry rows */5230.peach-tab-match-badge {5231  display: inline-block;5232  width: 6px;5233  height: 6px;5234  border-radius: 50%;5235  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5236  margin-left: 5px;5237  vertical-align: middle;5238  flex-shrink: 0;5239  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5240}52415242.peach-entry-row.is-tab-match {5243  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5244  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5245}52465247.peach-entry-row.is-tab-match:hover {5248  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5249}52505251/* Entry list stagger entrance */5252@keyframes peach-entry-fadein {5253  from { opacity: 0; transform: translateY(4px); }5254  to   { opacity: 1; transform: translateY(0); }5255}52565257.peach-vault-list .peach-entry-row {5258  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5259  content-visibility: auto;5260  contain-intrinsic-size: auto 44px;5261}52625263/* Button press micro-interaction */5264.peach-btn:active {5265  transform: scale(0.95);5266  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5267}52685269.peach-sort-btn:active,5270.peach-tag-filter-chip:active {5271  transform: scale(0.93);5272  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5273}52745275/* Password strength bar (Lock view + shared) */5276.peach-password-strength {5277  display: flex;5278  align-items: center;5279  gap: 8px;5280  margin-top: 6px;5281}52825283.peach-strength-bar {5284  flex: 1;5285  height: 3px;5286  border-radius: 2px;5287  background: var(--peach-t3);5288  overflow: hidden;5289}52905291.peach-strength-fill {5292  height: 100%;5293  border-radius: 2px;5294  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5295              background 300ms ease;5296}52975298.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5299.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5300.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5301.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }53025303.peach-strength-label {5304  font-family: "IBM Plex Mono", monospace;5305  font-style: italic;5306  font-size: 0.5625rem;5307  font-weight: 300;5308  letter-spacing: 0.06em;5309  color: var(--peach-t2);5310  min-width: 36px;5311  text-align: right;5312}53135314.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5315.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5316.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5317.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }53185319/* Duress form */5320.peach-duress-status {5321  padding: 2px 8px;5322  border-radius: 999px;5323  border: 1px solid var(--peach-t3);5324  font-family: "IBM Plex Mono", monospace;5325  font-size: 0.5625rem;5326  letter-spacing: 0.07em;5327  text-transform: uppercase;5328  color: var(--peach-t2);5329  flex-shrink: 0;5330}53315332.peach-duress-status.is-active {5333  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5334  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5335  color: var(--peach-t0);5336}53375338.peach-duress-form {5339  padding: 8px 0 4px;5340  display: flex;5341  flex-direction: column;5342  gap: 6px;5343}53445345.peach-duress-form .peach-label {5346  margin-top: 4px;5347}53485349.peach-duress-actions {5350  display: flex;5351  gap: 6px;5352  align-items: center;5353  margin-top: 4px;5354}53555356.peach-duress-actions .peach-btn:first-child {5357  margin-right: auto;5358}53595360/* Improved overlay spring entrance */5361.peach-overlay-view.ov-enter-up {5362  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5363}53645365@keyframes ov-enter-up-spring {5366  from { opacity: 0; transform: translateY(16px) scale(0.98); }5367  to   { opacity: 1; transform: translateY(0) scale(1); }5368}53695370.peach-overlay-view.ov-enter-right {5371  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5372}53735374@keyframes ov-enter-right-spring {5375  from { opacity: 0; transform: translateX(18px) scale(0.98); }5376  to   { opacity: 1; transform: translateX(0) scale(1); }5377}53785379/* ── Onboarding-mode restore screens (file import) ── */5380/* Used when MainImportView renders during onboarding (no vault yet).5381   Animates like a lock-screen transition. */5382.peach-lock-view {5383  position: absolute;5384  inset: 0;5385  display: flex;5386  flex-direction: column;5387  background:5388    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5389    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5390    var(--peach-bg);5391  z-index: 2;5392  overflow: hidden;5393  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5394}53955396.peach-lock-view-header {5397  display: flex;5398  align-items: center;5399  justify-content: space-between;5400  padding: 16px 18px 12px;5401  flex-shrink: 0;5402}54035404/* ───────── Settings: auto-lock select ───────── */5405.peach-settings-select {5406  font-family: "IBM Plex Mono", monospace;5407  font-size: 0.6875rem;5408  background: transparent;5409  border: 1px solid var(--peach-t3);5410  border-radius: 4px;5411  color: var(--peach-t1);5412  padding: 3px 6px;5413  cursor: pointer;5414  outline: none;5415}5416.peach-settings-select:focus {5417  border-color: var(--peach-accent);5418}54195420/* ───────── Duress status pill (new polished) ───────── */5421.peach-duress-status-pill {5422  font-family: "IBM Plex Mono", monospace;5423  font-size: 0.5625rem;5424  text-transform: uppercase;5425  letter-spacing: 0.12em;5426  padding: 2px 8px;5427  border-radius: 12px;5428  background: var(--peach-t3);5429  color: var(--peach-t2);5430  flex-shrink: 0;5431}5432.peach-duress-status-pill.is-active {5433  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5434  color: var(--peach-accent);5435}54365437/* ───────── Entry advanced disclosure (canary) ───────── */5438.peach-entry-advanced {5439  margin-top: 12px;5440  border-top: 1px solid var(--peach-t3);5441  padding-top: 10px;5442  position: relative;5443  z-index: 1;5444}5445.peach-entry-advanced-toggle {5446  display: flex;5447  align-items: center;5448  justify-content: space-between;5449  width: 100%;5450  background: transparent;5451  border: none;5452  cursor: pointer;5453  padding: 0;5454  color: var(--peach-t2);5455}5456.peach-canary-section {5457  margin-top: 10px;5458  display: grid;5459  gap: 6px;5460}54615462/* ───────── Import: merge/replace radio choices ───────── */5463.peach-import-choice {5464  display: flex;5465  align-items: flex-start;5466  gap: 10px;5467  padding: 8px 10px;5468  border: 1px solid var(--peach-t3);5469  border-radius: 10px;5470  cursor: pointer;5471  margin-bottom: 6px;5472  transition: border-color 120ms ease, background 120ms ease;5473}5474.peach-import-choice:hover {5475  border-color: var(--peach-accent);5476}5477.peach-import-choice input[type="radio"] {5478  margin-top: 3px;5479  accent-color: var(--peach-accent);5480  flex-shrink: 0;5481}5482.peach-import-choice-main {5483  display: flex;5484  flex-direction: column;5485  gap: 2px;5486  min-width: 0;5487}5488.peach-import-choice-label {5489  font-size: 0.75rem;5490  color: var(--peach-t0);5491}5492.peach-import-choice-sub {5493  font-size: 0.6875rem;5494  color: var(--peach-t2);5495  line-height: 1.5;5496}54975498/* ───────── Export: success confirmation strip ───────── */5499.peach-export-success {5500  display: flex;5501  align-items: flex-start;5502  gap: 10px;5503  padding: 12px;5504  border-radius: 12px;5505  border: 1px solid rgba(150, 175, 110, 0.3);5506  background: rgba(150, 175, 110, 0.08);5507  color: var(--peach-t0);5508  font-size: 0.75rem;5509  line-height: 1.55;5510}5511.peach-export-success-check {5512  color: rgba(150, 175, 110, 0.9);5513  font-size: 0.875rem;5514  flex-shrink: 0;5515}55165517/* ── Trash view ──────────────────────────────────────────────────────── */5518.peach-trash-entry-row {5519  display: flex;5520  align-items: center;5521  justify-content: space-between;5522  gap: 8px;5523  padding: 8px 0;5524  border-bottom: 1px solid var(--peach-border);5525}5526.peach-trash-entry-info {5527  flex: 1;5528  min-width: 0;5529  display: flex;5530  flex-direction: column;5531  gap: 2px;5532}5533.peach-trash-entry-title {5534  font-size: 0.8125rem;5535  color: var(--peach-t0);5536  overflow: hidden;5537  text-overflow: ellipsis;5538  white-space: nowrap;5539}5540.peach-trash-entry-meta {5541  font-family: var(--font-mono);5542  font-size: 0.5625rem;5543  color: var(--peach-t2);5544  letter-spacing: 0.04em;5545}5546.peach-trash-entry-actions {5547  display: flex;5548  align-items: center;5549  gap: 4px;5550  flex-shrink: 0;5551}5552.peach-trash-delete-btn {5553  background: transparent;5554  border: 0;5555  color: var(--peach-t3);5556  font-size: 1rem;5557  line-height: 1;5558  cursor: pointer;5559  padding: 2px 5px;5560  transition: color 0.15s;5561}5562.peach-trash-delete-btn:hover { color: var(--peach-breach); }5563.peach-trash-list {5564  overflow-y: auto;5565}5566.peach-trash-footer {5567  display: flex;5568  align-items: center;5569  gap: 8px;5570  padding: 8px 0 0;5571  border-top: 1px solid var(--peach-border);5572  margin-top: 4px;5573}5574.peach-trash-purge-all {5575  background: transparent;5576  border: 0;5577  color: var(--peach-t3);5578  font-size: 0.625rem;5579  cursor: pointer;5580  padding: 4px 0;5581  letter-spacing: 0.03em;5582  transition: color 0.2s;5583}5584.peach-trash-purge-all:hover { color: var(--peach-breach); }5585.peach-trash-purge-confirm-label {5586  font-size: 0.625rem;5587  color: var(--peach-t1);5588  flex: 1;5589}55905591/* ── Settings shortcuts grid ─────────────────────────────────────────── */5592.peach-shortcuts-grid {5593  display: grid;5594  grid-template-columns: auto 1fr;5595  gap: 6px 12px;5596  align-items: center;5597  padding: 4px 0;5598}5599.peach-shortcut-key {5600  font-family: var(--font-mono);5601  font-size: 0.625rem;5602  color: var(--peach-t0);5603  background: var(--peach-t3);5604  border-radius: 4px;5605  padding: 2px 6px;5606  white-space: nowrap;5607  text-align: center;5608}5609.peach-shortcut-desc {5610  font-size: 0.6875rem;5611  color: var(--peach-t1);5612}56135614/* ── Sort bar trash button ───────────────────────────────────────────── */5615.peach-sort-trash-btn {5616  display: flex;5617  align-items: center;5618  justify-content: center;5619  padding: 3px 5px;5620  background: transparent;5621  border: none;5622  cursor: pointer;5623  color: var(--peach-t2);5624  border-radius: 4px;5625  transition: color 140ms ease, background 140ms ease;5626}5627.peach-sort-trash-btn:hover {5628  color: var(--peach-t1);5629  background: var(--peach-t3);5630}5631.peach-sort-trash-btn.is-active {5632  color: var(--peach-accent);5633}56345635/* Accent color picker */5636.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5637.peach-accent-picker {5638  display: flex;5639  flex-wrap: wrap;5640  gap: 7px;5641  padding: 2px 0;5642}5643.peach-accent-swatch {5644  width: 22px;5645  height: 22px;5646  border-radius: 50%;5647  border: 2px solid transparent;5648  cursor: pointer;5649  padding: 0;5650  transition: transform 100ms;5651  outline-offset: 2px;5652}5653.peach-accent-swatch:hover { transform: scale(1.15); }5654.peach-accent-swatch.is-active {5655  border-color: var(--peach-t0);5656  transform: scale(1.1);5657}56585659/* Display font picker — swatch shows an "Aa" preview rendered with each5660   font option so the user can see what they're picking before they pick. */5661.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }5662.peach-font-picker {5663  display: flex;5664  flex-wrap: wrap;5665  gap: 6px;5666  padding: 2px 0;5667  flex: 1;5668  justify-content: flex-end;5669}5670.peach-font-swatch {5671  display: flex;5672  flex-direction: column;5673  align-items: center;5674  gap: 2px;5675  padding: 4px 8px;5676  background: transparent;5677  border: 1px solid var(--peach-t3);5678  border-radius: 6px;5679  cursor: pointer;5680  transition: border-color 100ms, background 100ms;5681  min-width: 56px;5682}5683.peach-font-swatch:hover {5684  border-color: var(--peach-accent-dim);5685  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5686}5687.peach-font-swatch.is-active {5688  border-color: var(--peach-accent);5689  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5690}5691.peach-font-swatch-glyph {5692  font-size: 18px;5693  line-height: 1;5694  color: var(--peach-t0);5695}5696.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {5697  font-family: "Cormorant Garamond", serif;5698  font-style: italic;5699  font-weight: 400;5700}5701.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {5702  font-family: "Cormorant Garamond", serif;5703  font-style: normal;5704  font-weight: 400;5705}5706.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {5707  font-family: "Inter Variable", "Inter", sans-serif;5708  font-style: normal;5709  font-weight: 400;5710}5711.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {5712  font-family: system-ui, -apple-system, sans-serif;5713  font-style: normal;5714  font-weight: 400;5715}5716.peach-font-swatch-name {5717  font-family: var(--font-mono);5718  font-size: 0.5rem;5719  letter-spacing: 0.06em;5720  color: var(--peach-t2);5721  text-transform: lowercase;5722}57235724.peach-pill-group {5725  display: flex;5726  gap: 6px;5727}5728.peach-pill-group .peach-btn.is-active {5729  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5730  border-color: var(--peach-accent);5731  color: var(--peach-t0);5732}57335734/* ── Card entry styles ───────────────────────────────────────── */5735.peach-card-number {5736  font-family: var(--peach-mono);5737  letter-spacing: 0.08em;5738}57395740.peach-card-network-badge {5741  font-size: 0.625rem;5742  padding: 1px 5px;5743  border-radius: 4px;5744  border: 0.5px solid var(--peach-border);5745  color: var(--peach-text-dim);5746  margin-left: 6px;5747  vertical-align: middle;5748}57495750.peach-card-expiry-row {5751  display: flex;5752  align-items: center;5753  gap: 8px;5754}57555756.peach-card-expiry-sep {5757  color: var(--peach-text-dim);5758}57595760/* ── Pro tier — upgrade screen ──────────────────────────────── */5761.peach-pro-mark {5762  font-size: 0.5625rem;5763  color: var(--peach-accent);5764  margin-left: 6px;5765  vertical-align: super;5766  opacity: 0.7;5767}57685769.peach-pro-mini-badge {5770  display: block;5771  font-size: 0.625rem;5772  font-style: italic;5773  color: var(--peach-accent);5774  letter-spacing: 0.04em;5775  margin-top: -2px;5776  padding-left: 2px;5777  opacity: 0.85;5778  text-align: center;5779}57805781.peach-wordmark-stack {5782  display: inline-flex;5783  flex-direction: column;5784  align-items: center;5785}57865787/* ── Pro tier — upgrade page ─────────────────────────────────── */5788.peach-pro-upgrade {5789  display: flex;5790  flex-direction: column;5791  align-items: stretch;5792  gap: 10px;5793  padding: 0 4px 8px;5794}57955796.peach-pro-upgrade-hero {5797  display: flex;5798  flex-direction: column;5799  align-items: center;5800  gap: 4px;5801  padding: 10px 0 6px;5802}58035804.peach-pro-upgrade-mark-wrap {5805  display: flex;5806  align-items: center;5807  justify-content: center;5808  margin-bottom: 2px;5809}58105811.peach-pro-upgrade-mark {5812  width: 38px;5813  height: 38px;5814  filter:5815    drop-shadow(0 0 7px color-mix(in srgb, var(--peach-accent) 45%, transparent))5816    drop-shadow(0 0 18px color-mix(in srgb, var(--peach-accent) 18%, transparent));5817}58185819.peach-pro-upgrade-title {5820  font-family: var(--font-display, var(--font-ui));5821  font-size: 22px;5822  margin: 0;5823  color: var(--peach-t0);5824  letter-spacing: 0.01em;5825}58265827.peach-pro-upgrade-tagline {5828  margin: 0;5829  font-style: italic;5830  color: var(--peach-t2);5831  font-size: 0.6875rem;5832}58335834.peach-pro-features {5835  display: flex;5836  flex-direction: column;5837  gap: 8px;5838  border-top: 1px solid var(--peach-border);5839  border-bottom: 1px solid var(--peach-border);5840  padding: 10px 4px;5841}58425843.peach-pro-feature {5844  display: flex;5845  gap: 9px;5846  align-items: baseline;5847}58485849.peach-pro-feature-mark {5850  color: var(--peach-accent);5851  font-size: 0.6875rem;5852  flex-shrink: 0;5853  display: inline-block;5854  transform-origin: center;5855  opacity: 0.8;5856}58575858.peach-pro-feature-text {5859  display: flex;5860  flex-direction: column;5861  gap: 1px;5862}58635864.peach-pro-feature-name {5865  font-size: 0.75rem;5866  color: var(--peach-t0);5867}58685869.peach-pro-feature-desc {5870  font-size: 0.625rem;5871  color: var(--peach-t2);5872}58735874.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5875  animation: peach-pulse-accent 600ms ease-out forwards;5876}58775878@keyframes peach-pulse-accent {5879  0%   { opacity: 1; transform: scale(1.4); }5880  100% { opacity: 0.7; transform: scale(1); }5881}58825883.peach-pro-upgrade-actions {5884  display: flex;5885  flex-direction: column;5886  align-items: center;5887  gap: 8px;5888  padding-top: 2px;5889}58905891.peach-pro-pricing {5892  margin: 0;5893  text-align: center;5894  font-size: 0.6875rem;5895  color: var(--peach-t2);5896  letter-spacing: 0.04em;5897}58985899.peach-pro-upgrade-cta {5900  align-self: stretch;5901  text-align: center;5902  text-decoration: none;5903  display: block;5904  padding: 9px 20px;5905  font-size: 0.8125rem;5906  box-sizing: border-box;5907}59085909.peach-pro-key-divider {5910  display: flex;5911  align-items: center;5912  gap: 8px;5913  width: 100%;5914  color: var(--peach-t3);5915  font-size: 0.625rem;5916  letter-spacing: 0.08em;5917}59185919.peach-pro-key-divider::before,5920.peach-pro-key-divider::after {5921  content: "";5922  flex: 1;5923  height: 1px;5924  background: var(--peach-border);5925}59265927.peach-pro-key-link {5928  background: transparent;5929  border: 1px solid var(--peach-border);5930  border-radius: 8px;5931  color: var(--peach-t1);5932  font-size: 0.75rem;5933  cursor: pointer;5934  align-self: stretch;5935  padding: 8px 12px;5936  text-align: center;5937  transition: border-color 0.2s, color 0.2s;5938}59395940.peach-pro-key-link:hover {5941  border-color: var(--peach-accent);5942  color: var(--peach-accent);5943}59445945/* ── Pro tier — key ceremony ─────────────────────────────────── */5946.peach-pro-key-ceremony {5947  display: flex;5948  flex-direction: column;5949  align-items: center;5950  gap: 12px;5951  padding: 20px 4px 16px;5952}59535954.peach-pro-key-ceremony .peach-lock-rune-string {5955  font-size: 1rem;5956  gap: 12px;5957  flex: 0;5958  justify-content: center;5959}59605961.peach-pro-key-ceremony-label {5962  margin: 0;5963  font-size: 0.6875rem;5964  color: var(--peach-t2);5965  font-style: italic;5966  letter-spacing: 0.04em;5967}59685969.peach-pro-key-input {5970  font-family: var(--font-mono, monospace);5971  letter-spacing: 0.06em;5972  text-align: center;5973  width: 100%;5974  box-sizing: border-box;5975}59765977.peach-pro-key-error {5978  margin: 0;5979  font-size: 0.75rem;5980  text-align: center;5981  color: var(--peach-breach, #e55);5982  padding: 0;5983}59845985.peach-pro-key-activate {5986  width: 100%;5987  text-align: center;5988  box-sizing: border-box;5989  padding: 10px 20px;5990  font-size: 0.8125rem;5991}59925993.peach-pro-key-cancel {5994  background: transparent;5995  border: 0;5996  color: var(--peach-t2);5997  font-size: 0.6875rem;5998  cursor: pointer;5999  padding: 2px 8px;6000  transition: color 0.2s;6001}60026003.peach-pro-key-cancel:hover { color: var(--peach-accent); }60046005/* ── Pro tier — active state ─────────────────────────────────── */6006.peach-pro-active {6007  display: flex;6008  flex-direction: column;6009  align-items: center;6010  gap: 0;6011  padding: 8px 4px 16px;6012  min-height: 280px;6013}60146015.peach-pro-active-hero {6016  display: flex;6017  flex-direction: column;6018  align-items: center;6019  gap: 6px;6020  padding: 20px 0 22px;6021}60226023.peach-pro-active-mark-wrap {6024  display: flex;6025  align-items: center;6026  justify-content: center;6027  margin-bottom: 4px;6028}60296030.peach-pro-active-mark {6031  width: 60px;6032  height: 60px;6033  filter:6034    drop-shadow(0 0 10px color-mix(in srgb, var(--peach-accent) 55%, transparent))6035    drop-shadow(0 0 26px color-mix(in srgb, var(--peach-accent) 22%, transparent));6036}60376038.peach-pro-active-title {6039  font-family: var(--font-display, var(--font-ui));6040  font-size: 26px;6041  margin: 0;6042  color: var(--peach-t0);6043  letter-spacing: 0.01em;6044}60456046.peach-pro-active-since {6047  margin: 0;6048  font-size: 0.6875rem;6049  color: var(--peach-t2);6050  font-style: italic;6051}60526053.peach-pro-active-features {6054  display: flex;6055  flex-direction: column;6056  gap: 8px;6057  width: 100%;6058  padding: 14px 8px 0;6059  border-top: 1px solid var(--peach-border);6060  flex: 1;6061}60626063.peach-pro-active-feature {6064  display: flex;6065  align-items: center;6066  gap: 9px;6067}60686069.peach-pro-active-feature-mark {6070  color: var(--peach-accent);6071  font-size: 0.625rem;6072  opacity: 0.65;6073  flex-shrink: 0;6074}60756076.peach-pro-active-feature-name {6077  font-size: 0.75rem;6078  color: var(--peach-t1);6079}60806081.peach-pro-deactivate {6082  align-self: center;6083  background: transparent;6084  border: 0;6085  color: var(--peach-t3);6086  font-size: 0.625rem;6087  cursor: pointer;6088  padding: 8px 0 0;6089  margin-top: 16px;6090  letter-spacing: 0.03em;6091  transition: color 0.2s;6092}60936094.peach-pro-deactivate:hover { color: var(--peach-t2); }60956096.peach-pro-deactivate:disabled {6097  opacity: 0.5;6098  cursor: default;6099}61006101/* ── Pro advanced health remediation queue ──────────────────── */6102.peach-health-pro-queue {6103  display: flex;6104  flex-direction: column;6105  gap: 10px;6106  padding: 12px;6107  margin: 0 0 12px;6108  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6109  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6110  border-radius: 10px;6111}61126113.peach-health-pro-queue-head {6114  display: flex;6115  justify-content: space-between;6116  align-items: baseline;6117}61186119.peach-health-pro-queue-title {6120  font-size: 0.75rem;6121  font-weight: 500;6122  letter-spacing: 0.04em;6123  text-transform: uppercase;6124  color: var(--peach-accent);6125}61266127.peach-health-pro-queue-score {6128  font-size: 0.6875rem;6129  color: var(--peach-t2);6130}61316132.peach-health-pro-row {6133  display: flex;6134  gap: 10px;6135  align-items: center;6136  padding: 8px 0;6137  border-top: 1px solid var(--peach-border);6138}61396140.peach-health-pro-row-info {6141  flex: 1;6142  display: flex;6143  flex-direction: column;6144  gap: 4px;6145  min-width: 0;6146}61476148.peach-health-pro-row-name {6149  font-size: 0.8125rem;6150  color: var(--peach-t0);6151  overflow: hidden;6152  text-overflow: ellipsis;6153  white-space: nowrap;6154}61556156.peach-health-pro-row-meta {6157  font-size: 0.6875rem;6158  color: var(--peach-t2);6159}61606161.peach-health-pro-bar {6162  height: 2px;6163  background: var(--peach-border);6164  border-radius: 2px;6165  overflow: hidden;6166  margin-top: 2px;6167}61686169.peach-health-pro-bar-fill {6170  height: 100%;6171  background: var(--peach-accent);6172  transition: width 200ms ease-out;6173}61746175/* ── Pro activation celebration ── */6176@keyframes peach-pro-bloom {6177  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6178  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6179                 drop-shadow(0 0 48px var(--peach-glow)); }6180  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6181}61826183@keyframes peach-pro-wordmark-in {6184  from { opacity: 0; transform: translateY(4px); }6185  to   { opacity: 1; transform: translateY(0); }6186}61876188@keyframes peach-pro-fade-out {6189  from { opacity: 1; }6190  to   { opacity: 0; }6191}61926193.peach-pro-celebration {6194  background:6195    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6196    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6197    var(--peach-bg);6198  border: 1px solid var(--peach-t3);6199  box-shadow:6200    0 2px 8px rgba(0,0,0,0.55),6201    0 14px 48px rgba(0,0,0,0.7),6202    0 0 0 1px rgba(240,232,216,0.04);6203  overflow: hidden;6204  width: 320px;6205  height: 520px;6206  display: flex;6207  flex-direction: column;6208  align-items: center;6209  justify-content: center;6210  gap: 8px;6211  padding: 32px 24px;6212  text-align: center;6213}62146215.peach-pro-celebration.is-leaving {6216  animation: peach-pro-fade-out 400ms ease forwards;6217}62186219.peach-pro-bloom-target {6220  display: flex;6221  align-items: center;6222  justify-content: center;6223  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6224  margin-bottom: 12px;6225}62266227.peach-pro-bloom-icon {6228  width: 48px;6229  height: 48px;6230}62316232.peach-pro-wordmark {6233  font-family: var(--font-display);6234  font-size: 22px;6235  font-style: italic;6236  font-weight: 400;6237  color: var(--peach-accent);6238  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6239}62406241.peach-pro-thankyou {6242  font-size: 0.75rem;6243  font-style: italic;6244  color: var(--peach-t2);6245  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6246}624762486249/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6250.peach-pro-notice-banner {6251  display: flex;6252  align-items: center;6253  gap: 8px;6254  padding: 7px 12px;6255  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6256  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6257  font-size: 0.6875rem;6258  color: var(--peach-t2);6259  font-family: "IBM Plex Mono", monospace;6260  flex-shrink: 0;6261}62626263.peach-pro-notice-link {6264  background: none;6265  border: none;6266  padding: 0;6267  cursor: pointer;6268  font-size: 0.6875rem;6269  color: var(--peach-accent);6270  font-family: "IBM Plex Mono", monospace;6271  margin-left: auto;6272  white-space: nowrap;6273}62746275.peach-pro-notice-close {6276  background: none;6277  border: none;6278  padding: 0 0 0 4px;6279  cursor: pointer;6280  font-size: 0.625rem;6281  color: var(--peach-t3);6282  line-height: 1;6283}62846285/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6286   Renders over whatever view is showing. 60-second expiry; the popup ticks6287   the countdown each second and clears the banner when it hits zero. */6288.peach-pair-request-banner {6289  display: flex;6290  flex-direction: column;6291  gap: 8px;6292  padding: 10px 12px;6293  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6294  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6295  font-family: "IBM Plex Mono", monospace;6296  flex-shrink: 0;6297}62986299.peach-pair-toast {6300  padding: 8px 12px;6301  font-family: "IBM Plex Mono", monospace;6302  font-size: 0.75rem;6303  color: var(--peach-t1);6304  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6305  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6306  flex-shrink: 0;6307  text-align: center;6308}63096310.peach-pair-toast strong {6311  color: var(--peach-t0);6312  font-weight: 500;6313}63146315.peach-pair-request-header {6316  display: flex;6317  align-items: center;6318  gap: 8px;6319  font-size: 0.75rem;6320  color: var(--peach-t1);6321}63226323.peach-pair-request-mark {6324  font-size: 0.875rem;6325  display: inline-flex;6326  align-items: center;6327}63286329.peach-pair-request-icon {6330  width: 1em;6331  height: 1em;6332}63336334.peach-pair-request-title {6335  font-weight: 600;6336  color: var(--peach-t0);6337}63386339.peach-pair-request-countdown {6340  margin-left: auto;6341  font-variant-numeric: tabular-nums;6342  color: var(--peach-t2);6343  font-size: 0.6875rem;6344}63456346.peach-pair-request-body {6347  margin: 0;6348  font-size: 0.75rem;6349  color: var(--peach-t1);6350  line-height: 1.4;6351}63526353.peach-pair-request-body strong {6354  color: var(--peach-t0);6355  font-weight: 600;6356}63576358.peach-pair-request-actions {6359  display: flex;6360  gap: 8px;6361  justify-content: flex-end;6362}63636364/* ─── First-run onboarding ──────────────────────────────────────────────6365   Three-card welcome shown once before vault creation. The PeachScript6366   rune background drifts behind everything at very low opacity — it's6367   atmosphere, not focus. The cards themselves use the same panel6368   language as the rest of the popup so the transition into NewVault is6369   continuous, not a jarring switch of visual register. */63706371.peach-onboarding {6372  position: relative;6373  display: flex;6374  flex-direction: column;6375  width: 100%;6376  height: 100%;6377  padding: 16px 16px 18px;6378  box-sizing: border-box;6379  overflow: hidden;6380  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6381}63826383.peach-onboarding.is-completing {6384  animation: peach-onboard-exit 200ms ease-out forwards;6385}63866387.peach-rune-background {6388  position: absolute;6389  inset: 0;6390  width: 100%;6391  height: 100%;6392  pointer-events: none;6393  z-index: 0;6394  transition: opacity 500ms ease-out;6395}63966397.peach-onboarding.is-completing .peach-rune-background {6398  opacity: 0;6399}64006401.peach-onboarding-header {6402  position: relative;6403  z-index: 1;6404  display: flex;6405  align-items: center;6406  margin-bottom: 14px;6407}64086409.peach-onboarding-card {6410  position: relative;6411  z-index: 1;6412  flex: 1;6413  display: flex;6414  flex-direction: column;6415  gap: 10px;6416  padding: 22px 20px;6417  border-radius: 16px;6418  border: 1px solid var(--peach-t3);6419  background:6420    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6421  backdrop-filter: blur(3px);6422  -webkit-backdrop-filter: blur(3px);6423  box-shadow:6424    inset 0 1px 0 rgba(240, 232, 216, 0.04),6425    0 12px 28px rgba(0, 0, 0, 0.12);6426  cursor: pointer;6427  user-select: none;6428  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6429}64306431.peach-onboarding-card.is-exiting {6432  animation: peach-card-out 120ms ease-in forwards;6433  pointer-events: none;6434}64356436.peach-onboarding-card-headline {6437  margin: 0;6438  font-family: var(--font-display);6439  font-style: italic;6440  font-weight: 400;6441  font-size: 22px;6442  line-height: 1.05;6443  color: var(--peach-t0);6444  white-space: pre-line;6445}64466447.peach-onboarding-divider {6448  margin: 4px 0 6px;6449  border: 0;6450  border-top: 1px solid var(--peach-t3);6451  width: 100%;6452}64536454.peach-onboarding-body {6455  margin: 0;6456  font-size: 0.8125rem;6457  line-height: 1.6;6458  color: var(--peach-t1);6459}64606461.peach-onboarding-warning {6462  display: flex;6463  align-items: flex-start;6464  gap: 8px;6465  margin: 6px 0 0;6466  padding-top: 8px;6467  border-top: 1px dashed var(--peach-t3);6468  font-size: 0.8125rem;6469  line-height: 1.5;6470  color: var(--peach-t1);6471}64726473.peach-onboarding-warning-icon {6474  color: var(--peach-accent);6475  font-size: 0.8125rem;6476  line-height: 1.5;6477  flex: 0 0 auto;6478}64796480.peach-onboarding-nav {6481  position: relative;6482  z-index: 1;6483  display: flex;6484  align-items: center;6485  justify-content: space-between;6486  margin-top: 12px;6487  padding: 0 4px;6488}64896490.peach-onboarding-dots {6491  display: flex;6492  align-items: center;6493  gap: 6px;6494}64956496.peach-onboarding-dot {6497  width: 6px;6498  height: 6px;6499  border-radius: 50%;6500  background: var(--peach-t2);6501  transition: width 200ms ease, height 200ms ease, background 200ms ease;6502}65036504.peach-onboarding-dot.is-active {6505  width: 8px;6506  height: 8px;6507  background: var(--peach-accent);6508}65096510.peach-onboarding-next {6511  background: none;6512  border: none;6513  padding: 4px 0;6514  cursor: pointer;6515  font-family: "IBM Plex Mono", monospace;6516  font-size: 0.6875rem;6517  letter-spacing: 0.04em;6518  color: var(--peach-t1);6519  transition: color 150ms ease;6520}65216522.peach-onboarding-next:hover {6523  color: var(--peach-t0);6524}65256526.peach-onboarding-next:disabled {6527  opacity: 0.5;6528  cursor: default;6529}65306531.peach-onboarding-mobile-card-buttons {6532  display: flex;6533  flex-direction: column;6534  gap: 8px;6535  margin-top: 16px;6536}65376538@keyframes peach-onboard-enter {6539  from { opacity: 0; transform: translateY(20px); }6540  to   { opacity: 1; transform: translateY(0); }6541}65426543@keyframes peach-onboard-exit {6544  from { opacity: 1; }6545  to   { opacity: 0; }6546}65476548@keyframes peach-card-in {6549  from { opacity: 0; transform: translateX(12px); }6550  to   { opacity: 1; transform: translateX(0); }6551}65526553@keyframes peach-card-out {6554  from { opacity: 1; transform: translateX(0); }6555  to   { opacity: 0; transform: translateX(-12px); }6556}65576558/* ─── New vault screen — matched to onboarding card language ─────────── */65596560.peach-newvault {6561  position: relative;6562  display: flex;6563  flex-direction: column;6564  gap: 12px;6565  padding: 16px 16px 18px;6566  overflow: hidden;6567}65686569/* Suppress the warm-blob ambient art inherited from .lock-screen — the6570   new vault card now carries the visual weight. */6571.peach-newvault::before {6572  content: none;6573}65746575.peach-newvault-header {6576  position: relative;6577  z-index: 2;6578  display: flex;6579  align-items: center;6580  gap: 10px;6581  margin-bottom: 2px;6582}65836584.peach-newvault-back {6585  display: inline-flex;6586  align-items: center;6587  gap: 4px;6588  background: transparent;6589  border: none;6590  color: var(--peach-t2);6591  font-family: "IBM Plex Mono", monospace;6592  font-size: 0.625rem;6593  letter-spacing: 0.06em;6594  cursor: pointer;6595  padding: 4px 6px;6596  border-radius: 6px;6597  transition: color 120ms ease, background 120ms ease;6598}65996600.peach-newvault-back:hover {6601  color: var(--peach-t0);6602  background: rgba(240, 232, 216, 0.04);6603}66046605.peach-newvault-mark {6606  position: absolute;6607  right: -12px;6608  top: 6px;6609  width: 110px;6610  height: 110px;6611  pointer-events: none;6612  opacity: 0.10;6613  filter: saturate(0.9);6614  z-index: 0;6615}6616.peach-newvault-mark-art {6617  width: 100%;6618  height: 100%;6619}6620.peach-newvault-mark-art path:nth-child(2),6621.peach-newvault-mark-art path:nth-child(3) {6622  stroke: rgba(123, 144, 96, 0.88);6623  fill: rgba(123, 144, 96, 0.88);6624}66256626.peach-newvault-card {6627  position: relative;6628  z-index: 1;6629  display: flex;6630  flex-direction: column;6631  gap: 12px;6632  padding: 22px 20px 18px;6633  border-radius: 16px;6634  border: 1px solid var(--peach-t3);6635  background:6636    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6637  backdrop-filter: blur(3px);6638  -webkit-backdrop-filter: blur(3px);6639  box-shadow:6640    inset 0 1px 0 rgba(240, 232, 216, 0.04),6641    0 12px 28px rgba(0, 0, 0, 0.12);6642  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;6643}66446645.peach-newvault-headline {6646  margin: 0;6647  font-family: var(--font-display);6648  font-style: italic;6649  font-weight: 400;6650  font-size: 24px;6651  line-height: 1.05;6652  color: var(--peach-t0);6653  white-space: pre-line;6654}66556656.peach-newvault-divider {6657  margin: 2px 0 4px;6658  border: 0;6659  border-top: 1px solid var(--peach-t3);6660  width: 100%;6661}66626663.peach-newvault-field {6664  display: flex;6665  flex-direction: column;6666  gap: 4px;6667}66686669.peach-newvault-label-row {6670  display: flex;6671  align-items: center;6672  justify-content: space-between;6673}66746675/* Monospace input scaled to the card. Replaces the 22px unlock-input6676   so the placeholder no longer overflows and the field reads as part6677   of the same surface as the body copy. */6678.peach-newvault-input {6679  font-size: 0.875rem;6680  letter-spacing: 0.18em;6681  padding: 8px 0;6682}6683.peach-newvault-input::placeholder {6684  letter-spacing: 0.18em;6685  color: var(--peach-t2);6686}66876688.peach-newvault-hint {6689  margin: 2px 0 0;6690  font-family: "IBM Plex Mono", monospace;6691  font-size: 0.625rem;6692  color: var(--peach-t2);6693  letter-spacing: 0.04em;6694}66956696.peach-newvault-submit {6697  margin-top: 4px;6698}66996700.peach-newvault-warning {6701  display: flex;6702  align-items: flex-start;6703  gap: 8px;6704  margin: 4px 0 0;6705  padding-top: 10px;6706  border-top: 1px dashed var(--peach-t3);6707  font-size: 0.75rem;6708  line-height: 1.5;6709  color: var(--peach-t1);6710}67116712.peach-newvault-warning-icon {6713  color: var(--peach-accent);6714  font-size: 0.8125rem;6715  line-height: 1.4;6716  flex: 0 0 auto;6717}67186719.peach-newvault-footer {6720  position: relative;6721  z-index: 1;6722  display: flex;6723  flex-direction: column;6724  gap: 4px;6725  padding: 4px 4px 0;6726}67276728/* Settings body — warm accent gradient gives the glass something to blur against */6729.peach-settings-body {6730  background:6731    radial-gradient(6732      ellipse at 30% 20%,6733      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,6734      transparent 60%6735    );6736}67376738/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */6739/* ── Danger cards (Replace + Destroy) ────────────────────────────────────6740 * Two severity levels: "warn" for actions that are dangerous-but-recoverable6741 * (replacing the vault from a backup file) and "hazard" for actions that6742 * are absolutely irreversible (Panic). Both use the same card scaffold so6743 * they read as a pair, but the colour family signals the severity at a6744 * glance — yellow for caution, red for don't.6745 */6746.peach-danger-card {6747  --danger-tint: 235, 158, 52; /* amber */6748  display: flex;6749  flex-direction: column;6750  gap: 8px;6751  padding: 14px;6752  margin-top: 10px;6753  border-radius: 12px;6754  border: 1px solid rgba(var(--danger-tint), 0.32);6755  background:6756    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),6757    rgba(var(--danger-tint), 0.04);6758  box-shadow:6759    inset 0 1px 0 rgba(var(--danger-tint), 0.08),6760    0 0 24px rgba(var(--danger-tint), 0.04);6761  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;6762}67636764.peach-danger-card:hover {6765  border-color: rgba(var(--danger-tint), 0.55);6766  box-shadow:6767    inset 0 1px 0 rgba(var(--danger-tint), 0.12),6768    0 0 36px rgba(var(--danger-tint), 0.10);6769}67706771.peach-danger-card--hazard {6772  --danger-tint: 220, 38, 38; /* red */6773}67746775.peach-danger-card-head {6776  display: flex;6777  align-items: center;6778  gap: 10px;6779}67806781.peach-danger-card-glyph {6782  width: 28px;6783  height: 28px;6784  flex-shrink: 0;6785  display: flex;6786  align-items: center;6787  justify-content: center;6788  border-radius: 8px;6789  background: rgba(var(--danger-tint), 0.12);6790  color: rgba(var(--danger-tint), 0.95);6791  font-size: 1rem;6792  line-height: 1;6793}67946795.peach-danger-card-title {6796  margin: 0;6797  font-size: 0.8125rem;6798  font-weight: 600;6799  color: rgba(var(--danger-tint), 0.92);6800  letter-spacing: 0.01em;6801}68026803.peach-danger-card-copy {6804  margin: 0;6805  font-size: 0.6875rem;6806  line-height: 1.5;6807  color: var(--peach-t2);6808}68096810.peach-danger-card-button {6811  width: 100%;6812  padding: 9px;6813  margin-top: 4px;6814  background: transparent;6815  border: 1px solid rgba(var(--danger-tint), 0.45);6816  border-radius: 8px;6817  color: rgba(var(--danger-tint), 0.9);6818  font-size: 0.75rem;6819  font-weight: 500;6820  letter-spacing: 0.02em;6821  cursor: pointer;6822  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6823}68246825.peach-danger-card-button:hover {6826  background: rgba(var(--danger-tint), 0.10);6827  border-color: rgba(var(--danger-tint), 0.75);6828  color: rgb(var(--danger-tint));6829}68306831/* ── Panic flow (three-step destruction) ───────────────────────────────── */6832.peach-panic {6833  display: flex;6834  flex-direction: column;6835  flex: 1;6836  min-height: 0;6837  padding: 28px 20px 20px;6838  gap: 18px;6839  overflow-y: auto;6840  scrollbar-width: none;6841  -ms-overflow-style: none;6842}68436844.peach-panic::-webkit-scrollbar { display: none; }68456846.peach-panic-step2 {6847  background: rgba(220, 38, 38, 0.04);6848}68496850.peach-panic-step3 {6851  position: relative;6852  background: #0f0505;6853  color: #ffffff;6854  overflow: hidden;6855}68566857.peach-panic-rune-bg {6858  position: absolute;6859  inset: 0;6860  opacity: 0.22;6861  pointer-events: none;6862  overflow: hidden;6863}68646865.peach-panic-rune-bg canvas {6866  width: 100% !important;6867  height: 100% !important;6868}68696870.peach-panic-icon {6871  font-size: 32px;6872  color: rgb(220, 38, 38);6873  line-height: 1;6874}68756876.peach-panic-title {6877  margin: 0;6878  font-size: 18px;6879  font-weight: 500;6880  color: var(--peach-t1);6881}68826883.peach-panic-title--severe {6884  font-size: 20px;6885  font-weight: 700;6886  color: rgb(220, 38, 38);6887}68886889.peach-panic-body {6890  margin: 0;6891  font-size: 0.8125rem;6892  line-height: 1.55;6893  color: var(--peach-t2);6894}68956896.peach-panic-body--severe {6897  color: rgba(220, 38, 38, 0.85);6898}68996900.peach-panic-body--final {6901  font-size: 1rem;6902  font-weight: 700;6903  color: rgb(255, 80, 80);6904  line-height: 1.4;6905}69066907.peach-panic-body--final-intro {6908  font-size: 1rem;6909  color: #ffffff;6910  font-weight: 400;6911}69126913.peach-panic-divider {6914  height: 1px;6915  background: rgba(255, 255, 255, 0.08);6916  margin: 4px 0;6917}69186919.peach-panic-confirm-input {6920  width: 100%;6921  padding: 10px 12px;6922  background: rgba(255, 255, 255, 0.02);6923  border: 1px solid rgba(220, 38, 38, 0.4);6924  border-radius: 8px;6925  color: var(--peach-t1);6926  font-family: "IBM Plex Mono", monospace;6927  font-size: 0.875rem;6928  letter-spacing: 0.12em;6929  text-transform: uppercase;6930}69316932.peach-panic-confirm-input:focus {6933  outline: none;6934  border-color: rgb(220, 38, 38);6935}69366937.peach-panic-confirm-input--match {6938  border-color: rgb(220, 38, 38);6939  color: rgb(220, 38, 38);6940}69416942.peach-panic-confirm-label {6943  font-size: 0.6875rem;6944  color: var(--peach-t2);6945  margin: 0 0 -8px;6946  letter-spacing: 0.06em;6947}69486949.peach-panic-actions {6950  display: flex;6951  flex-direction: column;6952  gap: 10px;6953  margin-top: auto;6954}69556956.peach-panic-button {6957  width: 100%;6958  padding: 12px;6959  border-radius: 8px;6960  font-size: 0.8125rem;6961  cursor: pointer;6962  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6963}69646965.peach-panic-button--primary {6966  background: var(--peach-accent);6967  border: 1px solid var(--peach-accent);6968  color: #ffffff;6969  font-weight: 600;6970}69716972.peach-panic-button--primary:hover {6973  background: color-mix(in srgb, var(--peach-accent) 88%, white);6974}69756976.peach-panic-button--danger {6977  background: rgb(220, 38, 38);6978  border: 1px solid rgb(220, 38, 38);6979  color: #ffffff;6980  font-weight: 600;6981}69826983.peach-panic-button--danger:disabled {6984  opacity: 0.35;6985  cursor: not-allowed;6986}69876988.peach-panic-button--ghost {6989  background: transparent;6990  border: 1px solid rgba(255, 255, 255, 0.18);6991  color: var(--peach-t2);6992}69936994.peach-panic-button--ghost:hover {6995  border-color: rgba(255, 255, 255, 0.32);6996  color: var(--peach-t1);6997}69986999.peach-panic-link {7000  background: transparent;7001  border: none;7002  padding: 4px 0;7003  color: rgba(220, 38, 38, 0.65);7004  font-size: 0.75rem;7005  cursor: pointer;7006  text-align: left;7007  text-decoration: underline;7008  text-underline-offset: 3px;7009}70107011.peach-panic-link:hover {7012  color: rgb(220, 38, 38);7013}70147015.peach-panic-bar {7016  background: rgb(220, 38, 38);7017  padding: 16px 20px;7018  margin: -28px -20px 0;7019  text-align: center;7020  font-size: 0.8125rem;7021  font-weight: 700;7022  letter-spacing: 0.12em;7023  color: #ffffff;7024}70257026.peach-panic-final-button {7027  width: 100%;7028  padding: 14px;7029  background: rgb(220, 38, 38);7030  border: none;7031  border-radius: 8px;7032  color: #ffffff;7033  font-size: 0.875rem;7034  font-weight: 700;7035  letter-spacing: 0.08em;7036  text-transform: uppercase;7037  cursor: pointer;7038  animation: peach-panic-pulse 2s ease-in-out infinite;7039}70407041.peach-settings-license {7042  margin-top: 10px;7043  padding-top: 10px;7044  border-top: 1px solid var(--peach-t3);7045}70467047.peach-settings-label {7048  font-size: 0.625rem;7049  letter-spacing: 0.08em;7050  color: var(--peach-t3);7051  display: block;7052  margin-bottom: 6px;7053}70547055.peach-settings-license-row {7056  display: flex;7057  align-items: center;7058  justify-content: space-between;7059  gap: 8px;7060}70617062.peach-settings-license-key {7063  font-family: 'IBM Plex Mono', monospace;7064  font-size: 0.75rem;7065  color: var(--peach-t0);7066  letter-spacing: 0.04em;7067  word-break: break-all;7068}70697070.peach-settings-license-copy {7071  font-size: 0.6875rem;7072  color: var(--peach-accent);7073  background: transparent;7074  border: none;7075  cursor: pointer;7076  padding: 4px 8px;7077  border-radius: 4px;7078  flex-shrink: 0;7079  transition: opacity 150ms ease;7080}70817082.peach-settings-license-copy:hover {7083  opacity: 0.75;7084}70857086@keyframes peach-panic-pulse {7087  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }7088  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }7089}70907091[data-motion="reduce"] .peach-panic-final-button {7092  animation: none;7093}70947095.peach-mobile-row {7096  display: flex;7097  align-items: center;7098  justify-content: space-between;7099  padding: 8px 0;7100}71017102.peach-mobile-status {7103  color: #9a8b7a;7104  font-size: 0.875rem;7105}71067107/* Vault History — Settings → Vault sub-view */71087109.peach-history-list {7110  border: 1px solid var(--peach-border);7111  border-radius: 8px;7112  overflow: hidden;7113  margin: 8px 0 4px;7114}71157116.peach-history-row {7117  display: flex;7118  align-items: center;7119  justify-content: space-between;7120  padding: 9px 12px;7121  gap: 10px;7122  border-bottom: 1px solid var(--peach-border);7123}71247125.peach-history-row:last-child {7126  border-bottom: none;7127}71287129.peach-history-meta {7130  display: flex;7131  flex-direction: column;7132  gap: 2px;7133  min-width: 0;7134  flex: 1;7135}71367137.peach-history-time {7138  font-size: 0.75rem;7139  font-family: 'IBM Plex Mono', ui-monospace, monospace;7140  color: var(--peach-t0);7141  white-space: nowrap;7142  overflow: hidden;7143  text-overflow: ellipsis;7144}71457146.peach-history-sub {7147  font-size: 0.625rem;7148  color: var(--peach-t2);7149  letter-spacing: 0.06em;7150  text-transform: uppercase;7151  white-space: nowrap;7152  overflow: hidden;7153  text-overflow: ellipsis;7154}71557156.peach-history-btn {7157  flex-shrink: 0;7158  white-space: nowrap;7159  min-width: 56px;7160  text-align: center;7161}71627163.peach-history-btn.is-busy {7164  opacity: 0.65;7165}71667167.peach-history-footer {7168  font-size: 0.625rem;7169  color: var(--peach-t3);7170  letter-spacing: 0.05em;7171  text-align: right;7172  margin: 0;7173  padding: 2px 0 0;7174}71757176/* ── Adaptive layout — Window Size Classes ───────────────────────────7177   Compact  (< 600dp)  — phone, foldable cover, narrow split-screen7178   Medium   (600–839)  — Z Fold inner display, small tablet7179   Expanded (840+)     — tablet, DeX window, desktop7180   Body class is set from App.tsx onMount + window resize. */71817182/* Compact stays edge-to-edge (existing behavior). */71837184body.peach-mobile.layout-medium .popup-root,7185body.peach-mobile.layout-expanded .popup-root {7186  max-width: 840px;7187  margin: 0 auto;7188}71897190body.peach-mobile.layout-medium .peach-shell[data-surface="extension"],7191body.peach-mobile.layout-expanded .peach-shell[data-surface="extension"] {7192  max-width: 840px;7193  margin: 0 auto;7194}71957196/* Two-pane: vault list on the left, entry detail on the right.7197   Activates on medium+ when both are present. App-side wires the7198   .peach-vault-twopane wrapper class on these widths. */7199body.peach-mobile.layout-medium .peach-vault-twopane,7200body.peach-mobile.layout-expanded .peach-vault-twopane {7201  display: grid;7202  grid-template-columns: 320px minmax(0, 1fr);7203  gap: 0;7204  height: 100%;7205}72067207body.peach-mobile.layout-medium .peach-vault-twopane > .peach-vault-list-pane,7208body.peach-mobile.layout-expanded .peach-vault-twopane > .peach-vault-list-pane {7209  border-right: 1px solid var(--peach-border, var(--peach-t3));7210  overflow-y: auto;7211  scrollbar-width: none;7212}72137214body.peach-mobile.layout-medium .peach-vault-twopane > .peach-vault-detail-pane,7215body.peach-mobile.layout-expanded .peach-vault-twopane > .peach-vault-detail-pane {7216  overflow-y: auto;7217  scrollbar-width: none;7218}72197220/* Tabletop posture — pad content away from the hinge crease. */7221body.peach-mobile[data-posture="tabletop"] .peach-vault-twopane,7222body.peach-mobile[data-posture="tabletop"] .peach-stage,7223body.peach-mobile[data-posture="tabletop"] .peach-overlay-view {7224  padding-bottom: var(--peach-hinge-height, 0px);7225}72267227/* Landscape phone — short viewport, reduce vertical padding so content fits. */7228@media (orientation: landscape) and (max-height: 500px) {7229  body.peach-mobile .popup-root {7230    padding-top: env(safe-area-inset-top);7231  }7232  body.peach-mobile .peach-shell[data-surface="extension"] {7233    grid-template-rows: auto minmax(0, 1fr);7234  }7235}72367237/* Narrow split-screen (down to 280dp) — keep content readable. */7238@media (max-width: 320px) {7239  body.peach-mobile .peach-chrome,7240  body.peach-mobile .peach-stage,7241  body.peach-mobile .peach-overlay-view {7242    padding-left: 8px;7243    padding-right: 8px;7244  }7245}72467247/* ── Two-pane on medium+ ───────────────────────────────────────────────7248   The vault list is normally a full-screen overlay. On Z Fold inner /7249   tablet / DeX widths, scope it to a 320px left column so the entry7250   detail behind it stays visible on the right. handleSelectEntry keeps7251   view===\"list\" on these widths so the list never animates away. */7252body.peach-mobile.layout-medium .peach-overlay-view,7253body.peach-mobile.layout-expanded .peach-overlay-view {7254  right: auto;7255  width: 320px;7256  border-right: 1px solid var(--peach-t3);7257  animation: none;7258  z-index: 2;7259}72607261/* Push the entry-frame content past the sidebar so it isn't hidden. */7262body.peach-mobile.layout-medium .peach-content-frame,7263body.peach-mobile.layout-expanded .peach-content-frame {7264  padding-left: 320px;7265}72667267/* Search bar is part of the shell — when the list sidebar is mounted on7268   medium+, the list owns search. Keep the shell search bar visible only7269   when no overlay is active. */7270body.peach-mobile.layout-medium .peach-search-wrap,7271body.peach-mobile.layout-expanded .peach-search-wrap {7272  padding-left: 320px;7273}72747275/* On expanded (840+), leave more breathing room and cap detail width. */7276body.peach-mobile.layout-expanded .peach-content-frame {7277  padding-left: 360px;7278}7279body.peach-mobile.layout-expanded .peach-overlay-view {7280  width: 360px;7281}7282body.peach-mobile.layout-expanded .peach-search-wrap {7283  padding-left: 360px;7284}72857286/* ── Long-press context menu + swipe-copy flash ─────────────────────── */7287.peach-context-menu-backdrop {7288  position: fixed;7289  inset: 0;7290  background: rgba(0, 0, 0, 0.45);7291  z-index: 100;7292  display: flex;7293  align-items: flex-end;7294  justify-content: center;7295  animation: peach-ctx-fade 140ms ease both;7296}7297.peach-context-menu {7298  width: min(360px, calc(100vw - 24px));7299  margin-bottom: max(env(safe-area-inset-bottom), 12px);7300  background: var(--peach-bg);7301  border: 1px solid var(--peach-t3);7302  border-radius: 14px;7303  padding: 6px;7304  display: flex;7305  flex-direction: column;7306  gap: 2px;7307  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);7308  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;7309}7310@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }7311@keyframes peach-ctx-rise {7312  from { transform: translateY(16px); opacity: 0; }7313  to   { transform: translateY(0);    opacity: 1; }7314}7315.peach-context-menu-item {7316  background: transparent;7317  color: var(--peach-t0);7318  border: 0;7319  border-radius: 10px;7320  padding: 12px 14px;7321  text-align: left;7322  font: inherit;7323  cursor: pointer;7324}7325.peach-context-menu-item:hover,7326.peach-context-menu-item:focus-visible {7327  background: var(--peach-t3);7328}7329.peach-context-menu-item--danger {7330  color: var(--peach-health-bad, #d96868);7331}7332.peach-context-menu-item--cancel {7333  color: var(--peach-t2);7334  margin-top: 4px;7335  border-top: 1px solid var(--peach-t3);7336  border-radius: 0 0 10px 10px;7337}73387339/* ── Mobile wordmark → settings tap target ── */7340.peach-wordmark-btn {7341  background: none;7342  padding: 0;7343  cursor: pointer;7344  -webkit-tap-highlight-color: transparent;7345  display: flex;7346  align-items: center;7347}73487349/* ── Gesture hints welcome card ── */7350.peach-gesture-hints-overlay {7351  position: fixed;7352  inset: 0;7353  z-index: 200;7354  background: rgba(0, 0, 0, 0.55);7355  display: flex;7356  align-items: center;7357  justify-content: center;7358  padding: 32px 24px;7359  animation: peach-fade-in 200ms ease both;7360}7361@keyframes peach-fade-in {7362  from { opacity: 0; }7363  to   { opacity: 1; }7364}7365.peach-gesture-hints-card {7366  background: var(--bg-1);7367  border: 1px solid var(--peach-t3);7368  border-radius: 16px;7369  padding: 28px 24px 24px;7370  width: 100%;7371  max-width: 320px;7372  display: flex;7373  flex-direction: column;7374  gap: 20px;7375  animation: ov-enter-up 280ms var(--peach-curve-arrival) both;7376}7377.peach-gesture-hints-title {7378  font-family: var(--font-display);7379  font-style: var(--font-display-style);7380  font-size: 22px;7381  color: var(--peach-t0);7382  margin: 0;7383}7384.peach-gesture-hints-list {7385  list-style: none;7386  margin: 0;7387  padding: 0;7388  display: flex;7389  flex-direction: column;7390  gap: 14px;7391}7392.peach-gesture-hints-list li {7393  display: flex;7394  align-items: center;7395  gap: 14px;7396  font-size: 14px;7397  color: var(--peach-t1);7398}7399.peach-gesture-glyph {7400  width: 36px;7401  flex-shrink: 0;7402  font-size: 14px;7403  color: var(--peach-accent);7404  text-align: center;7405  letter-spacing: 0.02em;7406}74077408/* Swipe-to-copy amber flash */7409.peach-entry-row.is-copy-flash {7410  animation: peach-copy-flash 600ms ease both;7411}7412@keyframes peach-copy-flash {7413  0%   { background: transparent; }7414  20%  { background: rgba(217, 153, 51, 0.32); }7415  100% { background: transparent; }7416}74177418/* Font scaling baseline. 16px is the WebView default; setting it explicitly7419   anchors all the rem-based body-text sizes that depend on it. On Android,7420   MainActivity overrides WebSettings.textZoom so system font scale flows7421   through to rem-sized text. Display sizes (>=18px) still use px to keep7422   tight layout control around headlines and the lock-screen hero. */7423html { font-size: 16px; }