* { margin: 0; padding: 0; box-sizing: border-box; } :root { --bg: #1a1a2e; --panel: #16213e; --accent: #0f3460; --text: #e0e0e0; --text-dim: #888; --green: #00c853; --red: #ff1744; --yellow: #ffd600; --blue: #2979ff; --orange: #ff6d00; --hp-high: #00c853; --hp-mid: #ffd600; --hp-low: #ff1744; } body { font-family: 'Segoe UI', -apple-system, sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; padding-bottom: 40px; } #connection-bar { position: sticky; top: 0; z-index: 100; background: #0d1117; padding: 6px 16px; text-align: center; font-size: 13px; border-bottom: 2px solid var(--accent); } #connection-bar.connected { border-bottom-color: var(--green); } #connection-bar.disconnected { border-bottom-color: var(--red); } #connection-status { font-weight: 600; } .container { max-width: 600px; margin: 0 auto; padding: 16px; } h1 { text-align: center; font-size: 22px; letter-spacing: 4px; margin: 16px 0 24px; color: var(--yellow); text-shadow: 0 0 20px rgba(255,214,0,0.3); } .panel { background: var(--panel); border-radius: 12px; padding: 16px; margin-bottom: 16px; border: 1px solid rgba(255,255,255,0.05); } .panel h2 { font-size: 14px; text-transform: uppercase; letter-spacing: 2px; color: var(--text-dim); margin-bottom: 12px; padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,0.08); } /* Boss Info */ .boss-info { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; } .boss-name { font-size: 20px; font-weight: 700; } .raid-state { font-size: 13px; padding: 4px 12px; border-radius: 20px; background: var(--accent); text-transform: uppercase; letter-spacing: 1px; } .raid-state.battle { background: var(--red); color: #fff; } .raid-state.appear { background: var(--orange); color: #fff; } .raid-state.defeat { background: var(--blue); color: #fff; } .raid-state.result { background: var(--green); color: #fff; } /* Player State */ .player-hp { background: var(--blue) !important; } /* HP Bar */ .hp-bar-container { margin-bottom: 8px; } .hp-bar-bg { height: 28px; background: #0d1117; border-radius: 6px; overflow: hidden; position: relative; } .hp-bar-fill { height: 100%; width: 100%; background: var(--hp-high); border-radius: 6px; transition: width 0.3s ease, background-color 0.3s ease; } .hp-text { text-align: center; font-size: 13px; color: var(--text-dim); margin-top: 4px; } .stat-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 14px; } .stat-label { color: var(--text-dim); } .stat-value { font-weight: 600; } /* Buttons */ .btn { border: none; border-radius: 8px; padding: 8px 16px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.15s ease; color: #fff; outline: none; } .btn:active { transform: scale(0.95); } .btn-large { padding: 12px 24px; font-size: 16px; flex: 1; } .btn-green { background: var(--green); } .btn-green:hover { background: #00e676; } .btn-red { background: var(--red); } .btn-red:hover { background: #ff5252; } .btn-yellow { background: var(--yellow); color: #1a1a2e; } .btn-yellow:hover { background: #ffea00; } .btn-blue { background: var(--blue); } .btn-blue:hover { background: #448aff; } .btn-orange { background: var(--orange); } .btn-orange:hover { background: #ff9100; } .btn-outline { background: transparent; border: 1px solid var(--accent); color: var(--text); } .btn-outline:hover { background: var(--accent); } .btn-kill { width: 100%; font-size: 18px; letter-spacing: 2px; text-shadow: 0 0 10px rgba(255,23,68,0.5); } .btn-row { display: flex; gap: 8px; } .btn-grid { display: flex; flex-wrap: wrap; gap: 8px; } .btn-grid .btn { flex: 1; min-width: 70px; } /* Inputs */ .input-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .input-row label { font-size: 13px; color: var(--text-dim); white-space: nowrap; min-width: 100px; } .input-row input[type="number"] { background: #0d1117; border: 1px solid var(--accent); color: var(--text); border-radius: 6px; padding: 6px 10px; width: 80px; font-size: 14px; outline: none; } .input-row input[type="number"]:focus { border-color: var(--blue); } .input-row input[type="range"] { flex: 1; accent-color: var(--blue); } .input-row span { font-size: 13px; min-width: 40px; text-align: right; color: var(--text-dim); } /* Pause Button State */ .btn-paused { background: var(--red) !important; color: #fff !important; animation: pulse 1s infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } } /* Hit Log */ .log-container { background: #0d1117; border-radius: 6px; padding: 8px; max-height: 200px; overflow-y: auto; font-family: 'Consolas', 'Courier New', monospace; font-size: 12px; line-height: 1.6; } .log-container::-webkit-scrollbar { width: 4px; } .log-container::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 4px; } .log-entry-crit { color: var(--red); font-weight: 700; } .log-entry-normal { color: var(--text-dim); } .log-entry-phase { color: var(--orange); font-weight: 600; } .log-entry-system { color: var(--blue); }