.kaupang-reference-entry { margin-top: 12px; }
.kaupang-gallery-panel { margin-top: 16px; }
.kaupang-gallery-entrance { width: 100%; margin-top: 10px; border-color: #806a42; background: radial-gradient(ellipse at 7% 50%, #344e53, transparent 60%), linear-gradient(125deg, #233740, #182831); color: #eee2c4; }
.kaupang-gallery-entrance:hover { border-color: #e2b76a; }
.kaupang-entry-rune { display: grid; place-items: center; font-size: 46px; line-height: 1; color: #e0bc77; border: 1px solid #76694e; border-radius: 45% 45% 40% 40%; background: #142b33; }
.kaupang-entry-copy > span { color: #b8c9cd; }
.kaupang-entry-arrow { color: #e0bc77; }
.kaupang-reference-modal, .kaupang-detail-modal { --kaupang-cell: 28px; --kaupang-component: calc(var(--kaupang-cell) * 13.1 + 16px); width: min(1480px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 16px; color: #e4e5dc; background: linear-gradient(140deg, #21333c, #14262e); border: 1px solid #8a724b; box-sizing: border-box; }
.kaupang-detail-modal { width: min(1200px, calc(100vw - 32px)); }
.kaupang-reference-modal .modal-head h2, .kaupang-detail-modal .modal-head h2 { font-size: 21px; }
.kaupang-reference-modal .modal-head, .kaupang-detail-modal .modal-head { position: sticky; top: -16px; background: #21333c; z-index: 2; padding: 8px 0; margin-top: -4px; }
.kaupang-atlas-intro { font-size: 12px; color: #c0ced0; line-height: 1.6; margin: 10px 0; }
.kaupang-view-switch { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.kaupang-view-switch p { margin: 0; color: #d6c59f; font-size: 12px; line-height: 1.7; }
.kaupang-view-switch button { min-height: 36px; border-color: #9c8052; color: #edce94; }
.kaupang-preview-controls { display: flex; gap: 12px; align-items: center; margin: 10px 0; }
.kaupang-preview-controls label { display: grid; gap: 6px; flex-shrink: 0; color: #e6cd98; font-size: 12px; }
.kaupang-preview-controls select { min-height: 34px; padding: 6px 10px; font-size: 12px; border: 1px solid #6e7967; border-radius: 5px; background: #1a3039; color: #e4dbbf; }
.kaupang-preview-controls p { margin: 0; color: #a9c0c5; font-size: 11px; line-height: 1.6; }
.kaupang-schedule { margin-bottom: 10px; }
#kaupangFlipSchedule { overflow-x: auto; }
.kaupang-flip-table { width: 100%; min-width: 640px; border-collapse: collapse; margin-top: 15px; font-size: 12px; }
.kaupang-flip-table th, .kaupang-flip-table td { padding: 10px 8px; border-bottom: 1px solid #42565c; text-align: left; line-height: 1.8; }
.kaupang-flip-table thead { color: #e9cf95; }
.kaupang-flip-table td:nth-last-child(-n+2) { white-space: nowrap; color: #bed3d4; }
.kaupang-schedule-face { padding: 0; border: 0; background: none; color: #d2e3e2; font-size: 12px; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
.kaupang-schedule-face:hover { color: #f1d39b; }
.kaupang-round-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.kaupang-round-button { display: flex; align-items: center; gap: 7px; min-height: 32px; padding: 6px 10px; color: #c7d5d8; background: #172b34; border: 1px solid #47616a; border-radius: 5px; font-size: 11px; }
.kaupang-round-button b { color: #9cbbc1; font-size: 11px; }
.kaupang-round-button[aria-pressed="true"] { color: #ffe0a4; background: #51452e; border-color: #d0a764; }
.kaupang-round-button[aria-pressed="true"] b { color: #ffe0a4; }
.kaupang-reference-tools { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.kaupang-reference-tools label { display: grid; gap: 6px; color: #c8d5d5; font-size: 12px; }
.kaupang-reference-tools .kaupang-search-label { flex: 1 1 300px; }
.kaupang-reference-tools input, .kaupang-reference-tools select { padding: 7px 10px; font-size: 12px; min-height: 34px; }
.kaupang-reference-tools input { width: 100%; }
.kaupang-reference-tools button { min-height: 34px; }
.kaupang-general-rules { margin-top: 8px; padding: 8px 10px; border: 1px solid #405962; background: #182c34; border-radius: 6px; font-size: 12px; }
.kaupang-general-rules summary { cursor: pointer; color: #d5c49c; }
.kaupang-general-rules .kaupang-rule-block { background: none; border: none; margin: 10px 0; padding: 0; }
.kaupang-house-rule { padding: 12px 0; color: #e0c68e; border-top: 1px solid #4d5d58; line-height: 1.8; }
.kaupang-reference-count { font-size: 11px; color: #a7bfc4; margin: 10px 0 6px; }
.kaupang-reference-list { display: grid; gap: 18px; }
.kaupang-group-heading { display: flex; align-items: center; gap: 12px; margin: 8px 0 10px; font-size: 15px; color: #ebce93; }
.kaupang-group-heading small { font-size: 11px; font-weight: normal; color: #a4bec4; }
.kaupang-group-heading::after { content: ""; height: 1px; background: #52645f; flex: 1; }
.kaupang-card-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.kaupang-atlas-card { min-width: 0; overflow: hidden; padding: 0; text-align: left; color: #e2e7e3; border: 1px solid #4b6265; border-radius: 8px; background: #20353e; }
.kaupang-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px 8px; }
.kaupang-card-name h4 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0; font-size: 16px; color: #efdaa6; }
.kaupang-card-name p { margin: 5px 0 0; font-size: 10px; color: #acc2c7; }
.kaupang-card-name .kaupang-english-name { margin: 0; font-size: 11px; font-weight: normal; }
.kaupang-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.kaupang-now-bonus { display: flex; align-items: center; gap: 9px; min-height: 36px; padding: 6px 10px; border: 1px solid #9d814c; border-radius: 6px; background: #403b29; white-space: nowrap; }
.kaupang-now-bonus span { font-size: 10px; color: #d7c49c; }
.kaupang-now-bonus strong { font-size: 17px; color: #f6d38a; font-variant-numeric: tabular-nums; }
.kaupang-now-bonus.is-zero { border-color: #586d70; background: #24383e; }
.kaupang-now-bonus.is-zero strong { color: #c4d3d5; }
.kaupang-now-bonus.is-unavailable { border-color: #586d70; background: #24383e; }
.kaupang-now-bonus.is-unavailable strong { font-size: 12px; color: #a9bec2; }
.kaupang-face-open { flex-shrink: 0; min-height: 32px; font-size: 11px; }
.kaupang-face-open:focus-visible { outline: 3px solid #f2d499; outline-offset: -3px; }
.kaupang-pair-number { border: 1px solid #967d4e; border-radius: 4px; padding: 3px 6px; background: #263437ed; color: #f4dca8; font-size: 11px; }
.kaupang-flip-controls { display: flex; align-items: center; gap: 10px; padding: 6px 12px; border-block: 1px solid #40565a; background: #182e36; }
.kaupang-flip-button { flex-shrink: 0; padding: 6px 8px; font-size: 11px; min-height: 32px; color: #ecd29b; border-color: #8f794d; }
.kaupang-flip-timing { color: #e2c89a; font-size: 11px; line-height: 1.6; }
.kaupang-flip-timing small { display: inline-block; margin-left: 10px; color: #a9bec2; font-size: 10px; }
.kaupang-owned-note { margin: 0; padding: 8px 14px; background: #293c34; color: #bdd4b8; font-size: 11px; line-height: 1.6; }
.kaupang-atlas-card:focus-visible, .kaupang-round-button:focus-visible, .kaupang-gallery-entrance:focus-visible { outline: 3px solid #f2d499; outline-offset: 3px; }
.kaupang-atlas-components { display: grid; grid-template-columns: var(--kaupang-component) minmax(0, 1fr); gap: 12px; align-items: start; padding: 10px 12px 12px; }
.kaupang-atlas-mainboard, .kaupang-atlas-building { min-width: 0; width: 100%; max-width: var(--kaupang-component); padding: 8px; background: #172d36; border-radius: 5px; }
.kaupang-atlas-buildings { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 12px; }
.kaupang-compact-components { grid-template-columns: var(--kaupang-component) minmax(0, 1fr); }
.kaupang-atlas-sidebar { min-width: 0; }
.kaupang-atlas-sidebar > .kaupang-atlas-notes { margin-bottom: 16px; }
.kaupang-atlas-sidebar .kaupang-atlas-notes p { margin-top: 0; }
.kaupang-building-shortcuts { min-width: 0; }
.kaupang-building-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.kaupang-building-button { display: flex; align-items: center; gap: 9px; padding: 7px 9px; min-height: 58px; width: 100%; min-width: 0; text-align: left; color: #eadcb8; background: #182d35; border: 1px solid #786c4d; border-radius: 6px; }
.kaupang-building-button:hover { border-color: #e4c27a; background: #2a3c3d; }
.kaupang-building-button:focus-visible { outline: 2px solid #f2d499; outline-offset: 2px; }
.kaupang-building-rune { position: relative; display: block; flex: 0 0 44px; width: 44px; height: 44px; overflow: hidden; border: 1px solid #bba16e; border-radius: 3px; }
.kaupang-building-rune img { position: absolute; display: block; max-width: none; max-height: none; object-fit: fill; pointer-events: none; }
.kaupang-building-label { min-width: 0; }
.kaupang-building-label strong { display: block; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.kaupang-building-label small { display: block; margin-top: 3px; font-size: 10px; color: #acbfc1; }
.kaupang-detail-modal > #kaupangDetailContent > .kaupang-building-shortcuts .kaupang-building-button { width: auto; min-width: 160px; }
.kaupang-building-modal { --kaupang-cell: 36px; width: min(960px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 20px; color: #e4e5dc; background: linear-gradient(140deg, #21333c, #14262e); border: 1px solid #8a724b; }
.kaupang-building-modal .modal-head { margin-bottom: 16px; }
.kaupang-building-content { display: grid; justify-items: center; gap: 20px; }
.kaupang-building-content.has-actions { grid-template-columns: max-content minmax(0, 1fr); align-items: start; }
.kaupang-building-actions { min-width: 0; }
.kaupang-building-actions .kaupang-rule-block { margin-top: 0; }
@media (min-width: 1180px) {
  .kaupang-reference-modal[data-mode="remaining"] .kaupang-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kaupang-reference-modal[data-mode="remaining"] .kaupang-card-heading { align-items: flex-start; flex-wrap: wrap; }
  .kaupang-reference-modal[data-mode="remaining"] .kaupang-card-actions { gap: 6px; }
  .kaupang-reference-modal[data-mode="remaining"] .kaupang-now-bonus { min-height: 30px; padding: 4px 7px; gap: 6px; }
  .kaupang-reference-modal[data-mode="remaining"] .kaupang-now-bonus strong { font-size: 14px; }
}
@media (max-width: 900px) {
  .kaupang-building-modal { --kaupang-cell: clamp(12px, calc((100vw - 80px) / 13.1), 36px); padding: 14px; }
  .kaupang-building-content.has-actions { grid-template-columns: minmax(0, 1fr); }
  .kaupang-compact-components .kaupang-atlas-sidebar { width: 100%; max-width: var(--kaupang-component); justify-self: center; }
  .kaupang-building-button { flex: 1 1 140px; }
}
.kaupang-component-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 8px; color: #e6cf9d; font-size: 12px; line-height: 1.5; }
.kaupang-component-title .kaupang-reference-grade { font-size: 10px; padding: 2px 5px; }
.kaupang-atlas-notes p, .kaupang-atlas-no-rule { font-size: 11px; line-height: 1.65; color: #bdd0d3; margin: 7px 0 0; overflow-wrap: anywhere; }
.kaupang-atlas-notes strong { color: #e0cdab; font-weight: 550; }
.kaupang-atlas-notes .kaupang-atlas-editor-note { padding-left: 7px; border-left: 2px solid #9b8152; color: #c3b28f; font-size: 10px; }
.kaupang-atlas-components .kaupang-reference-art figcaption > span:first-child { display: none; }
.kaupang-english-name { display: block; margin-top: 4px; color: #a9c0c6; font-size: 12px; overflow-wrap: anywhere; }
.kaupang-topic-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.kaupang-topic-tags > span { padding: 3px 7px; border-radius: 3px; border: 1px solid #45636c; font-size: 10px; color: #a8ced3; background: #1c3039; }
.kaupang-empty { font-size: 14px; padding: 36px 12px; text-align: center; color: #bbced0; }
.kaupang-detail-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.kaupang-reference-source { color: #dfc58c; font-size: 12px; line-height: 1.8; text-underline-offset: 3px; }
.kaupang-detail-main { display: grid; grid-template-columns: var(--kaupang-component) minmax(0, 1fr); gap: 18px; margin: 14px 0 20px; align-items: start; }
.kaupang-board-rules > h3, .kaupang-buildings-title { font-size: 16px; color: #e9cc96; margin: 0 0 12px; }
.kaupang-rule-block { padding: 10px 12px; border: 1px solid #405962; border-radius: 6px; background: #1c3139; margin: 9px 0; }
.kaupang-action-rule { border-left: 3px solid #d0a35c; background: #2b393b; }
.kaupang-rule-block h4 { font-size: 13px; color: #efdbb0; margin: 0 0 7px; line-height: 1.6; }
.kaupang-rule-block p { color: #d0dcdb; font-size: 12px; line-height: 1.7; margin: 6px 0 0; overflow-wrap: anywhere; }
.kaupang-position { display: inline-block; color: #f9dfab; font-size: 11px; font-family: ui-monospace, monospace; background: #4d3d28; border: 1px solid #92744d; border-radius: 4px; padding: 0 5px; margin-right: 8px; }
.kaupang-rule-block .kaupang-editor-note { padding-top: 10px; margin-top: 12px; border-top: 1px dashed #786c4d; color: #ccb98f; font-size: 11px; }
.kaupang-reference-art { margin: 0; min-width: 0; }
.kaupang-art-link { display: flex; justify-content: center; align-items: center; background: #11252d; border: 1px solid #3c535c; border-radius: 6px; padding: 10px; }
.kaupang-reference-art img { display: block; width: 100%; max-height: 620px; object-fit: contain; }
.kaupang-scaled-art { width: calc(var(--art-columns) * var(--kaupang-cell)); }
.kaupang-scaled-art .kaupang-art-link { padding: 0; border: 0; border-radius: 4px; overflow: hidden; }
.kaupang-reference-art.kaupang-scaled-art img { width: calc(var(--art-columns) * var(--kaupang-cell)); height: calc(var(--art-rows) * var(--kaupang-cell)); max-width: none; max-height: none; object-fit: fill; }
.kaupang-reference-art figcaption { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; line-height: 1.6; margin-top: 8px; color: #99b3ba; }
.kaupang-reference-art figcaption { flex-wrap: wrap; align-items: center; }
.kaupang-art-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.kaupang-art-controls a { color: #e0bc77; text-underline-offset: 3px; }
.kaupang-art-compare { min-height: 32px; padding: 5px 8px; border: 1px solid #60717a; border-radius: 5px; background: #182d36; color: #cbd9dc; font-size: 11px; }
.kaupang-art-compare:hover, .kaupang-art-compare[aria-pressed="true"] { border-color: #d0a35c; color: #f1d6a1; }
.kaupang-bonus-wrap { margin-top: 20px; }
.kaupang-bonus-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.kaupang-bonus-table caption { color: #ddca9e; font-size: 14px; text-align: left; margin: 0 0 10px; }
.kaupang-bonus-table th, .kaupang-bonus-table td { border: 1px solid #3e5b63; padding: 8px 3px; text-align: center; }
.kaupang-bonus-table th { color: #b6c9ce; font-size: 11px; font-weight: normal; background: #172c35; }
.kaupang-bonus-table th:first-child { width: 84px; }
.kaupang-bonus-table .available { background: #304a40; color: #d1e8cb; }
.kaupang-bonus-table .unavailable { color: #80969e; background: #26343a; }
.kaupang-bonus-table .not-a-round { background: #152831; }
.kaupang-small-note { font-size: 11px; line-height: 1.8; color: #a9bdc1; margin: 10px 0; }
.kaupang-building-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 16px; }
.kaupang-building-card { min-width: 0; padding: 12px; background: #20353b; border: 1px solid #53635c; border-radius: 8px; }
.kaupang-building-heading { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.kaupang-building-heading h4 { margin: 0; color: #efdbb0; font-size: 17px; }
.kaupang-reference-grade { flex-shrink: 0; border: 1px solid #7e704d; border-radius: 4px; padding: 4px 7px; color: #ebcf96; font-size: 11px; }
.kaupang-building-card .kaupang-reference-art img { max-height: 280px; }
.kaupang-detail-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 26px; border-top: 1px solid #52645f; padding-top: 12px; }
.kaupang-detail-footer p { flex: 1 0 100%; }
@media (min-width: 1280px) {
  .kaupang-atlas-buildings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1360px) {
  .kaupang-reference-modal, .kaupang-detail-modal { --kaupang-cell: 30px; }
}
@media (max-width: 900px) {
  .kaupang-reference-modal, .kaupang-detail-modal { --kaupang-cell: clamp(16px, calc((100vw - 96px) / 13.1), 30px); }
  .kaupang-atlas-components, .kaupang-atlas-buildings { grid-template-columns: 1fr; }
  .kaupang-atlas-mainboard, .kaupang-atlas-building { justify-self: center; }
  .kaupang-detail-main { grid-template-columns: 1fr; }
  .kaupang-building-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .kaupang-reference-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kaupang-reference-tools label { min-width: 0; }
  .kaupang-reference-tools .kaupang-search-label { grid-column: 1 / -1; }
  .kaupang-reference-tools > button { grid-column: 1 / -1; justify-self: end; }
  .kaupang-reference-tools input, .kaupang-reference-tools select { min-width: 0; }
  .kaupang-preview-controls { flex-direction: column; align-items: stretch; gap: 10px; }
  .kaupang-reference-modal, .kaupang-detail-modal { padding: 12px; width: calc(100vw - 16px); max-height: calc(100dvh - 20px); }
  .kaupang-reference-modal .modal-head, .kaupang-detail-modal .modal-head { top: -12px; }
  .kaupang-reference-modal .modal-head h2, .kaupang-detail-modal .modal-head h2 { font-size: 20px; }
  .kaupang-card-heading { align-items: flex-start; flex-wrap: wrap; }
  .kaupang-card-actions { justify-content: flex-start; gap: 7px; }
  .kaupang-card-name h4 { font-size: 15px; }
  .kaupang-flip-timing small { display: block; margin-left: 0; }
  .kaupang-round-button { padding: 8px; gap: 6px; }
  .kaupang-reference-tools label:not(.kaupang-search-label) { flex: 1; }
  .kaupang-reference-tools select { width: 100%; }
  .kaupang-building-card { padding: 12px; }
}
@media (max-width: 760px) {
  .kaupang-entry-rune { font-size: 35px; }
}
@media (prefers-reduced-motion: reduce) {
  .kaupang-atlas-card { transition: none; }
  .kaupang-atlas-card:hover { transform: none; }
}

.kaupang-reference-modal, .kaupang-detail-modal, .kaupang-building-modal { --kaupang-cell: var(--game-cell); }
.kaupang-atlas-mainboard, .kaupang-atlas-building, .kaupang-building-board { overflow: auto; }
.kaupang-reference-art.kaupang-scaled-art { flex: none; }
