/* 成就块悬停提示样式，参考擂台赛 info-icon */
.achievement-block-adr[data-tooltip]:hover::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background-color: #1a1a1a;
    color: #ccc;
    padding: 8px 12px;
    font-size: 12px;
    font-family: inherit;
    white-space: normal;
    width: 150px;
    max-width: 300px;
    border: 1px solid #333;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 1000;
    text-align: left;
    line-height: 1.4;
}
.achievement-block-adr[data-tooltip]:hover::after {
    visibility: visible;
    opacity: 1;
}
.achievement-block-adr {
    position: relative;
}
:root {
    --bg-color: #111;
    --text-color: #ccc;
    --accent-color: #666;
    --highlight-color: #eee;
    --border-color: #333;
    --button-bg: #222;
    --button-hover: #333;
    --log-width: 255px;
    color-scheme: dark; /* å¼ºåˆ¶æµè§ˆå™¨ä½¿ç”¨æš—è‰²ä¸»é¢˜æŽ§ä»¶ */
}

* {
    box-sizing: border-box;
}

/* å…¨å±€é˜²é—ªçƒï¼šç¦ç”¨selectå…ƒç´ çš„è¿‡æ¸¡åŠ¨ç”» */
select, option, optgroup {
    transition: none !important;
    animation: none !important;
    background-color: var(--button-bg);
    color: var(--text-color);
}

/* æ‰€æœ‰åŠ¨æ€å…ƒç´ é˜²é—ªçƒ - ç¡®ä¿ç©ºçŠ¶æ€ä¸æ˜¾ç¤ºç™½è‰² */
div, span, p, label, button {
    background-color: transparent;
}

/* åŠ¨æ€å†…å®¹å®¹å™¨é˜²é—ªçƒ */
#club-display-list,
#club-service-list,
#club-order-list,
#club-arena-status,
#club-arena-schedule,
#club-auction-status,
#auction-slave-checkboxes,
#arena-slave-checkboxes,
#tech-list,
#sensitivity-modification-container,
#wardrobe-options,
#slave-detail-content {
    background-color: transparent;
    min-height: 1px;
    /* GPUåŠ é€Ÿï¼Œé˜²æ­¢é—ªçƒ */
    transform: translateZ(0);
    backface-visibility: hidden;
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--bg-color);
    color: var(--text-color);
    font-family: 'Courier New', Courier, monospace; /* ä»¿ç…§ A Dark Room çš„å­—ä½“é£Žæ ¼ */
    height: 100vh;
    overflow: hidden;
    /* å¼ºåˆ¶æ‰€æœ‰è¡¨å•æŽ§ä»¶ä½¿ç”¨æš—è‰²ä¸»é¢˜ */
    color-scheme: dark;
}

.container {
    display: flex;
    height: 100%;
}

/* Sidebar / Log */
.sidebar {
    width: var(--log-width);
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    padding: 10px;
    background-color: #0a0a0a;
}

.log-title {
    font-weight: bold;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 5px;
    margin-bottom: 10px;
    color: var(--accent-color);
}

.log-container {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column-reverse; /* æ–°æ¶ˆæ¯åœ¨ä¸Šé¢è¿˜æ˜¯ä¸‹é¢ï¼ŸA Dark Room é€šå¸¸æ–°æ¶ˆæ¯åœ¨æœ€ä¸Šé¢ï¼Œæˆ–è€…æœ€ä¸‹é¢æ»šåŠ¨ã€‚è¿™é‡Œç”¨ column-reverse è®©æœ€æ–°çš„åœ¨åº•éƒ¨æ–¹ä¾¿çœ‹ï¼Œæˆ–è€…ç›´æŽ¥ append */
    /* ä¿®æ”¹ï¼šA Dark Room æ–°æ¶ˆæ¯åœ¨é¡¶éƒ¨ã€‚æˆ‘ä»¬è¿™é‡Œé‡‡ç”¨æ ‡å‡†æ—¥å¿—æµï¼Œæ–°æ¶ˆæ¯è¿½åŠ åˆ°åº•éƒ¨ï¼Œè‡ªåŠ¨æ»šåŠ¨ */
    flex-direction: column; 
}

.log-entry {
    margin-bottom: 6px;
    font-size: 0.9em;
    opacity: 0.8;
    border-left: 2px solid transparent;
    padding-left: 5px;
    animation: fadeIn 0.5s;
    transition: border-left-color 0.5s ease, color 0.5s ease;
}

