/* Cascade contract: base declarations in rs-normal; reviewed overrides in rs-priority. See source/MAINTENANCE.md. */
@layer rs-normal, rs-inline, rs-priority;
@layer rs-normal {
  /* v54.12 final-state theme bundle: backup; generated from the consolidated visual state. */
  :root {
    --rsf-bg: #070a0e;
    --rsf-bg-2: #0d1117;
    --rsf-panel: rgba(15,16,16,.94);
    --rsf-panel-2: rgba(24,21,17,.96);
    --rsf-panel-soft: rgba(24,23,21,.86);
    --rsf-panel-glass: rgba(10,14,18,.84);
    --rsf-gold: #c99b42;
    --rsf-gold-2: #f0d584;
    --rsf-gold-3: #7f591d;
    --rsf-gold-soft: rgba(218,173,80,.34);
    --rsf-line: rgba(217,171,76,.58);
    --rsf-line-soft: rgba(217,171,76,.25);
    --rsf-text: #f5edd8;
    --rsf-text-strong: #fff8e8;
    --rsf-muted: #bdb39d;
    --rsf-muted-2: #968d7b;
    --rsf-danger: #d4584d;
    --rsf-ok: #4fb67a;
    --rsf-radius: 13px;
    --rsf-radius-lg: 17px;
    --rsf-shadow: 0 14px 34px rgba(0,0,0,.40), inset 0 0 0 1px rgba(255,232,164,.035);
    --rsf-shadow-tight: 0 7px 18px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,232,164,.035);
    --rsf-font-ui: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic","Noto Sans JP",Meiryo,sans-serif;
    --rsf-font-display: "Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  }
  body.backup-page {
    --rsf-accent: #355c9b;
    --rsf-accent-2: #7a64ac;
    --rsf-accent-deep: #192b50;
    --rsf-accent-glow: rgba(84,100,176,.24);
  }
  body.backup-page {
    min-height: 100vh;
  }
  body.backup-page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
  }
  body.backup-page * {
    scrollbar-color: rgba(202,158,69,.55) rgba(8,10,12,.55);
  }
  body.backup-page ::selection {
    background: rgba(218,173,80,.28);
    color: #fff;
  }
  body.backup-page .card {
    outline: 1px solid rgba(255,223,143,.055);
    outline-offset: -4px;
  }
  body.backup-page h1,
body.backup-page h2 {
    text-shadow: 0 1px 0 #000,0 0 12px rgba(231,188,91,.06);
  }
  body.backup-page .btn {
    text-shadow: 0 1px 1px #000;
  }
  body.backup-page .btn:disabled {
    filter: saturate(.55);
  }
  body.backup-page .card {
    position: relative;
    overflow: hidden;
  }
  body.backup-page .card::after {
    content: "";
    position: absolute;
    inset: 5px;
    pointer-events: none;
    border: 1px solid rgba(241,210,132,.055);
    border-radius: calc(var(--rsf-radius-lg) - 5px);
    background: linear-gradient(135deg,rgba(242,207,121,.26) 0 1px,transparent 1px 12px) left top/18px 18px no-repeat,
    linear-gradient(225deg,rgba(242,207,121,.26) 0 1px,transparent 1px 12px) right top/18px 18px no-repeat,
    linear-gradient(45deg,rgba(242,207,121,.20) 0 1px,transparent 1px 12px) left bottom/18px 18px no-repeat,
    linear-gradient(315deg,rgba(242,207,121,.20) 0 1px,transparent 1px 12px) right bottom/18px 18px no-repeat;
    opacity: .72;
  }
  body.backup-page .btn {
    position: relative;
    overflow: hidden;
  }
  body.backup-page .btn::after {
    content: "";
    position: absolute;
    inset: 2px;
    border: 1px solid rgba(255,233,167,.055);
    border-radius: inherit;
    pointer-events: none;
  }
  :root {
    --rsf-gold-hi: #f6dea0;
    --rsf-gold-mid: #d0a34d;
    --rsf-gold-low: #6c4917;
    --rsf-ink: #050708;
    --rsf-plate: linear-gradient(180deg,rgba(31,27,21,.985),rgba(10,11,12,.995));
    --rsf-plate-deep: linear-gradient(180deg,rgba(17,18,18,.985),rgba(5,7,9,.995));
  }
  body.backup-page .card > h2 {
    position: relative;
  }
  body.backup-page .card > h2::before {
    content: "◆";
    display: inline-block;
    margin-right: 7px;
    color: var(--rsf-gold-2);
    font-size: .58em;
    vertical-align: 2px;
    text-shadow: 0 0 9px var(--rsf-accent-glow);
  }
  @media(hover:hover) {
    body.backup-page .btn:not(:disabled):hover {
      filter: brightness(1.07);
    }
  }
  body.backup-page header .title {
    min-height: 64px;
  }
  body.backup-page .card > h2 {
    min-height: 46px;
    display: flex;
    align-items: center;
    border: 1px solid rgba(211,168,76,.28);
    border-left: 3px solid #6175b3;
    border-radius: 9px;
  }
  body.backup-page .btnrow .btn {
    min-height: 48px;
  }
  body.backup-page #uBkExportLite,
