Files
fvtt-chroniques-de-l-etrange/css/cde-theme.css
LeRatierBretonnier 0689fae792 feat: Loksyu & TinJi standalone AppV2 apps with chat buttons and dice automation
- CDELoksyuApp: standalone HandlebarsApplicationMixin(ApplicationV2) app
  - 5-element Wu Xing grid with yin/yang inputs per element
  - Per-element reset buttons + global reset-all
  - Auto-refresh via updateActor hook

- CDETinjiApp: standalone AppV2 for the collective Tin Ji dice pool
  - Large neon counter with +/- buttons and direct input
  - Spend button sends a chat message with remaining count

- singletons.js: shared utilities
  - getSingletonActor: find or auto-create singleton actor
  - updateLoksyuFromRoll: compute lokAspect from Wu Xing cycle, update yin/yang
  - updateTinjiFromRoll: add tinji face count to value

- rolling.js: auto-update both singletons after every dice roll
  (weapon path + main roll path)

- system.js: renderChatLog hook injects Loksyu/TinJi footer buttons
  in the chat sidebar

- loksyu.js / tinji.js: actor sheets redirect to standalone apps
  when opened via the sidebar

- CSS: .cde-loksyu-standalone, .cde-tinji-standalone, .cde-chat-app-buttons,
  .cde-tinji-spend-msg styles added

- i18n: new keys in fr-cde.json and en-cde.json for all new UI strings
  (LoksyuNotFound, TinjiNotFound, Reset, ResetAll, SpendTinji, etc.)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 09:51:39 +02:00

3470 lines
75 KiB
CSS