.log-entry.new {
    border-left-color: var(--highlight-color);
    color: var(--highlight-color);
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 0.8; }
}

/* Main Content */
.main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 20px;
    overflow-y: auto;
    background-color: var(--bg-color);
}

.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 15px;
    margin-bottom: 20px;
}

.resources {
    font-size: 1.2em;
    color: var(--highlight-color);
}

.nav-tabs {
    display: flex;
    gap: 10px;
}

.tab-btn {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--accent-color);
    padding: 8px 16px;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.3s;
}

.tab-btn:hover {
    border-color: var(--accent-color);
    color: var(--highlight-color);
}

.tab-btn.active {
    border-color: var(--highlight-color);
    color: var(--highlight-color);
    background-color: var(--button-bg);
}

/* Content Area */
.view-section {
    display: none;
    background-color: var(--bg-color);
    /* GPUåŠ é€Ÿï¼Œé˜²æ­¢é—ªçƒ */
    transform: translateZ(0);
    backface-visibility: hidden;
}

.view-section.active {
    display: block;
}

h2 {
    font-weight: normal;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 5px;
    margin-top: 0;
    color: var(--highlight-color);
}

/* Cards & Lists */
.actions {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.action-card {
    border: 1px solid var(--border-color);
    padding: 15px;
    width: 200px;
    text-align: center;
}

.action-card h3 {
    margin-top: 0;
    font-size: 1em;
}

button {
    background: var(--button-bg);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    padding: 5px 10px;
    cursor: pointer;
    font-family: inherit;
    margin-top: 10px;
}

button:hover:not(:disabled) {
    background: var(--button-hover);
    border-color: var(--accent-color);
}

button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.hold-btn {
    position: relative;
    overflow: hidden;
    transition: transform 0.1s ease-out, border-color 0.2s;
}

.hold-btn::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 2px;
    width: var(--hold-progress, 0%);
    background: #ffffff;
    opacity: 0.8;
    transition: width 0.1s linear; /* 增加平滑度 */
}

/* 如果按钮明确是持续模式（sustain），则完全不显示进度条底层元素 */
.hold-btn[data-hold-mode="sustain"]::after {
    display: none;
}

/* 方案一：短按回弹反馈 - 当不处于激活状态时，进度条缓慢缩回 */
.hold-btn:not(.hold-active)::after {
    transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* 方案四：动态缩放阻尼 - 点击时微缩 */
.hold-btn.hold-active {
    border-color: var(--highlight-color);
    transform: scale(0.96);
}

.hold-btn.hold-moving::after {
    background: #4ade80;
}

.slave-list, .card-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 15px;
}

.slave-card {
    border: 1px solid var(--border-color);
    padding: 10px;
    cursor: pointer;
    transition: border-color 0.2s;
    position: relative;
}

.slave-location {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 18px;
    height: 18px;
    padding: 0;
    padding-top: 2.5px; 
    box-sizing: border-box; 
    background: transparent;
    border: 1px solid #555;
    color: #777;
    font-size: 13px;
    line-height: 1;
    font-family: "Courier New", Courier, monospace;
    font-weight: normal;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    border-radius: 0;
    box-shadow: none;
    opacity: 0.9;
}

.slave-card:hover {
    border-color: var(--highlight-color);
}

.slave-card h4 {
    margin: 0 0 5px 0;
    color: var(--highlight-color);
}

.slave-stats {
    font-size: 0.85em;
    line-height: 1.4;
}

.stat-row {
    display: flex;
    justify-content: space-between;
}

/* Modal */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    display: flex;
    justify-content: center;
    align-items: center; /* åž‚ç›´å±…ä¸­ */
    z-index: 100;
}

.modal.hidden {
    display: none;
}

.modal-content {
    background: var(--bg-color);
    border: 1px solid var(--highlight-color);
    padding: 20px;
    /* å¢žåŠ åº•éƒ¨ paddingï¼Œè¯±å¯¼ä¸‹æ‹‰èœå•å‘ä¸‹å±•å¼€ */
    padding-bottom: 100px; 
    width: 500px;
    max-width: 90%;
    max-height: 80vh; /* ç•™å‡ºä¸€äº›åž‚ç›´ç©ºé—´ */
    overflow-y: auto;
    position: relative;
    /* ç§»é™¤ margin: 15% autoï¼Œä½¿ç”¨ flex å±…ä¸­ */
    margin: 0; 
}

