/* Legacy tool controls; the shared page frame and heading own the outer layout. */
@font-face { font-family:"Goblinist Legacy Glyphicons"; src:url("glyphicons-halflings-regular.woff") format("woff"); font-style:normal; font-weight:400; font-display:swap; }
.encounter-page { width:750px; max-width:100%; margin:0; color:var(--text); font:14px/1.42857143 var(--body-font); }
.encounter-page [hidden] { display:none!important; }
.encounter-rules { display:flex; align-items:center; flex-wrap:wrap; gap:10px; max-width:min(100%,calc(100vw - 30px)); margin:0 0 8px; }
.encounter-rules .encounter-button:disabled { opacity:1; background:var(--link); border-color:var(--link); color:#fff; }
.encounter-rules-note { max-width:min(100%,calc(100vw - 30px)); margin:0 0 18px; color:var(--muted); font-size:13px; }
.encounter-seed-note { margin:10px 0 0; }
.encounter-selection-note { margin-top:15px; }
.encounter-srd-notice { font-size:12px; color:var(--muted); }
.encounter-result-heading .result-rules-label { margin:5px 0 0; font-size:13px; color:var(--muted); }
.encounter-result-heading .result-budget-remaining { font-size:13px; }
.encounter-top-row { display:flex; margin-inline:-15px; margin-bottom:15px; }
.encounter-add-player { width:41.66666667%; padding-inline:15px; }
.encounter-difficulty { width:58.33333333%; padding-inline:15px; }
.encounter-input-group { display:flex; width:100%; }
.encounter-control { box-sizing:border-box; height:34px; padding:6px 9px; border:0; border-radius:3px; background:var(--surface); color:var(--text); font:14px/20px var(--body-font); max-width:100%; }
.encounter-input-group select { flex:1; min-width:0; width:1%; border-radius:3px 0 0 3px; }
.encounter-input-group .encounter-button { margin-left:-1px; border-radius:0 3px 3px 0; }
.encounter-button { display:inline-block; box-sizing:border-box; height:34px; padding:6px 9px; margin:0; border:1px solid var(--border); border-radius:3px; background:var(--raised); color:var(--text); font:400 14px/20px var(--body-font); text-align:center; vertical-align:middle; white-space:nowrap; cursor:pointer; }
.encounter-button:hover:not(:disabled) { filter:brightness(.94); }
.encounter-button:disabled { cursor:default; opacity:.65; }
.encounter-danger { background:var(--danger); color:#fff; border-color:var(--danger); }
.encounter-button-group { display:inline-flex; vertical-align:middle; }
.encounter-button-group .encounter-button { border-radius:0; }
.encounter-button-group .encounter-button + .encounter-button { margin-left:-1px; }
.encounter-button-group .encounter-button:first-child { border-radius:3px 0 0 3px; }
.encounter-button-group .encounter-button:last-child { border-radius:0 3px 3px 0; }
.encounter-difficulty [data-value="deadly"],.encounter-difficulty [data-value="high"] { border-radius:0 3px 3px 0; }
.encounter-difficulty [data-value="low"] { margin-left:0; border-radius:3px 0 0 3px; }
.encounter-option-row { margin-bottom:15px; }
.encounter-environments { display:contents; }
.encounter-types { display:flex; gap:4px; padding-top:5px; }
.encounter-collection-label { display:inline-flex; align-items:center; padding:6px 9px; color:var(--muted); font-size:13px; }
.encounter-count-row { display:flex; align-items:center; gap:.19375em; }
.encounter-count-row select { width:auto; }
#min_monsters_select { width:143px; }
#max_monsters_select { width:145px; }
.encounter-seed { display:flex; align-items:center; gap:.19375em; min-width:0; }
.encounter-seed select { width:191px; }
.encounter-seed-help { position:relative; }
.encounter-seed-help summary { display:grid; place-items:center; width:33px; padding:6px; list-style:none; }
.encounter-seed-help summary::-webkit-details-marker { display:none; }
.encounter-seed-help summary span { display:grid; place-items:center; width:13px; height:13px; border-radius:50%; background:#fff; color:var(--danger); font-size:11px; font-weight:700; }
.encounter-popover { position:absolute; z-index:5; top:50%; left:calc(100% + 10px); width:234px; padding:1px; transform:translateY(-50%); background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:5px; box-shadow:var(--shadow); font-size:15px; }
.encounter-popover::before { content:""; position:absolute; top:50%; left:-11px; margin-top:-11px; border:11px solid transparent; border-left:0; border-right-color:var(--border); }
.encounter-popover::after { content:""; position:absolute; top:50%; left:-9px; margin-top:-10px; border:10px solid transparent; border-left:0; border-right-color:var(--surface); }
.encounter-popover strong { display:block; padding:8px 14px; border-bottom:1px solid var(--border); font-size:15px; line-height:18px; font-weight:400; }
.encounter-popover p { margin:0; padding:9px 14px; }
.encounter-players { margin-top:12px; margin-bottom:-6px; font-size:20px; }
.encounter-player { display:inline-block; padding:1px 5px; margin:0 0 5px; border:1px solid var(--danger); border-radius:3px; font-size:13px; line-height:1.5; font-weight:400; vertical-align:middle; }
.encounter-player-icon { position:relative; top:1px; display:inline-block; font:400 13px/1 var(--body-font); -webkit-font-smoothing:antialiased; }
.encounter-player-icon::before { content:"\e008"; font-family:"Goblinist Legacy Glyphicons"; }
.encounter-actions { display:flex; align-items:center; gap:4px; margin-top:15px; }
.encounter-page hr { border:0; border-top:1px solid var(--border); margin:20px 0; }
.encounter-results { text-align:center; }
.encounter-result { border:1px solid var(--border); border-radius:4px; margin-bottom:20px; background:var(--surface); }
.encounter-result-heading { padding:10px 15px; border-bottom:1px solid var(--border); background:var(--raised); }
.encounter-result-heading h2 { font:400 26px/1.1 var(--heading-font); margin:20px 0 10px; }
.encounter-label { display:inline-block; padding:.2em .6em .3em; border-radius:.25em; background:var(--muted); color:var(--surface); font-size:75%; line-height:1; font-weight:700; vertical-align:baseline; white-space:nowrap; }
.encounter-label.encounter-danger { background:var(--danger); color:#fff; }
.encounter-result-heading p { margin:0 0 10px; }
.encounter-result-heading a,.encounter-notice a { color:var(--link); }
.encounter-result-heading a:hover,.encounter-notice a:hover { text-decoration:underline; }
.encounter-result-body { padding:15px; }
.encounter-table { border-collapse:collapse; width:100%; margin-bottom:20px; font-size:14px; line-height:1.42857143; }
.encounter-table th,.encounter-table td { padding:5px; border:1px solid var(--border); vertical-align:top; text-align:center; }
.encounter-table thead th { text-align:left; font-weight:700; border-bottom-width:2px; }
.encounter-table tbody tr:nth-child(odd) { background:var(--background); }
.result-quantity,.result-xp-total { font-weight:700; }
.encounter-notice { text-align:center; margin-top:20px; }
.encounter-notice p { margin:0; }
.encounter-srd-notice p+p { margin-top:10px; }
.encounter-error { padding:15px; margin-bottom:20px; border:1px solid var(--danger); border-radius:4px; color:var(--danger); background:var(--surface); }
.encounter-error p { margin:0; }
.encounter-field { margin-bottom:15px; }
.encounter-field label { display:block; margin-bottom:5px; }
.encounter-help,.encounter-field-errors { font-size:13px; }
.encounter-field-errors { color:var(--danger); }
.encounter-loader { display:inline-block; width:16px; height:16px; margin-left:7px; border:2px solid var(--border); border-top-color:var(--text); border-radius:50%; animation:encounter-spin .6s linear infinite; }
.encounter-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@keyframes encounter-spin { to { transform:rotate(360deg); } }
/* Phone adaptations; the original desktop geometry above remains unchanged. */
@media(max-width:767px) {
  .encounter-page { width:auto; }
  .encounter-rules { display:block; max-width:none; }
  #encounter-rules-label { display:block; margin-bottom:8px; font-size:13px; color:var(--muted); }
  .encounter-rules .encounter-button-group { display:flex; width:100%; }
  .encounter-rules .encounter-button { flex:1; }
  .encounter-rules-note { max-width:none; line-height:1.5; }
  .encounter-top-row { flex-direction:column; gap:12px; margin-inline:0; }
  .encounter-add-player,.encounter-difficulty { width:100%; padding:0; }
  .encounter-control { height:44px; padding:10px; border:1px solid var(--border); font-size:16px; }
  .encounter-button { height:auto; min-height:44px; padding:9px 10px; font-size:14px; line-height:1.3; white-space:normal; }
  .encounter-difficulty .encounter-button-group { display:flex; width:100%; }
  .encounter-difficulty .encounter-button { flex:1; }
  .encounter-environments { display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); gap:6px; margin-bottom:15px; }
  .encounter-environments .encounter-option-row,.encounter-environments .encounter-button-group { display:contents; }
  .encounter-page .encounter-environments .encounter-button { margin:0; border-radius:3px; padding-inline:6px; font-size:13px; }
  .encounter-types { display:grid; gap:8px; padding-top:0; }
  .encounter-types .encounter-button-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .encounter-types .encounter-button { min-width:0; }
  .encounter-difficulty .encounter-button[aria-pressed="true"],.encounter-environments .encounter-button[aria-pressed="true"],.encounter-types .encounter-button[aria-pressed="true"] { opacity:1; border-color:var(--link); color:var(--link); background:color-mix(in srgb,var(--link) 9%,var(--surface)); }
  .encounter-count-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .encounter-count-row > div { min-width:0; }
  #min_monsters_select,#max_monsters_select { display:block; width:100%; }
  .encounter-seed { display:flex; grid-column:1 / -1; gap:8px; }
  .encounter-seed select { flex:1; width:0; min-width:0; }
  .encounter-seed-help summary { width:44px; height:44px; }
  .encounter-popover { top:calc(100% + 10px); right:0; left:auto; width:min(280px,calc(100vw - 30px)); transform:none; }
  .encounter-popover::before { top:-11px; right:10px; left:auto; margin:0; border:11px solid transparent; border-top:0; border-bottom-color:var(--border); }
  .encounter-popover::after { top:-9px; right:11px; left:auto; margin:0; border:10px solid transparent; border-top:0; border-bottom-color:var(--surface); }
  .encounter-players { margin-top:12px; }
  .encounter-player { padding:4px 8px; }
  .encounter-actions { position:relative; gap:8px; }
  #generate_button { flex:1; }
  #reset_button { min-width:80px; }
  .encounter-loader { position:absolute; right:98px; top:14px; margin:0; }
  .encounter-result-heading { padding:12px; }
  .encounter-result-heading h2 { display:flex; flex-direction:column; gap:8px; margin:14px 0; font-size:24px; }
  .encounter-label { padding:8px 10px; white-space:normal; overflow-wrap:anywhere; }
  .encounter-result-heading p { text-align:left; line-height:1.5; }
  .encounter-result-body { padding:12px; }
  .encounter-table { display:block; margin:0; }
  .encounter-table thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .encounter-table tbody { display:grid; gap:10px; }
  .encounter-table tbody tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:12px; border:1px solid var(--border); border-radius:4px; background:var(--surface); }
  .encounter-table tbody tr:nth-child(odd) { background:var(--surface); }
  .encounter-table td { min-width:0; padding:0; border:0; text-align:left; }
  .encounter-table .result-name { grid-column:1 / -1; grid-row:1; padding-bottom:10px; border-bottom:1px solid var(--border); font-size:16px; font-weight:600; overflow-wrap:anywhere; }
  .encounter-table .result-quantity { grid-column:1; grid-row:2; font-weight:700; }
  .encounter-table .result-xp-each { grid-column:2; grid-row:2; }
  .encounter-table .result-xp-total { grid-column:3; grid-row:2; font-weight:700; }
  .encounter-table td[data-label]::before { display:block; margin-bottom:3px; color:var(--muted); content:attr(data-label); font-size:12px; font-weight:400; }
  .encounter-notice,.encounter-error { overflow-wrap:anywhere; }
}
@media(max-width:479px) { .encounter-count-row { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .encounter-loader { animation:none; } }
