.session-page { max-width: 1140px; }
[hidden] { display: none !important; }
.session-intro { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px 0 36px; }
.session-intro h1 { font-size: clamp(42px, 5vw, 65px); }
.session-intro h1 em { color: #F2A5D3; font-style: normal; }
.session-lead { max-width: 570px; margin: 22px 0 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.session-seal { display: flex; align-items: center; gap: 19px; color: #D5AAC8; padding: 16px; }
.session-seal svg { width: 98px; height: 98px; stroke-width: 1.1; }
.session-seal .seal-detail { opacity: .35; }
.session-seal span { font-size: 10px; line-height: 1.9; font-weight: 650; letter-spacing: .12em; }
.session-status { margin: 0 0 22px; min-height: 47px; display: flex; align-items: center; padding: 12px 17px; border: 1px solid #F7F2F519; border-radius: 15px; color: #D4C4D5; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.session-status.is-error { background: #CA355A13; border-color: #F691AA61; color: #FFCAD6; }
.session-status.is-success { background: #8CD1A909; border-color: #8CD1A93A; color: #C6E8D2; }
.session-tools { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.session-panel { min-width: 0; padding: 30px; border: 1px solid #F7F2F517; border-radius: 27px; background: linear-gradient(145deg,#F7F2F508,#F7F2F502); }
.session-panel h2 { margin: 0 0 14px; font-size: clamp(25px, 2.8vw, 32px); line-height: 1.12; letter-spacing: -.04em; font-weight: 650; }
.session-panel > p, .session-panel > div > p { color: var(--muted); font-size: 14px; line-height: 1.75; }
.session-step { display: flex; align-items: center; justify-content: space-between; color: #EAAACF; margin-bottom: 29px; }
.session-step > span { font-size: 11px; font-weight: 700; letter-spacing: .09em; }
.session-step > svg { width: 29px; height: 29px; stroke-width: 1.25; }
.session-tools .session-panel { display: flex; flex-direction: column; }
.session-tools .session-panel > p:not(.session-note) { flex: 1; margin: 0 0 25px; }
.session-button, .session-file { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 20px; border: 1px solid transparent; border-radius: 99px; font: 650 13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; color: #24101F; background: var(--pink); text-align: center; cursor: pointer; touch-action: manipulation; transition: background .15s ease,border-color .15s ease; }
.session-button:hover { background: #FF40BC; }
.session-button.secondary, .session-file { color: #F0DEEE; background: #F7F2F506; border-color: #F7F2F52F; }
.session-button.secondary:hover, .session-file:hover { background: #F7F2F510; border-color: #ECA6D065; }
.session-button.quiet { background: transparent; color: #D1C1D3; }
.session-button.quiet:hover { background: #F7F2F509; }
.session-prepared-download { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; margin-top: 14px; padding: 13px 18px; border: 1px solid #EDB5D252; border-radius: 16px; background: #F2A5D30A; color: #F5CAE4; font-size: 13px; font-weight: 600; line-height: 1.65; text-align: center; overflow-wrap: anywhere; }
.session-prepared-download:hover { background: #F2A5D317; border-color: #EDB5D284; }
.session-button:disabled { opacity: .38; cursor: not-allowed; }
.session-button:focus-visible, .session-file:focus-within, .session-check input:focus-visible, summary:focus-visible { outline: 3px solid #FF9BD9; outline-offset: 5px; }
.session-file { position: relative; overflow: hidden; }
.session-file input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.session-file:has(input:disabled) { opacity: .38; cursor: not-allowed; }
.session-file input:disabled { cursor: not-allowed; }
.session-panel p.session-note, .session-note { font-size: 12px; line-height: 1.75; color: #BDB0C1; margin: 14px 0 0; }
.review-panel, .recovery-panel, .success-panel { margin-top: 24px; }
.recovery-panel { margin-top: 0; margin-bottom: 24px; border-color: #D4B38567; }
.recovery-panel > p:not(.eyebrow) { margin-top: 14px; }
.recovery-panel button { margin-top: 19px; }
.review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.review-heading .eyebrow, .success-panel .eyebrow, .recovery-panel .eyebrow { font-size: 10px; margin-bottom: 13px; }
.session-pill { padding: 7px 11px; background: #D6E5D10B; border: 1px solid #D6E5D12E; border-radius: 99px; color: #CDDFC8; font-size: 11px; line-height: 1.5; white-space: nowrap; }
.session-metadata { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 19px 28px; margin: 22px 0; }
.session-metadata div { min-width: 0; }
.session-metadata dt { margin-bottom: 7px; font-size: 11px; color: #BDAAC0; }
.session-metadata dd { margin: 0; font-size: 13px; line-height: 1.6; color: #E4D8E7; overflow-wrap: anywhere; }
.session-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; margin: 23px 0 15px; }
.session-facts > div { padding: 18px; background: #F7F2F505; border-radius: 16px; border: 1px solid #F7F2F50B; }
.session-facts strong { display: block; font-size: 30px; line-height: 1; font-weight: 550; letter-spacing: -.04em; color: #F2B7DC; }
.session-facts span { display: block; margin-top: 10px; color: #C4B6CA; font-size: 11px; line-height: 1.65; }
.session-panel p.session-replace-note { padding-top: 22px; margin-top: 24px; border-top: 1px solid #F7F2F514; color: #E1CFDF; font-size: 13px; }
.backup-step { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-top: 26px; }
.backup-step h3 { margin: 0 0 7px; font-size: 16px; font-weight: 600; }
.backup-step p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.backup-step > button { flex: none; }
.session-check { display: flex; align-items: flex-start; gap: 12px; padding: 20px 0; color: #DED0E0; font-size: 13px; line-height: 1.65; cursor: pointer; }
.session-check input { width: 19px; height: 19px; margin: 2px 0 0; flex: none; accent-color: var(--pink); cursor: pointer; }
.session-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.success-panel { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-color: #AED0B535; }
.success-panel > a { flex: none; }
.success-panel h2 { margin-bottom: 9px; }
.success-panel p:not(.eyebrow) { margin: 0; }
.session-details { margin: 28px 0 8px; padding: 20px 24px; border: 1px solid #F7F2F510; border-radius: 20px; }
.session-details summary { color: #D9C7DB; font-size: 13px; line-height: 1.7; cursor: pointer; }
.session-details > div { padding-top: 6px; max-width: 850px; }
.session-details p { color: #BEB0C2; font-size: 13px; line-height: 1.8; }
.session-footer p { max-width: 650px; }
dialog { width: min(540px,calc(100% - 32px)); max-height: calc(100dvh - 40px); padding: 30px; color: #F7F2F5; background: #343038; border: 1px solid #A48BAA69; border-radius: 25px; box-shadow: 0 25px 100px #0007; }
dialog::backdrop { background: #17131CBA; backdrop-filter: blur(6px); }
dialog h2 { font-size: 28px; letter-spacing: -.04em; line-height: 1.1; margin: 0 0 18px; }
dialog p { color: #D5C7D8; font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; }
dialog .session-actions { margin-top: 25px; }
@media (max-width: 800px) {
  .session-seal { display: none; }
  .session-panel { padding: 25px; }
  .session-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .backup-step { align-items: flex-start; flex-direction: column; gap: 16px; }
}
@media (max-width: 620px) {
  .session-intro { padding: 19px 0 28px; }
  .session-intro h1 { font-size: clamp(39px,9.5vw,50px); }
  .session-lead { font-size: 14px; margin-top: 19px; }
  .session-tools { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .session-panel { padding: 23px; border-radius: 23px; }
  .session-step { margin-bottom: 20px; }
  .session-panel h2 { font-size: 28px; }
  .session-metadata { grid-template-columns: minmax(0,1fr); gap: 17px; }
  .session-facts { gap: 9px; }
  .session-facts > div { padding: 15px; }
  .session-facts strong { font-size: 28px; }
  .session-pill { font-size: 10px; padding: 6px 8px; }
  .review-heading { display: block; }
  .review-heading .session-pill { display: inline-block; margin-top: 2px; }
  .backup-step > button, .session-actions, .session-actions > button, #recovery-restore-controls > button { width: 100%; }
  .success-panel { display: block; }
  .success-panel > a { width: 100%; margin-top: 20px; }
  .session-details { padding: 18px; }
  .session-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
  dialog { padding: 25px; }
}
@media (prefers-reduced-motion: reduce) { .session-button, .session-file { transition: none; } }
