body.oregon2-game #content{background:#d8b66f url('../images/prairie-background.webp') repeat;background-size:512px 512px}
body.oregon2-game #game{background:transparent}
#Oregon2 .or-supply-help{display:grid;place-items:center;cursor:pointer}
#Oregon2 .or-help-symbol{display:grid;place-items:center;width:20px;height:20px;border:1px solid #80633d;border-radius:50%;background:#f1e5c9;color:#624a2c;font:bold 14px/1 Georgia,serif;box-shadow:0 1px 2px #382d2140}
.oregon-popover{border:1px solid #80633d;background:#f5eddb;color:#382d21;box-shadow:0 5px 18px #30261955}
.oregon-popover .popover-header{background:#e4d2ad;color:#382d21;border-bottom:1px solid #b69b70;font-family:Georgia,serif;font-weight:bold}
.oregon-popover .popover-body{color:#382d21;max-height:calc(100vh - 100px);overflow-y:auto}
.oregon-popover.or-building-overview{max-width:min(480px,calc(100vw - 24px))}
.or-building-reference-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #b69b7066}
.or-building-reference-row:first-child{padding-top:0}
.or-building-reference-row:last-child{border-bottom:0}
.or-building-reference-row img{width:48px;height:48px;object-fit:contain}
.or-building-reference-row h4{font-size:14px;font-weight:700;margin:0 0 3px}
.or-building-reference-row p{font-size:12px;line-height:1.4;margin:0}
.oregon-popover .or-help-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.oregon-popover .or-help-close{flex-shrink:0;border:0;border-radius:3px;background:transparent;color:#624a2c;font:24px/1 Arial,sans-serif;padding:0 3px;cursor:pointer}
.oregon-popover .or-help-close:hover{background:#cbb38a}
.oregon-popover .or-help-close:focus-visible{outline:2px solid #075cad;outline-offset:2px}
#Oregon2 .or-player-cowboy{width:22px;height:22px;object-fit:contain;flex-shrink:0}
#Oregon2 .or-opponent-hand{display:flex;gap:2px;flex-shrink:0;margin-left:auto}
#Oregon2 .or-opponent-hand img{display:block;width:clamp(10px,1.2vw,14px);height:21px;object-fit:contain}
#Oregon2 .or-opponent-hand .or-unknown-card{display:block;box-sizing:border-box;width:clamp(10px,1.2vw,14px);height:21px;border:1px solid #c4ad80;border-radius:1px;background:repeating-linear-gradient(45deg,#80633d 0,#80633d 2px,#b69b70 2px,#b69b70 3px)}
#Oregon2{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;width:100%;padding:4px;box-sizing:border-box;color:#382d21;--or-side:175px;--or-board-width:720px}
#Oregon2 *{box-sizing:border-box}#Oregon2 .or-main{width:var(--or-board-width);max-width:100%;min-width:0}#Oregon2 .or-board{position:relative;width:100%;aspect-ratio:720/494}#Oregon2 .or-map{display:block;width:100%;height:100%;max-width:none}#Oregon2 .or-cells{position:absolute;inset:0}
#Oregon2 button{cursor:default;border:0;background:transparent;padding:0;color:inherit;touch-action:manipulation}#Oregon2 button:disabled{opacity:1}#Oregon2 button.or-active,#Oregon2 .or-building-info{cursor:pointer}#Oregon2 button:focus-visible{outline:3px solid #075cad;outline-offset:1px}
#Oregon2 .or-cell{position:absolute;width:5.556%;height:8.097%;border-radius:8%;display:grid;place-items:center}#Oregon2 .or-cell img{width:100%;height:100%;object-fit:contain}#Oregon2 .or-cell.or-active{background:#fff8;border:2px solid #217b48;box-shadow:0 0 2px white}#Oregon2 .or-cell.or-active:hover{background:#b2f6c7aa}#Oregon2 .or-last{outline:2px solid #222;outline-offset:-2px}
#Oregon2 .or-cell img.or-building-tile{width:92%;height:92%;border:1px solid #ead8a2;border-right-color:#8a7047;border-bottom-color:#6a5736;border-radius:5%;box-shadow:1px 1px 0 #725a38,2px 2px 0 #725a38,3px 4px 5px #0009}
#Oregon2 .or-sidebar{width:var(--or-side);flex-shrink:0;min-width:0}#Oregon2 .or-players{display:grid;gap:5px;grid-template-columns:repeat(var(--or-player-cols,1),minmax(0,1fr))}#Oregon2 .or-player{padding:5px 7px;border-left:5px solid var(--or-color);border-radius:5px;background:#f1eadb;overflow:hidden}#Oregon2 .or-player header{display:flex;gap:4px;font-size:clamp(12px,1.2vw,17px);font-weight:600;align-items:center}#Oregon2 .or-login{font-size:clamp(11px,1vw,14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#Oregon2 .or-star{font-size:.7em}#Oregon2 .or-stats,#Oregon2 .or-resources{display:flex;gap:5px;align-items:center;font-size:clamp(11px,1.1vw,15px)}#Oregon2 .or-stats strong{margin-right:auto}#Oregon2 .or-stats img,#Oregon2 .or-resources img{width:21px;height:21px;object-fit:contain}
#Oregon2 .or-supply{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:8px}#Oregon2 .or-building-info{position:relative}#Oregon2 .or-building-info img{width:100%;max-height:46px;object-fit:contain}#Oregon2 .or-building-info b{position:absolute;right:0;bottom:0;background:#fff;color:#222;border-radius:50%;min-width:17px;font-size:12px}
#Oregon2 .or-hand{display:flex;gap:4px;justify-content:center;min-width:0;width:100%;margin-top:7px;padding-top:3px;grid-column:1/-1}#Oregon2 .or-card{min-width:0;flex:0 1 48px}#Oregon2 .or-card img{width:100%;height:70px;object-fit:contain}#Oregon2 .or-card.or-selected,#Oregon2 .or-joker.or-selected{outline:3px solid #0b7546;border-radius:3px;transform:translateY(-3px)}#Oregon2 .or-card.or-active:hover{filter:brightness(1.1)}#Oregon2 .or-decks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}#Oregon2 .or-deck{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;width:100%;padding:1px;border-radius:4px}#Oregon2 .or-deck-stack{position:relative;display:block;width:40px;flex-shrink:0}#Oregon2 .or-deck-label{display:block;width:100%;font-size:11px;line-height:1.2;font-weight:600;text-align:center;overflow-wrap:break-word}#Oregon2 .or-deck img{display:block;width:100%;height:44px;object-fit:contain}#Oregon2 .or-deck b{position:absolute;bottom:0;right:0;background:#fff;padding:0 3px;font-size:12px}#Oregon2 .or-deck.or-active{outline:2px solid #217b48}#Oregon2 .or-tokens{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;width:100%;margin-top:5px;grid-column:1/-1}#Oregon2 .or-tokens img{width:35px;height:35px;object-fit:contain}#Oregon2 .or-controls{display:flex;gap:8px;align-items:center;min-height:0;flex-wrap:wrap}#Oregon2 .or-controls button{padding:2px 7px;border:1px solid #98794c;background:#f5efdf;font-size:12px}#Oregon2 [hidden]{display:none!important}
body.oregon2-game #log .or-log{display:inline;line-height:1.5;white-space:normal}body.oregon2-game #log .or-log img{display:inline-block;width:auto;height:40.5px;max-width:57px;object-fit:contain;vertical-align:middle;margin:1px 3px}body.oregon2-game #log .move.color0{background:#eee0a5;color:#352a0e}body.oregon2-game #log .move.color1{background:#bdd9bb;color:#183c24}body.oregon2-game #log .move.color2{background:#edc3bb;color:#602522}body.oregon2-game #log .move.color3{background:#bdd5e9;color:#183b5d}.oregon-popover{max-width:min(320px,90vw)}


body.oregon2-game #log .or-log img.or-log-meeple{height:28.35px;max-width:39.9px}
body.oregon2-game #log .or-hidden-draw{display:inline-block;width:27px;height:40.5px;margin:1px 3px;vertical-align:middle;line-height:1}
body.oregon2-game #log .or-hidden-draw img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;margin:0;border-radius:2px}

/* Log references stay outside the replay click target. */
body.oregon2-game #log .or-coordinate{border:0;border-bottom:1px dotted currentColor;background:transparent;color:inherit;padding:0 2px;cursor:pointer;font:inherit}
#Oregon2 .or-cell.or-log-location{outline:3px solid #075cad;outline-offset:2px;box-shadow:0 0 0 5px #fff9}

/* Player panels: identity and reserve, score and mine counts, cards and tokens. */
#Oregon2 .or-player { padding: 8px 10px; }
#Oregon2 .or-player header { gap: 4px; min-width: 0; }
#Oregon2 .or-login { font-size: 14px; }
#Oregon2 .or-farmers { display: flex; align-items: center; gap: 4px; margin-left: auto; flex-shrink: 0; font-size: 14px; font-weight: normal; }
#Oregon2 .or-farmers img { width: 26px; height: 26px; object-fit: contain; }
#Oregon2 .or-stats { display: flex; gap: 8px; font-size: 14px; margin-top: 3px; }
#Oregon2 .or-stats strong { margin-right: auto; }
#Oregon2 .or-resources { display: flex; gap: 9px; font-size: 14px; }
#Oregon2 .or-resource { display: flex; align-items: center; gap: 3px; }
#Oregon2 .or-resource img { width: 24px; height: 24px; margin: 0; }
#Oregon2 .or-status { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 7px; }
#Oregon2 .or-opponent-hand { margin: 0; gap: 3px; }
#Oregon2 .or-opponent-hand img, #Oregon2 .or-opponent-hand .or-unknown-card { width: 20px; height: 30px; }
#Oregon2 .or-tokens { display: flex; align-items: center; flex-wrap: nowrap; gap: 6px; margin: 0 0 0 auto; width: auto; }
#Oregon2 .or-tokens img { width: 32px; height: 32px; }
#Oregon2 .or-own .or-tokens { flex-wrap: wrap; justify-content: center; width: 100%; }
#Oregon2 .or-own .or-tokens img { width: 42px; height: 42px; }
#Oregon2 .or-own .or-hand { margin-top: 8px; }
#Oregon2 .or-card { flex: 1 1 0; min-width: 0; max-width: 84px; }
#Oregon2 .or-card img, #Oregon2 .or-empty-slot { display: block; height: auto; aspect-ratio: 2 / 3; max-height: 125px; }
#Oregon2 .or-empty-slot { align-self: flex-start; }
#Oregon2 .or-empty-slot:empty { outline: 1px dashed #92794d; outline-offset: -1px; border-radius: 4px; }
#Oregon2 .or-supply { gap: 6px; }
#Oregon2 .or-building-info img { max-height: 64px; }
#Oregon2 .or-building-info b { font-size: 14px; min-width: 20px; }
#Oregon2.or-compact-info .or-player { display: block; padding: 5px 6px; }
#Oregon2.or-compact-info .or-supply { gap: 4px; }
#Oregon2.or-compact-info .or-building-info img { height: 46px; }
#Oregon2.or-compact-info .or-login { font-size: 12px; }
#Oregon2.or-compact-info .or-player-cowboy { width: 18px; height: 18px; }
#Oregon2.or-compact-info .or-farmers { gap: 2px; font-size: 12px; }
#Oregon2.or-compact-info .or-farmers img { width: 22px; height: 22px; }
#Oregon2.or-compact-info .or-stats, #Oregon2.or-compact-info .or-resources { font-size: 11px; gap: 3px; }
#Oregon2.or-compact-info .or-resource img { width: 18px; height: 18px; }
#Oregon2.or-compact-info .or-status { gap: 4px; flex-wrap: wrap; }
#Oregon2.or-compact-info .or-opponent-hand { gap: 2px; }
#Oregon2.or-compact-info .or-opponent-hand img, #Oregon2.or-compact-info .or-unknown-card { width: 22px; height: 33px; }
#Oregon2.or-compact-info .or-tokens { gap: 3px; }
#Oregon2.or-compact-info .or-tokens img { width: 30px; height: 30px; }
#Oregon2.or-compact-info .or-own .or-tokens img { width: 39px; height: 39px; }


#Oregon2 .or-score { display: flex; align-items: center; gap: 4px; margin-right: auto; min-width: 0; }
#Oregon2 .or-score strong { margin: 0; }
#Oregon2 .or-score-info { display: inline-grid; place-items: center; flex-shrink: 0; min-width: 22px; min-height: 24px; cursor: pointer; color: #765b32; font-size: 16px; }
.or-point-breakdown { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; margin: 0; }
.or-point-breakdown dt { font-weight: normal; }
.or-point-breakdown dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.or-point-breakdown dt:last-of-type, .or-point-breakdown dd:last-of-type { border-top: 1px solid #b69b70; padding-top: 6px; font-weight: bold; }

#Oregon2 .or-score strong { white-space: nowrap; }

body.oregon2-game #log .or-unknown-mine { display: inline-block; position: relative; width: 40.5px; height: 40.5px; margin: 1px 3px; vertical-align: middle; }
body.oregon2-game #log .or-unknown-mine img { display: block; width: 100%; height: 100%; margin: 0; }

/* Bound the 512px artwork inside the framework's color chooser. */
body.oregon2-game .colorChooser .chooseColor { display: flex; align-items: flex-start; gap: 8px; padding: 6px; }
body.oregon2-game .colorChooser .chooseColor .txtPlayer { float: none; flex: 1; min-width: 0; margin-right: 0; line-height: 40px; }
body.oregon2-game .colorChooser .mplPlayer { float: none; flex: 0 0 28px; width: 28px; margin-top: 6px; }
body.oregon2-game .colorChooser .custom-select { float: none; flex: 0 0 64px; width: 64px; }
body.oregon2-game .colorChooser .select-selected { min-height: 40px; padding: 5px 28px 5px 6px; }
body.oregon2-game .colorChooser .select-items > div { padding: 6px; min-height: 40px; }
body.oregon2-game .colorChooser .or-color-option { display: block; width: 28px; height: 28px; max-width: none; object-fit: contain; }

/* The board stays first, anchored at the allocated game's top-left corner. */
#Oregon2 .or-main { flex: none; }
#Oregon2 .or-players { align-items: start; }
#Oregon2 .or-player { min-width: 205px; }
#Oregon2.or-compact-info .or-status { flex-wrap: nowrap; }
#Oregon2 .or-start {
    position: absolute;
    left: 4.1%;
    top: 90%;
    width: 6%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}
#Oregon2:not(.or-bottom-info) .or-start { left: 90.8%; top: 5.4%; }
#Oregon2 .or-start img { display: block; width: 100%; border: 1px solid #f7e7bc; box-shadow: 2px 3px 4px #382d2180; }
#Oregon2 .or-stats { flex-wrap: wrap; }
#Oregon2.or-bottom-info { flex-direction: column; align-items: flex-start; }
#Oregon2.or-bottom-info .or-sidebar { display: flex; align-items: flex-start; gap: 8px; width: 100%; }
#Oregon2.or-bottom-info .or-players { flex: 1; min-width: 0; max-width: 795px; align-items: start; }
#Oregon2.or-own-tall .or-players { grid-template-columns: 375px repeat(2, minmax(205px, 1fr)); }
#Oregon2.or-bottom-info .or-common { width: min(100%, 220px); flex-shrink: 0; }
#Oregon2.or-bottom-info .or-supply { margin-top: 0; }
#Oregon2.or-own-tall .or-own { grid-row: span 2; }
#Oregon2.or-own-span .or-own { grid-column: 1 / -1; }
#Oregon2.or-common-below .or-sidebar { flex-direction: column; }
#Oregon2.or-common-below .or-players { width: 100%; flex: none; }
#Oregon2.or-common-below .or-common { display: flex; align-items: center; gap: 8px; width: min(100%, 360px); }
#Oregon2.or-common-below .or-supply { flex: 1; }
#Oregon2.or-common-below .or-decks { flex: 0 1 130px; margin: 0; }
@media (max-width: 380px) {
    #Oregon2.or-common-below .or-common { flex-wrap: wrap; }
    #Oregon2.or-common-below .or-supply { flex-basis: 100%; }
}
#Oregon2.or-compact-info .or-card img, #Oregon2.or-compact-info .or-empty-slot { max-height: 115px; }
#Oregon2.or-finished-compact .or-card img, #Oregon2.or-finished-compact .or-empty-slot { max-height: 52px; }
#Oregon2.or-finished-compact .or-hand { margin-top: 3px; padding-top: 0; }
#Oregon2.or-finished-compact .or-common { width: min(100%, 490px); }
#Oregon2.or-finished-compact .or-supply { grid-template-columns: repeat(8, minmax(0, 1fr)); }
#Oregon2.or-compact-info .or-building-info { width: 38px; max-width: 100%; justify-self: center; }
#Oregon2.or-compact-info .or-building-info img { height: 38px; max-height: 38px; }
#Oregon2.or-compact-info .or-building-info b { font-size: 11px; min-width: 15px; }
#Oregon2.or-compact-info .or-deck-stack { width: 30px; }
#Oregon2.or-compact-info .or-deck img { height: 40px; }
#Oregon2.or-compact-info .or-deck-label { font-size: 10px; }
#Oregon2.or-bottom-info .or-deck img { height: 36px; }
#Oregon2.or-compact-info .or-score { gap: 2px; }
#Oregon2.or-compact-info .or-score-info { min-height: 18px; min-width: 18px; font-size: 14px; }

#Oregon2.or-compact-info.or-own-span .or-own { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; }
#Oregon2.or-compact-info.or-own-span .or-own header { grid-column: 1 / -1; }
#Oregon2.or-compact-info.or-own-span .or-own .or-stats { grid-column: 1; grid-row: 2; }
#Oregon2.or-compact-info.or-own-span .or-own .or-status { grid-column: 2; grid-row: 2; margin-top: 3px; }

#Oregon2.or-compact-info .or-player header { gap: 2px; }

/* Framework announcement block, distinct from inline action consequences. */
body.oregon2-game #log .effectFinalRound { background: #eddfb8; color: #60411f; border-color: #b28a4c; border-left: 4px solid #98713d; }
.or-round-announcement strong, .or-round-announcement > span { display: block; }
.or-round-announcement strong { font-size: 14px; margin-bottom: 3px; }
#Oregon2 .or-round-status { grid-column: 1 / -1; padding: 8px; background: #f3dfaa; color: #6d381e; border: 2px solid #af713d; border-radius: 5px; }
#Oregon2 .or-round-status strong, #Oregon2 .or-round-status > span { display: block; }
#Oregon2 .or-round-status strong { font-size: 14px; }
#Oregon2 .or-round-status > span { font-size: 12px; }
#Oregon2.or-compact-info .or-round-status { padding: 6px; }
#Oregon2.or-compact-info .or-round-status strong { font-size: 12px; }
#Oregon2.or-compact-info .or-round-status > span { font-size: 11px; }


/* Use spare sidebar width for the viewing player's hand and markers. */
#Oregon2.or-roomy-own .or-own .or-login,
#Oregon2.or-roomy-own .or-own .or-stats,
#Oregon2.or-roomy-own .or-own .or-resources,
#Oregon2.or-roomy-own .or-own .or-farmers { font-size: 17px; }
#Oregon2.or-roomy-own .or-own .or-farmers img,
#Oregon2.or-roomy-own .or-own .or-resource img { width: 32px; height: 32px; }
#Oregon2.or-roomy-own .or-own .or-card { max-width: 106px; }
#Oregon2.or-roomy-own .or-own .or-card img, #Oregon2.or-roomy-own .or-empty-slot { max-height: 156px; }
#Oregon2.or-roomy-own .or-own .or-tokens img { width: 60px; height: 60px; }
#Oregon2 .or-tutorial-link { font-size: 12px; padding: 2px 5px; }

#Oregon2 .or-reveal-refill{border:2px solid #217b48;border-radius:4px;padding:0;background:transparent;width:100%;cursor:pointer}

/* Split information uses the actual board and player columns, independent of viewport breakpoints. */
#Oregon2.or-split-info { display: grid; grid-template-columns: var(--or-board-width) var(--or-side); gap: 10px; }
#Oregon2.or-split-info .or-sidebar { display: contents; }
#Oregon2.or-split-info .or-main { grid-column: 1; grid-row: 1; }
#Oregon2.or-split-info .or-players { grid-column: 2; grid-row: 1 / span 2; width: var(--or-side); }
#Oregon2.or-split-info .or-common { grid-column: 1; grid-row: 2; display: flex; align-items: flex-start; gap: 12px; width: min(100%, 490px); }
#Oregon2.or-split-info .or-supply { flex: 1; margin: 0; }
#Oregon2.or-split-info .or-decks { flex: 0 0 220px; margin: 0; }

/* Keep the hand/supply and opponents in independent columns on wide, short areas. */
#Oregon2.or-three-columns .or-sidebar { display: grid; grid-template-columns: minmax(225px, 1fr) 205px; gap: 10px; align-items: start; }
#Oregon2.or-three-columns .or-home { min-width: 0; }
#Oregon2.or-three-columns .or-players { grid-template-columns: minmax(0, 1fr); }
