sotc-foundry-suite/sotc-damage-wizard/styles/sotc-dw.css

585 lines
16 KiB
CSS

/* ================================================================== */
/* sotc-damage-wizard | sotc-dw.css — Style "Résolution de Clash" */
/* ================================================================== */
/* ------------------------------------------------------------------ */
/* Fenêtre FoundryVTT */
/* ------------------------------------------------------------------ */
.sotc-dw-window {
background: #0e1018;
border: 1px solid #2a2a3a;
box-shadow: 0 0 30px rgba(0,0,0,0.9);
font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
color: #c8c0d8;
min-width: 560px;
}
.sotc-dw-window .window-header {
background: #12141e;
border-bottom: 1px solid #2a2a3a;
color: #e0d8f0;
font-family: 'Cinzel', serif;
letter-spacing: 0.06em;
}
.sotc-dw-window .window-title { font-size: 13px; color: #e0d8f0; }
.sotc-dw-window .window-content {
background: transparent;
padding: 0;
overflow: hidden;
}
/* ------------------------------------------------------------------ */
/* Racine */
/* ------------------------------------------------------------------ */
.dw-root {
display: flex;
flex-direction: column;
background: #0e1018;
}
/* ------------------------------------------------------------------ */
/* Zone principale 3 colonnes */
/* ------------------------------------------------------------------ */
.dw-main {
display: grid;
grid-template-columns: 1fr 220px 1fr;
min-height: 200px;
}
/* ------------------------------------------------------------------ */
/* Colonnes */
/* ------------------------------------------------------------------ */
.dw-col {
display: flex;
flex-direction: column;
border-right: 1px solid #1e2030;
}
.dw-col:last-child { border-right: none; }
/* En-têtes colonnes */
.dw-col-header {
display: flex;
align-items: center;
padding: 7px 10px;
border-bottom: 1px solid #1e2030;
}
.dw-header-attacker { background: #181028; border-bottom-color: #4a2a8a; }
.dw-header-resolution { background: #101018; border-bottom-color: #2a2a3a; justify-content: center; }
.dw-header-defender { background: #101828; border-bottom-color: #1a4a7a; }
.dw-header-label {
font-family: 'Cinzel', serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #e0d8f0;
}
/* ------------------------------------------------------------------ */
/* Ligne compétence */
/* ------------------------------------------------------------------ */
.dw-skill-row {
display: flex;
align-items: center;
gap: 6px;
padding: 6px 10px;
border-bottom: 1px solid #1a1a28;
background: rgba(255,255,255,0.02);
min-height: 36px;
}
.dw-skill-none { opacity: 0.5; font-style: italic; }
.dw-skill-icon {
width: 22px;
height: 22px;
border-radius: 2px;
border: 1px solid #3a3a5a;
object-fit: cover;
flex-shrink: 0;
}
.dw-skill-label {
font-size: 11px;
color: #b0a8c8;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* ------------------------------------------------------------------ */
/* Cartes de dés */
/* ------------------------------------------------------------------ */
.dw-die-card {
display: flex;
align-items: center;
gap: 6px;
padding: 5px 10px;
border-bottom: 1px solid #1a1a28;
min-height: 34px;
}
.dw-die-card-preview { opacity: 0.6; }
.dw-die-card-win { background: rgba(40, 80, 40, 0.25); }
.dw-die-card-lose { background: rgba(80, 20, 20, 0.25); }
.dw-die-card-free { background: rgba(60, 40, 80, 0.20); }
/* Tag type de dé */
.dw-die-type-tag {
font-size: 10px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 2px 5px;
border-radius: 2px;
flex-shrink: 0;
}
/* Score */
.dw-die-score {
font-family: 'Cinzel', serif;
font-size: 18px;
font-weight: 700;
min-width: 28px;
text-align: center;
color: #e0d8f0;
}
/* Formule (aperçu avant roll) */
.dw-die-formula-sm {
font-size: 11px;
color: #6a6a8a;
}
/* Verdict sur la carte */
.dw-die-verdict {
font-size: 10px;
font-weight: 700;
letter-spacing: 0.05em;
margin-left: auto;
}
/* Couleurs des verdicts */
.dw-verdict-win, .dw-die-card-defender .dw-die-verdict { color: #60d060; }
.dw-verdict-lose { color: #e04040; }
.dw-verdict-free { color: #a060e0; }
.dw-verdict-def-win { color: #4080e0; }
.dw-verdict-def-lose { color: #e08040; }
/* ------------------------------------------------------------------ */
/* Couleurs par type de dé (tag) */
/* ------------------------------------------------------------------ */
.dw-tag-slash, .dw-tag-counter-slash { background: rgba(180,40,40,0.3); color: #e06060; border: 1px solid #8a2020; }
.dw-tag-pierce,.dw-tag-counter-pierce { background: rgba(180,120,40,0.3); color: #e0a040; border: 1px solid #8a6020; }
.dw-tag-blunt, .dw-tag-counter-blunt { background: rgba(100,60,180,0.3); color: #a080e0; border: 1px solid #503090; }
.dw-tag-block, .dw-tag-counter-block { background: rgba(40,80,180,0.3); color: #6090e0; border: 1px solid #204090; }
.dw-tag-evade, .dw-tag-counter-evade { background: rgba(40,160,100,0.3); color: #50c080; border: 1px solid #206040; }
/* ------------------------------------------------------------------ */
/* Colonne Résolution — matchups */
/* ------------------------------------------------------------------ */
.dw-matchup {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px;
padding: 5px 8px;
border-bottom: 1px solid #1a1a28;
min-height: 34px;
}
.dw-matchup-defender { background: rgba(20,40,60,0.3); }
.dw-matchup-type,
.dw-matchup-vstype {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
padding: 2px 4px;
border-radius: 2px;
flex-shrink: 0;
}
.dw-matchup-score,
.dw-matchup-vsscore {
font-family: 'Cinzel', serif;
font-size: 15px;
font-weight: 700;
color: #e0d8f0;
min-width: 22px;
text-align: center;
}
.dw-matchup-vs {
font-size: 9px;
color: #4a4a6a;
font-weight: 700;
letter-spacing: 0.04em;
}
.dw-matchup-none {
font-size: 13px;
color: #3a3a5a;
}
.dw-matchup-verdict {
width: 100%;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
text-align: center;
padding: 2px 4px;
border-radius: 2px;
margin-top: 2px;
}
/* Fonds de verdict */
.dw-verdict-bg-win { background: rgba(40,100,40,0.4); color: #70e070; border: 1px solid #306030; }
.dw-verdict-bg-lose { background: rgba(100,20,20,0.4); color: #e06060; border: 1px solid #602020; }
.dw-verdict-bg-free { background: rgba(60,30,100,0.4); color: #b080f0; border: 1px solid #402060; }
.dw-verdict-bg-def-win { background: rgba(30,60,120,0.4); color: #70a0f0; border: 1px solid #204080; }
.dw-verdict-bg-def-lose { background: rgba(100,60,20,0.4); color: #e0a060; border: 1px solid #604020; }
.dw-verdict-bg-def-atk-win { background: rgba(80,40,120,0.4); color: #c080f0; border: 1px solid #502080; }
.dw-verdict-bg-def-atk-lose { background: rgba(60,20,20,0.4); color: #c06060; border: 1px solid #401010; }
.dw-resolution-hint {
padding: 20px 10px;
text-align: center;
color: #3a3a5a;
font-size: 11px;
font-style: italic;
}
/* ------------------------------------------------------------------ */
/* Pied de page */
/* ------------------------------------------------------------------ */
.dw-footer {
border-top: 1px solid #1e2030;
background: #0c0e16;
padding: 8px 12px;
display: flex;
flex-direction: column;
gap: 6px;
}
/* Résumé des dégâts */
.dw-summary {
display: flex;
flex-direction: column;
gap: 2px;
font-size: 12px;
padding: 4px 0;
}
.dw-summary-defender { color: #c0a0e0; }
.dw-summary-attacker { color: #e0b080; }
.dw-summary-clash { color: #a080d0; font-size: 11px; }
.dw-sum-hp { color: #e04040; font-weight: 700; }
.dw-sum-stg { color: #4080c0; font-weight: 700; }
/* Boutons */
.dw-footer-btns {
display: flex;
gap: 8px;
}
.dw-foot-btn {
flex: 1;
padding: 9px 12px;
border-radius: 3px;
font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.05em;
cursor: pointer;
border: 1px solid;
transition: background 0.15s, box-shadow 0.15s;
}
.dw-foot-btn:active:not([disabled]) { transform: scale(0.97); }
.dw-foot-btn[disabled] { opacity: 0.4; cursor: default; }
.dw-foot-cancel {
background: #1a1a28;
border-color: #3a3a5a;
color: #8080a0;
}
.dw-foot-cancel:hover { background: #222238; }
.dw-foot-roll {
background: linear-gradient(135deg, #1a301a, #0e1e0e);
border-color: #3a7a3a;
color: #70d070;
}
.dw-foot-roll:hover { background: linear-gradient(135deg, #243424, #162016); box-shadow: 0 0 8px rgba(60,120,60,0.4); }
.dw-foot-apply {
background: linear-gradient(135deg, #3a3010, #221e08);
border-color: #c0a020;
color: #e8d060;
text-shadow: 0 0 6px rgba(232,208,96,0.3);
}
.dw-foot-apply:hover { background: linear-gradient(135deg, #4a4018, #2c2810); box-shadow: 0 0 8px rgba(192,160,32,0.4); }
.dw-foot-apply[disabled] { background: #1a1a1a; border-color: #3a3a3a; color: #5a5a5a; }
/* ------------------------------------------------------------------ */
/* Bouton injecté dans le panneau SBSA */
/* ------------------------------------------------------------------ */
.dw-open-btn-wrapper { padding: 4px 8px; }
.dw-open-btn {
width: 100%;
background: linear-gradient(135deg, #3a0a0a, #1e0505);
border: 1px solid #8b3a3a;
color: #e8c97a;
font-weight: bold;
padding: 6px 8px;
cursor: pointer;
border-radius: 3px;
font-family: 'Cinzel Decorative', 'Cinzel', serif;
font-size: 12px;
letter-spacing: 0.05em;
transition: background 0.15s, box-shadow 0.15s;
}
.dw-open-btn:hover {
background: linear-gradient(135deg, #5a1a1a, #2e0808);
box-shadow: 0 0 8px rgba(139,58,58,0.5);
}
.dw-open-btn:active { transform: scale(0.97); }
/* ------------------------------------------------------------------ */
/* Chat message */
/* ------------------------------------------------------------------ */
.sotc-dw-chat {
background: #0e1018;
border: 1px solid #2a2a3a;
border-radius: 4px;
padding: 8px 10px;
color: #c8c0d8;
font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
}
.sotc-dw-chat h3 {
font-family: 'Cinzel', serif;
color: #e0d8f0;
font-size: 13px;
margin: 0 0 8px 0;
}
.sotc-dw-chat p { margin: 3px 0; font-size: 12px; }
.sotc-dw-chat hr { border: none; border-top: 1px solid #2a2a3a; margin: 6px 0; }
/* ------------------------------------------------------------------ */
/* Classes manquantes / nouvelles (v2 - logique officielle) */
/* ------------------------------------------------------------------ */
/* Stats block dans les colonnes */
.dw-stats-block {
padding: 6px 10px;
border-bottom: 1px solid #1a1a28;
display: flex;
flex-direction: column;
gap: 4px;
}
.dw-stat-row {
display: flex;
align-items: center;
gap: 5px;
font-size: 11px;
}
.dw-stat-inline {
display: flex;
align-items: center;
gap: 4px;
font-size: 11px;
}
.dw-stat-lbl {
font-size: 10px;
color: #6a6a8a;
text-transform: uppercase;
letter-spacing: 0.04em;
min-width: 24px;
}
.dw-stat-val {
font-size: 11px;
color: #b0a8c8;
min-width: 36px;
text-align: right;
}
.dw-bar-wrap {
flex: 1;
height: 5px;
background: rgba(0,0,0,0.4);
border-radius: 3px;
overflow: hidden;
border: 1px solid #2a2a3a;
}
.dw-bar { height: 100%; border-radius: 3px; }
.dw-bar-hp { background: linear-gradient(90deg, #7a1a1a, #c04040); }
.dw-bar-stg { background: linear-gradient(90deg, #1a3a7a, #3a6abf); }
/* Image dé dans les cartes */
.dw-die-img {
width: 20px;
height: 20px;
border: none;
object-fit: contain;
flex-shrink: 0;
}
/* Formule petite */
.dw-die-formula-sm {
font-size: 10px;
color: #5a5a7a;
margin-left: auto;
white-space: nowrap;
}
/* ── Matchup colonne centre v2 ── */
.dw-matchup {
padding: 6px 8px;
border-bottom: 1px solid #1a1a28;
display: flex;
flex-direction: column;
gap: 3px;
}
.dw-matchup-atk { background: rgba(30,20,50,0.3); }
.dw-matchup-def { background: rgba(20,30,50,0.3); }
.dw-matchup-main {
display: flex;
align-items: center;
gap: 5px;
flex-wrap: wrap;
}
.dw-matchup-tag {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
padding: 2px 4px;
border-radius: 2px;
flex-shrink: 0;
}
.dw-matchup-score {
font-family: 'Cinzel', serif;
font-size: 16px;
font-weight: 700;
color: #e0d8f0;
min-width: 22px;
text-align: center;
}
.dw-matchup-vs {
font-size: 12px;
color: #6a6a8a;
}
.dw-matchup-unopposed {
font-size: 10px;
color: #4a4a6a;
font-style: italic;
}
/* Verdict chip */
.dw-matchup-verdict {
font-size: 10px;
font-weight: 700;
letter-spacing: 0.05em;
text-align: center;
padding: 2px 6px;
border-radius: 2px;
width: 100%;
}
/* Effets */
.dw-matchup-effects {
display: flex;
flex-wrap: wrap;
gap: 3px;
}
.dw-effect-tag {
font-size: 9px;
background: rgba(255,255,255,0.04);
border: 1px solid #2a2a3a;
border-radius: 2px;
padding: 1px 4px;
color: #8080a0;
}
/* ── Chips de verdict ── */
.dw-verdict-chip-off-win { background: rgba(40,100,40,0.4); color: #70e070; border: 1px solid #306030; }
.dw-verdict-chip-off-lose { background: rgba(80,20,20,0.4); color: #e06060; border: 1px solid #601818; }
.dw-verdict-chip-tie { background: rgba(60,60,30,0.4); color: #c0c060; border: 1px solid #606018; }
.dw-verdict-chip-off-win-vs-block { background: rgba(40,80,40,0.4); color: #60d060; border: 1px solid #204020; }
.dw-verdict-chip-off-lose-vs-block { background: rgba(40,60,120,0.4); color: #70a0f0; border: 1px solid #204080; }
.dw-verdict-chip-off-win-vs-evade { background: rgba(40,80,40,0.4); color: #60d060; border: 1px solid #204020; }
.dw-verdict-chip-off-lose-vs-evade { background: rgba(60,30,100,0.4); color: #c080f0; border: 1px solid #402070; }
.dw-verdict-chip-block-win-vs-off { background: rgba(40,60,120,0.4); color: #70a0f0; border: 1px solid #204080; }
.dw-verdict-chip-block-lose-vs-off { background: rgba(80,40,20,0.4); color: #e0a060; border: 1px solid #604020; }
.dw-verdict-chip-block-win-vs-def { background: rgba(40,60,120,0.4); color: #70a0f0; border: 1px solid #204080; }
.dw-verdict-chip-block-lose-vs-def { background: rgba(60,30,20,0.4); color: #c08060; border: 1px solid #402010; }
.dw-verdict-chip-evade-win-vs-off { background: rgba(60,30,100,0.4); color: #c080f0; border: 1px solid #402070; }
.dw-verdict-chip-evade-lose-vs-off { background: rgba(80,40,20,0.4); color: #e0a060; border: 1px solid #604020; }
.dw-verdict-chip-evade-win-vs-def { background: rgba(30,80,50,0.4); color: #60d090; border: 1px solid #204030; }
.dw-verdict-chip-evade-lose-vs-def { background: rgba(60,30,20,0.4); color: #c08060; border: 1px solid #402010; }
.dw-verdict-chip-unopposed-off { background: rgba(40,100,40,0.4); color: #70e070; border: 1px solid #306030; }
.dw-verdict-chip-unopposed-saved { background: rgba(40,60,100,0.4); color: #70a8f0; border: 1px solid #204060; }
.dw-verdict-chip-unopposed-counter-noop { background: rgba(30,30,30,0.4); color: #606080; border: 1px solid #303030; }
/* ── Fonds de carte de dé par verdict ── */
.dw-verdict-bg-off-win,
.dw-verdict-bg-unopposed-off { background: rgba(40,80,40,0.15); }
.dw-verdict-bg-off-lose { background: rgba(80,20,20,0.15); }
.dw-verdict-bg-tie { background: rgba(60,60,20,0.10); }
.dw-verdict-bg-unopposed-saved { background: rgba(30,50,100,0.15); }
.dw-verdict-bg-evade-win-vs-off { background: rgba(60,30,100,0.15); }
.dw-verdict-bg-block-win-vs-off,
.dw-verdict-bg-block-win-vs-def { background: rgba(30,60,120,0.15); }
/* ── Résumé footer ── */
.dw-summary {
display: flex;
flex-direction: column;
gap: 3px;
font-size: 12px;
padding: 4px 0;
}
.dw-summary-line { color: #b0a8c8; }
.dw-pe-line { color: #c080f0; }
.dw-saved-line { color: #70a8f0; }
.dw-sum-hp { color: #e04040; font-weight: 700; margin: 0 4px; }
.dw-sum-stg { color: #4080c0; font-weight: 700; margin: 0 4px; }
.dw-sum-gain { color: #60d090; font-weight: 700; margin: 0 4px; }