.close-modal {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 1.5em;
    cursor: pointer;
}

.wardrobe-controls select {
    background: var(--button-bg);
    color: var(--text-color);
    border: 1px solid var(--border-color);
    padding: 5px;
    margin-bottom: 5px;
    width: 100%;
    color-scheme: dark; /* å¼ºåˆ¶æš—è‰²ä¸»é¢˜ï¼Œé¿å…é—ªçƒ */
}

.wardrobe-controls option {
    background-color: var(--bg-color);
    color: var(--text-color);
}

.wardrobe-controls optgroup {
    background-color: var(--bg-color);
    color: var(--text-color);
    font-weight: bold;
    color-scheme: dark;
}

/* Market Layout */
.market-section {
    margin-bottom: 30px;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 5px;
    margin-bottom: 10px;
}

.section-header h2 {
    border-bottom: none;
    margin: 0;
    padding: 0;
}

.market-divider {
    border: 0;
    border-top: 1px dashed var(--border-color);
    margin: 30px 0;
}

#btn-collapse-slaves {
    margin-top: 0;
    padding: 0;
    border: none;
    background: transparent;
    font-size: 1.2em;
    line-height: 1;
    width: 30px; /* å›ºå®šå®½åº¦ */
    height: 30px; /* å›ºå®šé«˜åº¦ */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

#btn-collapse-slaves:hover {
    color: var(--highlight-color);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 0px;
    background: transparent;
}
/* å…¼å®¹ Firefox */
* {
    scrollbar-width: none;
}

/* Training Room Styles */
.training-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
}

.training-row {
    display: grid;
    grid-template-columns: 180px 90px 55px 1fr 1fr 1fr 1fr 90px 55px;
    gap: 8px;
    align-items: center;
    padding: 8px 0;
    background-color: transparent;
    border-bottom: 1px solid var(--border-color);
    border-radius: 0;
}

