* { margin: 0; padding: 0; box-sizing: border-box; } body { background: #0f0f1a; color: #e0e0e0; font-family: 'Segoe UI', system-ui, sans-serif; } .game-map { width: 100vw; height: 100vh; position: relative; overflow: hidden; } .map-svg { width: 100%; height: 100%; display: block; } .ctx-menu { position: fixed; background: #2a2a3e; border: 1px solid #4a4a6a; border-radius: 4px; z-index: 1000; min-width: 120px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); } .ctx-item { padding: 8px 16px; cursor: pointer; color: #e0e0e0; font-size: 14px; } .ctx-item:hover { background: #5F71C5; color: #fff; } .tooltip { position: fixed; background: #1e1e30; border: 1px solid #5F71C5; border-radius: 1px; padding: 10px 14px; pointer-events: none; z-index: 999; max-width: 220px; } .tooltip-name { color: #5F71C5; font-weight: bold; font-size: 14px; margin-bottom: 4px; } .tooltip-desc { color: #9ca3af; font-size: 12px; line-height: 1.4; } .fight-btn-wrapper { position: absolute; bottom: 40px; left: 40px; z-index: 10; } .fight-btn { background: #dc2626; color: #fff; border: none; border-radius: 1px; padding: 10px 24px; cursor: pointer; font-size: 15px; font-weight: bold; } .fight-btn:hover { background: #b91c1c; } .combat-panel { position: absolute; inset: 0; background: rgba(15, 15, 26, 0.75); z-index: 100; display: flex; flex-direction: column; align-items: center; padding: 16px 60px 24px; } .combat-over-panel { z-index: 101; display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 24px; } .combat-over-title { color: #fbbf24; font-size: 20px; font-weight: bold; } .combat-over-btns { display: flex; gap: 12px; } .combat-over-btn { background: #2e303a; color: #e0e0e0; border: 1px solid #5F71C5; border-radius: 1px; padding: 10px 24px; cursor: pointer; font-size: 15px; } .combat-over-btn:hover { background: #5F71C5; color: #fff; } .combat-over-btn.primary { background: #5F71C5; color: #fff; } .combat-over-btn.primary:hover { background: #4a5cb0; } .combat-top-bar { width: 100%; display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; } .combat-top-left { display: flex; gap: 8px; } .combat-timer { color: #e0e0e0; font-size: 20px; font-weight: bold; letter-spacing: 1px; display: flex; align-items: center; gap: 6px; } .timer-icon { color: #5F71C5; animation: pulse 1s ease-in-out infinite; } .combat-name { font-size: 16px; font-weight: bold; padding: 10px 14px; cursor: pointer; border-radius: 3px; transition: background 0.15s; } .combat-name:hover { background: rgba(255,255,255,0.05); } .combat-name--player { color: #22c55e; } .combat-name--enemy { color: #ef4444; text-align: right; } .combat-name--dead { opacity: 0.4; text-decoration: line-through; } .combat-layout { display: flex; justify-content: center; width: 100%; flex: 1; position: relative; min-height: 0; } .combat-left { position: absolute; left: 0; top: 0; display: flex; flex-direction: column; gap: 16px; width: 240px; } .moving-indicator { color: #5F71C5; font-size: 16px; font-weight: bold; padding: 20px; text-align: center; animation: pulse 1s ease-in-out infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .combat-center { flex: 1; display: flex; flex-direction: column; align-items: center; min-width: 0; height: 100%; padding: 10px 20px 4px; gap: 8px; max-width: min(700px, calc(100vw - 600px)); } .combat-minimap { width: 100%; aspect-ratio: 1; position: relative; flex-shrink: 0; } .combat-minimap .minimap-svg { width: 100%; height: 100%; } .minimap-toolbar { position: absolute; top: 8px; right: 8px; z-index: 10; display: flex; gap: 4px; } .zoom-btn { width: 30px; height: 30px; background: rgba(15, 15, 26, 0.85); color: #e0e0e0; border: 1px solid #5F71C5; border-radius: 3px; cursor: pointer; font-size: 16px; font-weight: bold; display: flex; align-items: center; justify-content: center; line-height: 1; } .zoom-btn:hover { background: #2a2a44; color: #5F71C5; } .minimap-hint { color: #6b7280; font-size: 11px; display: flex; align-items: center; margin-left: 8px; white-space: nowrap; } .combat-right { position: absolute; right: 0; top: 0; width: 320px; display: flex; flex-direction: column; gap: 16px; padding-top: 8px; } .combat-bodies { display: flex; align-items: center; gap: 40px; justify-content: center; } .combat-side { display: flex; flex-direction: column; align-items: center; gap: 10px; } .combat-side .body-image-wrap { width: 140px; } .combat-side-label { font-size: 15px; color: #9ca3af; font-weight: bold; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 2px; } .combat-speed { font-size: 11px; color: #6b7280; font-weight: normal; } .combat-side-hp { width: 100%; max-width: 220px; } .hp-track { height: 16px; background: #2e303a; border-radius: 1px; overflow: hidden; } .hp-fill { height: 100%; border-radius: 1px; transition: width 0.2s; } .player-fill { background: #22c55e; } .enemy-fill { background: #ef4444; } .hp-text { font-size: 13px; color: #6b7280; margin-top: 4px; text-align: center; } .combat-vs { font-size: 18px; color: #6b7280; font-weight: bold; } .minimap-container { width: 100%; aspect-ratio: 1; flex-shrink: 0; border: 2px solid #5F71C5; border-radius: 3px; overflow: hidden; } .minimap-container svg { width: 100%; height: 100%; display: block; } .combat-log { width: 100%; height: 120px; overflow-y: auto; flex-shrink: 0; font-size: 14px; line-height: 1.5; background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; padding: 12px 16px; } .combat-log-title { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; } .combat-log-entries { font-size: 14px; } .combat-log-entry { padding: 3px 0; } .enemy-list { font-size: 14px; } .enemy-entry { padding: 6px 8px; cursor: pointer; border-radius: 1px; } .enemy-entry:hover { background: #1e1e30; } .enemy-name { color: #e0e0e0; font-weight: bold; font-size: 14px; display: block; margin-bottom: 4px; } .log-line { color: #d1d5db; padding: 3px 0; } .attack-btn { width: 100%; background: #ef4444; color: #fff; border: none; border-radius: 1px; padding: 16px; cursor: pointer; font-size: 20px; font-weight: bold; } .attack-btn:hover { background: #dc2626; } .combat-actions { width: 100%; } .tree-root { user-select: none; } .tree-node { display: flex; align-items: center; gap: 6px; padding: 5px 8px; cursor: pointer; border-radius: 1px; font-size: 14px; user-select: none; } .tree-node:hover { background: #1e1e30; } .tree-node.folder { color: #e0e0e0; font-weight: bold; } .tree-node.leaf { color: #fbbf24; padding-left: 8px; font-weight: bold; } .tree-node.leaf:hover { color: #fcd34d; background: #1a1a2e; } .combat-busy .tree-node.leaf { color: #6b7280; pointer-events: none; } .tree-toggle { width: 16px; flex-shrink: 0; font-size: 11px; color: #6b7280; } .tree-bullet { width: 16px; flex-shrink: 0; font-size: 10px; color: #fbbf24; text-align: center; } .tree-label { flex: 1; } .tree-children { margin-left: 16px; } .combat-back { background: none; border: none; color: #6b7280; cursor: pointer; font-size: 13px; padding: 4px; margin-top: 4px; } .combat-back:hover { color: #9ca3af; } .action-queue { position: absolute; left: 0; bottom: 0; width: 240px; border: 1px solid #2a2a3e; border-radius: 4px; background: #12121e; padding: 8px; max-height: 180px; overflow-y: auto; } .queue-title { font-size: 12px; font-weight: bold; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; } .queue-empty { font-size: 12px; color: #4a4a5e; font-style: italic; } .queue-item { display: flex; align-items: center; gap: 6px; padding: 3px 4px; font-size: 13px; border-radius: 2px; } .queue-item.queue-current { background: #1a1a2e; color: #22c55e; } .queue-idx { width: 16px; text-align: right; color: #6b7280; font-size: 11px; } .queue-item.queue-current .queue-idx { color: #22c55e; } .queue-label { color: #e0e0e0; } .queue-cancel { margin-left: auto; cursor: pointer; color: #6b7280; font-size: 12px; line-height: 1; padding: 0 2px; } .queue-cancel:hover { color: #ef4444; } .panel-hint { color: #6b7280; font-size: 14px; text-align: center; padding: 24px 16px; border: 1px dashed #2e303a; border-radius: 1px; background: #16171d; } .skills-panel { background: #16171d; border: 1px solid #2e303a; border-radius: 1px; padding: 16px; } .skills-title { color: #5F71C5; font-size: 15px; font-weight: bold; margin-bottom: 12px; text-align: center; } .skills-grid { display: flex; flex-direction: column; gap: 8px; } .skill-btn { background: #1e1e30; color: #fbbf24; border: 2px solid #fbbf24; border-radius: 1px; padding: 12px 16px; cursor: pointer; font-size: 14px; font-weight: bold; display: flex; justify-content: space-between; align-items: center; transition: background 0.15s; } .skill-btn:hover { background: #2a2a44; border-color: #fcd34d; color: #fcd34d; } .skill-btn.active { background: #2a2a44; border-color: #5F71C5; color: #5F71C5; } .skill-mult { font-size: 12px; color: #6b7280; } .skill-btn:hover .skill-mult { color: #9ca3af; } .skill-btn.active .skill-mult { color: #5F71C5; } .limbs-title { color: #ef4444; font-size: 15px; font-weight: bold; margin-bottom: 12px; text-align: center; } .limbs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .limbs-grid .limb-btn { background: #1e1e30; color: #fbbf24; border: 2px solid #fbbf24; border-radius: 1px; padding: 14px 10px; cursor: pointer; font-size: 14px; font-weight: bold; transition: background 0.15s; } .limbs-grid .limb-btn:hover { background: #2a2a44; border-color: #fcd34d; color: #fcd34d; } .combat-enemy-inv-btn { background: #1e1e30; color: #5F71C5; border: 1px solid #5F71C5; border-radius: 1px; padding: 10px 16px; cursor: pointer; font-size: 13px; font-weight: bold; white-space: nowrap; } .combat-enemy-inv-btn:hover { background: #2a2a44; } .minimap-svg { width: 100%; height: 100%; border-radius: 3px; border: 1px solid #5F71C5; } .minimap-svg.clickable { cursor: crosshair; box-shadow: inset 0 0 20px rgba(74, 158, 255, 0.3); } .minimap-svg.moving { cursor: default; opacity: 0.7; } .move-hint { color: #9ca3af; font-size: 12px; padding: 10px 14px; background: rgba(255,255,255,0.03); border-radius: 1px; margin: 4px 0; line-height: 1.5; } .move-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 8px; } .move-dir-btn { background: #1e1e30; color: #e0e0e0; border: 1px solid #5F71C5; border-radius: 3px; padding: 8px 4px; cursor: pointer; font-size: 13px; font-weight: bold; text-align: center; } .move-dir-btn:hover { background: #2a2a44; color: #5F71C5; } .combat-enemy-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.6); z-index: 200; display: flex; align-items: center; justify-content: center; } .combat-enemy-panel { background: #1a1a2e; border: 1px solid #5F71C5; border-radius: 1px; padding: 24px 32px 32px; min-width: 280px; position: relative; } .combat-enemy-close { position: absolute; top: 10px; right: 14px; background: none; border: none; color: #6b7280; font-size: 20px; cursor: pointer; } .combat-enemy-close:hover { color: #e0e0e0; } .combat-enemy-title { color: #5F71C5; font-size: 18px; font-weight: bold; margin-bottom: 16px; } .combat-enemy-row { display: flex; gap: 8px; padding: 4px 0; font-size: 14px; } .cel-label { color: #6b7280; } .cel-value { color: #e0e0e0; } .cel-divider { height: 1px; background: #2e303a; margin: 12px 0; } .cel-item { color: #9ca3af; font-size: 13px; padding: 3px 0 3px 12px; } .inv-stats-content { padding: 4px 0; } .stat-row { display: flex; justify-content: space-between; padding: 5px 0; font-size: 14px; border-bottom: 1px solid #1f2028; } .stat-label { color: #6b7280; } .stat-value { color: #e0e0e0; font-weight: bold; } .limb-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.7); z-index: 300; display: flex; align-items: center; justify-content: center; } .limb-panel-wrap { display: flex; flex-direction: row; align-items: stretch; gap: 24px; } .limb-panel { background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; padding: 52px 80px; width: 860px; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; } .limb-title { color: #5F71C5; font-size: 22px; font-weight: bold; margin-bottom: 28px; } .limb-speed { font-size: 14px; color: #6b7280; font-weight: normal; } .limb-subtitle { color: #9ca3af; font-size: 16px; margin-bottom: 16px; } .limb-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; } .limb-btn { background: #1e1e30; color: #fbbf24; border: 2px solid #fbbf24; border-radius: 3px; padding: 16px 20px; cursor: pointer; font-size: 16px; font-weight: bold; } .limb-btn:hover { background: #2a2a44; border-color: #fcd34d; color: #fcd34d; } .limb-two-col { display: flex; width: 100%; justify-content: space-between; } .limb-three-col { display: flex; width: 100%; justify-content: space-between; gap: 16px; } .limb-col { display: flex; flex-direction: column; gap: 2px; min-width: 160px; } .limb-col-title { color: #e0e0e0; font-size: 14px; font-weight: bold; padding: 5px 8px; margin-bottom: 2px; user-select: none; } .limb-sel-btn.active { background: #1e2642; color: #5F71C5; } .limb-sel-btn.active .tree-bullet { color: #5F71C5; } .limb-sel-none { color: #6b7280; font-size: 14px; padding: 14px 20px; font-style: italic; } .limb-info-box { background: rgba(15, 15, 26, 0.85); border: 1px solid #5F71C5; border-radius: 1px; padding: 14px 20px; display: flex; flex-direction: column; gap: 6px; min-width: 200px; align-self: flex-start; } .limb-side-btns { display: flex; flex-direction: column; gap: 12px; justify-content: center; } .limb-info-row { display: flex; justify-content: space-between; gap: 24px; } .limb-info-label { color: #6b7280; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; } .limb-info-val { color: #e0e0e0; font-size: 13px; font-weight: bold; } .limb-confirm-btn { background: #22c55e; color: #000; border: none; border-radius: 3px; padding: 14px 40px; cursor: pointer; font-size: 16px; font-weight: bold; } .limb-confirm-btn:hover:not(:disabled) { background: #16a34a; } .limb-confirm-btn:disabled { background: #4b5563; color: #9ca3af; cursor: not-allowed; } .limb-select-panel { width: 600px; min-height: 0; } .limb-select-title { margin-bottom: 16px; font-size: 16px; font-weight: bold; color: #e0e0e0; } .limb-select-skills { margin-bottom: 8px; } .limb-select-grid { display: flex; flex-wrap: wrap; gap: 8px; } .limb-target-btn { text-align: center; cursor: pointer; border: 1px solid #5F71C5; border-radius: 1px; padding: 8px 14px; font-weight: bold; font-size: 13px; background: none; color: #5F71C5; transition: background 0.15s, color 0.15s, border-color 0.15s; } .limb-target-btn:hover { background: #1e2642; color: #5F71C5; } .limb-target-selected { background: #1e2642; border-color: #fbbf24; color: #fbbf24; } .limb-target-selected:hover { background: #1e2642; border-color: #fcd34d; color: #fcd34d; } .limb-confirm-btn { border: 1px solid #22c55e; border-radius: 1px; padding: 10px 24px; cursor: pointer; font-size: 14px; font-weight: bold; background: #22c55e; color: #000; transition: background 0.15s; white-space: nowrap; } .limb-confirm-btn:hover { background: #16a34a; } .limb-cancel-btn { text-align: center; border: 1px solid #2e303a; border-radius: 1px; padding: 10px 0; cursor: pointer; font-size: 14px; font-weight: bold; background: #1e1e30; color: #6b7280; transition: color 0.15s, border-color 0.15s; } .limb-cancel-btn:hover { color: #e0e0e0; border-color: #4b5563; } .return-btn { width: 100%; background: #5F71C5; color: #fff; border: none; border-radius: 1px; padding: 14px; cursor: pointer; font-size: 18px; font-weight: bold; } .return-btn:hover { background: #5F71C5; } .zoom-controls { position: absolute; bottom: 40px; right: 40px; display: flex; flex-direction: column; gap: 4px; z-index: 10; } .zoom-controls button { width: 40px; height: 40px; background: #1e1e30; border: 1px solid #5F71C5; border-radius: 1px; color: #5F71C5; font-size: 22px; cursor: pointer; display: flex; align-items: center; justify-content: center; user-select: none; } .zoom-controls button:hover { background: #2a2a44; } .pass-time-panel { position: absolute; top: 60px; left: 12px; background: #1a1a2e; border: 1px solid #5F71C5; border-radius: 3px; padding: 12px 16px; display: flex; flex-direction: column; gap: 10px; z-index: 20; min-width: 180px; } .pass-time-header { color: #5F71C5; font-size: 14px; font-weight: bold; } .pass-time-slider-row { display: flex; align-items: center; gap: 10px; } .pass-time-slider { flex: 1; accent-color: #5F71C5; cursor: pointer; } .pass-time-label { color: #e0e0e0; font-size: 14px; min-width: 30px; text-align: right; } .pass-time-btns { display: flex; gap: 8px; justify-content: flex-end; } .pass-time-confirm { background: #5F71C5; color: #fff; border: none; border-radius: 1px; padding: 6px 16px; cursor: pointer; font-size: 13px; } .pass-time-confirm:hover { background: #4a5cb0; } .pass-time-cancel { background: none; border: 1px solid #2e303a; color: #6b7280; border-radius: 1px; padding: 6px 16px; cursor: pointer; font-size: 13px; } .pass-time-cancel:hover { color: #e0e0e0; border-color: #5F71C5; } .bottom-left-btns { position: absolute; bottom: 40px; left: 40px; display: flex; gap: 8px; z-index: 10; } .fight-rand-btn { background: #1e1e30; border: 1px solid #ef4444; border-radius: 1px; color: #ef4444; font-size: 14px; padding: 10px 18px; cursor: pointer; user-select: none; font-weight: bold; } .fight-rand-btn:hover { background: #2a1a1a; } .info-panel { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; padding: 16px 20px; text-align: center; z-index: 10; min-width: 260px; } .info-name { color: #5F71C5; font-size: 18px; font-weight: bold; margin-bottom: 6px; } .info-desc { color: #9ca3af; font-size: 14px; line-height: 1.4; margin-bottom: 12px; } .travel-section { border-top: 1px solid #2e303a; margin-top: 12px; padding-top: 12px; } .travel-label { color: #6b7280; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; } .travel-options { display: flex; flex-wrap: wrap; gap: 6px; } .travel-btn { background: #1e2642; color: #5F71C5; border: 1px solid #5F71C5; border-radius: 3px; padding: 6px 14px; cursor: pointer; font-size: 13px; } .travel-btn:hover { background: #2a4a7a; } .go-btn { width: 100%; text-align: center; background: #22c55e; color: #000; border-color: #22c55e; font-weight: bold; } .go-btn:hover { background: #16a34a; border-color: #16a34a; } .characters-section { border-top: 1px solid #2e303a; margin-top: 12px; padding-top: 12px; } .characters-label { color: #6b7280; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; } .character-entry { padding: 6px 0; border-bottom: 1px solid #1f2028; } .character-entry:last-child { border-bottom: none; } .character-name { color: #e0e0e0; font-size: 14px; font-weight: bold; } .character-details { display: flex; gap: 12px; font-size: 12px; color: #6b7280; margin-top: 2px; } .char-money { color: #fbbf24; } .char-inv { color: #9ca3af; } .characters-empty { color: #4b5563; font-size: 13px; font-style: italic; } .close-btn { background: #5F71C5; color: #fff; border: none; border-radius: 3px; padding: 6px 16px; cursor: pointer; font-size: 13px; margin-top: 12px; width: 100%; } .close-btn:hover { background: #5F71C5; } .top-bar { position: absolute; top: 0; left: 0; right: 0; padding: 16px; z-index: 10; display: flex; justify-content: space-between; align-items: center; pointer-events: none; } .top-bar-left { pointer-events: auto; display: flex; gap: 8px; } .icon-btn { background: #1e1e30; border: 1px solid #2e303a; border-radius: 3px; width: 40px; height: 40px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #9ca3af; transition: all 0.15s; } .icon-btn:hover { color: #5F71C5; border-color: #5F71C5; background: #2a2a44; } .icon-btn svg { width: 20px; height: 20px; } .top-bar-right { display: flex; align-items: center; gap: 16px; } .time-display { color: #9ca3af; font-size: 14px; font-weight: bold; background: #1e1e30; border: 1px solid #2e303a; border-radius: 1px; padding: 8px 16px; } .weather-display { color: #5F71C5; font-size: 14px; font-weight: bold; background: #1e1e30; border: 1px solid #5F71C5; border-radius: 1px; padding: 8px 16px; } .inv-btn { background: #1e1e30; color: #5F71C5; border: 1px solid #5F71C5; border-radius: 1px; padding: 10px 20px; cursor: pointer; font-size: 14px; font-weight: bold; } .inv-btn:hover { background: #2a2a44; } .shop-section { border-top: 1px solid #2e303a; margin-top: 12px; padding-top: 12px; } .shop-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 13px; } .shop-item-name { flex: 1; text-align: left; color: #e0e0e0; } .shop-item-price { color: #fbbf24; width: 40px; text-align: right; } .buy-btn { background: #22c55e; color: #000; border: none; border-radius: 1px; padding: 4px 12px; cursor: pointer; font-size: 12px; font-weight: bold; } .buy-btn:disabled { background: #4b5563; color: #9ca3af; cursor: not-allowed; } .buy-btn:hover:not(:disabled) { background: #16a34a; } .inventory-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.6); z-index: 200; display: flex; align-items: center; justify-content: center; } .world-info-panel { background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; padding: 24px 32px 32px; min-width: 280px; position: relative; } .world-info-grid { display: flex; flex-direction: column; gap: 8px; } .info-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid #2e303a; } .info-label { color: #6b7280; font-size: 14px; } .info-value { color: #e0e0e0; font-size: 14px; font-weight: bold; } .inventory-panel { background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; padding: 24px 32px 32px; width: 1200px; max-width: 95vw; min-height: 70vh; max-height: 95vh; position: relative; overflow-y: auto; } .inv-close { position: absolute; top: 10px; right: 14px; background: none; border: none; color: #6b7280; font-size: 20px; cursor: pointer; z-index: 1; } .inv-close:hover { color: #e0e0e0; } .inv-tabs { display: flex; gap: 0; margin-bottom: 20px; border-bottom: 1px solid #2e303a; } .inv-tab { background: none; border: none; color: #6b7280; font-size: 14px; padding: 8px 20px; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; font-weight: bold; } .inv-tab.active { color: #5F71C5; border-bottom-color: #5F71C5; } .inv-tab:hover { color: #9ca3af; } .inv-layout { display: flex; gap: 24px; } .inv-body-col { display: flex; flex-direction: column; align-items: center; gap: 12px; flex-shrink: 0; } .inv-body-col .body-image-wrap { width: 260px; } .inv-right-col { flex: 1; min-width: 0; } .inv-inv-content { padding: 8px 0; } .body-image-wrap { position: relative; width: 140px; } .male-body { width: 100%; height: auto; display: block; } .body-part-overlay { position: absolute; opacity: 0.35; border-radius: 1px; pointer-events: none; } .inv-money { color: #fbbf24; font-size: 22px; font-weight: bold; padding: 8px 12px; background: #1f2028; border: 1px solid #2e303a; border-radius: 3px; text-align: right; margin-top: 8px; } .inv-weight { color: #9ca3af; font-size: 13px; padding: 6px 12px; background: #1f2028; border: 1px solid #2e303a; border-radius: 3px; text-align: right; margin-top: 12px; } .inv-item { padding: 5px 0; font-size: 13px; color: #e0e0e0; border-bottom: 1px solid #1f2028; cursor: default; } .inv-item:hover { color: #5F71C5; } .inv-item:last-child { border-bottom: none; } .inv-empty { color: #4b5563; font-size: 13px; font-style: italic; } .inv-parts-col { padding: 4px 0; } .inv-parts-title { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 10px; } .part-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 13px; } .part-color { width: 8px; height: 8px; border-radius: 1px; flex-shrink: 0; } .part-label { color: #e0e0e0; width: 80px; flex-shrink: 0; } .part-bar-track { flex: 1; height: 8px; background: #2e303a; border-radius: 1px; overflow: hidden; } .part-bar-fill { height: 100%; border-radius: 1px; transition: width 0.2s; } .part-hp { color: #6b7280; font-size: 11px; width: 40px; text-align: right; } .part-injuries { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 0 4px 16px; } .part-injury { font-size: 10px; padding: 1px 6px; border-radius: 1px; background: #2e303a; color: #9ca3af; } .part-injury--cut { color: #fbbf24; background: rgba(251, 191, 36, 0.15); } .part-injury--laceration { color: #f97316; background: rgba(249, 115, 22, 0.15); } .part-injury--stab { color: #ef4444; background: rgba(239, 68, 68, 0.15); } .inv-total-row { display: flex; justify-content: space-between; padding: 8px 0 4px; margin-top: 8px; border-top: 1px solid #2e303a; font-size: 13px; color: #9ca3af; font-weight: bold; } .inv-items-section { margin-top: 16px; border-top: 1px solid #2e303a; padding-top: 12px; } .inv-equip-section { margin-bottom: 8px; } .equip-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 8px 12px; background: #1f2028; border: 1px solid #2e303a; border-radius: 3px; font-size: 13px; } .equip-name { color: #fbbf24; font-weight: bold; } .equip-stat { color: #9ca3af; } .equip-passives { color: #5F71C5; font-style: italic; font-size: 11px; } .equip-unequip-btn, .equip-btn { padding: 2px 8px; font-size: 11px; background: #2e303a; color: #e0e0e0; border: 1px solid #4b5563; border-radius: 3px; cursor: pointer; } .equip-unequip-btn:hover, .equip-btn:hover { background: #4b5563; color: #fff; } .inv-divider { height: 1px; background: #2e303a; margin: 12px 0; } .settings-sidebar { position: absolute; top: 12px; left: 0; bottom: 12px; width: 280px; background: rgba(15, 15, 26, 0.75); border-right: none; border-radius: 0 6px 6px 0; z-index: 200; display: flex; flex-direction: column; animation: slideIn 0.2s ease-out; overflow: hidden; } @keyframes slideIn { from { transform: translateX(-100%); } to { transform: translateX(0); } } .settings-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #2e303a; color: #e0e0e0; font-size: 18px; font-weight: bold; } .settings-close { background: none; border: none; color: #6b7280; font-size: 20px; cursor: pointer; } .settings-close:hover { color: #e0e0e0; } .settings-body { flex: 1; overflow-y: auto; padding: 12px 0; } .settings-section { padding: 12px 20px; border-bottom: 1px solid #1f2028; } .settings-section-title { color: #6b7280; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; } .settings-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 14px; } .settings-label { color: #9ca3af; } .settings-value { color: #e0e0e0; font-weight: bold; } .settings-zoom-group { display: flex; align-items: center; gap: 8px; } .settings-zoom-btn { background: #1e1e30; color: #5F71C5; border: 1px solid #5F71C5; border-radius: 1px; width: 28px; height: 28px; cursor: pointer; font-size: 16px; display: flex; align-items: center; justify-content: center; } .settings-zoom-btn:hover { background: #2a2a44; } .settings-zoom-val { color: #e0e0e0; font-size: 14px; min-width: 40px; text-align: center; } .enter-btn { background: #22c55e; color: #000; border: none; border-radius: 1px; padding: 10px 20px; cursor: pointer; font-size: 14px; font-weight: bold; width: 100%; margin-top: 10px; } .enter-btn:hover { background: #16a34a; } .location-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.6); z-index: 60; display: flex; align-items: center; justify-content: center; } .location-modal { background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; width: 900px; height: 640px; display: flex; flex-direction: column; overflow: hidden; position: relative; } .location-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border-bottom: 1px solid #2e303a; } .location-name { color: #5F71C5; font-size: 22px; font-weight: bold; } .location-close { background: none; border: none; color: #6b7280; font-size: 22px; cursor: pointer; } .location-close:hover { color: #e0e0e0; } .location-body { display: flex; flex: 1; overflow: hidden; } .location-log-col { width: 280px; flex-shrink: 0; display: flex; flex-direction: column; border-right: 1px solid #2e303a; } .location-log-title { padding: 12px 16px; font-size: 14px; font-weight: bold; color: #e0e0e0; border-bottom: 1px solid #2e303a; } .location-log-content { flex: 1; overflow-y: auto; padding: 0 16px 12px; min-height: 0; max-height: 130px; } .location-log-line { color: #9ca3af; font-size: 13px; padding: 3px 0; line-height: 1.4; } .location-main-col { flex: 1; display: flex; flex-direction: row; overflow-y: auto; } .location-section { display: flex; flex-direction: column; flex: 1; min-width: 0; } .location-section + .location-section { border-left: 1px solid #2e303a; } .location-section-header { padding: 12px 16px; font-size: 14px; font-weight: bold; color: #e0e0e0; border-bottom: 1px solid #2e303a; } .location-section-body { flex: 1; padding: 8px 0; overflow-y: auto; } .location-dropdown { display: flex; flex-direction: column; flex: 1; } .location-dropdown + .location-dropdown { border-top: 1px solid #2e303a; } .location-dropdown-header { display: flex; align-items: center; gap: 6px; padding: 12px 16px; cursor: pointer; user-select: none; } .location-dropdown-header:hover { background: #1e1e30; } .location-dropdown-toggle { font-size: 11px; color: #6b7280; width: 14px; } .location-dropdown-label { color: #e0e0e0; font-size: 14px; font-weight: bold; } .location-dropdown-body { padding: 4px 0; } .location-empty { color: #4b5563; font-size: 14px; font-style: italic; text-align: center; padding: 40px 0; } .location-surrounding-desc { color: #9ca3af; font-size: 13px; padding: 14px 16px; line-height: 1.5; border-bottom: 1px solid #1f2028; } .location-surrounding-subtitle { color: #6b7280; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; padding: 14px 16px 6px; } .location-surrounding-connection { color: #5F71C5; font-size: 13px; padding: 10px 16px; border-bottom: 1px solid #1f2028; } .location-surrounding-shop { color: #e0e0e0; font-size: 13px; padding: 10px 16px; border-bottom: 1px solid #1f2028; } .location-surrounding-corpse { color: #6b7280; font-size: 13px; padding: 10px 16px; border-bottom: 1px solid #1f2028; } .location-npc-row { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid #1f2028; } .location-npc-name { color: #e0e0e0; font-size: 15px; font-weight: bold; flex: 1; } .location-action-btn { background: #5F71C5; color: #fff; border: none; border-radius: 1px; padding: 8px 20px; cursor: pointer; font-size: 14px; font-weight: bold; } .location-action-btn:hover { background: #5F71C5; } .action-modal { background: rgba(15, 15, 26, 0.75); border: 2px solid #5F71C5; border-radius: 3px; width: 600px; height: 500px; max-width: 90vw; max-height: 80vh; position: relative; } .action-body { display: flex; align-items: center; justify-content: center; height: 100%; } .action-fight-btn { background: #ef4444; color: #fff; border: none; border-radius: 1px; padding: 16px 48px; cursor: pointer; font-size: 18px; font-weight: bold; } .action-fight-btn:hover { background: #dc2626; } .arm-choice-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1000; display: flex; align-items: center; justify-content: center; } .arm-choice-panel { background: #1a1a2e; border: 2px solid #5F71C5; border-radius: 3px; padding: 24px; display: flex; flex-direction: column; align-items: center; gap: 16px; } .arm-choice-title { color: #e0e0e0; font-size: 18px; font-weight: bold; } .arm-choice-btns { display: flex; gap: 12px; } .arm-choice-btn { background: #2e303a; color: #e0e0e0; border: 1px solid #5F71C5; border-radius: 1px; padding: 12px 24px; cursor: pointer; font-size: 15px; } .arm-choice-btn:hover { background: #5F71C5; color: #fff; } .arm-choice-cancel { background: none; border: none; color: #6b7280; cursor: pointer; font-size: 13px; } .arm-choice-cancel:hover { color: #e0e0e0; }