body.backup-page #uBkExportFull,
body.backup-page label[for="uBkImportFile"],
body.backup-page #uBkImportBtn {
    min-height: 52px;
    letter-spacing: .02em;
  }
  body.backup-page #uBkFileName,
body.backup-page #uBkStatus {
    padding: 7px 10px;
    border: 1px solid rgba(211,168,76,.18);
    border-radius: 8px;
    background: rgba(6,8,11,.58);
  }
  :root {
    --rsf-frame-outer: #1a1510;
    --rsf-frame-mid: #2b2116;
    --rsf-tray-warm: #342618;
    --rsf-tray-cool: #17212a;
    --rsf-slot: #090b0e;
    --rsf-bronze: #8f602c;
    --rsf-bronze-hi: #cf9a4e;
    --rsf-steel: #54758d;
    --rsf-teal: #377f76;
    --rsf-violet: #71517f;
  }
  .backup-inline-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .34em;
    vertical-align: middle;
    white-space: nowrap;
  }
  .backup-inline-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.18em;
    height: 1.18em;
    flex: 0 0 1.18em;
    vertical-align: -.12em;
  }
  .backup-inline-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: .22em;
  }
  /* v54.15 — unified auto-hide behavior for the tall backup header */
  body.backup-page .backup-top-shell {
    position: sticky;
    top: 0;
    z-index: 40;
    --auto-header-shift: 0px;
    transform: translate3d(0,0,0);
    transition: transform .16s cubic-bezier(.22,.72,.2,1);
    will-change: transform;
    isolation: isolate;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    background: rgba(5,7,10,.995);
  }
  body.backup-page .backup-top-shell.is-header-hidden {
    transform: translate3d(0,var(--auto-header-shift),0);
    transition-duration: .14s;
  }
  /* v54.16 — responsibility-aware backup groups */
  body.backup-page #usrBkExport,
body.backup-page label[for="usrBkImportFile"],
body.backup-page #usrBkImportBtn,
body.backup-page #mBkExportLite,
body.backup-page #mBkExportFull,
body.backup-page label[for="mBkImportFile"],
body.backup-page #mBkImportBtn {
    min-height: 52px;
    letter-spacing: .02em;
  }
  body.backup-page #usrBkFileName,