.training-spirit {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.spirit-bar-bg {
    width: 100%;
    height: 10px;
    background-color: #222;
    border: 1px solid var(--border-color);
    border-radius: 0;
    overflow: hidden;
}

.spirit-bar-fill {
    height: 100%;
    background-color: #ccc;
    transition: width 0.3s ease, background-color 0.3s ease;
}

.spirit-text {
    font-size: 0.75em;
    color: var(--accent-color);
    text-align: right;
}

.training-name {
    font-weight: normal;
    color: var(--text-color);
}

.training-part {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.training-part label {
    font-size: 0.75em;
    color: var(--accent-color);
}

.training-method-select {
    background-color: #000;
    color: var(--text-color);
    border: 1px solid var(--border-color);
    padding: 2px;
    border-radius: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.9em;
}

.training-method-select:hover {
    border-color: var(--highlight-color);
}

.training-intensity {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.intensity-value {
    font-weight: normal;
    color: var(--text-color);
    font-size: 1em;
}

.training-btn {
    padding: 5px 10px;
    background-color: transparent;
    color: var(--text-color);
    border: 1px solid var(--border-color);
    border-radius: 0;
    cursor: pointer;
    transition: all 0.2s;
    font-family: inherit;
    font-size: 0.9em;
    text-align: center;
}

.training-btn:hover {
    background-color: #222;
    border-color: var(--highlight-color);
    color: var(--highlight-color);
}

.training-control-btn {
    margin-top: 15px;
    padding: 8px 15px;
    background-color: transparent;
    color: var(--text-color);
    border: 1px solid var(--border-color);
    border-radius: 0;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 0.9em;
    font-family: inherit;
    width: 100%;
}

.training-control-btn:hover {
    background-color: #222;
    border-color: var(--highlight-color);
    color: var(--highlight-color);
}

.empty-msg {
    text-align: left;
    color: var(--text-color);
    margin: 10px 0 0;
    padding: 0;
    font-size: 1em;
    font-style: normal;
}

.disabled-btn {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Interrogation Room */
.interrogation-container {
    margin-top: 10px;
}

.interrogation-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
        "name health"
        "status health"
        "actions parts";
    gap: 16px 20px;
    border: 1px solid var(--border-color);
    padding: 16px;
    background-color: rgba(17, 17, 17, 0.6);
}

.interrogation-name {
    grid-area: name;
    font-size: 1.1em;
    color: var(--highlight-color);
}

.interrogation-health {
    grid-area: health;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.interrogation-hint {
    font-size: 0.85em;
    color: var(--accent-color);
}

.interrogation-status {
    grid-area: status;
    color: var(--accent-color);
    font-size: 0.9em;
}

.interrogation-actions {
    grid-area: actions;
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: flex-end;
    align-self: end;
    flex-wrap: wrap;
}

.interrogation-parts {
    grid-area: parts;
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 10px;
}

.interrogation-column {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.interrogation-col-title {
    font-size: 0.9em;
    color: var(--highlight-color);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 4px;
}

.interrogation-btn {
    padding: 6px 8px;
    font-size: 0.85em;
    background-color: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-color);
    cursor: pointer;
    transition: all 0.2s;
    font-family: inherit;
}

.interrogation-btn:hover {
    background-color: #222;
    border-color: var(--highlight-color);
    color: var(--highlight-color);
}

.hold-btn.hold-engaged,
.hold-btn.hold-engaged:hover {
    border-color: #4ade80;
}

.interrogation-footer {
    margin-top: 12px;
}

.interrogation-card {
    border: 1px solid var(--border-color);
    padding: 12px;
    display: flex;
    gap: 12px;
}

.btn-danger {
    background-color: var(--button-bg);
    border-color: #4a2d2d;
    color: var(--text-color);
}

.btn-danger:hover {
    background-color: var(--button-hover);
    border-color: #7a4a4a;
    color: var(--text-color);
}

.locked-wardrobe {
    border: 1px solid var(--border-color);
    padding: 10px;
    color: var(--accent-color);
    font-size: 0.9em;
}

.locked-wardrobe-note {
    margin-bottom: 8px;
    color: var(--accent-color);
    font-size: 0.9em;
}

@media (max-width: 900px) {
    .interrogation-layout {
        grid-template-columns: 1fr;
        grid-template-areas:
            "name"
            "status"
            "health"
            "parts"
            "actions";
    }

    .interrogation-parts {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
}

/* Laboratory Styles */
.lab-locked {
    text-align: center;
    padding: 40px;
    color: var(--accent-color);
}

.lab-locked p {
    margin: 10px 0;
}

.tech-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.tech-card {
    border: 1px solid var(--border-color);
    padding: 15px;
    background-color: rgba(34, 34, 34, 0.5);
    transition: border-color 0.3s, transform 0.2s;
    display: flex;
    flex-direction: column;
}

.tech-card:hover {
    border-color: var(--accent-color);
}

.tech-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 8px;
}

.tech-title {
    font-size: 1.1em;
    color: var(--highlight-color);
    font-weight: bold;
}

.tech-level {
    font-size: 0.9em;
    color: var(--text-color);
}

.tech-description {
    color: var(--text-color);
    margin-bottom: 12px;
    font-size: 0.85em;
    flex-grow: 1;
    line-height: 1.4;
}

.tech-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px;
    background-color: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    font-size: 0.8em;
}

.tech-stat-item {
    display: flex;
    justify-content: space-between;
}

.tech-stat-label {
    color: var(--accent-color);
}

.tech-stat-value {
    color: var(--highlight-color);
}

.tech-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

.progress-bar-bg {
    width: 100%;
    height: 20px;
    background-color: rgba(0, 0, 0, 0.5);
    border: 1px solid var(--border-color);
    position: relative;
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #444, #666);
    transition: width 0.1s linear;
    position: relative;
    overflow: hidden;
}

.progress-bar-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    bottom: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: shimmer 1.5s ease-in-out infinite;
}

@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(300%); }
}

/* ==================== */
/* Club / ä¼šæ‰€æ ·å¼ */
/* ==================== */

.club-locked {
    text-align: center;
    padding: 40px;
    color: #666;
}

.club-locked p {
    margin: 10px 0;
}

.club-stats {
    padding: 15px;
    margin-bottom: 20px;
    background-color: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.club-section {
    margin-bottom: 25px;
    padding: 15px;
    border: 1px solid var(--border-color);
    background-color: rgba(0, 0, 0, 0.2);
    contain: layout style;
    /* GPUåŠ é€Ÿï¼Œé˜²æ­¢é—ªçƒ */
    transform: translateZ(0);
    backface-visibility: hidden;
}

.club-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.club-section-header h3 {
    margin: 0;
    color: var(--highlight-color);
}

.club-section-desc {
    color: #888;
    font-size: 0.9em;
    margin: 0 0 15px 0;
}

.club-slot-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 15px;
    min-height: 60px;
    background-color: inherit;
    contain: layout style;
}

