.setup-dialog { position: fixed; inset: 0; z-index: 160; background: rgba(4,13,25,.8); padding: 24px; }
.setup-dialog .modal-panel { width: min(960px,100%); max-height: calc(100dvh - 48px); display: flex; flex-direction: column; overflow: hidden; background: #0c1c2e; color: #ecf5ff; border: 1px solid #45647e; box-shadow: 0 20px 60px #0006!important; padding:28px; text-shadow:none; }
.setup-dialog .modal-panel::before, .setup-dialog .modal-panel::after { content:none; display:none; }
.setup-dialog .role-ui-icon { display:inline-block; flex:none; width:32px; height:32px; vertical-align:middle; }
.setup-dialog .role-ui-icon .weapon-pixel-art,
.setup-dialog .role-ui-icon .passive-pixel-art { display:block; width:100%; height:100%; image-rendering:pixelated; }
.setup-dialog .primary, .setup-dialog .secondary { min-height:46px; padding:11px 18px; border:1px solid #557b9a; box-shadow:none!important; font-size:14px; line-height:1.4; }
.setup-dialog .primary { background:#f6c86c; color:#201b14; border-color:#f6c86c; }
.setup-dialog .primary:disabled { background:#1b3045; color:#a9bdd0; border-color:#40576d; opacity:1; cursor:default; }
.setup-dialog .secondary { background:#162b40; color:#deebf5; }
.setup-dialog .secondary:hover { background:#23405a; border-color:#87a9c6; }
.setup-dialog .primary:not(:disabled):hover { background:#ffda8d; }
.growth-panel header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid #355875; }
.growth-panel h2, .contract-panel h2 { margin:6px 0; color:#f3f7fc; font-size:28px; text-align:left; line-height:1.3; text-shadow:none; }
.growth-panel header p, .contract-panel > p:first-child { margin:0 0 8px; color:#edc67c; font-size:12px; letter-spacing:1px; text-align:left; }
.growth-panel header p, .growth-tip, #contractSelectHint { color:#acc9e0; line-height:1.65; font-size:14px; }
.growth-body { overflow:auto; min-height:0; padding:20px 3px 4px; overscroll-behavior:contain; }
.growth-body h3 { margin:24px 0 8px; font-size:18px; color:#f3f7fc; }
.growth-wallet { display:flex; justify-content:space-between; gap:12px; padding:14px 16px; background:#18324a; border-left:3px solid #e4bd76; margin-bottom:14px; font-size:15px; }
.growth-wallet b { color:#ffd27e; }
.growth-body .meta-progress { height:6px; background:#223c52; border:0; margin:0 0 22px; }
.growth-body .meta-progress i { display:block; height:100%; background:#ffd17d; }
.growth-body .meta-branches, .growth-body .platform-branches { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.growth-body .meta-branch { text-align:left; color:#e8f3ff; background:#132c43; padding:16px; border:1px solid #3c5972; line-height:1.6; }
.growth-body .meta-branch, .variant-card, .contract-panel .contract-card { box-shadow:none; }
.growth-body .meta-branch > span b { color:#e8f3ff; font-size:16px; display:flex; align-items:center; gap:10px; line-height:1.4; }
.growth-body .meta-branch:disabled { opacity:1; cursor:default; }
.growth-body .meta-branch[aria-disabled="true"] { border-color:#30495e; background:#11263a; }
.growth-body .meta-branch:not(:disabled):hover { background:#1a3a55; border-color:#8cabc4; }
.growth-body .meta-branch > span { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.growth-body .meta-branch small, .growth-body .meta-branch strong { display:block; margin-top:8px; }
.growth-body .meta-branch em { color:#ffd17a; font-style:normal; white-space:nowrap; font-size:13px; }
.growth-body .meta-branch small { color:#b7d0e4; font-size:13px; line-height:1.7; }
.growth-body .meta-branch .platform-next { border-left:2px solid #679eb5; padding-left:9px; color:#cde5f1; }
.growth-body .meta-branch strong { color:#ffd27e; font-size:13px; padding-top:10px; border-top:1px solid #314b60; }
.growth-body .meta-branch[aria-disabled="true"] strong { color:#a8bfd2; }
.growth-body .platform-group { margin:14px 0; border:0; border-top:1px solid #314c64; padding:16px 0 0; background:transparent; }
.growth-body .platform-group summary { cursor:pointer; padding:0 0 14px; font-weight:700; color:#e8f3ff; font-size:16px; }
.growth-body .platform-group summary span { float:right; font-size:12px; color:#b7d0e4; }
.variant-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.variant-card { display:flex; flex-direction:column; gap:12px; text-align:left; color:#b7d0e4; background:#132c43; border:1px solid #3c5972; padding:18px; font-size:14px; line-height:1.65; }
.variant-card strong { color:#f0f5fb; font-size:16px; }
.variant-card[aria-pressed="true"] { border-color:#ffcc75; background:#302d27; }
.variant-card small { color:#ffd07d; margin-top:auto; padding-top:10px; border-top:1px solid #3e5060; font-size:12px; }
.variant-card:disabled { opacity:1; background:#102338; border-color:#30495e; cursor:default; }
.variant-card:disabled small { color:#a8bfd2; }
.variant-card:not(:disabled):hover { border-color:#e3c282; }
.role-select .role-actions { grid-template-columns: auto auto auto minmax(150px,1fr) auto; gap:8px; }
.role-select .role-actions .growth-entry { min-width:0; padding:10px 12px; }
.role-select .role-actions .role-unlock-status { grid-column:1/-1; }
.setup-dialog .contract-panel { width:min(880px,100%); }
#contractSelectHint { margin:4px 0 18px; text-align:left; letter-spacing:0; }
.contract-panel .contract-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; overflow:auto; min-height:0; padding:4px 4px 20px; overscroll-behavior:contain; }
.contract-panel .contract-grid[data-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.contract-panel .contract-grid[data-count="5"] { grid-template-columns:repeat(6,minmax(0,1fr)); }
.contract-panel .contract-grid[data-count="5"] .contract-card { grid-column:span 2; }
.contract-panel .contract-grid[data-count="5"] .contract-card:nth-last-child(-n+2) { grid-column:span 3; }
.contract-panel .contract-card { display:flex; flex-direction:column; gap:12px; color:#edf6ff; background:#132c43; padding:18px; text-align:left; border:1px solid #3c5972; min-height:170px; line-height:1.55; }
.contract-panel .contract-card:hover { border-color:#89a9c3; background:#19354e; }
.contract-panel .contract-card[aria-selected="true"] { border-color:#ffca74; background:#302d27; box-shadow:none; }
.contract-panel .contract-card-head { display:flex; align-items:center; gap:12px; margin-bottom:3px; }
.contract-panel .contract-card-head .role-ui-icon { width:48px; height:48px; }
.contract-panel .contract-card-title { flex:1; min-width:0; }
.contract-panel .contract-number { display:block; font-size:10px; letter-spacing:1px; color:#acc3d5; }
.contract-panel .contract-card b { display:block; color:#f3f7fc; font-size:18px; line-height:1.4; margin:3px 0 0; }
.contract-panel .contract-choice-state { font-size:11px; color:#a9bfd1; white-space:nowrap; }
.contract-panel .contract-card[aria-selected="true"] .contract-choice-state { color:#ffda8a; }
.contract-panel .contract-effect { display:grid; grid-template-columns:32px minmax(0,1fr); gap:8px; font-size:13px; line-height:1.6; }
.contract-panel .contract-effect > span:first-child { color:#a9bfd1; font-size:11px; padding-top:2px; }
.contract-panel .contract-benefit { color:#aadfd0; }
.contract-panel .contract-cost { color:#f0b7ad; }
.contract-actions { display:flex; flex-shrink:0; justify-content:space-between; gap:12px; padding-top:16px; border-top:1px solid #314c64; }
.setup-dialog button:focus-visible { outline:3px solid #ffdc93; outline-offset:3px; }
@media(max-width:700px) {
 .setup-dialog { padding:12px; }
 .setup-dialog .modal-panel { padding:18px; max-height:calc(100dvh - 24px); }
 .setup-dialog.open .modal-panel { transform:none!important; animation:none!important; filter:none!important; text-shadow:none; }
 .growth-panel h2,.contract-panel h2 { font-size:22px; }
 .growth-panel header { align-items:flex-start; gap:8px; }
 .growth-panel header button { min-width:82px; padding:10px 8px; }
 .growth-body .meta-branches,.growth-body .platform-branches,.variant-grid { grid-template-columns:1fr; }
 .role-select .role-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .role-select .role-actions .role-unlock-status,.role-select .role-actions .role-x-link { grid-column:1/-1; }
 .role-select .role-actions .growth-entry { min-height:44px; grid-column:auto; }
 .contract-panel .contract-grid,
 .contract-panel .contract-grid[data-count="4"],
 .contract-panel .contract-grid[data-count="5"] { grid-template-columns:1fr; gap:10px; }
 .contract-panel .contract-grid[data-count="5"] .contract-card,
 .contract-panel .contract-grid[data-count="5"] .contract-card:nth-last-child(-n+2) { grid-column:auto; }
 .contract-panel .contract-card { min-height:0; padding:14px; gap:9px; }
 .contract-panel .contract-card-head .role-ui-icon { width:40px; height:40px; }
 .contract-panel .contract-card b { font-size:17px; }
 .contract-panel .contract-effect { font-size:13px; }
 .contract-actions button { min-width:0; min-height:48px; padding:10px; }
 .contract-actions .primary { flex:1; }
 .contract-actions .secondary { flex:none; }
 .growth-wallet { flex-wrap:wrap; font-size:14px; }
 .growth-body .platform-group summary span { float:none; display:block; margin:4px 0 0 16px; }
 .growth-body .meta-branch > span b { font-size:15px; }
}
