.mgne-chat-card { .panel-shell(); .ornate-frame(); display: flex; flex-direction: column; gap: 0.5rem; padding: 0.62rem 0.68rem; color: @iron; background: radial-gradient(circle at top right, fade(@verdigris, 10%), transparent 22%), linear-gradient(135deg, fade(@ember, 10%), transparent 38%), linear-gradient(180deg, fade(@bone, 4%), transparent 24%), linear-gradient(180deg, fade(@bg-char, 22%), fade(@bg-void, 18%)), url("@{page-bg-url}") right bottom / cover no-repeat, @bg-panel; } .mgne-chat-card .chat-card-header { display: flex; gap: 0.55rem; align-items: center; padding-bottom: 0.4rem; border-bottom: 1px solid fade(@gold-acid, 14%); } .mgne-chat-card .chat-card-header img { width: 34px; height: 34px; object-fit: cover; border-radius: 50%; border: 1px solid fade(@gold-acid, 32%); box-shadow: 0 0 0 2px fade(@parchment, 5%); flex-shrink: 0; } .mgne-chat-card .chat-header-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.05rem; } .mgne-chat-card h3 { .caps-heading(); margin: 0; color: darken(@label-ink, 22%); font-size: 0.78rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mgne-chat-card .chat-actor { margin: 0; color: darken(@label-ink, 12%); font-size: 0.68rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mgne-chat-card .chat-mode-badge { .caps-heading(); font-size: 0.6rem; letter-spacing: 0.1em; padding: 0.15rem 0.45rem; border-radius: 999px; background: fade(@bg-void, 70%); border: 1px solid fade(@bone, 22%); color: @ash; flex-shrink: 0; line-height: 1.3; } .mgne-chat-card .chat-card-body { display: flex; flex-direction: column; gap: 0.4rem; } // Subtitle line .mgne-chat-card .chat-subtitle { margin: 0; color: darken(@label-soft, 10%); font-size: 0.72rem; letter-spacing: 0.03em; } // Formula display .mgne-chat-card .chat-formula-wrap { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.5rem; background: fade(@bg-void, 60%); border-radius: @radius-sm; border: 1px solid fade(@bone, 10%); } .mgne-chat-card .chat-formula-label { .caps-heading(); font-size: 0.6rem; color: @gold-acid; letter-spacing: 0.08em; flex-shrink: 0; } .mgne-chat-card .chat-formula-code { font-family: "Courier New", monospace; font-size: 0.76rem; color: @parchment; background: fade(@bg-void, 50%); padding: 0.08rem 0.45rem; border-radius: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } // Outcome display (check results, morale) .mgne-chat-card .chat-outcome { display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.55rem; border-radius: @radius-sm; background: fade(@bg-void, 68%); border-left: 3px solid fade(@ember-bright, 60%); &.has-tooltip { cursor: pointer; user-select: none; &:hover { filter: brightness(1.1); } } .chat-outcome-icon { flex-shrink: 0; font-size: 0.85rem; width: 1.2rem; text-align: center; opacity: 0.8; } .chat-outcome-label { .caps-heading(); flex: 1; font-size: 0.72rem; letter-spacing: 0.06em; color: lighten(@ember-bright, 12%); } .chat-outcome-total { font-family: @font-display; font-size: 1.18rem; font-weight: 700; color: @parchment; line-height: 1; } .chat-tooltip-icon { opacity: 0.5; font-size: 0.7rem; margin-left: 0.15rem; flex-shrink: 0; transition: opacity 0.15s; } &.tooltip-open .chat-tooltip-icon { opacity: 1; } } // Damage total display .mgne-chat-card .chat-damage-total { display: flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.6rem; border-radius: @radius-sm; background: fade(@bg-void, 68%); border-left: 3px solid fade(@ember-bright, 60%); &.has-tooltip { cursor: pointer; user-select: none; &:hover { filter: brightness(1.1); } } .chat-damage-label { .caps-heading(); font-size: 0.65rem; letter-spacing: 0.06em; color: @ash; flex: 1; } .chat-damage-number { font-family: @font-display; font-size: 1.3rem; font-weight: 700; color: lighten(@ember-bright, 8%); line-height: 1; } .chat-tooltip-icon { opacity: 0.5; font-size: 0.7rem; flex-shrink: 0; transition: opacity 0.15s; } &.tooltip-open .chat-tooltip-icon { opacity: 1; } } // Outcome classes — success/crit/steady color .mgne-chat-card.outcome-critical-success, .mgne-chat-card.outcome-success, .mgne-chat-card.outcome-steady { .chat-outcome { border-left-color: fade(@verdigris, 75%); .chat-outcome-label { color: lighten(@verdigris, 28%); } .chat-outcome-icon { color: lighten(@verdigris, 30%); } } .chat-damage-total { border-left-color: fade(@verdigris, 60%); .chat-damage-number { color: lighten(@verdigris, 25%); } } } // Outcome classes — failure/broken/fumble color .mgne-chat-card.outcome-failure, .mgne-chat-card.outcome-broken, .mgne-chat-card.outcome-fumble { .chat-outcome { border-left-color: fade(@ember-bright, 75%); .chat-outcome-label { color: lighten(@ember-bright, 18%); } .chat-outcome-icon { color: lighten(@blood, 10%); } } .chat-damage-total { border-left-color: fade(@ember-bright, 60%); } } // Dice tooltip reveal panel .mgne-chat-card .chat-dice-tooltip { padding: 0.35rem 0.5rem; background: fade(@bg-void, 85%); border: 1px solid fade(@bone, 18%); border-radius: @radius-sm; .dice-roll { display: flex; flex-direction: column; gap: 0.15rem; } .dice-formula { font-family: "Courier New", monospace; font-size: 0.7rem; color: fade(@parchment, 72%); } .dice-tooltip { font-size: 0.75rem; } .dice { margin: 0.1rem 0; } .die-icon, .die-face { color: @gold-acid; font-size: 0.78rem; } .part-formula { color: fade(@parchment, 78%); font-size: 0.7rem; } .part-total { color: @parchment; font-weight: 600; } .max { color: lighten(@verdigris, 20%); } .min { color: lighten(@ember-bright, 10%); } .dice-total { font-family: @font-display; font-size: 1rem; color: @gold-acid; text-align: center; border-top: 1px solid fade(@bone, 16%); padding-top: 0.2rem; margin-top: 0.1rem; } } // Special text .mgne-chat-card .chat-special-wrap { display: flex; align-items: flex-start; gap: 0.4rem; padding: 0.35rem 0.5rem; border-left: 2px solid fade(@ember-bright, 40%); background: fade(@bg-input, 80%); border-radius: @radius-sm; } .mgne-chat-card .chat-special-icon { flex-shrink: 0; font-size: 0.7rem; color: @ember-bright; margin-top: 0.08rem; } .mgne-chat-card .chat-special-text { color: @parchment; font-size: 0.72rem; line-height: 1.4; } // Omen reminders .mgne-chat-card .chat-omen-remind, .mgne-chat-card .chat-omen-used { margin: 0; padding: 0.35rem 0.5rem; border-radius: @radius-sm; font-size: 0.7rem; display: flex; align-items: center; gap: 0.35rem; } .mgne-chat-card .chat-omen-remind { background: fade(@gold-acid, 18%); border: 1px solid fade(@gold-acid, 35%); color: lighten(@gold-acid, 18%); i { color: @gold-acid; font-size: 0.7rem; } } .mgne-chat-card .chat-omen-neutralize { background: fade(@ember-bright, 18%); border-color: fade(@ember-bright, 35%); color: lighten(@ember-bright, 15%); i { color: @ember-bright; } } .mgne-chat-card .chat-omen-used { background: fade(@verdigris, 18%); border: 1px solid fade(@verdigris, 32%); color: lighten(@verdigris, 32%); i { color: lighten(@verdigris, 35%); font-size: 0.7rem; } } // Card action buttons container .mgne-chat-card .chat-card-actions { margin-top: 0.1rem; } // Roll damage button .mgne-roll-damage-btn { display: flex; align-items: center; justify-content: center; gap: 0.4rem; width: 100%; padding: 0.38rem 0.7rem; border: 1px solid @ember-bright; border-radius: @radius-sm; background: @ember; color: #f8ede0; font-family: @font-display; font-size: 0.76rem; font-weight: 600; letter-spacing: 0.06em; cursor: pointer; transition: background 0.15s, border-color 0.15s; .dmg-formula { color: #fff5e8; font-size: 0.73rem; font-weight: 700; } &:hover { background: lighten(@ember, 8%); border-color: lighten(@ember-bright, 12%); color: #fff; } &.is-critical { border: 1px solid @gold-acid; background: darken(@gold-acid, 10%); color: #fff5d0; font-weight: 700; .dmg-formula { color: #fff; } &:hover { background: @gold-acid; color: #fff; } } } // Omen reroll button .mgne-omen-reroll-btn { display: flex; align-items: center; justify-content: center; gap: 0.4rem; width: 100%; padding: 0.38rem 0.7rem; border: 1px solid @gold-acid; border-radius: @radius-sm; background: darken(@gold-acid, 15%); color: #fff5d0; font-family: @font-display; font-size: 0.76rem; font-weight: 600; letter-spacing: 0.06em; cursor: pointer; transition: background 0.15s, border-color 0.15s; &:hover { background: lighten(darken(@gold-acid, 15%), 8%); border-color: lighten(@gold-acid, 12%); color: #fff; } } // Apply damage select .chat-apply-actions { margin-top: 0.25rem; } .mgne-apply-damage-select { width: 100%; padding: 0.35rem 0.6rem; border: 1px solid @ember-bright; border-radius: @radius-sm; background: @bg-char; color: @bone; font-family: @font-body; font-size: 0.78rem; font-weight: 600; cursor: pointer; transition: border-color 0.15s, background 0.15s; option { background: @bg-char; color: @bone; } &:hover { border-color: lighten(@ember-bright, 12%); background: rgba(183, 70, 31, 0.18); } &:focus { outline: none; border-color: @ember-bright; } }