.club-slot-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 15px;
    background-color: var(--button-bg);
    border: 1px solid var(--border-color);
    min-width: 250px;
}

.club-slot-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.club-slot-name {
    font-weight: bold;
    color: var(--highlight-color);
}

.club-slot-stats {
    font-size: 0.85em;
    color: #888;
}

.status-busy {
    color: #F4A460;
}

.status-idle {
    color: #90EE90;
}

.club-assign-controls {
    display: flex;
    gap: 10px;
    align-items: center;
}

.club-assign-controls select {
    padding: 8px;
    background-color: var(--button-bg);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    min-width: 200px;
}

.btn-remove-slot {
    padding: 5px 10px;
    font-size: 0.85em;
}

/* è®¢å•æ ·å¼ */
.club-order-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background-color: inherit;
    contain: layout style;
}

.club-order-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    background-color: var(--button-bg);
    border: 1px solid var(--border-color);
    flex-wrap: wrap;
    gap: 10px;
}

.club-order-card.expired {
    opacity: 0.5;
}

.order-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.order-label {
    font-weight: bold;
    color: #F0E68C;
}

.order-reward {
    color: #90EE90;
    font-size: 0.9em;
}

.order-deadline {
    font-size: 0.85em;
    color: #888;
}

.order-deadline.expired {
    color: #CD5C5C;
}

.order-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

.order-slave-select {
    padding: 6px;
    background-color: var(--button-bg);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    min-width: 150px;
    color-scheme: dark;
}

/* å…¨å±€selectæš—è‰²æ ·å¼ - é˜²æ­¢é—ªç™½ */
select {
    background-color: var(--button-bg);
    color: var(--text-color);
    border: 1px solid var(--border-color);
    color-scheme: dark;
}

select option {
    background-color: var(--bg-color);
    color: var(--text-color);
}

/* æ‹å–ä¼šæ ·å¼ */
.club-auction-select {
    margin: 15px 0;
}

.auction-checkbox, .arena-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 5px 15px 5px 0;
    padding: 5px 10px;
    background-color: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    cursor: pointer;
}

.auction-checkbox:hover, .arena-checkbox:hover {
    background-color: var(--button-hover);
}

.auction-checkbox input, .arena-checkbox input {
    cursor: pointer;
    color-scheme: dark;
    accent-color: var(--highlight-color);
}

/* å…¨å±€inputæš—è‰²æ ·å¼ */
input[type="checkbox"],
input[type="radio"] {
    color-scheme: dark;
    accent-color: var(--highlight-color);
}

.auction-progress, .arena-match {
    padding: 15px;
    background-color: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    margin: 10px 0;
}

.auction-results {
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.2);
    margin-top: 10px;
}

.auction-results h4 {
    margin: 0 0 10px 0;
    color: var(--accent-color);
}

.auction-sold {
    color: #90EE90;
    padding: 3px 0;
}

.auction-unsold {
    color: #CD5C5C;
    padding: 3px 0;
}

/* æ•æ„Ÿåº¦æ”¹é€  */
.modification-section {
    margin-top: 20px;
    padding: 15px;
    border: 1px solid var(--border-color);
    background-color: rgba(0, 0, 0, 0.2);
}

.modification-section h3 {
    margin: 0 0 15px 0;
    font-size: 1.1em;
}

.mod-progress-box,
.mod-select-box {
    padding: 10px;
}

.mod-info {
    margin-bottom: 10px;
    color: #ccc;
}

.mod-progress-bar-container {
    width: 100%;
    height: 20px;
    background-color: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    margin: 10px 0;
}

.mod-progress-bar {
    height: 100%;
    background-color: #4ade80;
    transition: width 0.3s;
}

.mod-time,
.mod-effect {
    margin: 5px 0;
    color: #888;
}

.mod-select-row {
    margin: 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.mod-select-row label {
    min-width: 80px;
}

.mod-select-row select {
    flex: 1;
    padding: 5px;
    background-color: var(--bg-color);
    color: var(--text-color);
    border: 1px solid var(--border-color);
}

#btn-start-modification,
#btn-cancel-modification {
    margin-top: 10px;
    padding: 8px 16px;
}

