Files
fvtt-celestopol/styles/character.less

1037 lines
27 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@import "mixins";
// ─── Character sheet specifics ───────────────────────────────────────────────
.fvtt-celestopol.character {
// ── header-stats-row : initiative + attributs sur une seule ligne ──────────
.header-stats-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 4px;
align-items: flex-end;
}
.header-stat {
display: flex;
flex-direction: column;
align-items: center;
background: rgba(0,0,0,0.25);
border: 1px solid var(--cel-orange);
border-radius: 4px;
padding: 3px 8px;
min-width: 54px;
label {
font-size: 0.58em;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--cel-orange-light);
white-space: nowrap;
}
.stat-value, .attr-display {
color: var(--cel-orange);
font-family: var(--cel-font-title);
font-size: 1.05em;
font-weight: bold;
line-height: 1.2;
}
.attr-sep { color: rgba(196,154,26,0.5); margin: 0 1px; font-size: 0.85em; }
input.attr-val, input.attr-max {
width: 24px;
text-align: center;
background: transparent;
border: none;
border-bottom: 1px solid var(--cel-orange-light);
color: var(--cel-orange);
font-family: var(--cel-font-title);
font-size: 1em;
font-weight: bold;
}
}
// Badge malus armure équipée dans le header
.armor-malus-badge {
border-color: #b84a2e;
.armor-malus-value {
color: #e06040;
font-family: var(--cel-font-title);
font-size: 1.05em;
font-weight: bold;
}
label { color: #e06040; opacity: 0.8; }
}
// Stats × Domaines grid
.stats-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
padding: 8px 0;
.stat-block {
border: 1px solid var(--cel-border);
border-radius: 4px;
overflow: hidden;
.stat-header {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 8px;
border-bottom: 1px solid rgba(196,154,26,0.4);
.stat-name {
font-family: var(--cel-font-title);
font-weight: bold;
font-size: 1em;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.stat-res {
display: flex;
align-items: center;
gap: 4px;
font-size: 0.8em;
label { color: var(--cel-orange-light); }
input[type="number"] { width: 30px; .cel-input-std(); }
.stat-res-value {
font-size: 1.3em;
font-weight: bold;
min-width: 24px;
text-align: center;
}
}
.stat-res-btn {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 3px 8px 3px 6px;
border: 1px solid var(--cel-orange);
border-radius: 4px;
background: rgba(224, 123, 0, 0.08);
font-size: 0.78em;
cursor: default;
.res-die-icon {
font-size: 1.1em;
color: var(--cel-orange);
opacity: 0.85;
}
.res-label {
color: var(--cel-orange-light);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.res-value {
font-size: 1.3em;
font-weight: bold;
color: var(--cel-orange);
min-width: 18px;
text-align: center;
}
&.rollable {
cursor: pointer;
transition: background 0.15s, border-color 0.15s;
&:hover {
background: rgba(224, 123, 0, 0.22);
border-color: var(--cel-orange-light);
}
}
}
}
.skills-list {
background: var(--cel-cream);
.skill-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 3px 8px;
border-bottom: 1px solid rgba(122,92,32,0.18);
font-size: 0.85em;
// Alternating cream-dark rows for legibility
&:nth-child(even) { background: var(--cel-cream-dark); }
&.rollable { .cel-rollable(); }
.skill-name { flex: 1; }
.skill-value {
font-weight: bold;
min-width: 24px;
text-align: center;
color: var(--cel-orange);
}
.skill-value-input {
width: 36px;
.cel-input-std();
text-align: center;
}
// Points de niveau Art Déco (remplacent les cases à cocher)
.skill-checkboxes-container {
.skill-checkboxes {
display: flex;
gap: 3px;
align-items: center;
}
.skill-level-dot {
display: inline-block;
width: 13px;
height: 13px;
border: 1px solid var(--cel-border);
border-radius: 1px;
background: rgba(255,255,255,0.3);
vertical-align: middle;
position: relative;
transition: background 0.1s, border-color 0.1s;
&.filled {
background: var(--cel-orange);
border-color: var(--cel-border);
}
&.res-threshold {
border: 2px solid var(--cel-orange);
background: rgba(224, 123, 0, 0.2);
// Petit indicateur orange sous le dot
&::after {
content: '';
position: absolute;
bottom: -5px;
left: 50%;
transform: translateX(-50%);
width: 4px;
height: 4px;
background: var(--cel-orange);
border-radius: 50%;
}
&.filled {
background: var(--cel-orange);
border: 2px solid #fff;
box-shadow: 0 0 0 1.5px var(--cel-orange);
&::after {
background: var(--cel-orange);
}
}
}
&[data-action] { cursor: pointer; }
}
}
}
}
}
}
// Items (anomalies, aspects, attributs)
.items-section {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px 0;
.items-group {
.items-header {
.cel-section-header();
display: flex;
justify-content: space-between;
align-items: center;
a { color: var(--cel-orange); cursor: pointer; }
}
.item-row { .cel-item-row(); }
}
}
// Tracks (Blessures, Destin, Spleen)
.track-section {
border: 1px solid var(--cel-border);
border-radius: 4px;
margin-bottom: 12px;
overflow: hidden;
.track-header {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 8px;
border-bottom: 1px solid rgba(196,154,26,0.4);
.track-title {
font-family: var(--cel-font-title);
font-weight: bold;
text-transform: uppercase;
font-size: 1.1em;
letter-spacing: 0.04em;
display: flex;
align-items: center;
gap: 5px;
}
.track-help {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border-radius: 50%;
border: 1px solid currentColor;
font-size: 0.65em;
font-family: var(--cel-font-body);
font-weight: bold;
text-transform: none;
letter-spacing: 0;
cursor: help;
opacity: 0.7;
transition: opacity 0.15s;
flex-shrink: 0;
&:hover { opacity: 1; }
}
}
.track-boxes {
display: flex;
padding: 8px;
gap: 8px;
flex-wrap: wrap;
background: var(--cel-cream);
.track-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
width: 22px;
min-height: 22px;
border: 2px solid var(--cel-border);
border-radius: 2px;
background: rgba(255,255,255,0.45);
transition: background 0.1s, border-color 0.1s;
&.filled {
background: var(--cel-orange);
border-color: var(--cel-orange);
}
&[data-action] { cursor: pointer; }
.box-label {
font-size: 0.6em;
color: var(--cel-border);
line-height: 1;
}
&.filled .box-label { color: rgba(30,10,0,0.65); }
}
}
.track-level {
display: flex;
align-items: center;
gap: 6px;
padding: 4px 8px;
background: rgba(139,115,85,0.1);
font-size: 0.85em;
label { color: var(--cel-border); }
input[type="number"] { width: 40px; .cel-input-std(); }
}
}
.factions-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 210px;
gap: 12px;
align-items: start;
}
.faction-aspect-summary {
grid-column: 1 / -1;
border: 1px solid rgba(122,92,32,0.35);
background: linear-gradient(180deg, rgba(255,248,232,0.95), rgba(240,229,209,0.9));
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.35);
padding: 7px 9px;
.faction-aspect-summary-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 6px;
margin-bottom: 6px;
}
.faction-aspect-summary-title {
color: var(--cel-green);
font-family: var(--cel-font-title);
font-size: 1em;
letter-spacing: 0.04em;
text-transform: uppercase;
line-height: 1.05;
}
.faction-aspect-manage {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--cel-orange);
cursor: pointer;
text-decoration: none;
font-size: 0.84em;
white-space: nowrap;
}
.faction-aspect-points {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
margin-bottom: 6px;
}
.faction-aspect-point {
min-width: 0;
padding: 4px 6px;
border: 1px solid rgba(122,92,32,0.25);
background: rgba(255,255,255,0.45);
border-radius: 4px;
.label {
display: block;
font-size: 0.66em;
text-transform: uppercase;
letter-spacing: 0.03em;
color: var(--cel-border);
line-height: 1.1;
}
.value {
color: var(--cel-orange);
font-family: var(--cel-font-title);
font-size: 1.02em;
line-height: 1;
}
}
.faction-aspect-source-line {
display: flex;
flex-wrap: wrap;
gap: 4px;
margin-bottom: 6px;
font-size: 0.8em;
line-height: 1.2;
color: var(--cel-green);
}
.faction-aspect-source {
padding: 0 6px;
border-radius: 9px;
background: rgba(12,76,12,0.08);
border: 1px solid rgba(12,76,12,0.2);
}
.faction-aspect-active-title {
margin-bottom: 4px;
color: var(--cel-border);
font-size: 0.68em;
text-transform: uppercase;
letter-spacing: 0.04em;
line-height: 1.1;
}
.faction-aspect-active-list {
display: flex;
flex-wrap: wrap;
gap: 4px;
}
.faction-aspect-chip {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 2px 6px;
border-radius: 999px;
border: 1px solid rgba(122,92,32,0.25);
background: rgba(255,255,255,0.55);
line-height: 1.1;
&.is-relevant {
border-color: rgba(12,76,12,0.35);
background: rgba(12,76,12,0.1);
}
.name {
color: var(--cel-green);
font-size: 0.88em;
}
.value {
color: var(--cel-orange);
font-family: var(--cel-font-title);
font-size: 0.9em;
}
}
.faction-aspect-empty {
color: #666;
font-style: italic;
font-size: 0.84em;
}
}
// Factions table
.factions-table {
width: 100%;
border-collapse: collapse;
font-size: 0.9em;
thead tr {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
th { padding: 5px 8px; font-family: var(--cel-font-title); font-size: 1.05em; letter-spacing: 0.06em; text-transform: uppercase; }
}
.faction-row {
&:nth-child(odd) td { background: rgba(122,92,32,0.06); }
&:nth-child(even) td { background: var(--cel-cream-dark); }
td { padding: 4px 8px; border-bottom: 1px solid rgba(122,92,32,0.2); }
&.custom td { font-style: italic; color: #666; }
.faction-checkboxes-container {
display: flex;
align-items: center;
gap: 8px;
}
.faction-checkboxes {
display: flex;
gap: 3px;
align-items: center;
}
.faction-dot {
display: inline-block;
width: 12px;
height: 12px;
border: 1px solid var(--cel-border);
border-radius: 1px;
background: rgba(255,255,255,0.3);
transition: background 0.1s;
&[data-action] { cursor: pointer; }
&.neutral { border-color: #888; }
&.neutral.filled { background: #aaa; border-color: #888; }
&.pos.filled { background: var(--cel-orange); border-color: var(--cel-orange); }
&.neg.filled { background: #b84a2e; border-color: #b84a2e; }
}
.faction-count {
font-size: 0.85em;
font-weight: bold;
color: var(--cel-orange);
min-width: 16px;
text-align: center;
}
.faction-value input[type="number"] {
width: 50px;
.cel-input-std();
text-align: center;
}
}
}
.factions-legend {
border: 1px solid rgba(122,92,32,0.35);
background: linear-gradient(180deg, rgba(255,248,232,0.95), rgba(240,229,209,0.9));
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.35);
padding: 8px 10px;
.factions-legend-title {
margin-bottom: 6px;
padding-bottom: 4px;
border-bottom: 1px solid rgba(122,92,32,0.25);
color: var(--cel-green);
font-family: var(--cel-font-title);
font-size: 1.05em;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.factions-legend-list {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 0.88em;
}
.factions-legend-row {
display: grid;
grid-template-columns: 28px minmax(0, 1fr);
gap: 8px;
align-items: baseline;
}
.factions-legend-value {
color: var(--cel-orange);
font-weight: bold;
text-align: right;
}
.factions-legend-label {
color: var(--cel-green);
}
}
// Biography / Equipment
.equipments-section {
margin-bottom: 12px;
.section-header { .cel-section-header(); display: flex; justify-content: space-between; }
.item-row { .cel-item-row(); }
.item-qty { font-size: 0.8em; color: var(--cel-border); }
}
// Onglet Équipement
.tab.equipement {
.equip-section {
margin-bottom: 14px;
.section-header {
.cel-section-header();
display: flex;
align-items: center;
gap: 8px;
i { opacity: 0.75; }
span { flex: 1; }
a { color: var(--cel-orange); cursor: pointer; }
}
.item-row {
.cel-item-row();
gap: 10px;
&.is-equipped {
background: rgba(12, 76, 12, 0.12);
border-left: 3px solid var(--cel-green);
padding-left: 5px;
}
.item-tag {
font-size: 0.75em;
padding: 1px 7px;
border-radius: 10px;
background: rgba(12,76,12,0.15);
border: 1px solid rgba(12,76,12,0.3);
color: #3a5a1e;
white-space: nowrap;
&.malus { background: rgba(192,68,68,0.1); border-color: rgba(192,68,68,0.35); color: #922; }
}
.equip-toggle {
color: var(--cel-border);
&.equipped { color: var(--cel-green); }
&:hover { color: var(--cel-orange); }
}
.item-controls {
opacity: 1;
gap: 10px;
flex-shrink: 0;
a {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px;
min-height: 20px;
font-size: 1.08rem;
line-height: 1;
}
}
}
.equip-empty {
font-size: 0.85em;
font-style: italic;
color: var(--cel-border);
padding: 4px 8px;
}
}
}
.biography-section, .notes-section {
margin-bottom: 12px;
.section-header { .cel-section-header(); }
.enriched-html { font-size: 0.9em; line-height: 1.6; }
}
// ── Section Expérience (onglet Biographie) ──────────────────────────────
.xp-section {
margin-bottom: 14px;
.section-header { .cel-section-header(); }
.xp-counters {
display: flex;
align-items: center;
gap: 12px;
padding: 6px 0 8px;
flex-wrap: wrap;
.xp-counter {
display: flex;
flex-direction: column;
align-items: center;
background: rgba(0,0,0,0.18);
border: 1px solid var(--cel-orange);
border-radius: 4px;
padding: 4px 12px;
min-width: 80px;
label {
font-size: 0.6em;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--cel-border);
white-space: nowrap;
}
input[type="number"] {
width: 52px;
text-align: center;
.cel-input-std();
font-family: var(--cel-font-title);
font-size: 1.1em;
font-weight: bold;
color: var(--cel-green);
}
}
.xp-depense-counter {
border-color: rgba(122,92,32,0.4);
.xp-depense-value {
font-family: var(--cel-font-title);
font-size: 1.1em;
font-weight: bold;
color: var(--cel-border);
}
}
.xp-btn-depenser {
background: var(--cel-green);
border: 1px solid var(--cel-orange);
color: var(--cel-orange);
font-size: 0.78em;
padding: 5px 12px;
cursor: pointer;
font-family: var(--cel-font-title);
text-transform: uppercase;
letter-spacing: 0.04em;
border-radius: 2px;
transition: background 0.15s;
margin-left: auto;
&:hover { background: var(--cel-green-light); }
i { margin-right: 4px; }
}
}
.xp-log-table {
width: 100%;
border-collapse: collapse;
font-size: 0.82em;
margin-bottom: 8px;
thead tr {
background: rgba(12,76,12,0.35);
th {
color: var(--cel-orange-light);
font-size: 0.75em;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 3px 6px;
text-align: left;
border-bottom: 1px solid rgba(196,154,26,0.3);
}
}
tbody tr {
border-bottom: 1px solid rgba(196,154,26,0.12);
&:nth-child(even) { background: rgba(0,0,0,0.08); }
td { padding: 3px 6px; color: var(--cel-text-dark, #3a2a0a); }
.xp-date { white-space: nowrap; color: var(--cel-border); font-size: 0.9em; }
.xp-montant { font-weight: bold; color: #c04040; white-space: nowrap; }
.xp-suppr-cell {
text-align: center;
.xp-btn-suppr {
background: none;
border: none;
color: rgba(180,60,60,0.6);
cursor: pointer;
font-size: 0.9em;
padding: 1px 4px;
&:hover { color: #c04040; }
}
}
}
}
// Référentiel de coûts (accordéon)
.xp-ref {
margin-top: 6px;
summary {
font-size: 0.78em;
color: var(--cel-orange-light);
cursor: pointer;
letter-spacing: 0.03em;
text-transform: uppercase;
user-select: none;
&:hover { color: var(--cel-orange); }
}
.xp-ref-table {
width: 100%;
border-collapse: collapse;
font-size: 0.82em;
margin-top: 6px;
thead tr {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
}
th {
font-family: var(--cel-font-title);
font-size: 0.9em;
letter-spacing: 0.05em;
text-transform: uppercase;
padding: 4px 8px;
text-align: left;
border-bottom: 2px solid var(--cel-orange);
}
td {
padding: 4px 8px;
color: var(--cel-text, #2a1a00);
border-bottom: 1px solid rgba(196,154,26,0.25);
}
tbody tr {
&:nth-child(odd) { background: rgba(255,248,230,0.7); }
&:nth-child(even) { background: rgba(240,228,195,0.5); }
&:last-child td { border-bottom: none; }
}
td:last-child {
font-weight: bold;
color: var(--cel-orange);
text-align: center;
width: 60px;
}
}
}
}
// ── Bloc Anomalie sur l'onglet Domaines ──────────────────────────────────
.anomaly-block {
border: 1px solid rgba(196,154,26,0.5);
border-radius: 4px;
margin-bottom: 12px;
overflow: hidden;
.anomaly-block-header {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 10px;
border-bottom: 2px solid var(--cel-orange);
.anomaly-block-title {
font-family: var(--cel-font-title);
font-size: 0.85em;
text-transform: uppercase;
letter-spacing: 0.07em;
color: var(--cel-orange);
}
a { color: var(--cel-orange-light); &:hover { color: var(--cel-orange); } }
}
.anomaly-empty {
padding: 12px;
text-align: center;
color: var(--cel-border);
font-style: italic;
font-size: 0.85em;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
i { font-size: 1.1em; }
}
.anomaly-content {
padding: 8px 10px;
background: var(--cel-green-dark, #0c4c0c);
.anomaly-info-row {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 7px;
.anomaly-icon {
width: 40px;
height: 40px;
object-fit: cover;
border: 1px solid var(--cel-orange);
border-radius: 3px;
}
.anomaly-details {
flex: 1;
.anomaly-name {
font-family: var(--cel-font-title);
font-size: 1em;
color: var(--cel-orange);
font-weight: bold;
}
.anomaly-subtype {
font-size: 0.75em;
color: var(--cel-cream, #f0e8d4);
text-transform: uppercase;
letter-spacing: 0.05em;
opacity: 0.75;
}
}
.anomaly-controls {
display: flex;
gap: 6px;
a { color: rgba(240,232,212,0.5); font-size: 0.9em; &:hover { color: var(--cel-orange); } }
}
}
.anomaly-level-row {
display: flex;
align-items: center;
gap: 6px;
margin-bottom: 6px;
.anomaly-level-label {
font-size: 0.72em;
text-transform: uppercase;
color: var(--cel-cream, #f0e8d4);
opacity: 0.7;
white-space: nowrap;
}
.anomaly-level-dots {
display: flex;
gap: 4px;
.anomaly-level-dot {
width: 10px;
height: 10px;
border-radius: 50%;
border: 2px solid var(--cel-orange);
&.active { background: var(--cel-orange); }
&.inactive { background: transparent; border-color: rgba(196,154,26,0.25); }
}
}
}
.anomaly-uses-row {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
.anomaly-uses-label {
font-size: 0.72em;
text-transform: uppercase;
color: var(--cel-cream, #f0e8d4);
opacity: 0.7;
white-space: nowrap;
}
.anomaly-uses-dots {
display: flex;
gap: 4px;
.anomaly-dot {
width: 12px;
height: 12px;
border-radius: 50%;
border: 2px solid var(--cel-orange);
&.available { background: var(--cel-orange); }
&.spent { background: transparent; }
&.inactive { background: transparent; border-color: rgba(196,154,26,0.25); }
}
}
.anomaly-use-btn {
background: var(--cel-green);
border: 1px solid var(--cel-orange);
color: var(--cel-orange);
font-size: 0.72em;
padding: 2px 8px;
cursor: pointer;
font-family: var(--cel-font-title);
text-transform: uppercase;
letter-spacing: 0.04em;
border-radius: 2px;
transition: background 0.15s;
&:hover:not(:disabled) { background: var(--cel-green-light); }
&:disabled { opacity: 0.4; cursor: default; }
}
.anomaly-reset-btn {
color: rgba(240,232,212,0.5);
font-size: 0.9em;
&:hover { color: var(--cel-orange); }
}
}
.anomaly-skills {
margin-top: 6px;
display: flex;
flex-wrap: wrap;
gap: 4px;
align-items: center;
.anomaly-skills-label {
font-size: 0.7em;
color: var(--cel-cream, #f0e8d4);
opacity: 0.6;
text-transform: uppercase;
}
.anomaly-skill-chip {
background: rgba(196,154,26,0.18);
border: 1px solid rgba(196,154,26,0.45);
border-radius: 3px;
padding: 1px 5px;
font-size: 0.7em;
color: var(--cel-cream, #f0e8d4);
}
}
}
}
}