/* -------------------------------------------
Fonts
---------------------------------------------*/
@font-face {
font-family: "Averia";
src: url(../fonts/Averia-Regular.ttf);
}
.fvtt-chroniques-de-l-etrange {
--cde-bg: #080c14;
--cde-surface: #101622;
--cde-border: #1a2436;
--cde-text: #e2e8f4;
--cde-muted: #7d94b8;
--cde-item: #00d4d4;
--cde-kungfu: #ff3d5a;
--cde-spell: #4a9eff;
--cde-supernatural: #cc44ff;
color: #e2e8f4;
background: #080c14;
}
.cde-sheet {
background: #080c14;
color: #e2e8f4;
font-family: "Averia", sans-serif;
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
overflow: hidden;
}
.cde-sheet input,
.cde-sheet textarea {
font-family: inherit;
color: #e2e8f4;
background: transparent;
}
.cde-sheet select {
font-family: inherit;
color: #e2e8f4;
background: #101622;
border-radius: 2px;
}
.cde-sheet select option {
background: #080c14;
color: #e2e8f4;
}
.cde-neon-header {
position: relative;
background: #101622;
display: grid;
grid-template-columns: 90px 1fr;
gap: 14px;
padding: 12px 14px 14px;
overflow: hidden;
clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
}
.cde-neon-header::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: #263853;
}
.cde-neon-header::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 0% 0%, rgba(38, 56, 83, 0.3) 0%, transparent 50%);
pointer-events: none;
}
.cde-neon-header.item::before {
background: #00d4d4;
box-shadow: 0 0 10px rgba(0, 212, 212, 0.5);
}
.cde-neon-header.kungfu::before {
background: #ff3d5a;
box-shadow: 0 0 10px rgba(255, 61, 90, 0.5);
}
.cde-neon-header.spell::before {
background: #4a9eff;
box-shadow: 0 0 10px rgba(74, 158, 255, 0.5);
}
.cde-neon-header.supernatural::before {
background: #cc44ff;
box-shadow: 0 0 10px rgba(204, 68, 255, 0.5);
}
.cde-neon-header.weapon::before {
background: #ff6b35;
box-shadow: 0 0 10px rgba(255, 107, 53, 0.5);
}
.cde-neon-header.armor::before {
background: #4ecdc4;
box-shadow: 0 0 10px rgba(78, 205, 196, 0.5);
}
.cde-neon-header.sanhei::before {
background: #cc44ff;
box-shadow: 0 0 10px rgba(204, 68, 255, 0.5);
}
.cde-neon-header.ingredient::before {
background: #98c379;
box-shadow: 0 0 10px rgba(152, 195, 121, 0.5);
}
.cde-avatar {
width: 90px;
height: 90px;
object-fit: cover;
clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%);
border: 1px solid #263853;
background: #0d1520;
cursor: pointer;
position: relative;
z-index: 1;
}
.cde-header-content {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
gap: 8px;
min-width: 0;
}
.cde-item-name {
margin: 0;
}
.cde-item-name input {
width: 100%;
border: none;
border-bottom: 2px solid #263853;
background: transparent;
color: #e2e8f4;
font-size: 18px;
font-family: "Averia", sans-serif;
font-weight: 700;
padding: 4px 0 6px;
letter-spacing: 0.04em;
text-transform: uppercase;
outline: none;
transition: border-color 0.15s;
}
.cde-item-name input:focus {
border-bottom-color: #00d4d4;
}
.cde-neon-header.kungfu .cde-item-name input:focus {
border-bottom-color: #ff3d5a;
}
.cde-neon-header.spell .cde-item-name input:focus {
border-bottom-color: #4a9eff;
}
.cde-neon-header.supernatural .cde-item-name input:focus {
border-bottom-color: #cc44ff;
}
.cde-neon-header.weapon .cde-item-name input:focus {
border-bottom-color: #ff6b35;
}
.cde-neon-header.armor .cde-item-name input:focus {
border-bottom-color: #4ecdc4;
}
.cde-neon-header.sanhei .cde-item-name input:focus {
border-bottom-color: #cc44ff;
}
.cde-neon-header.ingredient .cde-item-name input:focus {
border-bottom-color: #98c379;
}
.cde-stat-grid {
display: flex;
flex-wrap: wrap;
gap: 6px 10px;
align-items: flex-end;
}
.cde-stat-cell {
display: flex;
flex-direction: column;
gap: 3px;
min-width: 110px;
flex: 1 1 110px;
max-width: 200px;
}
.cde-stat-label {
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
white-space: nowrap;
}
.cde-stat-value {
font-size: 15px;
font-weight: 800;
color: #e2e8f4;
letter-spacing: 0.02em;
}
.cde-stat-cell input {
width: 100%;
background: transparent;
border: none;
border-bottom: 1px solid #1a2436;
color: #e2e8f4;
font-size: 14px;
padding: 4px 0;
outline: none;
transition: border-color 0.15s;
}
.cde-stat-cell input:focus {
border-bottom-color: #00d4d4;
}
.cde-stat-cell select {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
font-size: 14px;
padding: 4px 0;
outline: none;
transition: border-color 0.15s;
}
.cde-stat-cell select:focus {
border-bottom-color: #00d4d4;
}
.cde-neon-header.kungfu .cde-stat-cell input:focus,
.cde-neon-header.kungfu .cde-stat-cell select:focus {
border-bottom-color: #ff3d5a;
}
.cde-neon-header.spell .cde-stat-cell input:focus,
.cde-neon-header.spell .cde-stat-cell select:focus {
border-bottom-color: #4a9eff;
}
.cde-neon-header.supernatural .cde-stat-cell input:focus,
.cde-neon-header.supernatural .cde-stat-cell select:focus {
border-bottom-color: #cc44ff;
}
.cde-neon-header.weapon .cde-stat-cell input:focus,
.cde-neon-header.weapon .cde-stat-cell select:focus {
border-bottom-color: #ff6b35;
}
.cde-neon-header.armor .cde-stat-cell input:focus,
.cde-neon-header.armor .cde-stat-cell select:focus {
border-bottom-color: #4ecdc4;
}
.cde-neon-header.sanhei .cde-stat-cell input:focus,
.cde-neon-header.sanhei .cde-stat-cell select:focus {
border-bottom-color: #cc44ff;
}
.cde-neon-header.ingredient .cde-stat-cell input:focus,
.cde-neon-header.ingredient .cde-stat-cell select:focus {
border-bottom-color: #98c379;
}
.cde-badge {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 3px 14px 3px 10px;
clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #080c14;
cursor: default;
white-space: nowrap;
}
.cde-badge.item {
background: #00d4d4;
}
.cde-badge.kungfu {
background: #ff3d5a;
}
.cde-badge.spell {
background: #4a9eff;
}
.cde-badge.supernatural {
background: #cc44ff;
}
.cde-badge.character {
background: #00d4d4;
}
.cde-badge.npc {
background: #cc44ff;
}
.cde-badge.weapon {
background: #ff6b35;
}
.cde-badge.armor {
background: #4ecdc4;
}
.cde-badge.sanhei {
background: #cc44ff;
}
.cde-badge.ingredient {
background: #98c379;
}
.cde-neon-tabs {
display: flex;
gap: 0;
border-bottom: 1px solid #1a2436;
background: transparent;
margin-top: 8px;
overflow-x: auto;
}
.cde-neon-tabs .item {
padding: 8px 14px;
font-size: 11px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
border-bottom: 2px solid transparent;
white-space: nowrap;
transition: color 0.15s, border-color 0.15s;
cursor: pointer;
}
.cde-neon-tabs .item:hover {
color: #e2e8f4;
}
.cde-neon-tabs .item.active {
color: #00d4d4;
border-bottom-color: #00d4d4;
font-weight: 700;
background: rgba(0, 212, 212, 0.08);
}
.item.kungfu .cde-neon-tabs .item.active,
form.kungfu .cde-neon-tabs .item.active,
section.kungfu .cde-neon-tabs .item.active {
color: #ff3d5a;
border-bottom-color: #ff3d5a;
background: rgba(255, 61, 90, 0.08);
}
form.spell .cde-neon-tabs .item.active,
section.spell .cde-neon-tabs .item.active {
color: #4a9eff;
border-bottom-color: #4a9eff;
background: rgba(74, 158, 255, 0.08);
}
form.supernatural .cde-neon-tabs .item.active,
section.supernatural .cde-neon-tabs .item.active {
color: #cc44ff;
border-bottom-color: #cc44ff;
background: rgba(204, 68, 255, 0.08);
}
form.weapon .cde-neon-tabs .item.active,
section.weapon .cde-neon-tabs .item.active {
color: #ff6b35;
border-bottom-color: #ff6b35;
background: rgba(255, 107, 53, 0.08);
}
form.armor .cde-neon-tabs .item.active,
section.armor .cde-neon-tabs .item.active {
color: #4ecdc4;
border-bottom-color: #4ecdc4;
background: rgba(78, 205, 196, 0.08);
}
form.sanhei .cde-neon-tabs .item.active,
section.sanhei .cde-neon-tabs .item.active {
color: #cc44ff;
border-bottom-color: #cc44ff;
background: rgba(204, 68, 255, 0.08);
}
form.ingredient .cde-neon-tabs .item.active,
section.ingredient .cde-neon-tabs .item.active {
color: #98c379;
border-bottom-color: #98c379;
background: rgba(152, 195, 121, 0.08);
}
section.character .cde-neon-tabs .item.active {
color: #00d4d4;
border-bottom-color: #00d4d4;
background: rgba(0, 212, 212, 0.08);
}
section.npc .cde-neon-tabs .item.active {
color: #cc44ff;
border-bottom-color: #cc44ff;
background: rgba(204, 68, 255, 0.08);
}
.cde-tab-body {
flex: 1 1 0;
min-height: 0;
padding: 12px;
background: #0d1520;
border: 1px solid #1a2436;
border-top: none;
border-radius: 0 0 8px 8px;
overflow-y: auto;
}
.cde-tab-body .tab {
display: none;
flex-direction: column;
gap: 12px;
min-height: 100%;
}
.cde-tab-body .tab.active {
display: flex;
}
.cde-tab-label {
font-family: "Averia", sans-serif;
font-size: 0.65rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.15em;
color: #7d94b8;
padding: 2px 6px;
border-left: 2px solid #263853;
margin-bottom: 2px;
flex-shrink: 0;
}
.cde-card {
background: #101622;
border: 1px solid #1a2436;
border-radius: 8px;
padding: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.cde-card .tab-sous-titre {
font-family: "Averia", sans-serif;
font-size: 10px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #7d94b8;
margin-bottom: 6px;
border-bottom: 1px solid #1a2436;
padding-bottom: 4px;
}
.cde-notes-editor {
flex: 1 1 0;
min-height: 0;
display: flex;
flex-direction: column;
}
.cde-notes-editor .editor {
flex: 1 1 0;
min-height: 200px;
border-radius: 8px;
border: 1px solid #1a2436;
background: #101622;
}
.cde-technique-card {
border-left: 3px solid #ff3d5a;
background: rgba(16, 22, 34, 0.8);
}
.cde-technique-header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: flex-start;
gap: 10px;
margin-bottom: 10px;
}
.cde-technique-title {
display: flex;
align-items: center;
gap: 8px;
flex: 1 1 200px;
}
.cde-technique-title input {
flex: 1;
background: transparent;
border: none;
border-bottom: 1px solid #1a2436;
color: #e2e8f4;
font-size: 15px;
font-weight: 700;
padding: 4px 0;
outline: none;
}
.cde-technique-title input:focus {
border-bottom-color: #ff3d5a;
}
.cde-technique-meta {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-end;
}
.cde-technique-body .editor {
min-height: 180px;
}
.cde-check-cell {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
min-width: 70px;
}
.cde-check-cell label {
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
}
.cde-check-cell input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: #ff3d5a;
cursor: pointer;
}
.cde-chip {
background: rgba(16, 22, 34, 0.75);
border: 1px solid #1a2436;
border-radius: 8px;
padding: 8px 10px;
display: inline-flex;
flex-direction: column;
gap: 6px;
min-width: 140px;
}
.cde-chip label {
font-size: 10px;
font-family: "Averia", sans-serif;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #7d94b8;
margin: 0;
}
.cde-chip input {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
background: transparent;
color: #e2e8f4;
padding: 4px 0;
outline: none;
}
.cde-chip input:focus {
border-bottom-color: #00d4d4;
}
.cde-chip select {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
padding: 4px 0;
outline: none;
}
.cde-chip select:focus {
border-bottom-color: #00d4d4;
}
.cde-chip input[type="checkbox"] {
width: auto;
align-self: flex-start;
accent-color: #00d4d4;
}
.cde-chip.mini {
min-width: 100px;
padding: 6px 8px;
}
.cde-meta-row {
display: flex;
gap: 12px;
flex-wrap: wrap;
align-items: flex-end;
margin-top: 8px;
}
.cde-meta-row.compact {
gap: 8px;
}
.cde-pill {
display: inline-block;
padding: 3px 10px;
border-radius: 999px;
font-weight: 800;
font-size: 11px;
letter-spacing: 0.06em;
text-transform: uppercase;
color: #080c14;
}
.cde-pill.item {
background: #00d4d4;
}
.cde-pill.kungfu {
background: #ff3d5a;
}
.cde-pill.spell {
background: #4a9eff;
}
.cde-pill.supernatural {
background: #cc44ff;
}
.cde-pill.character {
background: #00d4d4;
}
.cde-pill.npc {
background: #cc44ff;
}
.cde-pill.weapon {
background: #ff6b35;
}
.cde-pill.armor {
background: #4ecdc4;
}
.cde-pill.sanhei {
background: #cc44ff;
}
.cde-pill.ingredient {
background: #98c379;
}
.cde-header {
background: #101622;
border: 1px solid #1a2436;
border-radius: 8px;
padding: 12px;
display: grid;
grid-template-columns: 120px 1fr;
gap: 12px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
}
.cde-header .profile-img {
width: 100%;
border-radius: 8px;
border: 1px solid #1a2436;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
object-fit: cover;
}
.cde-header .header-fields h1.charname input {
width: 100%;
border: none;
border-bottom: 2px solid #263853;
background: transparent;
color: #e2e8f4;
font-size: 20px;
font-family: "Averia", sans-serif;
padding: 4px 0 8px;
outline: none;
}
.cde-header .header-fields h1.charname input:focus {
border-bottom-color: #00d4d4;
}
.cde-actor-header {
grid-template-columns: 160px 1fr;
align-items: start;
}
.cde-header-top {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
}
.cde-icon-button {
border: 1px solid #1a2436;
background: rgba(16, 22, 34, 0.7);
color: #e2e8f4;
border-radius: 999px;
padding: 6px 10px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
cursor: pointer;
}
.cde-icon-button:hover {
border-color: #263853;
}
.cde-quick-meta {
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
.cde-initiative-card {
border: 1px solid #1a2436;
border-left: 3px solid #4a9eff;
border-radius: 8px;
padding: 8px 12px;
background: rgba(16, 22, 34, 0.7);
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
display: inline-flex;
flex-direction: column;
gap: 4px;
min-width: 130px;
}
.cde-initiative-header {
display: flex;
align-items: center;
gap: 6px;
}
.cde-initiative-title {
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
}
.cde-initiative-icon {
font-size: 11px;
color: #4a9eff;
text-shadow: 0 0 6px rgba(74, 158, 255, 0.7);
}
.cde-initiative-controls {
display: inline-flex;
align-items: center;
gap: 6px;
}
.cde-initiative-controls .cde-init-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
padding: 0;
border: 1px solid #1a2436;
border-radius: 5px;
background: rgba(8, 12, 20, 0.8);
color: #7d94b8;
font-size: 11px;
cursor: pointer;
flex-shrink: 0;
transition: border-color 0.15s, box-shadow 0.15s, color 0.15s;
}
.cde-initiative-controls .cde-init-btn:hover {
border-color: #4a9eff;
color: #4a9eff;
box-shadow: 0 0 0 2px rgba(74, 158, 255, 0.25);
}
.cde-initiative-controls .cde-init-btn--roll {
width: 30px;
height: 30px;
font-size: 14px;
border-color: rgba(74, 158, 255, 0.4);
color: #4a9eff;
background: rgba(74, 158, 255, 0.1);
box-shadow: 0 0 6px rgba(74, 158, 255, 0.2);
}
.cde-initiative-controls .cde-init-btn--roll:hover {
background: rgba(74, 158, 255, 0.2);
box-shadow: 0 0 10px rgba(74, 158, 255, 0.4);
}
.cde-initiative-values {
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
min-width: 50px;
}
.cde-initiative-value {
font-size: 20px;
font-weight: 800;
text-align: center;
color: #4a9eff;
text-shadow: 0 0 8px rgba(74, 158, 255, 0.6);
line-height: 1;
}
.cde-anti-initiative-value {
font-size: 9px;
font-family: "Averia", sans-serif;
color: #7d94b8;
text-align: center;
white-space: nowrap;
}
.cde-anti-initiative-value i {
font-size: 8px;
opacity: 0.7;
}
.cde-grid {
display: grid;
gap: 12px;
}
.cde-grid.two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cde-grid.three {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.cde-field label {
display: block;
margin-bottom: 4px;
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
}
.cde-field input,
.cde-field textarea {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
background: transparent;
color: #e2e8f4;
padding: 5px 0;
outline: none;
}
.cde-field input:focus,
.cde-field textarea:focus {
border-bottom-color: #00d4d4;
}
.cde-field select {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
padding: 5px 0;
outline: none;
}
.cde-field select:focus {
border-bottom-color: #00d4d4;
}
.cde-section-title {
font-family: "Averia", sans-serif;
font-size: 10px;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #7d94b8;
margin-bottom: 8px;
border-bottom: 1px solid #1a2436;
padding-bottom: 4px;
}
.cde-tag {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 3px 10px;
border-radius: 999px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
background: rgba(26, 36, 54, 0.8);
color: #7d94b8;
border: 1px solid #1a2436;
}
.cde-data-table table {
width: 100%;
border-collapse: collapse;
color: #e2e8f4;
}
.cde-data-table td {
padding: 7px 8px;
border-bottom: 1px solid #1a2436;
}
.cde-data-table tr:nth-child(even) {
background: rgba(16, 22, 34, 0.5);
}
.cde-data-table tr:hover {
background: rgba(38, 56, 83, 0.2);
}
.cde-data-table input {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
background: transparent;
color: #e2e8f4;
padding: 4px 0;
outline: none;
}
.cde-data-table select {
width: 100%;
border: none;
border-bottom: 1px solid #1a2436;
padding: 4px 0;
outline: none;
}
.cde-centered-card {
display: flex;
gap: 12px;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
}
.cde-centered-card img {
max-height: 280px;
border-radius: 8px;
border: 1px solid #1a2436;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
}
.cde-aptitudes-table .cde-spec-cell {
flex: 1 1 0;
}
.cde-aptitudes-table .cde-roll-cell {
width: 28px;
flex-shrink: 0;
text-align: center;
}
.cde-aptitudes-table .cde-roll-cell .cde-roll-trigger {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
color: #7d94b8;
border-radius: 4px;
transition: color 0.15s, background 0.15s;
}
.cde-aptitudes-table .cde-roll-cell .cde-roll-trigger:hover {
color: #cc44ff;
background: rgba(204, 68, 255, 0.12);
}
.cde-empty-list {
color: #7d94b8;
font-style: italic;
font-size: 11px;
text-align: center;
padding: 10px 0;
}
.cde-supernatural-list .cde-supernatural-item {
background: rgba(16, 22, 34, 0.6);
border: 1px solid #1a2436;
border-radius: 4px;
margin-bottom: 6px;
padding: 6px;
list-style: none;
}
.cde-supernatural-list .cde-supernatural-header {
align-items: center;
gap: 8px;
}
.cde-supernatural-list .cde-supernatural-header img {
border-radius: 4px;
flex-shrink: 0;
}
.cde-supernatural-list .cde-supernatural-info {
flex: 1 1 0;
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.cde-supernatural-list .cde-supernatural-info .cde-supernatural-name {
font-size: 12px;
font-weight: 600;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cde-supernatural-list .cde-supernatural-desc {
font-size: 10px;
color: #7d94b8;
margin-top: 4px;
padding-left: 36px;
line-height: 1.4;
}
.cde-supernatural-list .cde-supernatural-desc p {
margin: 0;
}
.cde-npc-tracks {
margin-top: 12px;
}
.cde-npc-tracks .cde-track-row {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 0;
border-bottom: 1px solid #1a2436;
}
.cde-npc-tracks .cde-track-row:last-child {
border-bottom: none;
}
.cde-npc-tracks .cde-track-label {
display: flex;
align-items: center;
gap: 6px;
width: 120px;
flex-shrink: 0;
font-size: 11px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
}
.cde-npc-tracks .cde-track-label i {
font-size: 12px;
}
.cde-npc-tracks .cde-track-value {
display: flex;
align-items: center;
gap: 6px;
}
.cde-npc-tracks .cde-track-value input.cde-circle-input {
width: 48px;
}
.cde-npc-tracks .cde-track-sep {
font-size: 14px;
color: #7d94b8;
font-weight: 700;
}
.cde-npc-tracks .cde-track-max {
font-size: 15px;
font-weight: 700;
color: #4a9eff;
text-shadow: 0 0 6px rgba(74, 158, 255, 0.4);
min-width: 28px;
text-align: center;
}
.cde-npc-tracks .cde-track-note {
flex: 1;
}
.cde-npc-tracks .cde-track-note input {
width: 100%;
}
.cde-chat-app-buttons {
display: flex;
gap: 6px;
padding: 6px 8px 4px;
border-top: 1px solid #1a2436;
}
.cde-chat-app-buttons .cde-chat-btn {
flex: 1 1 0;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 5px 8px;
font-size: 11px;
font-family: "Orbitron", "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.06em;
background: #101622;
border: 1px solid #1a2436;
border-radius: 4px;
color: #7d94b8;
cursor: pointer;
transition: all 0.2s;
}
.cde-chat-app-buttons .cde-chat-btn i {
font-size: 12px;
}
.cde-chat-app-buttons .cde-chat-btn:hover {
background: rgba(74, 158, 255, 0.1);
border-color: #4a9eff;
color: #4a9eff;
box-shadow: 0 0 8px rgba(74, 158, 255, 0.3);
}
.cde-chat-app-buttons .cde-chat-btn--tinji:hover {
background: rgba(255, 61, 90, 0.1);
border-color: #ff3d5a;
color: #ff3d5a;
box-shadow: 0 0 8px rgba(255, 61, 90, 0.3);
}
.cde-loksyu-standalone .cde-loksyu-app-body {
padding: 12px;
}
.cde-loksyu-standalone .cde-loksyu-elements {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 8px;
margin-bottom: 12px;
}
.cde-loksyu-standalone .cde-lok-card {
background: rgba(16, 22, 34, 0.8);
border: 1px solid #1a2436;
border-radius: 6px;
padding: 8px 6px;
display: flex;
flex-direction: column;
gap: 6px;
transition: border-color 0.2s;
}
.cde-loksyu-standalone .cde-lok-card--wood:hover {
border-color: #4a9e3f;
}
.cde-loksyu-standalone .cde-lok-card--wood .cde-lok-input:focus {
border-bottom-color: #4a9e3f;
}
.cde-loksyu-standalone .cde-lok-card--fire:hover {
border-color: #ff3d5a;
}
.cde-loksyu-standalone .cde-lok-card--fire .cde-lok-input:focus {
border-bottom-color: #ff3d5a;
}
.cde-loksyu-standalone .cde-lok-card--earth:hover {
border-color: #c88a3a;
}
.cde-loksyu-standalone .cde-lok-card--earth .cde-lok-input:focus {
border-bottom-color: #c88a3a;
}
.cde-loksyu-standalone .cde-lok-card--metal:hover {
border-color: #7d94b8;
}
.cde-loksyu-standalone .cde-lok-card--metal .cde-lok-input:focus {
border-bottom-color: #7d94b8;
}
.cde-loksyu-standalone .cde-lok-card--water:hover {
border-color: #4a9eff;
}
.cde-loksyu-standalone .cde-lok-card--water .cde-lok-input:focus {
border-bottom-color: #4a9eff;
}
.cde-loksyu-standalone .cde-lok-header {
display: flex;
align-items: center;
gap: 6px;
}
.cde-loksyu-standalone .cde-lok-header img.cde-lok-icon {
border-radius: 4px;
flex-shrink: 0;
}
.cde-loksyu-standalone .cde-lok-titles {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
}
.cde-loksyu-standalone .cde-lok-titles .cde-lok-name {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #e2e8f4;
}
.cde-loksyu-standalone .cde-lok-titles .cde-lok-qual {
font-size: 9px;
color: #7d94b8;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cde-loksyu-standalone .cde-lok-reset {
color: #7d94b8;
font-size: 11px;
flex-shrink: 0;
cursor: pointer;
}
.cde-loksyu-standalone .cde-lok-reset:hover {
color: #e2e8f4;
}
.cde-loksyu-standalone .cde-lok-values {
display: flex;
flex-direction: column;
gap: 4px;
}
.cde-loksyu-standalone .cde-lok-polarity {
display: flex;
align-items: center;
gap: 4px;
}
.cde-loksyu-standalone .cde-lok-polarity .cde-lok-pol-label {
font-size: 9px;
color: #7d94b8;
width: 30px;
flex-shrink: 0;
}
.cde-loksyu-standalone .cde-lok-polarity--yang .cde-lok-pol-label {
color: #e2e8f4;
}
.cde-loksyu-standalone .cde-lok-input {
flex: 1 1 0;
background: transparent;
border: none;
border-bottom: 1px solid #1a2436;
color: #e2e8f4;
font-size: 13px;
font-weight: 700;
text-align: center;
padding: 2px 0;
transition: border-bottom-color 0.2s;
width: 100%;
}
.cde-loksyu-standalone .cde-lok-input:focus {
outline: none;
}
.cde-loksyu-standalone .cde-lok-input[disabled] {
opacity: 0.5;
cursor: default;
}
.cde-loksyu-standalone .cde-loksyu-visual-row {
text-align: center;
margin: 6px 0;
}
.cde-loksyu-standalone .cde-loksyu-visual-row .cde-lok-visual {
max-width: 100%;
max-height: 80px;
opacity: 0.6;
}
.cde-loksyu-standalone .cde-lok-footer {
display: flex;
justify-content: center;
padding-top: 6px;
border-top: 1px solid #1a2436;
margin-top: 6px;
}
.cde-loksyu-standalone .cde-lok-reset-all {
display: flex;
align-items: center;
gap: 6px;
padding: 5px 14px;
font-size: 11px;
background: rgba(255, 61, 90, 0.12);
border: 1px solid rgba(255, 61, 90, 0.3);
border-radius: 4px;
color: #7d94b8;
cursor: pointer;
transition: all 0.2s;
}
.cde-loksyu-standalone .cde-lok-reset-all:hover {
background: rgba(255, 61, 90, 0.2);
border-color: #ff3d5a;
color: #e2e8f4;
}
.cde-tinji-standalone .cde-tinji-app-body {
padding: 16px 12px;
display: flex;
align-items: center;
gap: 16px;
}
.cde-tinji-standalone .cde-tinji-display {
flex: 1 1 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.cde-tinji-standalone .cde-tinji-chinese-large {
font-size: 40px;
color: #ff3d5a;
text-shadow: 0 0 20px rgba(255, 61, 90, 0.6);
line-height: 1;
font-family: serif;
}
.cde-tinji-standalone .cde-tinji-label {
font-size: 10px;
font-family: "Orbitron", sans-serif;
text-transform: uppercase;
letter-spacing: 0.12em;
color: #7d94b8;
}
.cde-tinji-standalone .cde-tinji-counter {
display: flex;
align-items: center;
gap: 8px;
margin: 4px 0;
}
.cde-tinji-standalone .cde-tinji-step {
width: 28px;
height: 28px;
background: #101622;
border: 1px solid #1a2436;
border-radius: 50%;
color: #7d94b8;
font-size: 18px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s;
line-height: 1;
padding: 0;
}
.cde-tinji-standalone .cde-tinji-step:hover {
background: rgba(255, 61, 90, 0.15);
border-color: #ff3d5a;
color: #ff3d5a;
}
.cde-tinji-standalone .cde-tinji-direct {
width: 72px;
background: transparent;
border: none;
border-bottom: 2px solid #ff3d5a;
color: #ff3d5a;
font-size: 36px;
font-weight: 700;
text-align: center;
text-shadow: 0 0 12px rgba(255, 61, 90, 0.5);
padding: 0;
}
.cde-tinji-standalone .cde-tinji-direct:focus {
outline: none;
}
.cde-tinji-standalone .cde-tinji-direct[disabled] {
opacity: 0.7;
cursor: default;
}
.cde-tinji-standalone .cde-tinji-hint {
font-size: 10px;
color: #7d94b8;
text-align: center;
}
.cde-tinji-standalone .cde-tinji-actions {
display: flex;
gap: 6px;
margin-top: 6px;
}
.cde-tinji-standalone .cde-tinji-spend-btn,
.cde-tinji-standalone .cde-tinji-reset-btn {
display: flex;
align-items: center;
gap: 5px;
padding: 5px 12px;
font-size: 11px;
border-radius: 4px;
cursor: pointer;
transition: all 0.2s;
}
.cde-tinji-standalone .cde-tinji-spend-btn {
background: rgba(255, 61, 90, 0.15);
border: 1px solid #ff3d5a;
color: #ff3d5a;
}
.cde-tinji-standalone .cde-tinji-spend-btn:hover {
background: rgba(255, 61, 90, 0.3);
}
.cde-tinji-standalone .cde-tinji-spend-btn[disabled] {
opacity: 0.4;
cursor: not-allowed;
pointer-events: none;
}
.cde-tinji-standalone .cde-tinji-reset-btn {
background: #101622;
border: 1px solid #1a2436;
color: #7d94b8;
}
.cde-tinji-standalone .cde-tinji-reset-btn:hover {
border-color: #e2e8f4;
color: #e2e8f4;
}
.cde-tinji-standalone .cde-tinji-visual {
width: 90px;
height: auto;
opacity: 0.6;
flex-shrink: 0;
}
.cde-tinji-spend-msg {
display: flex;
align-items: center;
gap: 6px;
font-size: 12px;
padding: 6px 8px;
background: rgba(255, 61, 90, 0.08);
border-left: 3px solid #ff3d5a;
border-radius: 4px;
color: #e2e8f4;
}
.cde-tinji-spend-msg i {
color: #ff3d5a;
}
.cde-tinji-spend-msg .cde-tinji-remain {
margin-left: auto;
font-size: 10px;
color: #7d94b8;
}
.cde-loksyu-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
padding: 12px 0;
}
.cde-element-card {
background: #101622;
border: 1px solid #1a2436;
border-radius: 8px;
padding: 10px 8px;
display: flex;
flex-direction: column;
gap: 8px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
transition: border-color 0.15s, box-shadow 0.15s;
}
.cde-element-card:hover {
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
}
.cde-element--wood {
border-top: 3px solid #41a436;
}
.cde-element--wood .cde-element-name {
color: #41a436;
text-shadow: 0 0 6px rgba(65, 164, 54, 0.5);
}
.cde-element--wood .cde-element-img {
filter: drop-shadow(0 0 4px #41a436);
}
.cde-element--wood .cde-element-polarity--yang {
border-left: 2px solid rgba(65, 164, 54, 0.7);
}
.cde-element--fire {
border-top: 3px solid #cd171a;
}
.cde-element--fire .cde-element-name {
color: #cd171a;
text-shadow: 0 0 6px rgba(205, 23, 26, 0.5);
}
.cde-element--fire .cde-element-img {
filter: drop-shadow(0 0 4px #cd171a);
}
.cde-element--fire .cde-element-polarity--yang {
border-left: 2px solid rgba(205, 23, 26, 0.7);
}
.cde-element--earth {
border-top: 3px solid #a85747;
}
.cde-element--earth .cde-element-name {
color: #a85747;
text-shadow: 0 0 6px rgba(168, 87, 71, 0.5);
}
.cde-element--earth .cde-element-img {
filter: drop-shadow(0 0 4px #a85747);
}
.cde-element--earth .cde-element-polarity--yang {
border-left: 2px solid rgba(168, 87, 71, 0.7);
}
.cde-element--metal {
border-top: 3px solid #70706e;
}
.cde-element--metal .cde-element-name {
color: #70706e;
text-shadow: 0 0 6px rgba(112, 112, 110, 0.5);
}
.cde-element--metal .cde-element-img {
filter: drop-shadow(0 0 4px #70706e);
}
.cde-element--metal .cde-element-polarity--yang {
border-left: 2px solid rgba(112, 112, 110, 0.7);
}
.cde-element--water {
border-top: 3px solid #009fe2;
}
.cde-element--water .cde-element-name {
color: #009fe2;
text-shadow: 0 0 6px rgba(0, 159, 226, 0.5);
}
.cde-element--water .cde-element-img {
filter: drop-shadow(0 0 4px #009fe2);
}
.cde-element--water .cde-element-polarity--yang {
border-left: 2px solid rgba(0, 159, 226, 0.7);
}
.cde-element--wood .cde-element-polarity input:focus {
border-bottom-color: #41a436;
box-shadow: 0 1px 0 0 #41a436;
}
.cde-element--fire .cde-element-polarity input:focus {
border-bottom-color: #cd171a;
box-shadow: 0 1px 0 0 #cd171a;
}
.cde-element--earth .cde-element-polarity input:focus {
border-bottom-color: #a85747;
box-shadow: 0 1px 0 0 #a85747;
}
.cde-element--metal .cde-element-polarity input:focus {
border-bottom-color: #70706e;
box-shadow: 0 1px 0 0 #70706e;
}
.cde-element--water .cde-element-polarity input:focus {
border-bottom-color: #009fe2;
box-shadow: 0 1px 0 0 #009fe2;
}
.cde-element-header {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
text-align: center;
}
.cde-element-img {
width: 36px;
height: 36px;
object-fit: contain;
filter: drop-shadow(0 0 4px var(--el-color));
}
.cde-element-titles {
display: flex;
flex-direction: column;
gap: 2px;
}
.cde-element-name {
font-family: "Averia", sans-serif;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
white-space: nowrap;
}
.cde-element-qualities {
font-size: 9px;
color: #7d94b8;
font-style: italic;
line-height: 1.3;
text-align: center;
display: none;
}
.cde-element-values {
display: flex;
flex-direction: column;
gap: 4px;
}
.cde-element-polarity {
display: flex;
align-items: center;
gap: 6px;
padding: 3px 6px;
border-radius: 4px;
background: rgba(8, 12, 20, 0.6);
}
.cde-element-polarity--yin {
border-left: 2px solid rgba(125, 148, 184, 0.4);
}
.cde-polarity-label {
font-size: 9px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.06em;
color: #7d94b8;
white-space: nowrap;
min-width: 32px;
}
.cde-element-polarity input {
width: 40px;
border: none;
border-bottom: 1px solid #1a2436;
background: transparent;
color: #e2e8f4;
font-size: 14px;
font-weight: 700;
text-align: center;
padding: 2px 0;
outline: none;
}
.cde-loksyu-visual-row {
display: flex;
justify-content: center;
padding-top: 12px;
}
.cde-loksyu-visual-row .loksyu-visual {
max-width: 100%;
height: auto;
opacity: 0.7;
border-radius: 8px;
border: 1px solid #1a2436;
}
.cde-tinji-layout {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
padding: 12px;
flex-wrap: wrap;
}
.cde-tinji-main {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
flex: 1;
}
.cde-tinji-chinese {
font-size: 48px;
color: #cc44ff;
text-shadow: 0 0 20px rgba(204, 68, 255, 0.6);
line-height: 1;
letter-spacing: 0.1em;
}
.cde-tinji-subtitle {
font-family: "Averia", sans-serif;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.2em;
color: #7d94b8;
}
.cde-tinji-value-wrapper {
display: flex;
align-items: center;
justify-content: center;
}
.cde-tinji-value-wrapper .cde-tinji-input {
width: 80px;
text-align: center;
font-size: 36px;
font-weight: 700;
color: #cc44ff;
text-shadow: 0 0 12px rgba(204, 68, 255, 0.5);
border: none;
border-bottom: 2px solid #cc44ff;
background: transparent;
outline: none;
padding: 4px 0;
}
.cde-tinji-value-wrapper .cde-tinji-input:focus {
border-bottom-color: #e191ff;
box-shadow: 0 2px 0 0 rgba(204, 68, 255, 0.6);
}
.cde-tinji-hint {
font-size: 10px;
font-family: "Averia", sans-serif;
color: #7d94b8;
text-transform: uppercase;
letter-spacing: 0.12em;
text-align: center;
}
.tinji-visual {
max-height: 280px;
max-width: 200px;
border-radius: 8px;
border: 1px solid #1a2436;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
}
.cde-weapon-roll-btn {
color: #ff6b35 !important;
}
.cde-weapon-roll-btn:hover {
text-shadow: 0 0 6px rgba(255, 107, 53, 0.6);
}
.cde-item-damage {
color: #ff6b35;
font-weight: 700;
}
.cde-weapon-prompt .cde-weapon-info-bar {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 12px;
background: rgba(255, 107, 53, 0.08);
border: 1px solid rgba(255, 107, 53, 0.3);
border-radius: 8px;
margin-bottom: 12px;
}
.cde-weapon-prompt .cde-weapon-info-bar .cde-weapon-aspect-icon {
width: 36px;
height: 36px;
object-fit: contain;
}
.cde-weapon-prompt .cde-weapon-info-bar .cde-weapon-info-text {
flex: 1;
display: flex;
flex-direction: column;
gap: 2px;
}
.cde-weapon-prompt .cde-weapon-info-bar .cde-weapon-info-name {
font-size: 14px;
font-weight: 700;
font-family: "Averia", sans-serif;
color: #e2e8f4;
}
.cde-weapon-prompt .cde-weapon-info-bar .cde-weapon-info-meta {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
font-family: "Averia", sans-serif;
}
.cde-weapon-prompt .cde-weapon-info-bar .cde-weapon-info-badge {
font-size: 20px;
color: rgba(255, 107, 53, 0.5);
}
.cde-rr-weapon-damage {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 12px;
background: rgba(255, 107, 53, 0.1);
border-top: 1px solid rgba(255, 107, 53, 0.3);
border-bottom: 1px solid rgba(255, 107, 53, 0.3);
margin: 4px 0;
}
.cde-rr-weapon-damage .cde-rr-weapon-icon {
font-size: 16px;
color: #ff6b35;
text-shadow: 0 0 6px rgba(255, 107, 53, 0.5);
flex-shrink: 0;
}
.cde-rr-weapon-damage .cde-rr-weapon-text {
display: flex;
flex-direction: column;
gap: 2px;
}
.cde-rr-weapon-damage .cde-rr-weapon-name {
font-size: 11px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
}
.cde-rr-weapon-damage .cde-rr-weapon-calc {
font-size: 12px;
color: #e2e8f4;
}
.cde-rr-weapon-damage .cde-rr-weapon-total {
font-size: 16px;
font-weight: 900;
color: #ff6b35;
text-shadow: 0 0 8px rgba(255, 107, 53, 0.6);
margin: 0 2px;
}
.cde-rr-weapon-damage .cde-rr-weapon-unit {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: #7d94b8;
}
.cde-section-label {
display: flex;
align-items: center;
gap: 8px;
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.12em;
color: #7d94b8;
border-bottom: 1px solid #1a2436;
padding-bottom: 6px;
margin-bottom: 10px;
}
.cde-section-label i {
font-size: 11px;
}
.cde-section-label--top-margin {
margin-top: 18px;
}
.cde-components-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 6px;
margin-bottom: 10px;
}
.cde-component-cell {
display: flex;
align-items: center;
gap: 8px;
background: #101622;
border: 1px solid #1a2436;
border-radius: 8px;
padding: 4px 8px;
}
.cde-component-cell:hover {
border-color: #263853;
}
.cde-component-die {
width: 28px;
height: 28px;
object-fit: contain;
flex-shrink: 0;
opacity: 0.85;
}
.cde-component-input {
flex: 1;
background: transparent;
border: none;
border-bottom: 1px solid transparent;
color: #e2e8f4;
font-size: 12px;
padding: 2px 0;
}
.cde-component-input:focus {
outline: none;
border-bottom-color: #4a9eff;
}
.cde-component-input::placeholder {
color: #7d94b8;
font-style: italic;
font-size: 11px;
}
.cde-component-random-row {
display: flex;
justify-content: center;
margin-bottom: 4px;
}
.cde-btn-random-component {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 16px;
background: rgba(74, 158, 255, 0.08);
border: 1px solid rgba(74, 158, 255, 0.35);
border-radius: 8px;
color: #4a9eff;
font-family: "Averia", sans-serif;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.08em;
cursor: pointer;
transition: background 0.15s, box-shadow 0.15s;
}
.cde-btn-random-component i {
font-size: 14px;
}
.cde-btn-random-component:hover {
background: rgba(74, 158, 255, 0.16);
box-shadow: 0 0 8px rgba(74, 158, 255, 0.3);
}
.cde-magic-card {
background: #101622;
border: 1px solid #1a2436;
border-left: 3px solid #263853;
border-radius: 8px;
margin-bottom: 8px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.cde-magic-header {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 10px;
}
.cde-magic-aspect-icon {
width: 32px;
height: 32px;
object-fit: contain;
flex-shrink: 0;
}
.cde-magic-info {
flex: 1;
display: flex;
flex-direction: column;
gap: 1px;
min-width: 0;
}
.cde-magic-name {
font-family: "Averia", sans-serif;
font-size: 13px;
font-weight: 700;
color: #e2e8f4;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cde-magic-aspect-name {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
font-family: "Averia", sans-serif;
}
.cde-magic-value-input {
width: 52px;
flex-shrink: 0;
}
.cde-magic-roll-btn {
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
cursor: pointer;
transition: background 0.15s;
flex-shrink: 0;
}
.cde-magic-roll-btn i {
font-size: 15px;
}
.cde-magic-roll-btn:hover {
background: rgba(74, 158, 255, 0.15);
}
.cde-magic-toggle {
width: 28px;
height: 28px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
color: #7d94b8;
flex-shrink: 0;
}
.cde-magic-toggle input[type="checkbox"] {
display: none;
}
.cde-magic-toggle i {
font-size: 11px;
transition: color 0.15s;
}
.cde-magic-toggle:hover i {
color: #e2e8f4;
}
.cde-magic-specialities {
border-top: 1px solid #1a2436;
padding: 4px 0;
}
.cde-magic-spec-row {
display: flex;
align-items: center;
gap: 8px;
padding: 5px 10px 5px 42px;
opacity: 0.55;
transition: opacity 0.12s, background 0.12s;
}
.cde-magic-spec-row:hover {
opacity: 1;
background: rgba(38, 56, 83, 0.3);
}
.cde-magic-spec-row--active {
opacity: 1;
}
.cde-magic-spec-check-label {
display: flex;
align-items: center;
cursor: pointer;
flex-shrink: 0;
}
.cde-magic-spec-check-label input[type="checkbox"] {
display: none;
}
.cde-magic-spec-check-label .cde-spec-checkbox-ui {
width: 14px;
height: 14px;
border: 1px solid #7d94b8;
border-radius: 3px;
display: inline-flex;
align-items: center;
justify-content: center;
transition: border-color 0.12s, background 0.12s;
}
.cde-magic-spec-check-label input:checked + .cde-spec-checkbox-ui {
background: #4a9eff;
border-color: #4a9eff;
}
.cde-magic-spec-check-label input:checked + .cde-spec-checkbox-ui::after {
content: "✓";
font-size: 9px;
color: #080c14;
line-height: 1;
}
.cde-magic-spec-element {
width: 18px;
height: 18px;
object-fit: contain;
flex-shrink: 0;
}
.cde-magic-spec-polarity {
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.06em;
color: #7d94b8;
width: 42px;
flex-shrink: 0;
}
.cde-magic-spec-polarity.icon-yin {
color: #cc44ff;
}
.cde-magic-spec-polarity.icon-yang {
color: #00d4d4;
}
.cde-magic-spec-polarity.icon-yinyang {
color: #4a9eff;
}
.cde-magic-spec-name {
flex: 1;
font-size: 12px;
color: #e2e8f4;
font-family: "Averia", sans-serif;
}
.cde-magic-spec-roll-btn {
width: 26px;
height: 26px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
cursor: pointer;
color: #7d94b8;
flex-shrink: 0;
transition: color 0.15s, background 0.15s;
}
.cde-magic-spec-roll-btn i {
font-size: 12px;
}
.cde-magic-spec-roll-btn:hover {
color: #4a9eff;
background: rgba(74, 158, 255, 0.12);
}
.cde-magic--internalcinnabar {
border-left-color: #70706e;
}
.cde-magic--internalcinnabar .cde-magic-name {
color: #a3a3a1;
}
.cde-magic--internalcinnabar .cde-magic-roll-btn i {
color: #70706e;
}
.cde-magic--alchemy {
border-left-color: #009fe2;
}
.cde-magic--alchemy .cde-magic-name {
color: #30c1ff;
}
.cde-magic--alchemy .cde-magic-roll-btn i {
color: #009fe2;
}
.cde-magic--masteryoftheway {
border-left-color: #a85747;
}
.cde-magic--masteryoftheway .cde-magic-name {
color: #cd9488;
}
.cde-magic--masteryoftheway .cde-magic-roll-btn i {
color: #be7364;
}
.cde-magic--exorcism {
border-left-color: #cd171a;
}
.cde-magic--exorcism .cde-magic-name {
color: #ed5d60;
}
.cde-magic--exorcism .cde-magic-roll-btn i {
color: #cd171a;
}
.cde-magic--geomancy {
border-left-color: #41a436;
}
.cde-magic--geomancy .cde-magic-name {
color: #68ca5d;
}
.cde-magic--geomancy .cde-magic-roll-btn i {
color: #41a436;
}
.cde-grimoire-section {
border-top: 1px dashed rgba(26, 36, 54, 0.6);
margin-top: 6px;
padding-top: 6px;
}
.cde-grimoire-header {
display: flex;
align-items: center;
gap: 6px;
padding: 4px 10px;
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
}
.cde-grimoire-header i {
font-size: 10px;
color: #4a9eff;
}
.cde-grimoire-header span {
flex: 1;
}
.cde-grimoire-add {
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
border-radius: 3px;
cursor: pointer;
color: #7d94b8;
transition: color 0.12s, background 0.12s;
}
.cde-grimoire-add i {
font-size: 10px;
}
.cde-grimoire-add:hover {
color: #4a9eff;
background: rgba(74, 158, 255, 0.15);
}
.cde-grimoire-list {
list-style: none;
margin: 0;
padding: 0;
}
.cde-grimoire-entry {
display: flex;
align-items: center;
gap: 6px;
padding: 4px 10px 4px 14px;
border-bottom: 1px solid rgba(26, 36, 54, 0.4);
transition: background 0.1s;
}
.cde-grimoire-entry:last-child {
border-bottom: none;
}
.cde-grimoire-entry:hover {
background: rgba(26, 36, 54, 0.25);
}
.cde-grimoire-entry:hover .cde-grimoire-controls {
opacity: 1;
}
.cde-grimoire-img {
width: 18px;
height: 18px;
object-fit: contain;
border-radius: 2px;
flex-shrink: 0;
}
.cde-grimoire-name {
flex: 1;
font-size: 12px;
color: #e2e8f4;
font-family: "Averia", sans-serif;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cde-grimoire-meta {
display: flex;
align-items: center;
gap: 8px;
font-size: 10px;
color: #7d94b8;
flex-shrink: 0;
}
.cde-grimoire-meta em {
color: #4a9eff;
font-style: normal;
font-size: 10px;
max-width: 80px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.cde-grimoire-diff,
.cde-grimoire-hei {
display: flex;
align-items: center;
gap: 3px;
}
.cde-grimoire-diff i,
.cde-grimoire-hei i {
font-size: 9px;
}
.cde-grimoire-diff {
color: #7d94b8;
}
.cde-grimoire-hei {
color: #ff3d5a;
}
.cde-grimoire-controls {
display: flex;
align-items: center;
gap: 4px;
opacity: 0;
transition: opacity 0.12s;
flex-shrink: 0;
}
.cde-grimoire-controls a {
display: flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
border-radius: 3px;
color: #7d94b8;
cursor: pointer;
transition: color 0.12s, background 0.12s;
}
.cde-grimoire-controls a i {
font-size: 10px;
}
.cde-grimoire-controls a:hover {
color: #e2e8f4;
background: rgba(38, 56, 83, 0.3);
}
.cde-grimoire-empty {
padding: 4px 14px 8px;
font-size: 11px;
color: #7d94b8;
font-style: italic;
margin: 0;
}
.cde-kf-add-row {
display: flex;
justify-content: flex-end;
padding: 4px 0 8px;
}
.cde-kf-add-btn {
display: inline-flex;
align-items: center;
gap: 5px;
font-size: 11px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #7d94b8;
cursor: pointer;
padding: 4px 10px;
border-radius: 8px;
border: 1px solid #1a2436;
transition: color 0.12s, border-color 0.12s, background 0.12s;
}
.cde-kf-add-btn i {
font-size: 10px;
}
.cde-kf-add-btn:hover {
color: #ff3d5a;
border-color: #ff3d5a;
background: rgba(255, 61, 90, 0.08);
}
.cde-kf-card {
border: 1px solid #1a2436;
border-left: 3px solid #ff3d5a;
border-radius: 8px;
background: rgba(16, 22, 34, 0.7);
margin-bottom: 10px;
overflow: hidden;
transition: box-shadow 0.15s;
}
.cde-kf-card:hover {
box-shadow: 0 0 8px rgba(255, 61, 90, 0.2);
}
.cde-kf-card.cde-kf--metal {
border-left-color: #70706e;
}
.cde-kf-card.cde-kf--eau {
border-left-color: #009fe2;
}
.cde-kf-card.cde-kf--terre {
border-left-color: #be7364;
}
.cde-kf-card.cde-kf--feu {
border-left-color: #cd171a;
}
.cde-kf-card.cde-kf--bois {
border-left-color: #41a436;
}
.cde-kf-header {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 10px;
}
.cde-kf-header:hover .cde-kf-controls {
opacity: 1;
}
.cde-kf-aspect-icon {
width: 26px;
height: 26px;
object-fit: contain;
flex-shrink: 0;
}
.cde-kf-orient-icon {
width: 18px;
height: 18px;
object-fit: contain;
flex-shrink: 0;
opacity: 0.75;
}
.cde-kf-info {
flex: 1;
display: flex;
flex-direction: column;
min-width: 0;
}
.cde-kf-name {
font-size: 14px;
font-weight: 700;
font-family: "Averia", sans-serif;
color: #e2e8f4;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cde-kf-meta {
font-size: 10px;
color: #7d94b8;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.cde-kf-meta em {
color: #e2e8f4;
font-style: normal;
}
.cde-kf-roll-btn {
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
cursor: pointer;
color: #7d94b8;
flex-shrink: 0;
transition: color 0.15s, background 0.15s;
}
.cde-kf-roll-btn i {
font-size: 14px;
}
.cde-kf-roll-btn:hover {
color: #ff3d5a;
background: rgba(255, 61, 90, 0.15);
}
.cde-kf-controls {
display: flex;
align-items: center;
gap: 4px;
opacity: 0;
transition: opacity 0.12s;
flex-shrink: 0;
}
.cde-kf-controls a {
display: flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
border-radius: 3px;
color: #7d94b8;
cursor: pointer;
transition: color 0.12s, background 0.12s;
}
.cde-kf-controls a i {
font-size: 11px;
}
.cde-kf-controls a:hover {
color: #e2e8f4;
background: rgba(38, 56, 83, 0.3);
}
.cde-kf-style-row {
display: flex;
align-items: baseline;
gap: 8px;
padding: 4px 12px 6px 44px;
border-top: 1px solid rgba(26, 36, 54, 0.6);
background: rgba(16, 22, 34, 0.4);
}
.cde-kf-style-label {
font-size: 10px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #ff3d5a;
flex-shrink: 0;
}
.cde-kf-style-label i {
font-size: 9px;
}
.cde-kf-style-text {
font-size: 11px;
color: #e2e8f4;
font-family: "Averia", sans-serif;
font-style: italic;
}
.cde-kf-techniques {
list-style: none;
margin: 0;
padding: 0;
border-top: 1px solid rgba(26, 36, 54, 0.5);
}
.cde-kf-tech {
display: flex;
align-items: center;
gap: 6px;
padding: 5px 12px 5px 44px;
border-bottom: 1px solid rgba(26, 36, 54, 0.3);
opacity: 0.5;
transition: opacity 0.1s, background 0.1s;
}
.cde-kf-tech:last-child {
border-bottom: none;
}
.cde-kf-tech--mastered {
opacity: 1;
}
.cde-kf-tech:hover {
background: rgba(26, 36, 54, 0.2);
opacity: 1;
}
.cde-kf-tech-mastered {
font-size: 11px;
flex-shrink: 0;
width: 14px;
text-align: center;
}
.cde-kf-tech--mastered .cde-kf-tech-mastered {
color: #ff3d5a;
}
.cde-kf-tech:not(.cde-kf-tech--mastered) .cde-kf-tech-mastered {
color: #7d94b8;
}
.cde-act-badge {
font-size: 9px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 2px 5px;
border-radius: 3px;
flex-shrink: 0;
max-width: 110px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border: 1px solid currentColor;
}
.cde-act-badge.cde-act--action-attack {
color: #cd171a;
background: rgba(205, 23, 26, 0.1);
}
.cde-act-badge.cde-act--action-defense {
color: #009fe2;
background: rgba(0, 159, 226, 0.1);
}
.cde-act-badge.cde-act--action-aid {
color: #41a436;
background: rgba(65, 164, 54, 0.1);
}
.cde-act-badge.cde-act--action-attack-defense {
color: #70706e;
background: rgba(112, 112, 110, 0.12);
}
.cde-act-badge.cde-act--reaction {
color: #a85747;
background: rgba(168, 87, 71, 0.12);
}
.cde-act-badge.cde-act--dice {
color: #4a9eff;
background: rgba(74, 158, 255, 0.1);
}
.cde-act-badge.cde-act--damage-inflicted {
color: #ff6b35;
background: rgba(255, 107, 53, 0.1);
}
.cde-act-badge.cde-act--damage-received {
color: #7d94b8;
background: rgba(26, 36, 54, 0.2);
}
.cde-kf-tech-name {
flex: 1;
font-size: 12px;
color: #e2e8f4;
font-family: "Averia", sans-serif;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cde-kf-tech-name em {
color: #7d94b8;
}
.cde-kf-empty {
padding: 16px;
text-align: center;
font-size: 12px;
color: #7d94b8;
font-style: italic;
}
.cde-chat-random-component {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
padding: 8px 12px;
}
.cde-chat-component-label {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
font-family: "Averia", sans-serif;
}
.cde-chat-component-value {
font-size: 16px;
font-weight: 700;
color: #4a9eff;
text-shadow: 0 0 8px rgba(74, 158, 255, 0.5);
}
.cde-tabs {
margin-top: 12px;
border-bottom: 1px solid #1a2436;
}
.cde-tabs .item {
color: #7d94b8;
padding: 8px 12px;
font-size: 11px;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.cde-tabs .item:hover {
color: #e2e8f4;
}
.cde-tabs .item.active {
color: #00d4d4;
background: #101622;
border: 1px solid #1a2436;
border-bottom: 1px solid #101622;
border-radius: 8px 8px 0 0;
}
/* =============================================
Global UI Rules
=============================================*/
#logo {
content: url("/systems/fvtt-chroniques-de-l-etrange/images/logo_jeu.webp");
width: 100px;
height: 100px;
margin-left: 7px;
margin-top: -2px;
}
#pause > img {
content: url("/systems/fvtt-chroniques-de-l-etrange/images/wheel.webp");
height: 192px;
width: 192px;
top: -45px;
left: calc(50% - 96px);
}
#pause.paused {
animation: none;
}
a.compendium-name,
a.entry-name,
strong.ellipsis {
font-family: "Averia";
}
/* concerne les pages de journaux */
.journal-header input {
font-family: "Averia";
}
.journal-entry-page h1 {
font-family: "Averia";
text-align: center;
color: hsla(249, 66%, 58%, 0.874);
border-bottom: 1px solid orange;
border-top: 1px solid orange;
}
.journal-entry-page h2 {
font-family: "Averia";
color: orange;
border-bottom: 0px;
border-top: 1px solid orange;
}
.journal-entry-page h3,
.journal-entry-page h4,
.journal-entry-page h5,
.journal-entry-page h6 {
font-family: "Averia";
color: hsla(249, 66%, 58%, 0.874);
border-bottom: 0px;
}
/* concerne le Tchat */
#interface .chat-message .message-header img {
max-width: 80px;
border-radius: 5px;
border: 0.5px solid black;
/* max-width: 50px; */
/* max-height: 50px; */
margin-right: 4px;
}
#interface .chat-message .message-header .message-sender {
width: 100px;
}
.cde-flex-center-text {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.cde-flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.cde-circle-input {
width: 44px !important;
height: 44px !important;
border-radius: 50%;
border: 2px solid #263853;
background: #101622;
color: #e2e8f4;
text-align: center;
font-size: 1.1rem;
font-weight: 700;
padding: 0;
flex-shrink: 0;
display: inline-block !important;
line-height: 40px;
vertical-align: middle;
box-sizing: border-box;
}
.cde-circle-input:focus {
outline: none;
border-color: #00d4d4;
box-shadow: 0 0 8px rgba(0, 212, 212, 0.4);
}
.cde-circle-input.cde-circle-sm {
width: 32px !important;
height: 32px !important;
font-size: 0.85rem;
line-height: 28px;
}
.cde-skills-table {
width: 100%;
border-collapse: collapse;
}
.cde-skills-table tr {
border-bottom: 1px solid #1a2436;
}
.cde-skills-table tr:last-child {
border-bottom: none;
}
.cde-skills-table td {
padding: 3px 4px;
vertical-align: middle;
}
.cde-skills-table td.click,
.cde-skills-table td.noclick {
width: 30px;
min-width: 30px;
text-align: center;
cursor: pointer;
}
.cde-skills-table td.click:hover img,
.cde-skills-table td.noclick:hover img {
filter: drop-shadow(0 0 5px #00d4d4);
}
.cde-skills-table td.noclick {
cursor: default;
opacity: 0.4;
}
.cde-skills-table .cde-skill-label {
white-space: nowrap;
font-size: 0.8rem;
padding-right: 8px;
}
.cde-skills-table .cde-val-cell {
width: 52px;
min-width: 52px;
text-align: center;
padding: 4px;
}
.cde-skills-table .cde-spec-cell {
width: 100%;
}
.cde-skills-table .cde-spec-cell input[type="text"] {
width: 100%;
}
.cde-skills-table .cde-bonus-cell {
white-space: nowrap;
font-family: monospace;
font-size: 0.65rem;
color: #7d94b8;
padding: 0 6px;
}
.cde-skills-table .cde-check-cell {
width: 22px;
text-align: center;
}
.cde-tt-block {
margin-bottom: 12px;
}
.cde-tt-block .cde-tt-row {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}
.cde-tt-block .cde-tt-labels {
margin-bottom: 4px;
}
.cde-tt-block .cde-tt-labels span {
width: 52px;
text-align: center;
font-family: "Averia", sans-serif;
font-size: 0.6rem;
text-transform: uppercase;
color: #7d94b8;
}
.cde-tt-block .cde-tt-labels .cde-tt-center {
width: 44px;
}
.cde-tt-block .cde-tt-yinyang {
width: 44px;
height: 44px;
opacity: 0.8;
}
.cde-tt-sanzing {
margin-bottom: 12px;
}
.cde-tt-sanzing .cde-tt-sz-header,
.cde-tt-sanzing .cde-tt-sz-row {
display: grid;
grid-template-columns: 36px 48px 1fr 48px 36px;
align-items: center;
gap: 6px;
padding: 4px 8px;
}
.cde-tt-sanzing .cde-tt-sz-header {
font-family: "Averia", sans-serif;
font-size: 0.6rem;
text-transform: uppercase;
color: #7d94b8;
text-align: center;
}
.cde-tt-sanzing .cde-tt-sz-row {
border-top: 1px solid #1a2436;
}
.cde-tt-sanzing .cde-tt-sz-row .cde-circle-input {
justify-self: center;
}
.cde-tt-sanzing .cde-tt-level {
text-align: center;
font-family: monospace;
font-size: 0.75rem;
font-weight: 700;
color: #7d94b8;
}
.cde-aspects-header {
display: flex;
justify-content: center;
margin-bottom: 10px;
}
.cde-aspects-header .cde-aspects-logo {
max-height: 48px;
opacity: 0.7;
}
.cde-aspects-grid {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
margin-bottom: 12px;
}
.cde-aspect-card {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
padding: 10px 8px;
border-radius: 4px;
background: #101622;
border: 1px solid #1a2436;
min-width: 88px;
flex: 1 1 88px;
max-width: 120px;
}
.cde-aspect-card .cde-aspect-top {
display: flex;
flex-direction: column;
align-items: center;
gap: 3px;
}
.cde-aspect-card .cde-aspect-gif {
width: 36px;
height: 36px;
}
.cde-aspect-card .cde-aspect-name {
font-family: "Averia";
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.cde-aspect-card .cde-aspect-roll {
display: flex;
align-items: center;
gap: 6px;
}
.cde-aspect-card .cde-aspect-roll .cde-roll-trigger {
cursor: pointer;
display: flex;
align-items: center;
}
.cde-aspect-card .cde-aspect-roll .cde-roll-trigger:hover img {
filter: drop-shadow(0 0 5px currentColor);
}
.cde-aspect-card .cde-aspect-qual {
font-size: 0.6rem;
color: #7d94b8;
text-align: center;
line-height: 1.3;
}
.cde-aspect-card.cde-aspect--fire {
border-color: #ff3d5a;
}
.cde-aspect-card.cde-aspect--fire .cde-aspect-name {
color: #ff3d5a;
}
.cde-aspect-card.cde-aspect--fire .cde-circle-input:focus {
border-color: #ff3d5a;
box-shadow: 0 0 6px #ff3d5a;
}
.cde-aspect-card.cde-aspect--wood {
border-color: #44bb44;
}
.cde-aspect-card.cde-aspect--wood .cde-aspect-name {
color: #55cc55;
}
.cde-aspect-card.cde-aspect--wood .cde-circle-input:focus {
border-color: #55cc55;
box-shadow: 0 0 6px #55cc55;
}
.cde-aspect-card.cde-aspect--earth {
border-color: #aa7722;
}
.cde-aspect-card.cde-aspect--earth .cde-aspect-name {
color: #cc9933;
}
.cde-aspect-card.cde-aspect--earth .cde-circle-input:focus {
border-color: #cc9933;
box-shadow: 0 0 6px #cc9933;
}
.cde-aspect-card.cde-aspect--water {
border-color: #4a9eff;
}
.cde-aspect-card.cde-aspect--water .cde-aspect-name {
color: #4a9eff;
}
.cde-aspect-card.cde-aspect--water .cde-circle-input:focus {
border-color: #4a9eff;
box-shadow: 0 0 6px #4a9eff;
}
.cde-aspect-card.cde-aspect--metal {
border-color: #7d94b8;
}
.cde-aspect-card.cde-aspect--metal .cde-aspect-name {
color: #e2e8f4;
}
.cde-aspect-card.cde-aspect--metal .cde-circle-input:focus {
border-color: #00d4d4;
box-shadow: 0 0 6px #00d4d4;
}
.cde-nghang-diagram {
display: flex;
justify-content: center;
margin-top: 8px;
}
.cde-nghang-diagram img {
max-width: 100%;
max-height: 180px;
opacity: 0.45;
border-radius: 4px;
}
.img-die-sm {
width: 27px !important;
height: 27px !important;
flex-shrink: 0;
}
.cde-magics-table td.image {
width: 2.2%;
}
.cde-magics-table td.image.td-die {
width: 2%;
}
.cde-magics-table td.value {
width: 25%;
}
.cde-magics-table td.td-spacer {
width: 2.2%;
}
.chancethrow {
display: flex;
justify-content: center;
align-items: center;
}
.cde-item-group-label {
font-family: "Averia", sans-serif;
font-size: 0.65rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.15em;
color: #7d94b8;
padding: 2px 6px;
border-left: 2px solid #263853;
margin: 8px 0 2px;
flex-shrink: 0;
}
ol.item-list {
list-style: none;
margin: 0 0 4px;
padding: 0;
}
ol.item-list li.item {
display: flex;
align-items: center;
gap: 8px;
padding: 3px 6px;
border-radius: 4px;
background: #101622;
border: 1px solid #1a2436;
margin-bottom: 2px;
}
ol.item-list li.item img {
border: none;
border-radius: 3px;
flex-shrink: 0;
}
ol.item-list li.item h4.item-name {
flex: 1 1 0;
margin: 0;
font-size: 13px;
color: #e2e8f4;
}
ol.item-list li.item .cde-item-stat {
font-family: monospace;
font-size: 11px;
color: #7d94b8;
}
ol.item-list li.item .item-controls {
display: flex;
gap: 4px;
flex-shrink: 0;
}
ol.item-list li.item .item-controls a.item-control {
color: #7d94b8;
}
ol.item-list li.item .item-controls a.item-control:hover {
color: #e2e8f4;
}
.cde-roll-prompt {
background: #080c14;
color: #e2e8f4;
font-family: "Averia", sans-serif;
padding: 12px 14px;
}
.cde-roll-prompt.cde-roll-prompt--magic {
min-width: 340px;
}
.cde-roll-prompt .cde-roll-header {
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 8px;
margin-bottom: 10px;
border-bottom: 1px solid #1a2436;
}
.cde-roll-prompt .cde-roll-title {
font-size: 13px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #e2e8f4;
}
.cde-roll-prompt .cde-roll-dice-count {
font-size: 36px;
font-weight: 900;
color: #00d4d4;
line-height: 1;
text-align: center;
margin: 4px 0 8px;
text-shadow: 0 0 12px rgba(0, 212, 212, 0.6);
}
.cde-roll-prompt .cde-roll-dice-count .cde-roll-dice-label {
font-size: 14px;
font-weight: 600;
color: #7d94b8;
margin-left: 4px;
}
.cde-roll-prompt .cde-roll-section {
margin-bottom: 8px;
}
.cde-roll-prompt .cde-roll-section.cde-roll-section--separator {
padding-bottom: 10px;
margin-bottom: 10px;
border-bottom: 1px dashed #1a2436;
}
.cde-roll-prompt .cde-roll-section-title {
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
margin: 0 0 6px;
}
.cde-roll-prompt .cde-roll-fields {
display: flex;
flex-direction: column;
gap: 5px;
}
.cde-roll-prompt .cde-roll-field {
display: flex;
align-items: center;
gap: 8px;
}
.cde-roll-prompt .cde-roll-field label {
flex: 0 0 160px;
font-size: 11px;
color: #7d94b8;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.cde-roll-prompt .cde-roll-field select,
.cde-roll-prompt .cde-roll-field .cde-roll-input {
flex: 1;
background: #101622;
border: none;
border-bottom: 1px solid #1a2436;
color: #e2e8f4;
font-family: monospace;
font-size: 13px;
padding: 3px 6px;
border-radius: 2px;
}
.cde-roll-prompt .cde-roll-field select:focus,
.cde-roll-prompt .cde-roll-field .cde-roll-input:focus {
outline: none;
border-bottom-color: #00d4d4;
box-shadow: 0 1px 0 0 #00d4d4;
}
.cde-roll-prompt .cde-roll-field select option {
background: #101622;
color: #e2e8f4;
}
.cde-roll-prompt .cde-roll-hint {
font-size: 10px;
color: #7d94b8;
margin: 4px 0 0;
font-style: italic;
}
[data-aspect="wood"] {
--rr-accent: #41a436;
--rr-accent-bg: rgba(65, 164, 54, 0.12);
}
[data-aspect="wood"] .cde-rr-row--auspicious {
--rr-color: #cd171a;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp);
}
[data-aspect="wood"] .cde-rr-row--noxious {
--rr-color: #009fe2;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp);
}
[data-aspect="wood"] .cde-rr-row--loksyu {
--rr-color: #a85747;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp);
}
[data-aspect="wood"] .cde-rr-row--tinji {
--rr-color: #70706e;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp);
}
[data-aspect="fire"] {
--rr-accent: #cd171a;
--rr-accent-bg: rgba(205, 23, 26, 0.12);
}
[data-aspect="fire"] .cde-rr-row--auspicious {
--rr-color: #a85747;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp);
}
[data-aspect="fire"] .cde-rr-row--noxious {
--rr-color: #41a436;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp);
}
[data-aspect="fire"] .cde-rr-row--loksyu {
--rr-color: #70706e;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp);
}
[data-aspect="fire"] .cde-rr-row--tinji {
--rr-color: #009fe2;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp);
}
[data-aspect="earth"] {
--rr-accent: #a85747;
--rr-accent-bg: rgba(168, 87, 71, 0.12);
}
[data-aspect="earth"] .cde-rr-row--auspicious {
--rr-color: #70706e;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp);
}
[data-aspect="earth"] .cde-rr-row--noxious {
--rr-color: #cd171a;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp);
}
[data-aspect="earth"] .cde-rr-row--loksyu {
--rr-color: #009fe2;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp);
}
[data-aspect="earth"] .cde-rr-row--tinji {
--rr-color: #41a436;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp);
}
[data-aspect="metal"] {
--rr-accent: #70706e;
--rr-accent-bg: rgba(112, 112, 110, 0.16);
}
[data-aspect="metal"] .cde-rr-row--auspicious {
--rr-color: #009fe2;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp);
}
[data-aspect="metal"] .cde-rr-row--noxious {
--rr-color: #a85747;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp);
}
[data-aspect="metal"] .cde-rr-row--loksyu {
--rr-color: #41a436;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp);
}
[data-aspect="metal"] .cde-rr-row--tinji {
--rr-color: #cd171a;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp);
}
[data-aspect="water"] {
--rr-accent: #009fe2;
--rr-accent-bg: rgba(0, 159, 226, 0.12);
}
[data-aspect="water"] .cde-rr-row--auspicious {
--rr-color: #41a436;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp);
}
[data-aspect="water"] .cde-rr-row--noxious {
--rr-color: #70706e;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp);
}
[data-aspect="water"] .cde-rr-row--loksyu {
--rr-color: #cd171a;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp);
}
[data-aspect="water"] .cde-rr-row--tinji {
--rr-color: #a85747;
--rr-icon: url(/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp);
}
.cde-roll-result {
background: #080c14;
color: #e2e8f4;
font-family: 'Share Tech Mono', monospace;
border-radius: 4px;
border: 1px solid #1a2436;
overflow: hidden;
}
.cde-roll-result .cde-rr-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 12px;
background: var(--rr-accent-bg, rgba(16, 22, 34, 0.8));
border-left: 4px solid var(--rr-accent, #1a2436);
border-bottom: 1px solid #1a2436;
gap: 8px;
}
.cde-roll-result .cde-rr-header .cde-rr-header-left {
display: flex;
align-items: center;
gap: 10px;
flex: 1;
}
.cde-roll-result .cde-rr-header .cde-rr-aspect-icon {
width: 32px;
height: 32px;
object-fit: contain;
filter: drop-shadow(0 0 4px var(--rr-accent, #1a2436));
border: none;
}
.cde-roll-result .cde-rr-header .cde-rr-header-text {
display: flex;
flex-direction: column;
}
.cde-roll-result .cde-rr-header .cde-rr-aspect-label {
font-size: 11px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--rr-accent, #e2e8f4);
text-shadow: 0 0 6px var(--rr-accent, transparent);
}
.cde-roll-result .cde-rr-header .cde-rr-roll-label {
font-size: 13px;
font-weight: 600;
color: #e2e8f4;
}
.cde-roll-result .cde-rr-header .cde-rr-header-right {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
}
.cde-roll-result .cde-rr-header .cde-rr-actor-avatar {
width: 28px;
height: 28px;
border-radius: 50%;
border: 1px solid var(--rr-accent, #1a2436);
object-fit: cover;
}
.cde-roll-result .cde-rr-header .cde-rr-actor-name {
font-size: 9px;
color: #7d94b8;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.cde-roll-result .cde-rr-hero {
display: flex;
align-items: center;
gap: 12px;
padding: 10px 16px;
background: rgba(16, 22, 34, 0.4);
}
.cde-roll-result .cde-rr-hero .cde-rr-hero-count {
font-size: 48px;
font-weight: 900;
line-height: 1;
color: var(--rr-accent, #e2e8f4);
text-shadow: 0 0 16px var(--rr-accent, transparent), 0 0 32px var(--rr-accent, transparent);
}
.cde-roll-result .cde-rr-hero .cde-rr-hero-right {
display: flex;
flex-direction: column;
}
.cde-roll-result .cde-rr-hero .cde-rr-hero-label {
font-size: 11px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--rr-accent, #e2e8f4);
}
.cde-roll-result .cde-rr-hero .cde-rr-hero-dice {
font-size: 13px;
color: #7d94b8;
margin-top: 2px;
}
.cde-roll-result .cde-rr-hero .cde-rr-hero-dice-label {
font-size: 10px;
}
.cde-roll-result .cde-rr-hero .cde-rr-spell-power {
margin-left: auto;
display: flex;
flex-direction: column;
align-items: flex-end;
border-left: 2px solid var(--rr-accent, #1a2436);
padding-left: 10px;
}
.cde-roll-result .cde-rr-hero .cde-rr-spell-power .cde-rr-spell-power-count {
font-size: 32px;
font-weight: 900;
line-height: 1;
color: var(--rr-accent, #e2e8f4);
text-shadow: 0 0 12px var(--rr-accent, transparent);
}
.cde-roll-result .cde-rr-hero .cde-rr-spell-power .cde-rr-spell-power-label {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
}
.cde-roll-result .cde-rr-details {
display: flex;
flex-direction: column;
gap: 2px;
padding: 6px 10px;
}
.cde-roll-result .cde-rr-row {
display: flex;
align-items: center;
gap: 8px;
padding: 3px 6px;
border-radius: 3px;
background: rgba(16, 22, 34, 0.6);
color: var(--rr-color, #7d94b8);
}
.cde-roll-result .cde-rr-row .cde-rr-count {
font-size: 18px;
font-weight: 900;
line-height: 1;
min-width: 26px;
text-align: center;
text-shadow: 0 0 6px currentColor;
}
.cde-roll-result .cde-rr-row .cde-rr-icon {
width: 22px;
height: 22px;
background-image: var(--rr-icon);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
flex-shrink: 0;
opacity: 0.85;
}
.cde-roll-result .cde-rr-row .cde-rr-label {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.07em;
flex: 1;
}
.cde-roll-result .cde-rr-row .cde-rr-partition {
font-size: 9px;
color: #7d94b8;
margin-left: 4px;
}
.cde-roll-result .cde-rr-footer {
padding: 5px 12px;
border-top: 1px solid #1a2436;
background: rgba(16, 22, 34, 0.3);
display: flex;
align-items: baseline;
gap: 6px;
}
.cde-roll-result .cde-rr-footer .cde-rr-footer-label {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
color: #7d94b8;
letter-spacing: 0.08em;
}
.cde-roll-result .cde-rr-footer .cde-rr-footer-text {
font-size: 10px;
color: #7d94b8;
font-family: "Averia", sans-serif;
}
.cde-roll-result .cde-dice-grid {
display: grid;
grid-template-columns: repeat(10, 1fr);
gap: 3px;
padding: 8px 8px 6px;
border-top: 1px solid #1a2436;
}
.cde-roll-result .cde-dice-grid .cde-dice-cell {
display: flex;
flex-direction: column;
align-items: center;
gap: 1px;
}
.cde-roll-result .cde-dice-grid .cde-dice-cell .cde-dice-count {
font-size: 12px;
font-weight: 700;
color: #e2e8f4;
line-height: 1;
}
.cde-roll-result .cde-dice-grid .cde-dice-cell .cde-dice-plate {
width: 100%;
border: none;
opacity: 0.65;
}
.cde-initiative-prompt .cde-roll-field {
flex-direction: column;
align-items: stretch;
gap: 4px;
}
.cde-initiative-prompt .cde-roll-field label {
flex: none;
font-size: 10px;
color: #7d94b8;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.cde-initiative-prompt .cde-roll-field select,
.cde-initiative-prompt .cde-roll-field .cde-roll-input {
flex: none;
width: 100%;
}
.cde-initiative-prompt .cde-initiative-base-row {
display: flex;
align-items: flex-end;
gap: 10px;
flex-wrap: nowrap;
}
.cde-initiative-prompt .cde-initiative-base-field {
flex-shrink: 0;
min-width: 70px;
}
.cde-initiative-prompt .cde-initiative-base-value {
display: block;
font-size: 22px;
font-weight: 800;
color: #4a9eff;
text-shadow: 0 0 8px rgba(74, 158, 255, 0.5);
text-align: center;
line-height: 1;
padding: 4px 0;
}
.cde-initiative-prompt .cde-initiative-op {
font-size: 18px;
font-weight: 700;
color: #7d94b8;
padding-bottom: 6px;
flex-shrink: 0;
align-self: flex-end;
}
.cde-initiative-prompt .cde-initiative-action-field {
flex: 1;
min-width: 0;
}
.cde-initiative-prompt .cde-initiative-select {
width: 100%;
}
.cde-initiative-prompt .cde-initiative-hint {
font-size: 10px;
font-family: "Averia", sans-serif;
color: #7d94b8;
text-align: center;
letter-spacing: 0.05em;
padding: 4px 0 0;
border-top: 1px solid #1a2436;
margin-top: 4px;
}
.cde-initiative-prompt .cde-initiative-icon {
font-size: 20px;
color: #4a9eff;
}
.cde-initiative-result {
background: #101622;
border: 1px solid #1a2436;
border-left: 4px solid #4a9eff;
border-radius: 8px;
overflow: hidden;
color: #e2e8f4;
}
.cde-initiative-result .cde-ir-header {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 12px;
background: rgba(74, 158, 255, 0.08);
border-bottom: 1px solid #1a2436;
}
.cde-initiative-result .cde-ir-avatar {
width: 36px;
height: 36px;
border-radius: 50%;
border: 2px solid #1a2436;
object-fit: cover;
flex-shrink: 0;
}
.cde-initiative-result .cde-ir-actor-info {
display: flex;
flex-direction: column;
gap: 2px;
}
.cde-initiative-result .cde-ir-actor-name {
font-size: 13px;
font-weight: 700;
color: #e2e8f4;
}
.cde-initiative-result .cde-ir-roll-label {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
font-family: "Averia", sans-serif;
}
.cde-initiative-result .cde-ir-formula {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 5px;
padding: 8px 12px;
background: rgba(8, 12, 20, 0.6);
border-bottom: 1px solid #1a2436;
font-family: monospace;
font-size: 12px;
}
.cde-initiative-result .cde-ir-formula-base {
color: #7d94b8;
font-size: 11px;
}
.cde-initiative-result .cde-ir-formula-val {
font-weight: 700;
color: #e2e8f4;
font-size: 13px;
}
.cde-initiative-result .cde-ir-formula-mod {
color: #ff3d5a;
}
.cde-initiative-result .cde-ir-formula-sep {
color: #7d94b8;
}
.cde-initiative-result .cde-ir-formula-eq {
color: #7d94b8;
font-size: 14px;
}
.cde-initiative-result .cde-ir-formula-total {
font-size: 16px;
font-weight: 800;
color: #4a9eff;
text-shadow: 0 0 6px rgba(74, 158, 255, 0.5);
}
.cde-initiative-result .cde-ir-hero {
display: flex;
align-items: center;
justify-content: center;
gap: 14px;
padding: 14px 12px;
}
.cde-initiative-result .cde-ir-init-value {
font-size: 48px;
font-weight: 900;
color: #4a9eff;
text-shadow: 0 0 12px rgba(74, 158, 255, 0.7), 0 0 24px rgba(74, 158, 255, 0.35);
line-height: 1;
font-family: 'Averia Regular', sans-serif;
}
.cde-initiative-result .cde-ir-hero-right {
display: flex;
flex-direction: column;
gap: 4px;
}
.cde-initiative-result .cde-ir-init-label {
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #7d94b8;
font-family: "Averia", sans-serif;
}
.cde-initiative-result .cde-ir-anti {
display: flex;
gap: 5px;
align-items: baseline;
}
.cde-initiative-result .cde-ir-anti-label {
font-size: 10px;
color: #7d94b8;
font-family: "Averia", sans-serif;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.cde-initiative-result .cde-ir-anti-value {
font-size: 14px;
font-weight: 700;
color: #ff3d5a;
text-shadow: 0 0 5px rgba(255, 61, 90, 0.4);
}