popup.css

91.2 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99.peach-shell[data-surface="extension"] {100  width: min(320px, 100vw);101  border-radius: 0;102  height: 520px;103  max-height: 520px;104  overflow: hidden;105}106107/* ── Lock screen – full-window lock/create stage ── */108.lock-screen--vault-stage {109  display: flex;110  flex-direction: column;111  gap: 18px;112  padding: 20px 18px 18px;113  justify-content: flex-start;114}115.lock-screen--vault-stage .peach-lock-panel {116  margin-top: auto;117}118.peach-lock-headline--unlock {119  max-width: 220px;120}121.peach-lock-hero--unlock {122  padding-top: 14px;123}124.peach-lock-panel--unlock {125  gap: 10px;126}127128.peach-lock-restore-link {129  background: transparent;130  border: none;131  cursor: pointer;132  font-family: var(--font-mono);133  font-size: 10px;134  letter-spacing: 0.08em;135  color: var(--t1);136  padding: 5px 0;137  text-align: left;138  transition: color 150ms ease;139}140141.peach-lock-restore-link:hover {142  color: var(--t0);143}144.peach-shell[data-surface="extension"] .peach-stage {145  min-height: 250px;146}147148/* Screen (unlock) */149.peach-screen {150  width: min(320px, 100vw);151  min-height: 100%;152  height: 100%;153  border-radius: 0;154  padding: 16px 20px 18px;155  display: grid;156  gap: 14px;157}158.peach-screen[data-motion-phase="enter"] {159  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;160}161.peach-screen-header { min-height: 20px; }162163/* Wordmark */164.peach-wordmark {165  margin: 0;166  font-family: "Cormorant Garamond", "Times New Roman", serif;167  font-size: 15px;168  font-style: italic;169  letter-spacing: 0.03em;170  color: var(--peach-t0);171  display: inline-flex;172  min-height: 1em;173}174175/* Motion text / char animation */176.peach-motion-text { display: inline-flex; min-height: 1em; }177.peach-motion-char {178  display: inline-block;179  white-space: pre;180  opacity: 0;181  transform: translateY(0.22em);182  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;183  animation-delay: calc(var(--peach-char-index, 0) * 20ms);184}185186/* Chrome */187.peach-chrome {188  position: relative;189  z-index: 10;190  padding: 16px 20px 0;191  display: flex;192  justify-content: space-between;193  align-items: center;194  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense195     fallback) per §15 regression guard. Without pointer-events:none, the196     empty header strip also sits above `.peach-overlay-view` (z-index:2)197     and swallows clicks meant for an overlay's back button / top search. */198  pointer-events: none;199}200.peach-chrome .peach-btn { pointer-events: auto; }201.peach-chrome.is-hidden-for-overlay,202.peach-search-wrap.is-hidden-for-overlay {203  opacity: 0;204  visibility: hidden;205  pointer-events: none;206}207.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }208.peach-status-pip {209  width: 5px;210  height: 5px;211  border-radius: 50%;212  background: var(--peach-t3);213  display: inline-flex;214  flex-shrink: 0;215  transition: background 400ms ease, box-shadow 400ms ease;216}217.peach-chrome-actions { display: flex; gap: 6px; }218219/* Shell body */220.peach-shell-body {221  position: relative;222  display: grid;223  grid-template-rows: 1fr auto;224  min-height: 0;225  min-width: 0;226  width: 100%;227  overflow: hidden;228  height: 100%;229}230.peach-shell-veil {231  position: absolute; inset: 0;232  background: #000; opacity: 0;233  pointer-events: none; z-index: 1;234}235.peach-shell[data-motion-phase="enter"] .peach-shell-body {236  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;237}238.peach-shell[data-motion-phase="exit"] .peach-shell-veil {239  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;240}241242/* Content frame */243.peach-content-frame {244  display: grid;245  grid-template-rows: 1fr auto;246  grid-template-columns: minmax(0, 1fr);247  align-content: start;248  min-height: 0;249  min-width: 0;250  overflow: hidden;251  transition: opacity 80ms ease, transform 80ms ease;252}253.peach-content-frame.navigating {254  opacity: 0.93;255  transform: translateX(2px);256}257.peach-content-frame[data-content-phase="enter"] {258  animation: peach-content-enter 135ms ease-out both;259}260.peach-content-frame[data-content-phase="exit"] {261  animation: peach-content-exit 95ms ease-in forwards;262}263.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }264265/* Stage */266.peach-stage {267  padding: 10px 20px 12px;268  display: grid;269  gap: 12px;270  align-content: start;271  min-width: 0;272  min-height: 0;273  max-width: 100%;274  overflow-y: auto;275  overflow-x: hidden;276  scrollbar-width: none;277  -ms-overflow-style: none;278  overscroll-behavior: contain;279}280.peach-stage::-webkit-scrollbar { display: none; }281282/* Entry name */283.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }284.peach-entry-header {285  position: relative;286  z-index: 1;287  display: flex;288  align-items: flex-start;289  gap: 6px;290  min-width: 0;291}292.peach-entry-header-name {293  flex: 1;294  min-width: 0;295}296.peach-entry-name {297  margin: 0;298  font-family: "Cormorant Garamond", "Times New Roman", serif;299  font-style: italic; font-weight: 400;300  font-size: 44px; line-height: 0.95;301  color: var(--peach-t0);302  display: -webkit-box;303  -webkit-line-clamp: 2;304  -webkit-box-orient: vertical;305  overflow: hidden;306}307.peach-entry-name-text { display: flex; flex-wrap: wrap; overflow: hidden; max-width: 100%; }308309/* Trash icon in entry header */310.peach-entry-trash-btn {311  flex-shrink: 0;312  padding: 4px;313  margin-top: 4px;314  background: transparent;315  border: none;316  cursor: pointer;317  color: var(--peach-t2);318  border-radius: 4px;319  transition: color 140ms ease, background 140ms ease;320  display: flex;321  align-items: center;322  justify-content: center;323}324.peach-entry-trash-btn:hover {325  color: var(--peach-t1);326  background: var(--peach-t3);327}328.peach-entry-trash-confirm {329  display: flex;330  align-items: center;331  gap: 6px;332  flex-shrink: 0;333  margin-top: 6px;334  flex-wrap: nowrap;335}336.peach-entry-trash-confirm-label {337  font-family: var(--font-mono);338  font-size: 9px;339  letter-spacing: 0.1em;340  color: var(--peach-t2);341  white-space: nowrap;342}343.peach-entry-name-button {344  padding: 0;345  background: transparent;346  text-align: left;347  cursor: pointer;348  max-width: 100%;349  overflow: hidden;350  display: block;351}352.peach-entry-name-char {353  display: inline-block;354  white-space: pre;355  opacity: 0;356  transform: translateY(0.22em);357  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;358  animation-delay: calc(var(--char-index, 0) * 20ms);359}360361/* Domain */362.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }363.peach-domain-row {364  width: 100%; border: 0; background: transparent; color: inherit;365  padding: 0; display: flex; justify-content: space-between; align-items: baseline;366  cursor: default;367}368.peach-domain-value {369  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;370  font-size: 10px; font-style: italic;371  letter-spacing: 0.12em; color: var(--peach-t1);372}373374/* Fields */375.peach-fields { display: grid; gap: 10px; }376.peach-field-card { display: grid; gap: 7px; }377.peach-label {378  font-family: Inter, system-ui, sans-serif;379  text-transform: uppercase; letter-spacing: 0.2em;380  font-size: 8px; color: var(--peach-t2);381}382.peach-field-value-row {383  display: flex; justify-content: space-between;384  align-items: center; gap: 8px;385  min-width: 0;386}387.peach-field-value {388  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;389  font-size: 13px; color: var(--peach-t1);390  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;391  flex: 1;392  min-width: 0;393}394.peach-password-value {395  display: inline-flex;396  align-items: center;397  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;398  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);399  overflow: hidden;400  text-overflow: ellipsis;401  white-space: nowrap;402  flex: 1;403  min-width: 0;404  max-width: 100%;405}406.peach-password-value.is-revealed {407  font-size: 14px;408  letter-spacing: 0.08em;409}410.peach-password-text,411.peach-password-mask {412  display: block;413  width: 100%;414  overflow: hidden;415  text-overflow: ellipsis;416  white-space: nowrap;417}418.peach-field-actions { display: flex; gap: 4px; align-items: center; }419.peach-password-strength { display: flex; align-items: center; gap: 8px; }420.peach-strength-bar { display: flex; gap: 3px; }421.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }422.peach-strength-label {423  font-family: "IBM Plex Mono", monospace;424  font-style: italic;425  font-size: 9px;426  font-weight: 300;427  min-width: 36px;428  text-align: right;429  color: var(--peach-t2);430  letter-spacing: 0.06em;431}432433.peach-strength-hairline {434  display: flex;435  align-items: center;436  gap: 10px;437  margin-top: -2px;438}439440.peach-strength-hairline-track {441  flex: 1;442  height: 3px;443  border-radius: 2px;444  background: var(--peach-s2);445  overflow: hidden;446}447448.peach-strength-hairline-fill {449  height: 100%;450  border-radius: 2px;451  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),452    background 400ms ease;453}454455/* Note content */456.peach-note-content {457  border-top: 1px solid var(--peach-t3);458  padding-top: 10px;459  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;460  font-size: 11px;461  line-height: 1.75;462  color: var(--peach-t1);463  white-space: pre-wrap;464}465466/* ── Inline editing ─────────────────────────────────────────────────── */467468/* Clickable display values */469.peach-inline-clickable {470  cursor: text;471  border-radius: 3px;472  transition: background 150ms ease;473}474.peach-inline-clickable:hover {475  background: rgba(240, 232, 216, 0.05);476}477478/* Subtle "edit" hint that appears on hover */479.peach-inline-edit-hint {480  font-family: Inter, system-ui, sans-serif;481  font-size: 9px;482  text-transform: uppercase;483  letter-spacing: 0.14em;484  color: var(--peach-t2);485  opacity: 0;486  transition: opacity 120ms ease;487  pointer-events: none;488  margin-left: 6px;489  flex-shrink: 0;490}491.peach-domain-row:hover .peach-inline-edit-hint {492  opacity: 1;493}494495/* Title editing */496.peach-inline-title-wrap {497  display: flex;498  flex-direction: column;499  gap: 6px;500}501.peach-inline-title-input {502  font-family: "Cormorant Garamond", "Times New Roman", serif;503  font-style: italic;504  font-weight: 400;505  font-size: 40px;506  line-height: 0.95;507  color: var(--peach-t0);508  background: transparent;509  border: none;510  border-bottom: 1px solid var(--peach-accent);511  outline: none;512  width: 100%;513  padding: 2px 0;514}515516/* Generic inline field */517.peach-inline-field-wrap {518  display: flex;519  flex-direction: column;520  gap: 6px;521}522.peach-inline-input {523  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;524  font-size: 13px;525  color: var(--peach-t0);526  background: transparent;527  border: none;528  border-bottom: 1px solid var(--peach-accent);529  outline: none;530  width: 100%;531  padding: 3px 0;532}533.peach-inline-textarea {534  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;535  font-size: 11px;536  line-height: 1.7;537  color: var(--peach-t0);538  background: rgba(240, 232, 216, 0.04);539  border: 1px solid var(--peach-accent);540  border-radius: 4px;541  outline: none;542  width: 100%;543  padding: 8px;544  resize: vertical;545  min-height: 80px;546}547548/* Save / cancel row */549.peach-inline-actions {550  display: flex;551  gap: 6px;552  align-items: center;553}554.peach-inline-save-btn,555.peach-inline-cancel-btn {556  display: inline-flex;557  align-items: center;558  justify-content: center;559  width: 26px;560  height: 26px;561  border-radius: 4px;562  border: none;563  cursor: pointer;564  transition: background 140ms ease, opacity 140ms ease;565  flex-shrink: 0;566}567.peach-inline-save-btn {568  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);569  color: var(--peach-accent);570}571.peach-inline-save-btn:hover:not(:disabled) {572  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);573}574.peach-inline-cancel-btn {575  background: rgba(240, 232, 216, 0.06);576  color: var(--peach-t2);577}578.peach-inline-cancel-btn:hover:not(:disabled) {579  background: rgba(240, 232, 216, 0.12);580  color: var(--peach-t1);581}582.peach-inline-save-btn:disabled,583.peach-inline-cancel-btn:disabled {584  opacity: 0.4;585  cursor: not-allowed;586}587588/* Inline password generator wrapper */589.peach-inline-generator-wrap {590  margin-top: 10px;591  padding-top: 10px;592  border-top: 1px solid var(--peach-t3);593  display: flex;594  flex-direction: column;595  gap: 8px;596}597.peach-inline-generator-cancel {598  align-self: flex-start;599  font-size: 11px;600  color: var(--peach-t2);601}602603/* "is-editing" card state */604.peach-field-card.is-editing {605  background: rgba(240, 232, 216, 0.02);606  border-radius: 6px;607  padding: 8px;608  margin: -8px;609}610611/* Add notes button */612.peach-add-notes-btn {613  font-size: 11px;614  color: var(--peach-t2);615  margin-top: 6px;616  align-self: flex-start;617  padding: 4px 0;618}619620/* Delete row */621.peach-entry-delete-row {622  display: flex;623  align-items: center;624  gap: 8px;625  padding-top: 18px;626  margin-top: 8px;627  border-top: 1px solid var(--peach-t3);628}629.peach-delete-btn {630  font-size: 11px;631  color: var(--peach-t2);632  padding: 4px 0;633}634.peach-delete-confirm-text {635  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;636  font-size: 11px;637  font-style: italic;638  color: var(--peach-t2);639  flex-shrink: 0;640}641642/* TOTP band */643.peach-totp-band {644  border-top: 1px solid var(--peach-t3);645  padding: 12px 20px 14px;646  position: relative;647  display: grid;648  grid-template-columns: 1fr auto;649  gap: 10px;650}651.peach-totp-main {652  min-width: 0;653}654.peach-totp-code-row {655  display: flex;656  align-items: flex-end;657  gap: 10px;658  min-width: 0;659}660.peach-totp-code {661  margin: 2px 0 0;662  font-family: "Cormorant Garamond", "Times New Roman", serif;663  font-style: italic;664  font-weight: 300;665  font-size: 38px; color: var(--peach-accent);666  line-height: 0.95; min-height: 1em;667  min-width: 0;668}669.peach-totp-code-text {670  display: inline-flex;671  overflow: hidden;672  text-overflow: ellipsis;673  white-space: nowrap;674}675.peach-totp-copy-btn {676  margin-bottom: 2px;677  flex-shrink: 0;678}679.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }680.peach-totp-countdown {681  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;682  font-size: 22px; color: var(--peach-t1);683}684.peach-totp-ring { transform: rotate(-90deg); }685.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }686.peach-totp-ring-progress {687  fill: none; stroke: var(--peach-accent); stroke-width: 2;688  stroke-linecap: round;689  transition: stroke-dashoffset 1s linear, stroke 500ms ease;690}691.peach-totp-progress {692  position: absolute; left: 0; right: 0; bottom: 0;693  height: 1px; background: transparent; opacity: 0.4;694}695.peach-totp-progress-bar {696  height: 100%; background: var(--peach-accent);697  transition: width 1s linear;698}699700/* Search bar */701.peach-search-wrap {702  border-top: 1px solid var(--peach-t3);703  background: var(--peach-s1);704  min-height: 54px; position: relative;705}706.peach-search-bar {707  min-height: 54px;708  display: grid;709  grid-template-columns: auto minmax(0, 1fr) auto;710  align-items: center;711  gap: 8px; padding: 0 9px 0 12px;712}713.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }714.peach-search-input {715  border: 0; background: transparent; color: var(--peach-t0);716  font-family: "Cormorant Garamond", "Times New Roman", serif;717  font-style: italic; font-size: 18px;718  outline: none; width: 100%; min-width: 0; padding: 0;719  caret-color: var(--peach-accent);720}721.peach-search-input::placeholder { color: var(--peach-t2); }722.peach-search-meta {723  display: grid;724  grid-auto-flow: column;725  align-items: center;726  justify-content: end;727  gap: 6px;728  min-width: max-content;729}730.peach-search-counter {731  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;732  font-size: 10px; color: var(--peach-t2);733  display: inline-flex;734  align-items: center;735  line-height: 1;736}737.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }738739/* Buttons */740.peach-btn {741  border: 1px solid transparent; border-radius: 12px;742  background: transparent; color: var(--peach-t0);743  font-family: Inter, system-ui, sans-serif;744  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;745  cursor: pointer;746  transition:747    background-color var(--peach-dur-80) var(--peach-curve-arrival),748    color var(--peach-dur-80) var(--peach-curve-arrival),749    border-color var(--peach-dur-150) var(--peach-curve-arrival);750}751.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }752.peach-btn:disabled {753  opacity: 0.45;754  cursor: not-allowed;755}756.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }757.peach-btn--md { min-height: 38px; }758.peach-btn--accent { background: var(--peach-accent); color: rgba(0,0,0,0.75); }759.peach-btn--accent:hover:not(:disabled) { background: var(--peach-accent); filter: brightness(1.12); }760.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }761.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }762.peach-icon-btn {763  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;764  display: inline-flex; align-items: center; justify-content: center;765}766767.peach-btn:focus-visible {768  outline: none;769  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px rgba(217, 104, 48, 0.5);770}771772/* Lock button */773.peach-lock-icon { transform-origin: center; }774.peach-lock-btn.is-locking { color: var(--peach-accent); }775.peach-lock-btn.is-locking .peach-lock-icon {776  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);777}778779/* Copy button */780.peach-copy-btn {781  position: relative; overflow: hidden;782  color: var(--peach-t2); border-color: var(--peach-t3);783}784.peach-copy-icon {785  display: inline-flex; align-items: center; justify-content: center;786  position: relative; z-index: 1;787}788.peach-copy-icon-svg { display: block; }789.peach-copy-sheen {790  position: absolute; inset: 0;791  background: linear-gradient(90deg, rgba(217,104,48,0) 0%, rgba(217,104,48,0.18) 30%, rgba(217,104,48,0.08) 100%);792  opacity: 0; transform: scaleX(0.15); transform-origin: left center;793}794.peach-copy-btn.is-copied {795  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;796  box-shadow:797    0 0 0 1px rgba(217,104,48,0.22),798    0 0 18px rgba(217,104,48,0.2),799    inset 0 0 20px rgba(217,104,48,0.12);800}801.peach-copy-btn.is-copied .peach-copy-icon {802  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;803}804.peach-copy-btn.is-copied .peach-copy-sheen {805  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;806}807.peach-copy-btn.is-retreat {808  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;809}810.peach-copy-btn.is-retreat .peach-copy-sheen {811  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;812}813.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }814.peach-copy-drain-bar {815  display: block; width: 100%; height: 100%;816  background: var(--peach-accent); opacity: 0.7;817  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;818}819820/* Unlock screen elements */821.peach-unlock-headline {822  margin: 2px 0 0;823  font-family: "Cormorant Garamond", "Times New Roman", serif;824  font-size: 52px; line-height: 0.95;825  font-style: italic; font-weight: 400;826}827.peach-subline {828  margin: 0;829  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;830  font-size: 10px; color: var(--peach-t2); font-style: italic;831}832.peach-subline--lock {833  max-width: 248px;834  line-height: 1.5;835}836.peach-underline-input {837  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);838  padding: 6px 0; background: transparent; color: var(--peach-t0);839  outline: none;840  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;841  font-size: 13px;842  caret-color: var(--peach-accent);843}844.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }845.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }846.peach-hint {847  margin: 0;848  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;849  font-size: 10px; color: var(--peach-t2);850}851.peach-unlock-footer {852  margin-top: 4px; display: flex; align-items: center; gap: 7px;853  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;854  font-size: 10px; color: var(--peach-t2);855}856.peach-unlock-footer--lock {857  padding-top: 2px;858}859860/* Breach badge */861.peach-breach-badge {862  display: flex;863  position: relative;864  z-index: 1;865  align-items: center;866  gap: 7px;867  font-size: 9px;868  color: var(--peach-breach);869  padding: 5px 10px;870  margin-bottom: 4px;871  border-radius: 8px;872  background: rgba(220, 80, 60, 0.07);873  border: 1px solid rgba(220, 80, 60, 0.18);874  letter-spacing: 0.04em;875}876877.peach-breach-action {878  margin-left: auto;879  font-size: 10px;880  padding: 3px 8px;881}882883.peach-password-value.is-breached {884  color: rgba(220, 80, 60, 0.75);885  border-bottom: 1px solid rgba(220, 80, 60, 0.22);886}887888/* ── Overlay views ─────────────────────────────────────────────────── */889.peach-overlay-view {890  position: absolute;891  inset: 0;892  display: flex;893  flex-direction: column;894  background:895    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),896    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),897    var(--peach-bg);898  z-index: 2;899  overflow: hidden;900  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;901}902@keyframes overlay-in {903  from { opacity: 0; transform: translateY(8px); }904  to   { opacity: 1; transform: translateY(0); }905}906.peach-overlay-view.ov-enter-up {907  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;908}909.peach-overlay-view.ov-exit-up {910  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;911}912.peach-overlay-view.ov-enter-right {913  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;914}915.peach-overlay-view.ov-exit-right {916  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;917}918919@keyframes ov-enter-up {920  from { opacity: 0; transform: translateY(18px); }921  to   { opacity: 1; transform: translateY(0); }922}923@keyframes ov-exit-up {924  from { opacity: 1; transform: translateY(0); }925  to   { opacity: 0; transform: translateY(-12px); }926}927@keyframes ov-enter-right {928  from { opacity: 0; transform: translateX(20px); }929  to   { opacity: 1; transform: translateX(0); }930}931@keyframes ov-exit-right {932  from { opacity: 1; transform: translateX(0); }933  to   { opacity: 0; transform: translateX(20px); }934}935936/* Overlay shared header */937.peach-overlay-header {938  padding: 10px 12px;939  display: flex;940  align-items: center;941  gap: 8px;942  border-bottom: 1px solid var(--peach-t3);943  flex-shrink: 0;944}945.peach-overlay-title {946  font-family: "IBM Plex Mono", monospace;947  font-size: 9px;948  text-transform: uppercase;949  letter-spacing: 0.18em;950  color: var(--peach-t2);951  flex: 1;952  text-align: center;953}954955.peach-overlay-card {956  background: var(--peach-s1);957  border: 1px solid var(--peach-t3);958  border-radius: 12px;959  overflow: hidden;960  width: 100%;961}962963.peach-onboarding-alt-actions {964  display: flex;965  flex-direction: column;966  gap: 4px;967  padding: 0;968}969970.peach-settings-copy {971  margin: 0 0 10px;972  font-size: 11px;973  line-height: 1.5;974  color: var(--peach-t2);975}976977.peach-settings-copy strong {978  color: var(--peach-t0);979}980981.peach-settings-copy--spacious {982  margin-bottom: 12px;983}984985.peach-settings-copy--result {986  color: var(--peach-accent);987  font-size: 13px;988  text-align: center;989  padding: 8px 0;990}991992.peach-settings-copy--danger {993  color: var(--peach-breach);994}995996.peach-settings-copy--success {997  color: var(--peach-accent);998}9991000.peach-inline-feedback {1001  font-size: 11px;1002  margin: 10px 0 0;1003}10041005.peach-inline-feedback--ok {1006  color: var(--peach-accent);1007}10081009.peach-inline-feedback--error {1010  color: var(--peach-breach);1011}10121013.peach-inline-feedback--muted {1014  color: var(--peach-t2);1015  font-size: 10px;1016  margin: 4px 0;1017}10181019.peach-inline-feedback--spaced {1020  margin-top: 12px;1021}10221023.peach-settings-actions--row {1024  display: flex;1025  gap: 6px;1026}10271028.peach-settings-actions--end {1029  margin-top: 14px;1030  justify-content: flex-end;1031}10321033.peach-settings-stack {1034  display: flex;1035  flex-direction: column;1036  gap: 6px;1037}10381039.peach-settings-stack--tight {1040  gap: 4px;1041}10421043.peach-settings-stack--spacious {1044  gap: 8px;1045}10461047.peach-settings-input {1048  width: 100%;1049  box-sizing: border-box;1050  padding: 8px 10px;1051  background: var(--peach-s2);1052  border: 1px solid var(--peach-t3);1053  border-radius: 6px;1054  color: var(--peach-t0);1055  font-family: var(--font-ui);1056  font-size: 12px;1057  outline: none;1058  transition: border-color 120ms ease;1059}10601061.peach-settings-input:focus {1062  border-color: var(--peach-accent);1063}10641065.peach-settings-input[type="password"] {1066  font-family: var(--font-mono);1067  letter-spacing: 0.04em;1068}10691070.peach-phrase-textarea {1071  width: 100%;1072  box-sizing: border-box;1073  min-height: 120px;1074  padding: 10px 12px;1075  background: var(--peach-s2);1076  border: 1px solid var(--peach-t3);1077  border-radius: 6px;1078  color: var(--peach-t0);1079  font-size: 12px;1080  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1081  line-height: 1.5;1082  resize: vertical;1083  outline: none;1084}10851086.peach-phrase-textarea:focus {1087  border-color: var(--peach-accent);1088}10891090.peach-hidden-file-input {1091  display: none;1092}10931094.peach-checkbox-note {1095  display: flex;1096  align-items: flex-start;1097  gap: 8px;1098  font-size: 11px;1099  color: var(--peach-t1);1100  cursor: pointer;1101  margin: 12px 0;1102}11031104.peach-checkbox-note input {1105  margin-top: 1px;1106}11071108.peach-cjk-phrase-box {1109  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1110  font-size: 13px;1111  line-height: 1.5;1112  background: var(--peach-s2);1113  border: 1px solid var(--peach-t3);1114  border-radius: 6px;1115  padding: 10px 12px;1116  margin: 0 0 10px;1117  word-break: break-all;1118  white-space: pre-wrap;1119  max-height: 220px;1120  overflow-y: auto;1121  color: var(--peach-t0);1122  user-select: all;1123}11241125.peach-danger-notice {1126  background: rgba(220, 80, 60, 0.08);1127  border: 1px solid rgba(220, 80, 60, 0.2);1128  border-radius: 6px;1129  padding: 9px 11px;1130  font-size: 11px;1131  color: var(--peach-t1);1132  line-height: 1.5;1133}11341135.peach-info-notice {1136  font-size: 11px;1137  color: var(--peach-t2);1138  line-height: 1.5;1139  background: rgba(240, 232, 216, 0.04);1140  border: 1px solid var(--peach-t3);1141  border-radius: 6px;1142  padding: 8px 10px;1143}11441145.peach-strength-row {1146  display: flex;1147  align-items: center;1148  gap: 8px;1149  margin-bottom: 10px;1150}11511152.peach-strength-track {1153  flex: 1;1154  height: 4px;1155  background: var(--peach-s2);1156  border-radius: 2px;1157  overflow: hidden;1158}11591160.peach-strength-fill {1161  height: 100%;1162  border-radius: 2px;1163  transition: width 120ms ease, background 120ms ease;1164}11651166/* ── Type selector tabs ── */1167.peach-type-tabs {1168  display: flex;1169  gap: 0;1170  background: var(--peach-t4);1171  border-radius: 8px;1172  padding: 3px;1173}11741175.peach-type-tab {1176  flex: 1;1177  display: flex;1178  align-items: center;1179  justify-content: center;1180  gap: 6px;1181  padding: 6px 10px;1182  border-radius: 6px;1183  border: none;1184  background: transparent;1185  cursor: pointer;1186  font-family: Inter, system-ui, sans-serif;1187  font-size: 11px;1188  font-weight: 400;1189  letter-spacing: 0.04em;1190  color: var(--peach-t1);1191  transition: background 150ms ease, color 150ms ease;1192}11931194.peach-type-tab.is-active {1195  background: var(--peach-s2);1196  color: var(--peach-t0);1197  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1198}11991200.peach-type-tab:not(.is-active):hover {1201  color: var(--peach-t0);1202}12031204.peach-type-tab svg {1205  opacity: 0.7;1206  flex-shrink: 0;1207}12081209.peach-type-tab.is-active svg {1210  opacity: 1;1211}12121213/* ── List view ───────────────────────────────────────────────────────── */1214.peach-list-top {1215  padding: 0 10px;1216  min-height: 46px;1217  display: flex;1218  align-items: center;1219  gap: 6px;1220  border-bottom: 1px solid var(--peach-t3);1221  flex-shrink: 0;1222  background: var(--peach-s1);1223}1224.peach-vault-list {1225  flex: 1;1226  overflow-y: auto;1227  scrollbar-width: none;1228}1229.peach-vault-list::-webkit-scrollbar { display: none; }12301231/* Scrollbar — vault list */1232.peach-vault-list {1233  scrollbar-width: thin;1234  scrollbar-color: var(--peach-t3) transparent;1235}12361237.peach-vault-list::-webkit-scrollbar {1238  width: 3px;1239}12401241.peach-vault-list::-webkit-scrollbar-thumb {1242  background: var(--peach-t3);1243  border-radius: 2px;1244}12451246.peach-entry-row {1247  width: 100%;1248  display: flex;1249  align-items: center;1250  gap: 10px;1251  padding: 9px 16px;1252  background: transparent;1253  border: none;1254  border-bottom: 1px solid var(--peach-t3);1255  cursor: pointer;1256  color: inherit;1257  text-align: left;1258  transition: background 80ms ease;1259}1260.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1261.peach-entry-row:last-child { border-bottom: none; }1262.peach-entry-row.is-active {1263  box-shadow: inset 2px 0 0 var(--peach-accent);1264  background: rgba(240,232,216,0.03);1265}1266.peach-entry-row-icon {1267  width: 26px; height: 26px;1268  border-radius: 7px;1269  border: 1px solid var(--peach-t3);1270  display: flex; align-items: center; justify-content: center;1271  color: var(--peach-t2);1272  flex-shrink: 0;1273}1274.peach-entry-row-icon.is-breach {1275  border-color: rgba(220,80,60,0.3);1276  color: rgba(220,80,60,0.7);1277}1278.peach-entry-row-info { flex: 1; min-width: 0; }1279.peach-entry-row-name {1280  display: block;1281  font-family: "Cormorant Garamond", serif;1282  font-size: 17px;1283  font-style: italic;1284  font-weight: 400;1285  color: var(--peach-t0);1286  line-height: 1.2;1287  white-space: nowrap;1288  overflow: hidden;1289  text-overflow: ellipsis;1290}1291.peach-entry-row-meta {1292  display: block;1293  font-family: "IBM Plex Mono", monospace;1294  font-size: 9px;1295  color: var(--peach-t2);1296  margin-top: 1px;1297  letter-spacing: 0.05em;1298}1299.peach-entry-row-dot {1300  width: 5px; height: 5px;1301  border-radius: 50%;1302  background: rgba(220,80,60,0.7);1303  flex-shrink: 0;1304}1305.peach-new-entry-row {1306  display: flex;1307  align-items: center;1308  justify-content: center;1309  gap: 6px;1310  width: 100%;1311  padding: 11px;1312  background: transparent;1313  border: none;1314  border-top: 1px solid var(--peach-t3);1315  color: var(--peach-t2);1316  font-family: "IBM Plex Mono", monospace;1317  font-size: 9px;1318  text-transform: uppercase;1319  letter-spacing: 0.14em;1320  cursor: pointer;1321  flex-shrink: 0;1322  transition: color 120ms ease, background 120ms ease;1323}1324.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13251326/* ── Multi-select mode ─────────────────────────────────────────────── */13271328/* Select-mode trigger button in sort bar — same shape as trash btn */1329.peach-sort-select-btn {1330  display: flex;1331  align-items: center;1332  justify-content: center;1333  padding: 3px 5px;1334  background: transparent;1335  border: none;1336  cursor: pointer;1337  color: var(--peach-t2);1338  border-radius: 4px;1339  transition: color 140ms ease, background 140ms ease;1340}1341.peach-sort-select-btn:hover {1342  color: var(--peach-t1);1343  background: var(--peach-t3);1344}13451346/* Sort bar in select mode */1347.peach-select-cancel-btn {1348  background: transparent;1349  border: none;1350  padding: 0 4px;1351  cursor: pointer;1352  font-family: "IBM Plex Mono", monospace;1353  font-size: 9px;1354  letter-spacing: 0.12em;1355  text-transform: uppercase;1356  color: var(--peach-t2);1357  transition: color 140ms ease;1358  flex-shrink: 0;1359}1360.peach-select-cancel-btn:hover { color: var(--peach-t0); }13611362.peach-select-count-label {1363  flex: 1;1364  text-align: center;1365  font-family: "IBM Plex Mono", monospace;1366  font-size: 9px;1367  letter-spacing: 0.14em;1368  text-transform: uppercase;1369  color: var(--peach-t1);1370}13711372.peach-select-all-btn {1373  background: transparent;1374  border: none;1375  padding: 0 4px;1376  cursor: pointer;1377  font-family: "IBM Plex Mono", monospace;1378  font-size: 9px;1379  letter-spacing: 0.12em;1380  text-transform: uppercase;1381  color: var(--peach-t2);1382  transition: color 140ms ease;1383  flex-shrink: 0;1384}1385.peach-select-all-btn:hover { color: var(--peach-accent); }13861387/* List in select mode */1388.peach-vault-list.is-selecting .peach-entry-row {1389  cursor: default;1390}1391.peach-vault-list.is-selecting .peach-entry-row:hover {1392  background: rgba(240,232,216,0.02);1393}1394.peach-vault-list.is-selecting .peach-entry-row.is-selected {1395  background: rgba(217,104,48,0.06);1396}1397.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1398  background: rgba(217,104,48,0.1);1399}14001401/* Select indicator circles in icon slot */1402.peach-entry-row-icon.is-select-icon {1403  color: var(--peach-t2);1404}1405.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1406  color: var(--peach-accent);1407}14081409/* Delete action bar at bottom (replaces new-entry row) */1410.peach-select-action-bar {1411  display: flex;1412  align-items: center;1413  justify-content: center;1414  gap: 7px;1415  width: 100%;1416  padding: 11px;1417  background: transparent;1418  border: none;1419  border-top: 1px solid var(--peach-t3);1420  color: var(--peach-t1);1421  font-family: "IBM Plex Mono", monospace;1422  font-size: 9px;1423  text-transform: uppercase;1424  letter-spacing: 0.14em;1425  cursor: pointer;1426  flex-shrink: 0;1427  transition: color 120ms ease, background 120ms ease;1428}1429.peach-select-action-bar:not(:disabled):hover {1430  color: var(--peach-t0);1431  background: rgba(220,80,60,0.06);1432}1433.peach-select-action-bar:not(:disabled):hover svg {1434  stroke: rgba(220,80,60,0.8);1435}1436.peach-select-action-bar:disabled,1437.peach-select-action-bar.is-empty {1438  color: var(--peach-t2);1439  cursor: default;1440  opacity: 0.5;1441}1442.peach-search-counter-list {1443  white-space: nowrap;1444  flex-shrink: 0;1445}1446.peach-list-empty {1447  min-height: 180px;1448  display: grid;1449  place-items: center;1450  color: var(--peach-t2);1451  font-family: "IBM Plex Mono", monospace;1452  font-size: 11px;1453}14541455/* ── Settings view ───────────────────────────────────────────────────── */1456.peach-settings-body {1457  flex: 1;1458  overflow-y: auto;1459  min-height: 0;1460  display: flex;1461  flex-direction: column;1462  padding: 2px 0 10px;1463}1464.peach-settings-group {1465  padding: 9px 16px 11px;1466  border-bottom: 1px solid var(--peach-t3);1467}1468.peach-export-intro {1469  padding-bottom: 8px;1470}1471.peach-export-card {1472  display: grid;1473  gap: 10px;1474}1475.peach-export-card--primary {1476  background:1477    linear-gradient(180deg, rgba(217,104,48,0.08), rgba(217,104,48,0.02));1478}1479.peach-export-card-head {1480  display: flex;1481  align-items: center;1482  justify-content: space-between;1483  gap: 10px;1484}1485.peach-export-card-copy {1486  margin: 0;1487  font-size: 12px;1488  line-height: 1.55;1489  color: var(--peach-t1);1490}1491.peach-export-note {1492  margin: 0;1493  font-size: 10px;1494  line-height: 1.5;1495  color: var(--peach-t2);1496}1497.peach-export-pill {1498  display: inline-flex;1499  align-items: center;1500  padding: 4px 8px;1501  border-radius: 999px;1502  border: 1px solid rgba(217,104,48,0.22);1503  background: rgba(217,104,48,0.08);1504  color: var(--peach-accent);1505  font-family: "IBM Plex Mono", monospace;1506  font-size: 8px;1507  letter-spacing: 0.12em;1508  text-transform: uppercase;1509  white-space: nowrap;1510}1511.peach-export-pill--danger {1512  border-color: rgba(220,80,60,0.22);1513  background: rgba(220,80,60,0.08);1514  color: var(--peach-breach);1515}1516.peach-export-password-stack {1517  gap: 8px;1518}1519.peach-settings-label {1520  margin: 0 0 6px;1521  font-family: "IBM Plex Mono", monospace;1522  font-size: 8px;1523  text-transform: uppercase;1524  letter-spacing: 0.18em;1525  color: var(--peach-t2);1526}1527.peach-settings-row {1528  display: flex;1529  align-items: center;1530  justify-content: space-between;1531  gap: 12px;1532  min-height: 34px;1533  padding: 6px 0;1534  font-size: 13px;1535  color: var(--peach-t1);1536}1537.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1538.peach-settings-value {1539  font-family: "IBM Plex Mono", monospace;1540  font-size: 10px;1541  color: var(--peach-t2);1542}15431544.peach-settings-value--status {1545  display: flex;1546  align-items: center;1547  gap: 6px;1548}15491550.peach-settings-row--stack {1551  flex-direction: column;1552  align-items: stretch;1553  gap: 6px;1554}15551556.peach-settings-row--top {1557  align-items: flex-start;1558}15591560.peach-settings-row-main {1561  display: flex;1562  flex-direction: column;1563  gap: 4px;1564  flex: 1;1565}1566.peach-toggle {1567  width: 28px; height: 16px;1568  border-radius: 999px;1569  background: var(--peach-t3);1570  border: 1px solid var(--peach-t3);1571  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1572  flex-shrink: 0;1573  transition: background 200ms ease, border-color 200ms ease;1574  cursor: pointer;1575}1576.peach-toggle.is-on {1577  background: rgba(217,104,48,0.22);1578  border-color: rgba(217,104,48,0.4);1579}1580.peach-toggle-knob {1581  width: 10px; height: 10px;1582  border-radius: 50%;1583  background: var(--peach-t2);1584  flex-shrink: 0;1585  transform: translateX(0px);1586  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1587}1588.peach-toggle.is-on .peach-toggle-knob {1589  background: var(--peach-accent);1590  transform: translateX(12px);1591}1592.peach-settings-footer {1593  display: flex;1594  align-items: center;1595  gap: 8px;1596  margin-top: auto;1597  padding: 14px 16px 8px;1598  font-family: "IBM Plex Mono", monospace;1599  font-size: 9px;1600  color: var(--peach-t2);1601}16021603.peach-passkey-badge {1604  margin-left: 8px;1605  font-size: 10px;1606  letter-spacing: 0.06em;1607  text-transform: uppercase;1608  color: var(--peach-t2);1609  font-family: var(--font-ui);1610  vertical-align: middle;1611}16121613.peach-passkey-delete-btn {1614  color: var(--peach-breach);1615  border-color: rgba(229, 85, 85, 0.25);1616}16171618.peach-passkey-delete-confirm {1619  display: flex;1620  align-items: center;1621  gap: 8px;1622  padding: 8px 10px;1623  background: rgba(229, 85, 85, 0.06);1624  border: 1px solid rgba(229, 85, 85, 0.2);1625  border-radius: 6px;1626}16271628.peach-passkey-delete-confirm-copy {1629  flex: 1;1630  font-size: 11px;1631  color: var(--peach-t1);1632}16331634.peach-passkey-delete-btn--confirm {1635  color: var(--peach-breach);1636  border-color: rgba(229, 85, 85, 0.4);1637}16381639.peach-passkey-activity {1640  flex-direction: column;1641  align-items: flex-start;1642  gap: 4px;1643}16441645.peach-passkey-meta {1646  font-size: 11px;1647  color: var(--peach-t2);1648}16491650.peach-passkey-actions {1651  position: relative;1652  z-index: 1;1653  margin-top: 14px;1654  display: flex;1655  flex-direction: column;1656  gap: 8px;1657}16581659.peach-passkey-approval {1660  display: flex;1661  flex-direction: column;1662  align-items: center;1663  padding: 28px 22px 22px;1664  gap: 14px;1665  text-align: center;1666}16671668.peach-passkey-approval-icon {1669  width: 46px;1670  height: 46px;1671  border-radius: 12px;1672  background: var(--peach-s2);1673  border: 1px solid var(--peach-t3);1674  display: flex;1675  align-items: center;1676  justify-content: center;1677  flex-shrink: 0;1678  color: var(--peach-accent);1679}16801681.peach-passkey-approval-icon img,1682.peach-passkey-approval-icon svg {1683  width: 28px;1684  height: 28px;1685  border-radius: 6px;1686}16871688.peach-passkey-approval-rp {1689  font-family: var(--font-ui);1690  font-size: 12px;1691  color: var(--peach-t2);1692  letter-spacing: 0.03em;1693}16941695.peach-passkey-approval-action {1696  font-family: var(--font-display);1697  font-style: italic;1698  font-weight: 300;1699  font-size: 26px;1700  color: var(--peach-t0);1701  line-height: 1;1702}17031704.peach-passkey-approval-user {1705  font-family: var(--font-mono);1706  font-size: 11px;1707  color: var(--peach-t1);1708  background: var(--peach-s2);1709  border: 1px solid var(--peach-t3);1710  border-radius: 4px;1711  padding: 3px 8px;1712}17131714.peach-passkey-approval-notice {1715  font-size: 10px;1716  color: var(--peach-t2);1717  line-height: 1.5;1718  max-width: 220px;1719}17201721.peach-passkey-approval-actions {1722  display: flex;1723  gap: 8px;1724  width: 100%;1725  margin-top: 6px;1726}17271728.peach-passkey-approval-actions .peach-btn {1729  flex: 1;1730}17311732/* ── Inline generator drawer ── */1733.peach-generator-drawer {1734  display: grid;1735  grid-template-rows: 0fr;1736  transition: grid-template-rows 320ms var(--peach-curve-arrival);1737  overflow: hidden;1738}1739.peach-generator-drawer.is-open {1740  grid-template-rows: 1fr;1741}1742.peach-generator-drawer-inner {1743  min-height: 0;1744  overflow: hidden;1745}1746.peach-generator-drawer-content {1747  border-top: 1px solid var(--peach-t3);1748  padding: 8px 0 4px;1749  display: flex;1750  flex-direction: column;1751  gap: 8px;1752}17531754/* ── Compact generator (inside entry edit) ── */1755.peach-generator-drawer-content--compact {1756  border-top: 1px solid var(--peach-t3);1757  padding: 8px 0 2px;1758  gap: 7px;1759}1760.peach-pwgen-compact-display-row {1761  display: flex;1762  align-items: center;1763  gap: 6px;1764}1765.peach-pwgen-compact-output {1766  flex: 1;1767  min-width: 0;1768  font-family: "IBM Plex Mono", monospace;1769  font-size: 11px;1770  font-weight: 400;1771  letter-spacing: 0.04em;1772  color: var(--peach-t0);1773  background: rgba(240, 232, 216, 0.04);1774  border: 1px solid var(--peach-t3);1775  border-radius: 5px;1776  padding: 5px 8px;1777  word-break: break-all;1778  line-height: 1.5;1779}1780.peach-pwgen-compact-controls {1781  display: flex;1782  align-items: center;1783  gap: 6px;1784}1785.peach-pwgen-compact-slider {1786  flex: 1;1787  min-width: 0;1788  height: 2px !important;1789}1790.peach-pwgen-compact-controls .peach-pwgen-len-num {1791  flex-shrink: 0;1792  min-width: 18px;1793  text-align: right;1794}1795.peach-pwgen-compact-pills {1796  display: flex;1797  gap: 3px;1798  flex-shrink: 0;1799}1800.peach-pwgen-compact-pills .peach-pwgen-pill {1801  padding: 2px 7px;1802  font-size: 8px;1803}1804.peach-pwgen-compact-use {1805  flex-shrink: 0;1806  font-size: 10px !important;1807  padding: 3px 9px !important;1808  min-height: 22px !important;1809  border-radius: 5px !important;1810}18111812/* ── Password edit row (input + eye toggle side-by-side) ── */1813.peach-password-edit-row {1814  display: flex;1815  align-items: center;1816  gap: 6px;1817}1818.peach-password-edit-row .peach-inline-input {1819  flex: 1;1820  min-width: 0;1821}18221823/* ── Generate toggle link ── */1824.peach-generate-toggle-link {1825  display: inline-flex;1826  align-items: center;1827  gap: 5px;1828  background: none;1829  border: none;1830  padding: 0;1831  cursor: pointer;1832  font-family: "IBM Plex Mono", monospace;1833  font-size: 10px;1834  color: var(--peach-t2);1835  letter-spacing: 0.04em;1836  transition: color 120ms ease;1837  align-self: flex-start;1838}1839.peach-generate-toggle-link:hover {1840  color: var(--peach-accent);1841}18421843/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1844.peach-entry-body {1845  flex: 1;1846  overflow-y: auto;1847  overflow-x: hidden;1848  scrollbar-width: none;1849  -ms-overflow-style: none;1850  overscroll-behavior: contain;1851  display: grid;1852  gap: 10px;1853  align-content: start;1854  padding: 10px 20px 14px;1855  min-width: 0;1856  min-height: 0;1857}1858.peach-entry-body::-webkit-scrollbar { display: none; }18591860/* Type-toggle pills (new entry only) */1861.peach-new-type-row {1862  display: flex;1863  gap: 6px;1864  margin-bottom: 2px;1865}1866.peach-new-type-btn {1867  background: transparent;1868  border: 1px solid var(--peach-t3);1869  border-radius: 12px;1870  padding: 3px 10px;1871  font-family: "IBM Plex Mono", monospace;1872  font-size: 9px;1873  letter-spacing: 0.12em;1874  text-transform: uppercase;1875  color: var(--peach-t2);1876  cursor: pointer;1877  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1878}1879.peach-new-type-btn.is-active {1880  color: var(--peach-t0);1881  border-color: var(--peach-accent);1882  background: rgba(217, 104, 48, 0.08);1883}1884.peach-new-type-btn:not(.is-active):hover {1885  color: var(--peach-t1);1886  border-color: var(--peach-t2);1887}18881889/* Editable title */1890.peach-new-title-wrap { margin: 0 0 2px; }1891.peach-new-title-input {1892  background: transparent;1893  border: none;1894  outline: none;1895  width: 100%;1896  color: var(--peach-t0);1897  font-family: "Cormorant Garamond", Georgia, serif;1898  font-style: italic;1899  font-weight: 400;1900  font-size: 40px;1901  line-height: 0.95;1902  caret-color: var(--peach-accent);1903}1904.peach-new-title-input::placeholder { color: var(--peach-t2); }19051906/* Editable domain field */1907.peach-domain-value--edit {1908  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1909  font-size: 10px;1910  font-style: italic;1911  letter-spacing: 0.12em;1912  color: var(--peach-t1);1913  background: transparent;1914  border: none;1915  border-bottom: 1px solid var(--peach-t3);1916  outline: none;1917  width: 100%;1918  padding: 2px 0;1919  caret-color: var(--peach-accent);1920  transition: border-color 140ms ease, color 140ms ease;1921}1922.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1923.peach-domain-value--edit:focus {1924  border-bottom-color: rgba(240, 232, 216, 0.28);1925  color: var(--peach-t0);1926}19271928/* Editable field values (username, password, totp) */1929.peach-field-value--edit {1930  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1931  font-size: 13px;1932  color: var(--peach-t0);1933  background: transparent;1934  border: none;1935  border-bottom: 1px solid var(--peach-t3);1936  outline: none;1937  flex: 1;1938  min-width: 0;1939  padding: 3px 0;1940  caret-color: var(--peach-accent);1941  transition: border-color 140ms ease, color 140ms ease;1942}1943.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1944.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }1945.peach-field-value--edit:focus {1946  border-bottom-color: rgba(240, 232, 216, 0.28);1947  color: var(--peach-t0);1948}19491950/* "+ add optional field" links */1951.peach-entry-add-links {1952  display: flex;1953  gap: 12px;1954  flex-wrap: wrap;1955  margin-top: -2px;1956}1957.peach-add-field-link {1958  background: transparent;1959  border: none;1960  padding: 0;1961  cursor: pointer;1962  font-family: "IBM Plex Mono", monospace;1963  font-size: 9px;1964  letter-spacing: 0.1em;1965  text-transform: uppercase;1966  color: var(--peach-t2);1967  transition: color 140ms ease;1968}1969.peach-add-field-link:hover { color: var(--peach-accent); }19701971/* ── New entry form (legacy classes) ────────────────────────────────── */1972.peach-new-body {1973  flex: 1;1974  overflow-y: auto;1975  padding: 10px 20px 14px;1976}1977.peach-new-name-input {1978  background: transparent;1979  border: none;1980  outline: none;1981  width: 100%;1982  color: var(--peach-t0);1983  font-family: "Cormorant Garamond", Georgia, serif;1984  font-style: italic;1985  font-weight: 400;1986  font-size: 40px;1987  line-height: 0.95;1988  caret-color: var(--peach-accent);1989}1990.peach-new-name-input::placeholder { color: var(--peach-t2); }1991.peach-new-field-input {1992  background: transparent;1993  border: none;1994  outline: none;1995  flex: 1;1996  min-width: 0;1997  caret-color: var(--peach-accent);1998}1999.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20002001/* ── Canary card ── */2002.peach-canary-card {2003  border: 1px solid rgba(217, 160, 48, 0.2);2004  background: rgba(217, 160, 48, 0.03);2005  border-radius: 8px;2006  padding: 12px;2007}20082009.peach-canary-settings-header {2010  display: flex;2011  align-items: center;2012  justify-content: space-between;2013  cursor: pointer;2014  user-select: none;2015}20162017.peach-canary-card .peach-label {2018  color: rgba(217, 160, 48, 0.85);2019}20202021.peach-canary-card .peach-new-field-input {2022  border-color: rgba(217, 160, 48, 0.25);2023}20242025.peach-canary-card .peach-new-field-input:focus {2026  border-color: rgba(217, 160, 48, 0.5);2027}20282029.peach-canary-body {2030  margin-top: 12px;2031  display: flex;2032  flex-direction: column;2033  gap: 10px;2034}20352036.peach-canary-explainer {2037  display: flex;2038  gap: 10px;2039  padding: 10px 12px;2040  border-radius: 10px;2041  background: rgba(217, 160, 48, 0.06);2042  border: 1px solid rgba(217, 160, 48, 0.22);2043  margin-bottom: 4px;2044}20452046.peach-canary-explainer-icon {2047  font-size: 16px;2048  flex-shrink: 0;2049  line-height: 1.2;2050}20512052.peach-canary-explainer-title {2053  font-family: var(--font-ui);2054  font-size: 11px;2055  font-weight: 500;2056  color: rgba(217, 160, 48, 0.9);2057  margin: 0 0 3px;2058}20592060.peach-canary-explainer-copy {2061  font-family: var(--font-ui);2062  font-size: 10px;2063  color: var(--peach-t2);2064  line-height: 1.55;2065  margin: 0;2066}20672068.peach-canary-hint {2069  font-size: 10px;2070  color: var(--peach-t2);2071  font-family: Inter, system-ui, sans-serif;2072  line-height: 1.5;2073  margin-top: 4px;2074}20752076.peach-canary-actions-row {2077  display: flex;2078  align-items: center;2079  gap: 8px;2080}20812082.peach-canary-test-btn {2083  border-color: rgba(217, 160, 48, 0.3);2084  color: rgba(217, 160, 48, 0.85);2085}20862087.peach-canary-test-result {2088  font-size: 10px;2089  font-family: Inter, system-ui, sans-serif;2090}20912092.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2093.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }20942095.peach-canary-badge {2096  display: flex;2097  position: relative;2098  z-index: 1;2099  align-items: center;2100  gap: 5px;2101  padding: 4px 10px;2102  background: rgba(217, 160, 48, 0.12);2103  border: 1px solid rgba(217, 160, 48, 0.35);2104  border-radius: 6px;2105  margin-bottom: 6px;2106  width: fit-content;2107}21082109.peach-canary-badge-label {2110  font-size: 10px;2111  letter-spacing: 0.06em;2112  color: rgba(217, 160, 48, 0.9);2113  font-family: var(--font-ui);2114  text-transform: uppercase;2115}21162117.peach-canary-badge-icon {2118  font-size: 11px;2119}21202121.peach-canary-suppress-row {2122  display: flex;2123  align-items: center;2124  gap: 8px;2125  padding: 6px 10px;2126  background: rgba(217, 160, 48, 0.08);2127  border-radius: 6px;2128  margin-bottom: 8px;2129}21302131.peach-canary-suppress-label {2132  font-size: 11px;2133  color: rgba(217, 160, 48, 0.85);2134  cursor: pointer;2135  font-family: var(--font-ui);2136  letter-spacing: 0.04em;2137}21382139.peach-regen-panel {2140  position: relative;2141  z-index: 1;2142  background: rgba(217, 104, 48, 0.08);2143  border: 1px solid rgba(217, 104, 48, 0.25);2144  border-radius: 8px;2145  padding: 12px;2146  margin-bottom: 8px;2147}21482149.peach-regen-panel-header {2150  display: flex;2151  align-items: center;2152  justify-content: space-between;2153  margin-bottom: 10px;2154}21552156.peach-regen-panel-title {2157  font-size: 11px;2158  font-weight: 600;2159  letter-spacing: 0.06em;2160  text-transform: uppercase;2161  color: rgba(217, 104, 48, 0.9);2162}21632164.peach-regen-output {2165  background: rgba(0, 0, 0, 0.2);2166  border-radius: 6px;2167  padding: 10px;2168  margin-bottom: 10px;2169  font-family: var(--font-mono);2170  font-size: 13px;2171  word-break: break-all;2172  color: var(--peach-t1);2173}21742175.peach-regen-actions {2176  display: flex;2177  gap: 6px;2178}21792180.peach-regen-actions--spaced {2181  margin-bottom: 8px;2182}21832184.peach-regen-action-grow {2185  flex: 1;2186}21872188.peach-regen-copy-btn {2189  padding: 0 8px;2190}21912192.peach-regen-success {2193  position: relative;2194  z-index: 1;2195  background: rgba(40, 180, 80, 0.1);2196  border: 1px solid rgba(40, 180, 80, 0.3);2197  border-radius: 8px;2198  padding: 10px 12px;2199  margin-bottom: 8px;2200  display: flex;2201  align-items: center;2202  gap: 8px;2203  font-size: 11px;2204  color: rgba(40, 180, 80, 0.9);2205}22062207/* ── Note textarea ── */2208.peach-note-textarea {2209  width: 100%;2210  min-height: 180px;2211  max-height: 280px;2212  resize: vertical;2213  background: var(--peach-t4);2214  border: 1px solid var(--peach-t3);2215  border-radius: 8px;2216  padding: 10px 12px;2217  font-family: "IBM Plex Mono", monospace;2218  font-size: 12px;2219  line-height: 1.7;2220  color: var(--peach-t1);2221  outline: none;2222  transition: border-color 150ms ease;2223}22242225.peach-note-textarea:focus {2226  border-color: var(--peach-t2);2227}22282229.peach-note-char-count {2230  font-family: "IBM Plex Mono", monospace;2231  font-size: 9px;2232  color: var(--peach-t3);2233  text-align: right;2234  margin-top: 4px;2235  letter-spacing: 0.1em;2236}22372238/* ── Field input baseline ── */2239.peach-new-field-input {2240  width: 100%;2241  background: transparent;2242  border: none;2243  border-bottom: 1px solid var(--peach-t3);2244  padding: 4px 0;2245  color: var(--peach-t1);2246  font-family: "IBM Plex Mono", monospace;2247  font-size: 13px;2248  outline: none;2249  transition: border-color 150ms ease;2250}22512252.peach-new-field-input:focus {2253  border-bottom-color: var(--peach-t0);2254  color: var(--peach-t0);2255}22562257.peach-new-name-input {2258  width: 100%;2259  background: transparent;2260  border: none;2261  border-bottom: 1px solid var(--peach-t3);2262  padding: 6px 0;2263  font-family: "Cormorant Garamond", Georgia, serif;2264  font-style: italic;2265  font-size: 28px;2266  color: var(--peach-t0);2267  outline: none;2268  transition: border-color 150ms ease;2269}22702271.peach-new-name-input:focus {2272  border-bottom-color: var(--peach-t1);2273}22742275.peach-new-name-input::placeholder {2276  color: var(--peach-t2);2277  font-style: italic;2278}22792280.peach-new-field-input::placeholder {2281  color: var(--peach-t3);2282}22832284/* ── Demo entrance animation ── */2285#hd-shell {2286  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2287}2288@keyframes hd-shell-enter {2289  from { opacity: 0; transform: scale(0.96) translateY(16px); }2290  to   { opacity: 1; transform: scale(1) translateY(0); }2291}22922293/* ── Keyframes ── */2294@keyframes peach-char-enter {2295  from { opacity: 0; transform: translateY(0.22em); }2296  to   { opacity: 1; transform: translateY(0); }2297}2298@keyframes peach-content-enter {2299  from { opacity: 0.96; transform: translateY(4px); }2300  to   { opacity: 1; transform: translateY(0); }2301}2302@keyframes peach-content-exit {2303  from { opacity: 1; transform: translateY(0); }2304  to   { opacity: 0.92; transform: translateY(-3px); }2305}2306@keyframes peach-screen-enter {2307  from { opacity: 0; transform: translateY(14px); }2308  to   { opacity: 1; transform: translateY(0); }2309}2310@keyframes peach-shell-fade-in {2311  from { opacity: 0; }2312  to   { opacity: 1; }2313}2314@keyframes peach-veil-in {2315  from { opacity: 0; }2316  to   { opacity: 1; }2317}2318@keyframes peach-lock-settle {2319  0%   { transform: scale(0.9); }2320  65%  { transform: scale(1.08); }2321  100% { transform: scale(1); }2322}2323@keyframes peach-copy-confirm {2324  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2325  to   { color: var(--peach-accent); border-color: rgba(217,104,48,0.42); background-color: rgba(217,104,48,0.09); box-shadow: 0 0 18px rgba(217,104,48,0.22), inset 0 0 18px rgba(217,104,48,0.12); }2326}2327@keyframes peach-copy-retreat {2328  from { color: var(--peach-accent); border-color: rgba(217,104,48,0.42); background-color: rgba(217,104,48,0.09); box-shadow: 0 0 18px rgba(217,104,48,0.22), inset 0 0 18px rgba(217,104,48,0.12); }2329  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2330}2331@keyframes peach-copy-flood {2332  from { opacity: 0; transform: scaleX(0.15); }2333  to   { opacity: 1; transform: scaleX(1); }2334}2335@keyframes peach-copy-icon-settle {2336  from  { transform: scale(0.84); }2337  70%   { transform: scale(1.08); }2338  to    { transform: scale(1); }2339}2340@keyframes peach-copy-sheen-retreat {2341  from { opacity: 1; transform: scaleX(1); }2342  to   { opacity: 0; transform: scaleX(0.15); }2343}2344@keyframes peach-copy-drain {2345  from { width: 100%; }2346  to   { width: 0; }2347}2348@keyframes peach-shake {2349  0%, 100% { transform: translateX(0); }2350  20%      { transform: translateX(-6px); }2351  40%      { transform: translateX(6px); }2352  60%      { transform: translateX(-4px); }2353  80%      { transform: translateX(4px); }2354}23552356@keyframes pip-pulse {2357  0% { transform: scale(1); }2358  40% { transform: scale(2.2); }2359  100% { transform: scale(1); }2360}236123622363/* ── Password generator ── */2364.peach-pwgen-body {2365  flex: 1; overflow-y: auto;2366  display: flex; flex-direction: column;2367}2368.peach-policy-badge {2369  display: flex; align-items: center;2370  padding: 6px 20px 0;2371  font-size: 10px; font-family: Inter, sans-serif;2372  color: var(--peach-t2); letter-spacing: 0.04em;2373}2374.peach-pwgen-display {2375  padding: 14px 20px 12px;2376  border-bottom: 1px solid var(--peach-t3);2377  display: flex; align-items: flex-start; gap: 10px;2378}2379.peach-pwgen-display-row {2380  display: flex;2381  align-items: flex-start;2382  gap: 8px;2383  padding-bottom: 8px;2384  border-bottom: 1px solid var(--peach-t3);2385}2386.peach-pwgen-output {2387  flex: 1; min-width: 0; margin: 0;2388  font-family: "IBM Plex Mono", monospace;2389  font-size: 13px; color: var(--peach-t0);2390  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2391  white-space: normal;2392  padding: 10px 12px;2393  background: var(--peach-t4);2394  border-radius: 6px;2395  min-height: 36px;2396}2397.peach-pwgen-output-display {2398  flex: 1;2399  min-width: 0;2400  margin: 0;2401  font-family: "Cormorant Garamond", "Times New Roman", serif;2402  font-style: italic;2403  font-weight: 300;2404  font-size: 32px;2405  line-height: 1.05;2406  color: var(--peach-t0);2407  word-break: break-all;2408  overflow-wrap: break-word;2409  white-space: normal;2410  letter-spacing: 0.02em;2411}2412.peach-pwgen-display-actions {2413  display: flex;2414  flex-direction: column;2415  gap: 4px;2416  flex-shrink: 0;2417  margin-top: 2px;2418}2419.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2420.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2421.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2422.peach-pwgen-len-num {2423  font-family: "IBM Plex Mono", monospace;2424  font-size: 12px; color: var(--peach-accent);2425}2426.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2427.peach-pwgen-toggles { display: flex; flex-direction: column; }2428.peach-pwgen-charset-pills {2429  display: flex;2430  gap: 6px;2431  flex-wrap: wrap;2432}2433.peach-pwgen-pill {2434  padding: 4px 11px;2435  border-radius: 999px;2436  border: 1px solid var(--peach-t3);2437  background: transparent;2438  color: var(--peach-t2);2439  font-family: "IBM Plex Mono", monospace;2440  font-size: 9px;2441  letter-spacing: 0.08em;2442  cursor: pointer;2443  transition: all 150ms ease;2444}2445.peach-pwgen-pill.is-on {2446  border-color: rgba(217, 104, 48, 0.5);2447  background: rgba(217, 104, 48, 0.1);2448  color: var(--peach-accent);2449}2450.peach-pwgen-pill:not(.is-on):hover {2451  color: var(--peach-t1);2452  border-color: var(--peach-t2);2453}2454.peach-pwgen-use-btn {2455  width: 100%;2456  min-height: 34px;2457  border-radius: 8px;2458  margin-top: 2px;2459}2460.peach-pwgen-toggle-row {2461  display: flex; align-items: center; justify-content: space-between;2462  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2463}2464.peach-pwgen-toggle-row:last-child { border-bottom: none; }2465.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }24662467.peach-screen-prelock {2468  z-index: 10;2469}24702471.prelock-form {2472  display: grid;2473  gap: 12px;2474}24752476/* Peach popup should not expose native scrollbars on internal panels. */2477.peach-settings-body,2478.peach-new-body,2479.peach-pwgen-body,2480.lock-screen,2481.peach-import-preview {2482  scrollbar-width: none;2483  -ms-overflow-style: none;2484  overscroll-behavior: contain;2485}2486.peach-settings-body::-webkit-scrollbar,2487.peach-new-body::-webkit-scrollbar,2488.peach-pwgen-body::-webkit-scrollbar,2489.lock-screen::-webkit-scrollbar,2490.peach-import-preview::-webkit-scrollbar {2491  width: 0;2492  height: 0;2493  display: none;2494}24952496.lock-screen {2497  height: 100%;2498  min-height: 100%;2499  overflow-y: auto;2500  padding: 18px 18px 16px;2501  gap: 14px;2502  grid-template-rows: auto auto auto 1fr auto;2503  align-content: stretch;2504  position: relative;2505  isolation: isolate;2506}2507.peach-screen.lock-screen--vault-stage {2508  display: flex;2509  flex-direction: column;2510  justify-content: flex-start;2511  gap: 18px;2512  padding: 20px 18px 18px;2513  overflow: hidden;2514}2515.peach-screen.lock-screen--vault-stage .peach-lock-panel {2516  margin-top: auto;2517}2518.lock-screen--onboarding {2519  display: flex;2520  flex-direction: column;2521  gap: 12px;2522  justify-content: flex-start;2523}25242525.lock-screen::before {2526  content: "";2527  position: absolute;2528  inset: 12px 18px auto auto;2529  width: 160px;2530  height: 160px;2531  border-radius: 999px;2532  background:2533    radial-gradient(circle at 50% 50%, rgba(217, 104, 48, 0.18) 0%, rgba(217, 104, 48, 0.06) 42%, transparent 72%);2534  filter: blur(6px);2535  opacity: 0.7;2536  pointer-events: none;2537  z-index: 0;2538}25392540.lock-screen-header {2541  display: flex;2542  align-items: center;2543  justify-content: space-between;2544  position: relative;2545  z-index: 1;2546}25472548.lock-password-input.shake {2549  animation: peach-shake 300ms ease-in-out;2550}25512552.peach-hint-error {2553  color: rgba(220, 80, 60, 0.92);2554}25552556.peach-onboarding-headline {2557  margin: 0;2558  font-family: "Cormorant Garamond", "Times New Roman", serif;2559  font-size: 35px;2560  line-height: 0.88;2561  font-style: italic;2562  font-weight: 400;2563  max-width: 252px;2564}25652566.peach-lock-copy {2567  display: grid;2568  gap: 8px;2569  position: relative;2570  z-index: 1;2571}25722573.peach-lock-copy--onboarding {2574  gap: 10px;2575}25762577.peach-lock-hero {2578  position: relative;2579  z-index: 1;2580  display: grid;2581  gap: 8px;2582  min-height: 0;2583  padding: 4px 2px 0;2584  border: none;2585  border-radius: 0;2586  background: transparent;2587  box-shadow: none;2588}2589.peach-lock-hero-art {2590  position: absolute;2591  right: -8px;2592  top: -6px;2593  width: 120px;2594  height: 120px;2595  display: flex;2596  align-items: center;2597  justify-content: center;2598  pointer-events: none;2599  opacity: 0.12;2600  filter: saturate(0.9);2601}2602.peach-lock-hero-mark {2603  width: 100%;2604  height: 100%;2605}2606.peach-lock-hero-mark path:first-child {2607  fill: rgba(217, 104, 48, 0.92);2608}2609.peach-lock-hero-mark path:nth-child(2),2610.peach-lock-hero-mark path:nth-child(3) {2611  stroke: rgba(123, 144, 96, 0.88);2612  fill: rgba(123, 144, 96, 0.88);2613}2614.peach-lock-hero > *:not(.peach-lock-hero-art) {2615  position: relative;2616  z-index: 1;2617}26182619.peach-lock-eyebrow {2620  display: inline-flex;2621  align-items: center;2622  width: fit-content;2623  padding: 4px 9px;2624  border-radius: 999px;2625  border: 1px solid rgba(217, 104, 48, 0.22);2626  background: rgba(217, 104, 48, 0.08);2627  color: var(--peach-t0);2628  font-family: "IBM Plex Mono", monospace;2629  font-size: 8px;2630  letter-spacing: 0.18em;2631  text-transform: uppercase;2632}26332634.peach-lock-label-row {2635  display: flex;2636  align-items: center;2637  justify-content: space-between;2638  margin-bottom: 0;2639}26402641.peach-lock-reveal-btn {2642  display: inline-flex;2643  align-items: center;2644  gap: 4px;2645  background: none;2646  border: none;2647  cursor: pointer;2648  font-family: "IBM Plex Mono", monospace;2649  font-size: 9px;2650  letter-spacing: 0.06em;2651  color: var(--peach-t2);2652  padding: 2px 0;2653  transition: color 150ms ease;2654}26552656.peach-lock-reveal-btn:hover {2657  color: var(--peach-t1);2658}26592660.peach-lock-warning {2661  color: rgba(220, 80, 60, 0.85) !important;2662  line-height: 1.5;2663}26642665.peach-onboarding-cards {2666  display: grid;2667  gap: 8px;2668  position: relative;2669  z-index: 1;2670}26712672.peach-lock-panel {2673  position: relative;2674  z-index: 1;2675  display: grid;2676  gap: 9px;2677  padding: 14px 16px 15px;2678  border-radius: 18px;2679  border: 1px solid var(--peach-t3);2680  background:2681    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2682  box-shadow:2683    inset 0 1px 0 rgba(240, 232, 216, 0.04),2684    0 12px 28px rgba(0, 0, 0, 0.12);2685}26862687.peach-lock-panel--secondary {2688  gap: 12px;2689}26902691.peach-lock-panel-header {2692  display: flex;2693  align-items: baseline;2694  justify-content: space-between;2695  gap: 12px;2696}26972698.peach-lock-option-grid {2699  display: grid;2700  gap: 10px;2701}27022703.peach-lock-option {2704  width: 100%;2705  display: grid;2706  gap: 6px;2707  padding: 14px 15px;2708  border-radius: 16px;2709  border: 1px solid rgba(240, 232, 216, 0.08);2710  background: rgba(240, 232, 216, 0.02);2711  color: var(--peach-t0);2712  text-align: left;2713  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;2714}27152716.peach-lock-option:hover {2717  border-color: rgba(217, 104, 48, 0.28);2718  background: rgba(240, 232, 216, 0.04);2719  transform: translateY(-1px);2720}27212722.peach-lock-option-title {2723  font-size: 12px;2724  color: var(--peach-t0);2725}27262727.peach-lock-option-copy {2728  font-size: 11px;2729  line-height: 1.55;2730  color: var(--peach-t1);2731}27322733.peach-onboarding-stack {2734  margin-top: 2px;2735}2736.peach-lock-panel-footer {2737  display: grid;2738  gap: 6px;2739  margin-top: 2px;2740  padding-top: 10px;2741  border-top: 1px solid rgba(240, 232, 216, 0.06);2742}27432744/* Restore picker panel — method option cards */2745.peach-lock-panel--restore {2746  gap: 10px;2747}2748.peach-lock-option--history {2749  border-color: rgba(240, 232, 216, 0.06);2750  opacity: 0.85;2751}27522753/* Snapshot restore panel */2754.peach-snapshot-panel {2755  gap: 10px;2756  overflow-y: auto;2757  max-height: 340px;2758}2759.peach-snapshot-list {2760  display: flex;2761  flex-direction: column;2762  gap: 4px;2763}2764.peach-snapshot-row {2765  display: flex;2766  align-items: center;2767  justify-content: space-between;2768  width: 100%;2769  padding: 8px 10px;2770  border-radius: 8px;2771  border: 1px solid rgba(240, 232, 216, 0.07);2772  background: transparent;2773  cursor: pointer;2774  transition: border-color 120ms, background 120ms;2775  text-align: left;2776  gap: 8px;2777}2778.peach-snapshot-row:hover {2779  border-color: rgba(240, 232, 216, 0.14);2780  background: rgba(240, 232, 216, 0.03);2781}2782.peach-snapshot-row.is-selected {2783  border-color: rgba(217, 104, 48, 0.4);2784  background: rgba(217, 104, 48, 0.07);2785}2786.peach-snapshot-time {2787  font-size: 11.5px;2788  color: var(--peach-t0);2789  flex: 1;2790}2791.peach-snapshot-count {2792  font-family: "IBM Plex Mono", monospace;2793  font-size: 10px;2794  color: var(--peach-t2);2795  flex-shrink: 0;2796}2797.peach-snapshot-confirm {2798  display: flex;2799  flex-direction: column;2800  gap: 8px;2801  padding-top: 10px;2802  border-top: 1px solid rgba(240, 232, 216, 0.06);2803}2804.peach-snapshot-warning {2805  display: flex;2806  align-items: flex-start;2807  gap: 6px;2808  font-size: 10.5px;2809  color: rgba(220, 80, 60, 0.85);2810  line-height: 1.55;2811}2812.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }2813.peach-snapshot-confirm-row {2814  display: flex;2815  gap: 6px;2816  align-items: center;2817}2818.peach-snapshot-restore-btn {2819  width: 100%;2820}2821.peach-lock-hero--unlock .peach-lock-hero-art {2822  width: 112px;2823  height: 112px;2824  right: 0;2825  top: 2px;2826  opacity: 0.1;2827}28282829.peach-card {2830  border: 1px solid var(--peach-t3);2831  border-radius: 18px;2832  background:2833    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);2834  box-shadow:2835    inset 0 1px 0 rgba(240, 232, 216, 0.04),2836    0 12px 32px rgba(0, 0, 0, 0.14);2837  overflow: hidden;2838}28392840.peach-card-active {2841  border-color: rgba(217, 104, 48, 0.35);2842  box-shadow:2843    inset 0 1px 0 rgba(240, 232, 216, 0.05),2844    0 16px 38px rgba(0, 0, 0, 0.18),2845    0 0 0 1px rgba(217, 104, 48, 0.08);2846}28472848.peach-card-disabled {2849  opacity: 0.72;2850}28512852.peach-card-header {2853  width: 100%;2854  padding: 13px 16px 11px;2855  background: transparent;2856  color: var(--peach-t0);2857  display: flex;2858  justify-content: space-between;2859  align-items: center;2860  text-align: left;2861  font-size: 12px;2862}28632864.peach-card-body {2865  padding: 0 16px 16px;2866  display: grid;2867  gap: 9px;2868}28692870.peach-card-tag {2871  color: var(--peach-t2);2872  font-family: "IBM Plex Mono", monospace;2873  font-size: 9px;2874  letter-spacing: 0.12em;2875  text-transform: uppercase;2876}28772878.peach-empty-copy {2879  display: grid;2880  gap: 6px;2881  color: var(--peach-t1);2882  font-size: 13px;2883}28842885.peach-lock-submit {2886  width: 100%;2887  box-shadow: 0 14px 36px rgba(217, 104, 48, 0.22);2888}28892890.peach-lock-secondary {2891  width: 100%;2892  border-color: var(--peach-t3);2893  background: rgba(240, 232, 216, 0.02);2894}28952896.peach-lock-secondary:hover {2897  background: rgba(240, 232, 216, 0.04);2898}28992900.peach-lock-note {2901  max-width: none;2902  line-height: 1.55;2903  margin: 0;2904}29052906.peach-overlay-action {2907  font-size: 10px;2908  padding: 4px 8px;2909  letter-spacing: 0.06em;2910  min-width: 44px;2911  text-align: center;2912}29132914.peach-overlay-spacer {2915  width: 32px;2916}29172918.peach-inline-action {2919  flex-shrink: 0;2920  font-size: 9px;2921  letter-spacing: 0.1em;2922  text-transform: uppercase;2923  padding: 4px 7px;2924}2925.peach-password-toggle-btn {2926  display: inline-flex;2927  align-items: center;2928  justify-content: center;2929  min-width: 30px;2930  min-height: 26px;2931  padding: 0 7px;2932  border: 1px solid var(--peach-t3);2933  border-radius: 999px;2934  background: rgba(240, 232, 216, 0.04);2935  color: var(--peach-t2);2936  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;2937}2938.peach-password-toggle-btn:hover {2939  border-color: var(--peach-t2);2940  color: var(--peach-t0);2941  background: rgba(240, 232, 216, 0.06);2942}29432944.peach-new-textarea {2945  width: 100%;2946  min-height: 88px;2947  resize: vertical;2948  border: 0;2949  outline: none;2950  background: transparent;2951  color: var(--peach-t1);2952  font-family: "IBM Plex Mono", monospace;2953  font-size: 12px;2954  line-height: 1.65;2955  caret-color: var(--peach-accent);2956}29572958.peach-new-textarea::placeholder {2959  color: var(--peach-t2);2960  opacity: 0.7;2961}29622963.peach-settings-actions {2964  display: grid;2965  gap: 8px;2966}29672968.peach-sync-section-label {2969  font-size: 11px;2970  color: var(--peach-t2);2971  text-transform: uppercase;2972  letter-spacing: 0.05em;2973}29742975.peach-sync-device-row {2976  display: flex;2977  justify-content: space-between;2978  align-items: center;2979  padding: 6px 0;2980  border-bottom: 1px solid var(--peach-t3);2981}29822983.peach-sync-device-info {2984  display: flex;2985  flex-direction: column;2986  gap: 2px;2987}29882989.peach-sync-device-name {2990  font-size: 13px;2991  color: var(--peach-t0);2992}29932994.peach-sync-device-meta {2995  font-size: 11px;2996  color: var(--peach-t2);2997}29982999.peach-sync-status-dot {3000  display: inline-block;3001  width: 8px;3002  height: 8px;3003  border-radius: 50%;3004  vertical-align: middle;3005}30063007.peach-sync-remove-btn {3008  color: var(--peach-breach);3009}30103011.peach-import-preview {3012  margin-bottom: 12px;3013  max-height: 152px;3014  overflow-y: auto;3015  border: 1px solid var(--peach-t3);3016  border-radius: 10px;3017  padding: 8px 10px;3018  display: grid;3019  gap: 8px;3020  background: rgba(240, 232, 216, 0.02);3021}30223023.peach-import-preview-row {3024  display: flex;3025  justify-content: space-between;3026  gap: 10px;3027  font-size: 11px;3028  color: var(--peach-t1);3029}30303031.peach-import-preview-title {3032  color: var(--peach-t0);3033  flex: 1;3034  min-width: 0;3035  overflow: hidden;3036  text-overflow: ellipsis;3037  white-space: nowrap;3038}30393040.peach-import-preview-meta {3041  color: var(--peach-t2);3042  flex-shrink: 0;3043  max-width: 42%;3044  overflow: hidden;3045  text-overflow: ellipsis;3046  white-space: nowrap;3047}30483049.peach-import-preview-more {3050  color: var(--peach-t2);3051  font-size: 10px;3052}30533054.peach-restore-copy {3055  margin: 0;3056  color: var(--peach-t1);3057  font-size: 11px;3058  line-height: 1.6;3059}30603061.peach-restore-warning {3062  padding: 10px 12px;3063  border-radius: 12px;3064  border: 1px solid rgba(220, 80, 60, 0.22);3065  background: rgba(220, 80, 60, 0.08);3066  color: rgba(240, 232, 216, 0.86);3067  font-size: 11px;3068  line-height: 1.55;3069}30703071.peach-provider-chips {3072  display: flex;3073  flex-wrap: wrap;3074  gap: 6px;3075}30763077.peach-provider-chip {3078  display: inline-flex;3079  align-items: center;3080  padding: 5px 8px;3081  border-radius: 999px;3082  border: 1px solid var(--peach-t3);3083  background: rgba(240, 232, 216, 0.02);3084  color: var(--peach-t1);3085  font-family: "IBM Plex Mono", monospace;3086  font-size: 8px;3087  letter-spacing: 0.08em;3088  text-transform: uppercase;3089}30903091.peach-restore-file,3092.peach-restore-input {3093  width: 100%;3094  border-radius: 10px;3095  border: 1px solid var(--peach-t3);3096  background: var(--peach-s2);3097  color: var(--peach-t0);3098  font-size: 12px;3099}31003101.peach-restore-file {3102  padding: 9px 10px;3103}31043105.peach-restore-file::file-selector-button {3106  margin-right: 10px;3107  padding: 7px 10px;3108  border: 1px solid rgba(217, 104, 48, 0.28);3109  border-radius: 999px;3110  background: rgba(217, 104, 48, 0.08);3111  color: var(--peach-t0);3112  font-size: 10px;3113  letter-spacing: 0.08em;3114  text-transform: uppercase;3115  cursor: pointer;3116}31173118.peach-restore-input {3119  padding: 10px 12px;3120}31213122.peach-auth-grid {3123  display: grid;3124  gap: 10px;3125}31263127.peach-import-summary {3128  color: var(--peach-t1);3129  font-size: 12px;3130  line-height: 1.6;3131  margin-bottom: 12px;3132}31333134.peach-restore-error {3135  color: rgba(220, 80, 60, 0.95);3136  font-size: 12px;3137  line-height: 1.55;3138}31393140.peach-cjk-qr-panel {3141  margin-top: 14px;3142  padding: 12px;3143  border-radius: 16px;3144  border: 1px solid var(--peach-t3);3145  background: rgba(240, 232, 216, 0.02);3146  display: grid;3147  gap: 10px;3148}31493150.peach-cjk-qr-frame {3151  display: grid;3152  place-items: center;3153  min-height: 212px;3154  border-radius: 14px;3155  background: #fff;3156  overflow: hidden;3157}31583159.peach-cjk-qr-frame svg {3160  display: block;3161  width: 196px;3162  height: 196px;3163}31643165.peach-cjk-qr-error,3166.peach-cjk-qr-caption {3167  color: var(--peach-t1);3168  font-size: 11px;3169  line-height: 1.55;3170}31713172.peach-cjk-qr-card {3173  max-width: 400px;3174  margin: auto;3175}31763177.peach-cjk-qr-body {3178  padding: 0 20px 20px;3179  text-align: center;3180}31813182.peach-cjk-qr-hint {3183  font-size: 11px;3184  color: var(--peach-t2);3185  margin: 0 0 14px;3186}31873188.peach-cjk-qr-image {3189  border-radius: 4px;3190  display: block;3191  margin: 0 auto;3192  width: 100%;3193  max-width: 320px;3194  height: auto;3195}31963197.peach-pro-badge {3198  padding: 2px 6px;3199  border-radius: 999px;3200  font-family: var(--font-ui);3201  font-size: 10px;3202  letter-spacing: 0.08em;3203  text-transform: uppercase;3204  background: rgba(217, 104, 48, 0.14);3205  color: var(--peach-accent);3206}32073208.peach-loading {3209  position: absolute;3210  inset: 0;3211  display: flex;3212  align-items: center;3213  justify-content: center;3214  background: var(--bg);3215  animation: peach-loading-pulse 1.2s ease-in-out infinite;3216}32173218@keyframes peach-loading-pulse {3219  0%, 100% { opacity: 0.6; }3220  50% { opacity: 1; }3221}32223223/* ── Health Dashboard ─────────────────────────────────────────────────── */3224.peach-health-body {3225  flex: 1;3226  overflow-y: auto;3227  display: flex;3228  flex-direction: column;3229}32303231.peach-health-summary {3232  padding: 10px 16px 6px;3233  font-family: "IBM Plex Mono", monospace;3234  font-size: 11px;3235}3236.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3237.peach-health-summary-ok { color: var(--peach-t2); }32383239.peach-health-check-row {3240  padding: 0 16px 10px;3241}3242.peach-health-check-btn {3243  width: 100%;3244  display: flex;3245  align-items: center;3246  justify-content: center;3247}32483249.peach-health-sections {3250  flex: 1;3251  display: flex;3252  flex-direction: column;3253}32543255.peach-health-section {3256  border-bottom: 1px solid var(--peach-t3);3257}32583259.peach-health-section-header {3260  width: 100%;3261  display: flex;3262  align-items: center;3263  justify-content: space-between;3264  padding: 9px 16px;3265  background: transparent;3266  cursor: pointer;3267  color: var(--peach-t0);3268}32693270.peach-health-section-title-row {3271  display: flex;3272  align-items: center;3273  gap: 8px;3274}32753276.peach-health-count-badge {3277  display: inline-flex;3278  align-items: center;3279  justify-content: center;3280  min-width: 20px;3281  height: 18px;3282  padding: 0 5px;3283  border-radius: 999px;3284  background: rgba(220,80,60,0.15);3285  border: 1px solid rgba(220,80,60,0.25);3286  font-family: "IBM Plex Mono", monospace;3287  font-size: 9px;3288  color: rgba(220,80,60,0.9);3289}32903291.peach-health-section-title {3292  font-family: "IBM Plex Mono", monospace;3293  font-size: 11px;3294  text-transform: uppercase;3295  letter-spacing: 0.1em;3296  color: var(--peach-t1);3297}32983299.peach-health-chevron {3300  color: var(--peach-t2);3301  transition: transform 200ms ease;3302  flex-shrink: 0;3303}3304.peach-health-chevron.is-expanded {3305  transform: rotate(180deg);3306}33073308.peach-health-section-body {3309  padding: 0 16px 10px;3310  display: flex;3311  flex-direction: column;3312  gap: 4px;3313}33143315.peach-health-row {3316  display: flex;3317  align-items: flex-start;3318  justify-content: space-between;3319  gap: 8px;3320  padding: 6px 8px;3321  border-radius: 8px;3322  background: rgba(240,232,216,0.02);3323}33243325.peach-health-row-info {3326  flex: 1;3327  min-width: 0;3328  display: flex;3329  flex-direction: column;3330  gap: 2px;3331}33323333.peach-health-row-name {3334  font-family: "Cormorant Garamond", serif;3335  font-size: 15px;3336  font-style: italic;3337  font-weight: 400;3338  color: var(--peach-t0);3339  white-space: nowrap;3340  overflow: hidden;3341  text-overflow: ellipsis;3342}33433344.peach-health-row-meta {3345  font-family: "IBM Plex Mono", monospace;3346  font-size: 9px;3347  color: var(--peach-t2);3348  letter-spacing: 0.05em;3349}33503351.peach-health-fix-btn {3352  font-size: 9px;3353  letter-spacing: 0.08em;3354  text-transform: uppercase;3355  padding: 4px 7px;3356  flex-shrink: 0;3357  display: flex;3358  align-items: center;3359}33603361.peach-health-empty {3362  font-family: "IBM Plex Mono", monospace;3363  font-size: 10px;3364  color: var(--peach-t2);3365  padding: 6px 0;3366}33673368.peach-health-loading {3369  font-family: "IBM Plex Mono", monospace;3370  font-size: 10px;3371  color: var(--peach-t2);3372  padding: 6px 0;3373  display: flex;3374  align-items: center;3375  gap: 6px;3376}33773378.peach-health-loading::before {3379  content: "";3380  width: 10px;3381  height: 10px;3382  border: 1.5px solid var(--peach-t3);3383  border-top-color: var(--peach-accent);3384  border-radius: 50%;3385  animation: peach-spin 600ms linear infinite;3386}33873388@keyframes peach-spin {3389  to { transform: rotate(360deg); }3390}33913392.peach-spinner {3393  width: 32px;3394  height: 32px;3395  border: 2px solid var(--peach-s2);3396  border-top-color: var(--peach-accent);3397  border-radius: 50%;3398  margin: 0 auto 16px;3399  animation: peach-spin 0.8s linear infinite;3400}34013402.peach-progress-screen {3403  text-align: center;3404  padding: 32px 16px;3405}34063407.peach-progress-screen-title {3408  font-size: 13px;3409  color: var(--peach-t0);3410  margin-bottom: 16px;3411}34123413.peach-progress-screen-stage {3414  font-size: 11px;3415  color: var(--peach-t2);3416  min-height: 14px;3417}34183419.peach-progress-screen-note {3420  font-size: 10px;3421  color: var(--peach-t2);3422  margin-top: 8px;3423}34243425.peach-pairing-body {3426  flex: 1;3427  overflow-y: auto;3428  display: flex;3429  flex-direction: column;3430}34313432.peach-pairing-content {3433  flex: 1;3434  display: flex;3435  flex-direction: column;3436  align-items: center;3437  justify-content: center;3438  gap: 14px;3439  padding: 28px 20px;3440  text-align: center;3441}34423443.peach-pairing-headline {3444  font-family: var(--font-display);3445  font-style: italic;3446  font-weight: 300;3447  font-size: 28px;3448  color: var(--peach-t0);3449  margin: 0;3450  line-height: 1;3451}34523453.peach-pairing-subline {3454  font-size: 12px;3455  color: var(--peach-t2);3456  max-width: 220px;3457  line-height: 1.5;3458  margin: 0;3459}34603461.peach-pairing-subline--center {3462  text-align: center;3463}34643465.peach-pairing-code-display {3466  display: flex;3467  gap: 6px;3468}34693470.peach-pairing-code-digit {3471  display: flex;3472  align-items: center;3473  justify-content: center;3474  width: 36px;3475  height: 48px;3476  background: var(--peach-s2);3477  border: 1px solid var(--peach-t3);3478  border-radius: 6px;3479  font-family: var(--font-mono);3480  font-size: 22px;3481  color: var(--peach-t0);3482  letter-spacing: 0;3483}34843485.peach-pairing-countdown-ring {3486  position: relative;3487  display: inline-flex;3488  align-items: center;3489  justify-content: center;3490}34913492.peach-pairing-countdown-num {3493  position: absolute;3494  font-family: var(--font-mono);3495  font-size: 14px;3496  color: var(--peach-t1);3497}34983499.peach-pairing-ring-track {3500  fill: none;3501  stroke: var(--peach-t3);3502  stroke-width: 2;3503}35043505.peach-pairing-ring-progress {3506  fill: none;3507  stroke: var(--peach-accent);3508  stroke-width: 2;3509  stroke-linecap: round;3510  transform: rotate(-90deg);3511  transform-origin: 50% 50%;3512  transition: stroke-dashoffset 0.5s linear;3513}35143515.peach-pairing-code-inputs {3516  display: flex;3517  gap: 8px;3518}35193520.peach-pairing-code-box {3521  width: 36px;3522  height: 48px;3523  text-align: center;3524  background: var(--peach-s2);3525  border: 1px solid var(--peach-t3);3526  border-radius: 6px;3527  font-family: var(--font-mono);3528  font-size: 20px;3529  color: var(--peach-t0);3530  outline: none;3531  transition: border-color 120ms ease;3532}35333534.peach-pairing-code-box:focus {3535  border-color: var(--peach-accent);3536}35373538.peach-pairing-code-box.has-error {3539  border-color: rgba(220, 80, 60, 0.45);3540}35413542.peach-pairing-status {3543  display: flex;3544  align-items: center;3545  gap: 8px;3546  margin: 0;3547  font-size: 12px;3548  color: var(--peach-t1);3549}35503551.peach-pairing-error {3552  margin: 0;3553  font-size: 11px;3554  color: var(--peach-breach);3555}35563557.peach-pairing-error-msg {3558  color: var(--peach-t1);3559}35603561.peach-pairing-spinner {3562  width: 12px;3563  height: 12px;3564  border: 1.5px solid var(--peach-t3);3565  border-top-color: var(--peach-accent);3566  border-radius: 50%;3567  animation: peach-spin 0.8s linear infinite;3568}35693570.peach-pairing-success-icon,3571.peach-pairing-error-icon,3572.peach-pairing-hero {3573  display: inline-flex;3574  align-items: center;3575  justify-content: center;3576}35773578/* Tag chips */3579.peach-tag-chip {3580  display: inline-flex;3581  align-items: center;3582  gap: 4px;3583  padding: 3px 8px;3584  border-radius: 999px;3585  border: 1px solid rgba(217, 104, 48, 0.28);3586  background: rgba(217, 104, 48, 0.08);3587  color: rgba(240, 232, 216, 0.85);3588  font-family: "IBM Plex Mono", monospace;3589  font-size: 10px;3590  letter-spacing: 0.04em;3591}35923593.peach-tag-chip-remove {3594  background: transparent;3595  border: none;3596  color: inherit;3597  opacity: 0.6;3598  cursor: pointer;3599  padding: 0;3600  font-size: 12px;3601  line-height: 1;3602}36033604.peach-tag-chip-remove:hover {3605  opacity: 1;3606}36073608/* Tag input */3609.peach-tag-input-wrap {3610  border-bottom: 1px solid var(--peach-t3);3611}36123613.peach-tag-suggestions {3614  display: flex;3615  flex-wrap: wrap;3616  gap: 4px;3617  padding: 6px 0;3618}36193620.peach-tag-suggestion {3621  padding: 2px 8px;3622  border-radius: 999px;3623  border: 1px solid var(--peach-t3);3624  background: var(--peach-s2);3625  color: var(--peach-t1);3626  font-family: "IBM Plex Mono", monospace;3627  font-size: 10px;3628  cursor: pointer;3629  transition: border-color 80ms ease, background 80ms ease;3630}36313632.peach-tag-suggestion:hover {3633  border-color: rgba(217, 104, 48, 0.4);3634  background: rgba(217, 104, 48, 0.08);3635}36363637/* Tag filter strip */3638.peach-tag-filter-strip {3639  border-bottom: 1px solid var(--peach-t3);3640  flex-shrink: 0;3641}36423643.peach-tag-filter-chip {3644  display: inline-flex;3645  align-items: center;3646  padding: 4px 10px;3647  border-radius: 999px;3648  border: 1px solid var(--peach-t3);3649  background: transparent;3650  color: var(--peach-t2);3651  font-family: "IBM Plex Mono", monospace;3652  font-size: 9px;3653  letter-spacing: 0.06em;3654  text-transform: uppercase;3655  cursor: pointer;3656  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3657  white-space: nowrap;3658}36593660.peach-tag-filter-chip:hover {3661  border-color: rgba(217, 104, 48, 0.35);3662  color: var(--peach-t1);3663}36643665.peach-tag-filter-chip.is-selected {3666  border-color: rgba(217, 104, 48, 0.5);3667  background: rgba(217, 104, 48, 0.12);3668  color: rgba(240, 232, 216, 0.9);3669}36703671/* ─────────────────────────────────────────────────────────────────────────3672   v1.4.12 additions3673   ─────────────────────────────────────────────────────────────────────── */36743675/* Sort bar */3676.peach-sort-bar {3677  display: flex;3678  align-items: center;3679  gap: 4px;3680  padding: 5px 12px;3681  border-bottom: 1px solid var(--peach-t3);3682  flex-shrink: 0;3683  overflow-x: auto;3684  scrollbar-width: none;3685}36863687.peach-sort-btn {3688  padding: 2px 9px;3689  border-radius: 999px;3690  border: 1px solid transparent;3691  background: transparent;3692  color: var(--peach-t2);3693  font-family: "IBM Plex Mono", monospace;3694  font-size: 9px;3695  letter-spacing: 0.07em;3696  text-transform: uppercase;3697  cursor: pointer;3698  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3699  white-space: nowrap;3700}37013702.peach-sort-btn:hover {3703  border-color: rgba(217, 104, 48, 0.3);3704  color: var(--peach-t1);3705}37063707.peach-sort-btn.is-active {3708  border-color: rgba(217, 104, 48, 0.5);3709  background: rgba(217, 104, 48, 0.12);3710  color: rgba(240, 232, 216, 0.9);3711}37123713.peach-sort-domain-hint {3714  margin-left: auto;3715  font-family: "IBM Plex Mono", monospace;3716  font-size: 9px;3717  color: rgba(217, 104, 48, 0.6);3718  white-space: nowrap;3719  overflow: hidden;3720  text-overflow: ellipsis;3721  max-width: 110px;3722}37233724/* Tab-match badge on entry rows */3725.peach-tab-match-badge {3726  display: inline-block;3727  width: 6px;3728  height: 6px;3729  border-radius: 50%;3730  background: rgba(217, 104, 48, 0.75);3731  margin-left: 5px;3732  vertical-align: middle;3733  flex-shrink: 0;3734  box-shadow: 0 0 4px rgba(217, 104, 48, 0.4);3735}37363737.peach-entry-row.is-tab-match {3738  background: rgba(217, 104, 48, 0.04);3739  border-bottom-color: rgba(217, 104, 48, 0.08);3740}37413742.peach-entry-row.is-tab-match:hover {3743  background: rgba(217, 104, 48, 0.08);3744}37453746/* Entry list stagger entrance */3747@keyframes peach-entry-fadein {3748  from { opacity: 0; transform: translateY(4px); }3749  to   { opacity: 1; transform: translateY(0); }3750}37513752.peach-vault-list .peach-entry-row {3753  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;3754  content-visibility: auto;3755  contain-intrinsic-size: auto 44px;3756}37573758/* Button press micro-interaction */3759.peach-btn:active {3760  transform: scale(0.95);3761  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3762}37633764.peach-sort-btn:active,3765.peach-tag-filter-chip:active {3766  transform: scale(0.93);3767  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3768}37693770/* Password strength bar (Lock view + shared) */3771.peach-password-strength {3772  display: flex;3773  align-items: center;3774  gap: 8px;3775  margin-top: 6px;3776}37773778.peach-strength-bar {3779  flex: 1;3780  height: 3px;3781  border-radius: 2px;3782  background: var(--peach-t3);3783  overflow: hidden;3784}37853786.peach-strength-fill {3787  height: 100%;3788  border-radius: 2px;3789  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),3790              background 300ms ease;3791}37923793.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }3794.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }3795.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }3796.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }37973798.peach-strength-label {3799  font-family: "IBM Plex Mono", monospace;3800  font-style: italic;3801  font-size: 9px;3802  font-weight: 300;3803  letter-spacing: 0.06em;3804  color: var(--peach-t2);3805  min-width: 36px;3806  text-align: right;3807}38083809.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }3810.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }3811.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }3812.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }38133814/* Duress form */3815.peach-duress-status {3816  padding: 2px 8px;3817  border-radius: 999px;3818  border: 1px solid var(--peach-t3);3819  font-family: "IBM Plex Mono", monospace;3820  font-size: 9px;3821  letter-spacing: 0.07em;3822  text-transform: uppercase;3823  color: var(--peach-t2);3824  flex-shrink: 0;3825}38263827.peach-duress-status.is-active {3828  border-color: rgba(217, 104, 48, 0.45);3829  background: rgba(217, 104, 48, 0.1);3830  color: rgba(240, 232, 216, 0.85);3831}38323833.peach-duress-form {3834  padding: 8px 0 4px;3835  display: flex;3836  flex-direction: column;3837  gap: 6px;3838}38393840.peach-duress-form .peach-label {3841  margin-top: 4px;3842}38433844.peach-duress-actions {3845  display: flex;3846  gap: 6px;3847  align-items: center;3848  margin-top: 4px;3849}38503851.peach-duress-actions .peach-btn:first-child {3852  margin-right: auto;3853}38543855/* Improved overlay spring entrance */3856.peach-overlay-view.ov-enter-up {3857  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3858}38593860@keyframes ov-enter-up-spring {3861  from { opacity: 0; transform: translateY(16px) scale(0.98); }3862  to   { opacity: 1; transform: translateY(0) scale(1); }3863}38643865.peach-overlay-view.ov-enter-right {3866  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3867}38683869@keyframes ov-enter-right-spring {3870  from { opacity: 0; transform: translateX(18px) scale(0.98); }3871  to   { opacity: 1; transform: translateX(0) scale(1); }3872}38733874/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */3875/* Used when CJKImportView or MainImportView renders during onboarding3876   (no vault yet). Animates like a lock-screen transition. */3877.peach-lock-view {3878  position: absolute;3879  inset: 0;3880  display: flex;3881  flex-direction: column;3882  background:3883    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),3884    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),3885    var(--peach-bg);3886  z-index: 2;3887  overflow: hidden;3888  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3889}38903891.peach-lock-view-header {3892  display: flex;3893  align-items: center;3894  justify-content: space-between;3895  padding: 16px 18px 12px;3896  flex-shrink: 0;3897}38983899/* ───────── Settings: auto-lock select ───────── */3900.peach-settings-select {3901  font-family: "IBM Plex Mono", monospace;3902  font-size: 11px;3903  background: transparent;3904  border: 1px solid var(--peach-t3);3905  border-radius: 4px;3906  color: var(--peach-t1);3907  padding: 3px 6px;3908  cursor: pointer;3909  outline: none;3910}3911.peach-settings-select:focus {3912  border-color: var(--peach-accent);3913}39143915/* ───────── Duress status pill (new polished) ───────── */3916.peach-duress-status-pill {3917  font-family: "IBM Plex Mono", monospace;3918  font-size: 9px;3919  text-transform: uppercase;3920  letter-spacing: 0.12em;3921  padding: 2px 8px;3922  border-radius: 12px;3923  background: var(--peach-t3);3924  color: var(--peach-t2);3925  flex-shrink: 0;3926}3927.peach-duress-status-pill.is-active {3928  background: rgba(217, 104, 48, 0.15);3929  color: var(--peach-accent);3930}39313932/* ───────── Entry advanced disclosure (canary) ───────── */3933.peach-entry-advanced {3934  margin-top: 12px;3935  border-top: 1px solid var(--peach-t3);3936  padding-top: 10px;3937  position: relative;3938  z-index: 1;3939}3940.peach-entry-advanced-toggle {3941  display: flex;3942  align-items: center;3943  justify-content: space-between;3944  width: 100%;3945  background: transparent;3946  border: none;3947  cursor: pointer;3948  padding: 0;3949  color: var(--peach-t2);3950}3951.peach-canary-section {3952  margin-top: 10px;3953  display: grid;3954  gap: 6px;3955}39563957/* ───────── Import: merge/replace radio choices ───────── */3958.peach-import-choice {3959  display: flex;3960  align-items: flex-start;3961  gap: 10px;3962  padding: 8px 10px;3963  border: 1px solid var(--peach-t3);3964  border-radius: 10px;3965  cursor: pointer;3966  margin-bottom: 6px;3967  transition: border-color 120ms ease, background 120ms ease;3968}3969.peach-import-choice:hover {3970  border-color: var(--peach-accent);3971}3972.peach-import-choice input[type="radio"] {3973  margin-top: 3px;3974  accent-color: var(--peach-accent);3975  flex-shrink: 0;3976}3977.peach-import-choice-main {3978  display: flex;3979  flex-direction: column;3980  gap: 2px;3981  min-width: 0;3982}3983.peach-import-choice-label {3984  font-size: 12px;3985  color: var(--peach-t0);3986}3987.peach-import-choice-sub {3988  font-size: 11px;3989  color: var(--peach-t2);3990  line-height: 1.5;3991}39923993/* ───────── Export: success confirmation strip ───────── */3994.peach-export-success {3995  display: flex;3996  align-items: flex-start;3997  gap: 10px;3998  padding: 12px;3999  border-radius: 12px;4000  border: 1px solid rgba(150, 175, 110, 0.3);4001  background: rgba(150, 175, 110, 0.08);4002  color: var(--peach-t0);4003  font-size: 12px;4004  line-height: 1.55;4005}4006.peach-export-success-check {4007  color: rgba(150, 175, 110, 0.9);4008  font-size: 14px;4009  flex-shrink: 0;4010}40114012/* ── Trash view ──────────────────────────────────────────────────────── */4013.peach-trash-entry-row {4014  display: flex;4015  align-items: center;4016  justify-content: space-between;4017  gap: 8px;4018  padding: 8px 0;4019  border-bottom: 1px solid var(--peach-t3);4020}4021.peach-trash-entry-row:last-child { border-bottom: none; }4022.peach-trash-entry-info {4023  flex: 1;4024  min-width: 0;4025  display: flex;4026  flex-direction: column;4027  gap: 2px;4028}4029.peach-trash-entry-title {4030  font-size: 12px;4031  color: var(--peach-t1);4032  overflow: hidden;4033  text-overflow: ellipsis;4034  white-space: nowrap;4035}4036.peach-trash-entry-meta {4037  font-family: var(--font-mono);4038  font-size: 9px;4039  color: var(--peach-t2);4040  letter-spacing: 0.06em;4041}4042.peach-trash-entry-actions {4043  display: flex;4044  align-items: center;4045  gap: 4px;4046  flex-shrink: 0;4047}40484049/* ── Settings shortcuts grid ─────────────────────────────────────────── */4050.peach-shortcuts-grid {4051  display: grid;4052  grid-template-columns: auto 1fr;4053  gap: 6px 12px;4054  align-items: center;4055  padding: 4px 0;4056}4057.peach-shortcut-key {4058  font-family: var(--font-mono);4059  font-size: 10px;4060  color: var(--peach-t0);4061  background: var(--peach-t3);4062  border-radius: 4px;4063  padding: 2px 6px;4064  white-space: nowrap;4065  text-align: center;4066}4067.peach-shortcut-desc {4068  font-size: 11px;4069  color: var(--peach-t1);4070}40714072/* ── Sort bar trash button ───────────────────────────────────────────── */4073.peach-sort-trash-btn {4074  display: flex;4075  align-items: center;4076  justify-content: center;4077  padding: 3px 5px;4078  background: transparent;4079  border: none;4080  cursor: pointer;4081  color: var(--peach-t2);4082  border-radius: 4px;4083  transition: color 140ms ease, background 140ms ease;4084}4085.peach-sort-trash-btn:hover {4086  color: var(--peach-t1);4087  background: var(--peach-t3);4088}