/* æ“‚å°èµ›æ ·å¼ */
.club-arena-select {
    margin: 15px 0;
}

.club-arena-schedule {
    margin-top: 15px;
}

.club-arena-schedule h4, .club-arena-schedule h5 {
    margin: 10px 0 5px 0;
    color: var(--accent-color);
}

.arena-results {
    background-color: rgba(0, 0, 0, 0.2);
    padding: 10px;
    margin: 10px 0;
}

.arena-result {
    padding: 3px 0;
}

.arena-result .winner {
    color: #F0E68C;
    font-weight: bold;
}

.arena-pending {
    background-color: rgba(0, 0, 0, 0.2);
    padding: 10px;
    margin: 10px 0;
}

.champion {
    font-weight: bold;
}

/* å¯¹é˜µå›¾å¼¹çª—æ ·å¼ - æ ‘çŠ¶ç»“æž„ */
.bracket-section {
    margin-bottom: 20px;
    padding: 15px;
    background-color: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--border-color);
}

.bracket-section h4 {
    margin: 0 0 15px 0;
    font-size: 1.1em;
}

/* æ ‘çŠ¶å¯¹é˜µå›¾å®¹å™¨ */
.bracket-tree {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    overflow-x: auto;
    padding: 10px 0;
}

.bracket-tree-column {
    display: flex;
    flex-direction: column;
    gap: 15px;
    min-width: 120px;
}

.round-header {
    text-align: center;
    color: #888;
    font-size: 0.85em;
    font-weight: bold;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}

.bracket-tree-match {
    background: rgba(30,30,35,0.9);
    border: 1px solid rgba(100,100,100,0.4);
    padding: 8px 12px;
    position: relative;
}

.bracket-tree-match.completed {
    border-color: rgba(100,100,100,0.6);
}

.bracket-tree-match.current {
    border-color: #4ade80;
}

.bracket-tree-match.final {
    border-color: #aaa;
}

.bracket-tree-player {
    padding: 6px 8px;
    font-size: 0.9em;
    text-align: center;
    margin: 2px 0;
    background: rgba(0,0,0,0.2);
}

.bracket-tree-player.winner {
    color: #90EE90;
    font-weight: bold;
}

.bracket-tree-player.champion {
    font-weight: bold;
}

.bracket-tree-vs {
    text-align: center;
    color: #666;
    font-size: 0.75em;
    margin: 4px 0;
}

.bracket-final-section {
    text-align: center;
}

.bracket-final-section .bracket-tree-match {
    display: inline-block;
    min-width: 200px;
}

.champion-banner {
    margin-top: 15px;
    padding: 10px 20px;
    font-weight: bold;
}

/* é€‰æ‰‹çŠ¶æ€åˆ—è¡¨ */
.bracket-status-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.bracket-status-item {
    padding: 6px 12px;
    border: 1px solid var(--border-color);
    background-color: rgba(0, 0, 0, 0.2);
    font-size: 0.9em;
}

.bracket-status-item.no-loss {
    color: #90EE90;
}

.bracket-status-item.one-loss {
    color: #F0E68C;
}

.bracket-status-item.eliminated {
    color: #CD5C5C;
    text-decoration: line-through;
    opacity: 0.7;
}

.arena-player-status {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.2);
}

.player-status-item {
    padding: 3px 8px;
    border: 1px solid var(--border-color);
    font-size: 0.9em;
}

/* ä¿¡æ¯å›¾æ ‡æ ·å¼ */
.info-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1px solid #666;
    font-size: 11px;
    color: #666;
    cursor: help;
    margin-left: 8px;
    font-style: normal;
    font-family: serif;
    position: relative;
}

.info-icon:hover {
    border-color: #999;
    color: #999;
}

/* è‡ªå®šä¹‰tooltip */
.info-icon::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background-color: #1a1a1a;
    color: #ccc;
    padding: 8px 12px;
    font-size: 12px;
    font-family: inherit;
    white-space: normal;
    width: 250px;
    max-width: 300px;
    border: 1px solid #333;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 1000;
    text-align: left;
    line-height: 1.4;
}

