Files

466 lines
9.7 KiB
Plaintext

.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;
}
}