body.backup-page #usrBkStatus,
body.backup-page #mBkFileName,
body.backup-page #mBkStatus {
    padding: 7px 10px;
    border: 1px solid rgba(211,168,76,.18);
    border-radius: 8px;
    background: rgba(6,8,11,.58);
  }
}
@layer rs-priority {
  /* v54.12 final-state theme bundle: backup; generated from the consolidated visual state. */
  body.backup-page {
    color: var(--rsf-text);
    font-family: var(--rsf-font-ui);
    background-color: var(--rsf-bg);
  }
  body.backup-page .card {
    color: var(--rsf-text);
    border: 1px solid var(--rsf-line);
    backdrop-filter: blur(9px) saturate(.92);
    -webkit-backdrop-filter: blur(9px) saturate(.92);
  }
  body.backup-page .card {
    border-radius: var(--rsf-radius-lg);
  }
  body.backup-page h1,
body.backup-page h2 {
    color: var(--rsf-text-strong);
    font-family: var(--rsf-font-display);
  }
  body.backup-page .mini,
body.backup-page .sub {
    color: var(--rsf-muted);
  }
  body.backup-page input {
    color: var(--rsf-text-strong);
    background: linear-gradient(180deg,rgba(4,7,10,.86),rgba(15,15,14,.92));
    border: 1px solid rgba(211,168,76,.46);
    box-shadow: inset 0 1px 5px rgba(0,0,0,.62),0 0 0 1px rgba(255,234,170,.025);
  }
  body.backup-page .btn {
    color: var(--rsf-text-strong);
    border: 1px solid rgba(218,173,80,.58);
    background: linear-gradient(180deg,rgba(40,34,24,.96),rgba(18,17,15,.97));
    box-shadow: inset 0 1px 0 rgba(255,236,177,.10),0 5px 14px rgba(0,0,0,.24);
  }
  body.backup-page .btn-primary {
    background: linear-gradient(135deg,var(--rsf-accent-deep),var(--rsf-accent),var(--rsf-accent-2));
    border-color: var(--rsf-gold);
    box-shadow: inset 0 1px 0 rgba(255,244,200,.16),0 7px 18px var(--rsf-accent-glow);
  }
  body.backup-page .btn-danger {
    background: linear-gradient(180deg,#6d2421,#401414);
    border: 1px solid #b95a4e;
    color: #ffe5da;
  }
  body.backup-page .btn:disabled {
    opacity: .46;
  }
  body.backup-page h1 {
    color: #f4ead5;
  }
  body.backup-page .card h2 {
    color: #f0e4ca;
  }
  body.backup-page .card p {
    color: #bbb09a;
  }
  body.backup-page .btn-secondary {
    background: linear-gradient(135deg,#223b62,#355d89);
  }
  body.backup-page .btn-warn {
    color: #fff0d4;
    background: linear-gradient(135deg,#6e4b1b,#9a6a28);
  }
  body.backup-page .footer {
    border-top: 1px solid rgba(211,168,76,.34);
    background: rgba(8,10,14,.88);
  }
  body.backup-page .hint {
    color: #a99f8e;
  }
  @media(max-width:640px) {
    body.backup-page {
      background-attachment: scroll;
      background-size: auto 36vh, auto 32vh, auto, cover;
    }
  }
  @media(prefers-reduced-motion:reduce) {
    body.backup-page * {
      transition: none;
      animation: none;
    }
  }
  html {
    background: #070a0e;
  }
  body.backup-page {
    background: linear-gradient(180deg,rgba(6,10,14,.58) 0,rgba(7,10,13,.91) 32vh,rgba(7,9,11,.985) 64vh),
    radial-gradient(circle at 15% 12%,rgba(44,96,137,.17),transparent 29%),
    radial-gradient(circle at 86% 18%,rgba(145,98,35,.12),transparent 27%),
    #070a0e;
  }
  body.backup-page::before {
    background: linear-gradient(180deg,rgba(3,7,10,.10),rgba(5,7,9,.30)),
    radial-gradient(ellipse at center,transparent 22%,rgba(0,0,0,.48) 100%);
  }
  body.backup-page .card > h2 {
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(211,168,76,.24);
  }
  body.backup-page .card > h2 {
    letter-spacing: .035em;
  }
  @media(hover:hover) {
    body.backup-page .btn:not(:disabled):hover {
      border-color: var(--rsf-gold-hi);
    }
  }
  body.backup-page .card {
    padding: 16px;
  }
  body.backup-page .card > h2 {
    margin: -2px -2px 12px;
    padding: 0 12px;
  }
  body.backup-page main .wrap > .card:first-child {
    background: linear-gradient(90deg,rgba(54,67,125,.10),transparent 50%),
    var(--rsf-plate);
  }
  body.backup-page .btnrow .btn {
    border-radius: 10px;
  }
  body.backup-page main .wrap > .card:nth-child(2) {
    border-top: 2px solid rgba(106,119,185,.40);
  }
  body.backup-page #uBkExportLite,
body.backup-page #uBkExportFull,
body.backup-page label[for="uBkImportFile"],
body.backup-page #uBkImportBtn {
    font-family: var(--rsf-font-display);
  }
  body.backup-page .card {
    border-width: 1px;
    border-color: rgba(214,168,72,.62);
    box-shadow: 0 13px 30px rgba(0,0,0,.42),
    inset 0 0 0 1px rgba(255,225,151,.045),
    inset 0 0 24px rgba(155,105,39,.035);
  }
  body.backup-page .card {
    background: linear-gradient(180deg,rgba(39,41,45,.98),rgba(13,15,18,.99));
  }
  body.backup-page .card > h2 {
    background: linear-gradient(90deg,rgba(58,78,133,.62),rgba(46,36,25,.70),rgba(14,16,19,.88));
  }
  body.backup-page header {
    background: transparent;
    border-bottom: 0;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  /* v54.15 — unified auto-hide behavior for the tall backup header */
  body.backup-page .backup-top-shell > header {
    position: relative;
    top: auto;
    z-index: auto;
    background: rgba(5,7,10,.995);
  }
  @media(prefers-reduced-motion:reduce) {
    body.backup-page .backup-top-shell {
      transition: none;
    }
  }
  /* v54.16 — responsibility-aware backup groups */
  body.backup-page #usrBkExport,
body.backup-page label[for="usrBkImportFile"],
body.backup-page #usrBkImportBtn,
body.backup-page #mBkExportLite,
body.backup-page #mBkExportFull,
body.backup-page label[for="mBkImportFile"],
body.backup-page #mBkImportBtn {
    font-family: var(--rsf-font-display);
  }
  body.user-backup-page main .wrap > .card:nth-child(2),
body.master-backup-page #master,
body.master-backup-page #unified {
    border-top: 2px solid rgba(106,119,185,.40);
  }
}