.info-icon:hover::after {
    visibility: visible;
    opacity: 1;
}
/* ========== æ“‚å°æ¯”èµ›UI - æžç®€é£Žæ ¼ ========== */

.match-display {
    padding: 15px;
    margin: 10px 0;
    border: 1px solid var(--border-color);
}

.match-info {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    color: var(--accent-color);
    font-size: 0.9em;
}

.match-timer {
    color: var(--text-color);
}

.match-timer.danger {
    color: #c66;
}

.match-versus {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 15px 0;
}

.fighter-info {
    flex: 1;
    font-size: 0.9em;
}

.fighter-info.right {
    text-align: right;
}

.fighter-name {
    color: var(--highlight-color);
    margin-bottom: 2px;
}

.fighter-stats {
    color: var(--accent-color);
    font-size: 0.85em;
    margin-bottom: 2px;
}

.fighter-feet {
    color: var(--text-color);
    font-size: 0.85em;
}

.vs {
    color: var(--accent-color);
    padding: 0 15px;
}

/* åŠ›é‡æ¡ - æžç®€ */
.power-bar-simple {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 15px 0;
}

.bar-end {
    color: var(--accent-color);
    font-size: 0.85em;
    width: 15px;
}

.bar-track {
    flex: 1;
    height: 8px;
    background-color: #222;
    border: 1px solid var(--border-color);
    position: relative;
}

.bar-fill {
    position: absolute;
    top: -2px;
    width: 4px;
    height: 12px;
    background-color: var(--highlight-color);
    transform: translateX(-50%);
}

.foot-lock-msg {
    text-align: center;
    padding: 8px;
    margin: 10px 0;
    border: 1px solid #666;
    color: #999;
}

.btn-small {
    display: block;
    width: 100%;
    padding: 8px;
    margin-top: 10px;
    background-color: var(--button-bg);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    cursor: pointer;
    font-size: 0.9em;
}

.btn-small:hover {
    background-color: var(--button-hover);
}

.btn-bracket-outer {
    margin-top: 15px;
    width: auto;
    display: inline-block;
    padding: 6px 16px;
}

/* ========== å¯¹é˜µå›¾å¼¹çª— - æžç®€é£Žæ ¼ ========== */

.bracket-modal-simple {
    max-width: 450px;
    padding: 15px 20px;
    background-color: var(--bg-color);
    border: 1px solid var(--border-color);
}

.bracket-modal-simple h3 {
    text-align: left;
    margin-bottom: 12px;
    font-size: 1em;
    font-weight: normal;
    color: var(--highlight-color);
    border-bottom: none;
    padding-bottom: 0;
}

.close-bracket-modal {
    cursor: pointer;
    float: right;
    font-size: 18px;
    color: var(--text-muted);
    line-height: 1;
}

.close-bracket-modal:hover {
    color: var(--text-color);
}

.bracket-simple {
    max-height: 350px;
    overflow-y: auto;
}

.bracket-match-row {
    display: flex;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    font-size: 0.85em;
    color: var(--text-muted);
}

.bracket-match-row:last-child {
    border-bottom: none;
}

.bracket-match-row.completed {
    opacity: 0.7;
}

.bracket-match-row.current {
    color: var(--text-color);
    background: none;
    border-left: none;
}

.bracket-match-row.current .match-status {
    color: var(--accent-color);
}

.match-status {
    width: 16px;
    text-align: center;
    margin-right: 6px;
    font-size: 0.8em;
}

.match-bracket {
    color: var(--text-muted);
    width: 45px;
    font-size: 0.8em;
}

.match-players {
    flex: 1;
}

.winner-name {
    color: var(--highlight-color);
    font-weight: normal;
}

.bracket-status-simple {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border-color);
    font-size: 0.85em;
    color: var(--text-muted);
}

.bracket-status-simple .eliminated {
    color: #888;
    text-decoration: line-through;
}

.bracket-status-simple .one-loss {
    color: var(--text-color);
}

.champion-simple {
    margin-top: 12px;
    padding: 8px;
    text-align: left;
    border: 1px solid var(--border-color);
    color: var(--highlight-color);
    font-size: 0.9em;
}

/* æ“‚å°æ¯”èµ›ç»“æžœ */
.arena-results {
    font-size: 0.85em;
    color: var(--text-muted);
}

.arena-result {
    padding: 4px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.arena-result .winner {
    color: var(--highlight-color);
}
