/* V1 polish alignment with the existing sharp, low-decoration Outpost language. */
.status-inspector-modal { width:min(760px,94vw); max-height:min(820px,90vh); overflow:auto; }
.status-inspector-head,
.status-inspector-row header,
.after-battle-recap > header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.status-inspector-list { display:grid; gap:10px; margin-top:14px; }
.status-inspector-row { padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.035); }
.status-inspector-row p { margin:8px 0; color:var(--muted); }
.status-inspector-row dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin:0; }
.status-inspector-row dt { font-size:10px; letter-spacing:.12em; color:var(--muted); }
.status-inspector-row dd { margin:2px 0 0; }
.battle-status-inspector-trigger { min-width:92px; }
.after-battle-recap { margin-bottom:14px; }
.after-battle-recap header strong { color:var(--gold-bright); }
.battle-recap-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }
.battle-recap-groups > div { display:grid; align-content:start; gap:8px; padding:12px; border:1px solid var(--line); }
.battle-recap-groups span { display:grid; }
.battle-recap-groups em,
.battle-recap-groups small { color:var(--muted); }
.dm-live-events { margin-top:14px; }
.dm-live-event-builders { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dm-live-event-builders details,
.dm-live-event-list article { padding:12px; border:1px solid var(--line); }
.dm-live-event-list { display:grid; gap:8px; margin-top:12px; }
.dm-live-event-list article { display:flex; align-items:center; gap:10px; }
.dm-live-event-list article > span { display:grid; margin-right:auto; }
.live-event-dim { position:fixed; inset:0; z-index:10050; display:grid; place-items:center; padding:20px; background:rgba(2,4,8,.82); backdrop-filter:blur(5px); }
.forced-roll-modal,
.roulette-stage { width:min(640px,94vw); padding:clamp(24px,5vw,54px); border:1px solid rgba(226,183,107,.6); text-align:center; box-shadow:0 28px 90px #000; }
.forced-roll-modal button { display:block; width:100%; margin-top:22px; padding:16px; font-size:1.1rem; }
.roulette-stage { width:min(820px,96vw); }
.roulette-wheel { position:relative; width:min(430px,72vw); aspect-ratio:1; margin:24px auto; border:10px solid #d9ad62; border-radius:50%; animation:outpost-roulette-spin var(--roulette-duration) cubic-bezier(.12,.66,.16,1) both; animation-delay:var(--roulette-delay); }
.roulette-wheel span { position:absolute; left:50%; top:50%; width:42%; transform:rotate(calc(360deg / var(--n) * var(--i))) translateX(64%) rotate(calc(-360deg / var(--n) * var(--i))); transform-origin:0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.roulette-winner { min-height:58px; opacity:.45; }
.roulette-winner.revealed { opacity:1; color:#f3c977; animation:outpost-reveal .35s ease both; }

.dm-live-events-intro { margin:6px 0 14px; color:var(--muted); }
.dm-live-tool-card { min-width:0; }
.dm-live-tool-card > summary { display:grid; gap:3px; cursor:pointer; }
.dm-live-tool-card > summary small { color:var(--muted); font-weight:400; }
.dm-roulette-tool-card { padding:16px; border:1px solid var(--line); }
.dm-roulette-tool-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; }
.dm-roulette-tool-head h3 { margin:2px 0 4px; font-size:1.18rem; }
.dm-roulette-tool-head p { margin:0; max-width:64ch; color:var(--muted); }
.dm-roulette-tool-head > b { padding:6px 8px; border:1px solid var(--line); font-size:.72rem; letter-spacing:.08em; white-space:nowrap; }
.dm-roulette-tool-layout { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr); gap:18px; align-items:center; }
.dm-roulette-preview { display:grid; justify-items:center; gap:8px; position:relative; padding:12px; border:1px solid var(--line); }
.dm-roulette-preview-wheel { position:relative; width:min(250px,100%); aspect-ratio:1; border:7px solid #d9ad62; border-radius:50%; background:#10151a; transition:transform .35s ease; }
.dm-roulette-preview-wheel span { position:absolute; left:50%; top:50%; width:40%; transform:rotate(calc(360deg / var(--n) * var(--i))) translateX(64%) rotate(calc(-360deg / var(--n) * var(--i))); transform-origin:0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.dm-roulette-preview-pointer { position:absolute; z-index:2; top:2px; width:0; height:0; border-left:9px solid transparent; border-right:9px solid transparent; border-top:16px solid #d9ad62; }
.dm-roulette-preview small { color:var(--muted); letter-spacing:.08em; }
.dm-roulette-controls { align-content:start; }
.dm-roulette-start { grid-column:1/-1; min-height:44px; font-weight:700; }

@keyframes outpost-roulette-spin { from { transform:rotate(0); } to { transform:rotate(2160deg); } }
@keyframes outpost-reveal { from { transform:scale(.86); } to { transform:scale(1); } }
.status-inspector-row,
.battle-recap-groups > div,
.dm-live-event-builders details,
.dm-live-event-list article,
.forced-roll-modal,
.roulette-stage {
  border-radius: 0;
}

.forced-roll-modal,
.roulette-stage {
  background: #0b0e12;
}

.roulette-wheel {
  background: #10151a;
}

body.outpost-real-page-preview[data-ui-mode="easy"] .forced-roll-modal p,
body.outpost-real-page-preview[data-ui-mode="easy"] .status-inspector-row p {
  max-width: 62ch;
}

body.outpost-real-page-preview[data-text-size="huge"] :is(.forced-roll-modal, .roulette-stage) button {
  min-height: 52px;
  font-size: 1.05rem;
}

@media (prefers-reduced-motion: reduce) {
  .roulette-wheel {
    animation-duration: 1ms !important;
  }
}

@media (max-width:760px) {
  .battle-recap-groups,
  .dm-live-event-builders { grid-template-columns:1fr; }
  .status-inspector-row dl { grid-template-columns:1fr; }
  .dm-live-event-list article { align-items:stretch; flex-direction:column; }
}


@media (max-width:900px) {
  .dm-live-event-builders { grid-template-columns:1fr; }
  .dm-roulette-tool-layout { grid-template-columns:1fr; }
  .dm-roulette-tool-head { display:grid; }
  .dm-roulette-tool-head > b { justify-self:start; }
}


/* Reward Roulette DM tool V2 */
.dm-roulette-controls { display:grid; gap:14px; align-content:start; }
.dm-roulette-control-block { display:grid; gap:8px; }
.dm-roulette-control-block > small,.dm-roulette-secondary-row small { color:var(--muted); letter-spacing:.1em; font-size:.66rem; }
.dm-roulette-audience-chips { display:flex; flex-wrap:wrap; gap:7px; }
.dm-roulette-audience-chips label { position:relative; }
.dm-roulette-audience-chips input { position:absolute; opacity:0; pointer-events:none; }
.dm-roulette-audience-chips span { display:block; padding:7px 10px; border:1px solid var(--line); cursor:pointer; color:var(--muted); }
.dm-roulette-audience-chips input:checked + span { color:var(--text); border-color:rgba(217,173,98,.72); box-shadow:inset 0 -2px 0 rgba(217,173,98,.65); }
.dm-roulette-audience-all span { font-weight:700; }
.dm-roulette-primary-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:10px; }
.dm-roulette-primary-grid label,.dm-roulette-entries-field { display:grid; gap:6px; }
.dm-roulette-entries-field.is-hidden,[data-roulette-table-field].is-hidden { display:none; }

.dm-roulette-secondary-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:10px; border-top:1px solid var(--line); }
.dm-roulette-secondary-row > span { display:flex; align-items:center; gap:10px; }
.dm-roulette-secondary-row b { display:flex; align-items:center; gap:8px; }
.dm-roulette-secondary-row button { min-width:32px; min-height:30px; padding:3px 8px; }
.dm-roulette-secondary-row output { min-width:52px; text-align:center; }
.dm-roulette-ready-note { min-height:20px; color:var(--muted); font-size:.78rem; }
.dm-roulette-start:not(:disabled) { border-color:rgba(217,173,98,.78); box-shadow:inset 0 -2px 0 rgba(217,173,98,.7); }
.dm-roulette-start:disabled { opacity:.38; cursor:not-allowed; }
.dm-roulette-preview-meta { display:grid; justify-items:center; gap:3px; text-align:center; }
.dm-roulette-preview-meta b { max-width:28ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dm-roulette-preview-wheel { overflow:hidden; }
.dm-roulette-preview-wheel i,.roulette-wheel i { position:absolute; left:50%; top:50%; width:50%; height:1px; background:rgba(217,173,98,.34); transform:rotate(var(--angle)); transform-origin:0 0; }
.dm-roulette-preview-wheel span { width:42%; transform:rotate(var(--angle)) translateX(62%) rotate(calc(-1 * var(--angle))); }
.roulette-wheel span { transform:rotate(var(--angle)) translateX(64%) rotate(calc(-1 * var(--angle))); }
@media(max-width:700px){.dm-roulette-primary-grid{grid-template-columns:1fr}.dm-roulette-secondary-row{align-items:flex-start;flex-direction:column}}

/* Reward Roulette presentation V3 */
.dm-live-event-builders { align-items:start; grid-template-columns:minmax(260px,.72fr) minmax(520px,1.28fr); }
.dm-live-tool-card:not(.dm-roulette-tool-card) > summary { padding:4px 0 8px; }
.dm-roulette-audience-chips input:checked + span { background:rgba(217,173,98,.10); }
.dm-roulette-audience-chips input:checked + span::before { content:"✓ "; color:#e2b76b; }
.dm-roulette-start:not(:disabled) { background:rgba(217,173,98,.12); color:#f3d69c; border-color:#d9ad62; }
.dm-roulette-start:not(:disabled):hover { transform:translateY(-1px); box-shadow:0 8px 26px rgba(0,0,0,.32),inset 0 -2px 0 rgba(217,173,98,.8); }
.dm-live-event-list { gap:6px; }
.dm-live-event-row { min-height:58px; padding:10px 12px !important; }
.dm-live-event-copy { display:grid !important; gap:2px; min-width:0; }
.dm-live-event-copy b { font-family:inherit; font-size:1rem; }
.dm-live-event-copy em { color:var(--muted); font-style:normal; font-size:.78rem; }
.dm-live-event-actions { display:flex; align-items:end; gap:8px; margin-left:auto; }
.dm-event-grant { display:grid; gap:3px; min-width:220px; }
.dm-event-grant > span { font-size:.62rem; letter-spacing:.1em; color:var(--muted); }
.dm-event-primary { min-height:38px; border-color:rgba(217,173,98,.7) !important; }
.roulette-stage { width:min(760px,94vw); padding:28px clamp(26px,4vw,42px) 34px; }
.roulette-stage-head { display:grid; gap:5px; }
.roulette-stage-head h2 { margin:0; font-size:clamp(1.35rem,2vw,1.8rem); }
.roulette-wheel-shell { position:relative; width:min(500px,72vw); margin:18px auto 16px; }
.roulette-pointer { position:absolute; z-index:5; left:50%; top:-2px; transform:translate(-50%,-30%); width:0; height:0; border-left:13px solid transparent; border-right:13px solid transparent; border-top:24px solid #e2b76b; filter:drop-shadow(0 3px 5px #000); }
.roulette-wheel-shell .roulette-wheel { width:100%; margin:0; background:#10151a; }
.roulette-wheel i,.dm-roulette-preview-wheel i { opacity:.9; }
.roulette-wheel span,.dm-roulette-preview-wheel span { left:50%; top:50%; width:35%; transform:rotate(var(--angle)) translateX(48%) rotate(var(--flip)); transform-origin:0 0; text-align:left; padding-left:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.roulette-wheel span { font-size:clamp(9px,1.05vw,12px); text-shadow:0 1px 4px #000; }
.roulette-wheel span.is-winner { color:#f3d69c; font-weight:800; }
.roulette-wheel i.is-winner { background:rgba(243,201,119,.9); height:2px; }
.roulette-winner { display:grid; justify-items:center; gap:5px; min-height:64px; margin-top:4px; }
.roulette-winner small { letter-spacing:.16em; }
.roulette-winner b { display:block; max-width:90%; font-size:clamp(1.25rem,2.5vw,2rem); line-height:1.05; font-family:inherit; }
.roulette-winner.revealed b { color:#f3c977; text-shadow:0 0 22px rgba(243,201,119,.26); }
.roulette-wheel.is-settled span.is-winner { text-shadow:0 0 10px rgba(243,201,119,.5); }
@keyframes outpost-roulette-spin { from { transform:rotate(0deg); } to { transform:rotate(var(--roulette-stop,2160deg)); } }
@media(max-width:900px){.dm-live-event-builders{grid-template-columns:1fr}.dm-live-event-actions{width:100%;align-items:stretch}.dm-event-grant{flex:1;min-width:0}.roulette-wheel-shell{width:min(460px,78vw)}}
@media(max-width:600px){.roulette-stage{padding:22px 16px 26px}.roulette-wheel span{font-size:8px}.dm-live-event-row{align-items:stretch!important}.dm-live-event-actions{flex-direction:column}.dm-event-grant{width:100%}}
.roulette-wheel span,.dm-roulette-preview-wheel span { transform:rotate(var(--angle)) translateX(105%) rotate(var(--flip)); }

/* Reward Roulette presentation V4 — SVG wheel */
.roulette-stage { width:min(980px,95vw); padding:26px 30px 30px; }
.roulette-stage-head { text-align:left; border-bottom:1px solid var(--line); padding-bottom:12px; }
.roulette-stage-head h2 { margin:2px 0 3px; }
.roulette-stage-head em { color:var(--muted); font-style:normal; font-size:.68rem; letter-spacing:.12em; }
.roulette-stage-body { display:grid; grid-template-columns:minmax(340px,1fr) minmax(210px,.58fr); gap:28px; align-items:center; margin-top:20px; }
.roulette-wheel-shell { width:min(480px,62vw); margin:0 auto; }
.roulette-wheel { width:100%; aspect-ratio:1; margin:0; border:8px solid #d9ad62; background:transparent !important; overflow:hidden; }
.roulette-svg { display:block; width:100%; height:100%; }
.roulette-svg-base { fill:#10151a; }
.roulette-svg-segment { fill:rgba(255,255,255,.018); stroke:rgba(217,173,98,.38); stroke-width:.55; vector-effect:non-scaling-stroke; }
.roulette-svg-segment:nth-of-type(even) { fill:rgba(217,173,98,.07); }
.roulette-svg-segment.is-winner { fill:rgba(217,173,98,.28); stroke:rgba(243,201,119,.95); stroke-width:1.1; }
.roulette-svg-label { fill:#e7eaec; font-family:inherit; font-weight:600; paint-order:stroke; stroke:#0a0d10; stroke-width:1.2px; stroke-linejoin:round; }
.roulette-svg-label.is-winner { fill:#f3d69c; font-weight:800; }
.roulette-svg-hub { fill:#d9ad62; stroke:#0b0e12; stroke-width:1.2; }
.roulette-pointer { top:-5px; border-left-width:14px; border-right-width:14px; border-top-width:27px; }
.roulette-pool { min-width:0; text-align:left; border-left:1px solid var(--line); padding-left:18px; }
.roulette-pool > small { display:block; margin-bottom:9px; color:var(--muted); letter-spacing:.12em; }
.roulette-pool ol { list-style:none; display:grid; gap:5px; margin:0; padding:0; }
.roulette-pool li { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:center; min-height:26px; border-bottom:1px solid rgba(255,255,255,.045); color:var(--muted); }
.roulette-pool li i { font-style:normal; font-size:.66rem; color:#d9ad62; }
.roulette-pool li span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.roulette-pool li.is-winner { color:#f3d69c; font-weight:800; }
.roulette-winner { margin-top:17px; padding-top:14px; border-top:1px solid var(--line); }
.roulette-winner b { font-size:clamp(1.45rem,3vw,2.35rem); }
.dm-roulette-preview-wheel { border:6px solid #d9ad62; background:transparent !important; overflow:hidden; }
.dm-roulette-preview-wheel .roulette-svg-label { display:none; }
.dm-roulette-preview-wheel .roulette-svg-hub { r:4px; }
@keyframes outpost-roulette-spin { from { transform:rotate(0deg); } to { transform:rotate(var(--roulette-stop,2160deg)); } }
@media(max-width:760px){.roulette-stage-body{grid-template-columns:1fr}.roulette-pool{border-left:0;border-top:1px solid var(--line);padding:14px 0 0}.roulette-pool ol{grid-template-columns:1fr 1fr}.roulette-wheel-shell{width:min(430px,78vw)}}

/* Reward Roulette presentation V5 — local dismiss after reveal */
.roulette-stage { position:relative; }
.roulette-dismiss-x { position:absolute; z-index:8; top:12px; right:12px; width:36px; height:36px; min-width:0; padding:0; display:grid; place-items:center; border:1px solid var(--line); background:rgba(10,13,16,.72); color:var(--muted); font-size:1.35rem; line-height:1; }
.roulette-dismiss-x:hover,.roulette-dismiss-x:focus-visible { color:#f3d69c; border-color:rgba(217,173,98,.78); background:rgba(217,173,98,.08); }
.roulette-dismiss-action { min-width:150px; margin-top:12px; padding:9px 18px; border-color:rgba(217,173,98,.72); color:#f3d69c; background:rgba(217,173,98,.08); font-weight:700; letter-spacing:.08em; }
.roulette-dismiss-action:hover,.roulette-dismiss-action:focus-visible { background:rgba(217,173,98,.14); border-color:#d9ad62; }
@media(max-width:600px){.roulette-dismiss-x{top:8px;right:8px}.roulette-dismiss-action{width:100%}}
