DataModels + Appv2 migration : OK

This commit is contained in:
2026-03-01 01:12:00 +01:00
parent 1ffb8b08fc
commit 6c70dc147c
130 changed files with 2998 additions and 741 deletions

View File

@@ -111,6 +111,28 @@
&:hover { color: #4b4a44; }
}
.horde-stat-label {
font-weight: bold;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 1rem;
font-variant: small-caps;
color: #4b4a44;
display: flex;
align-items: center;
}
.horde-stat-row {
align-items: center;
margin-bottom: 4px;
}
.horde-stat-sep {
color: #4b4a44;
font-weight: bold;
padding: 0 4px;
flex: 0;
}
.bol-footer {
height: 62px;
max-height: 62px;
@@ -346,12 +368,166 @@
}
.character-summary-container {
opacity: 0.95;
background: #f5f0e8;
padding: 4px;
// Table layout
.cs-table {
width: 100%;
margin: 0;
}
// Section headers (PJs / PNJs)
.cs-section-header {
background: linear-gradient(135deg, #7a0000, darkred);
padding: 4px 6px;
min-height: 28px;
align-items: center;
margin-top: 2px;
.item-name,
.cs-name-col {
font-family: "Wolfsbane2Expanded", cursive !important;
font-size: 1.1em !important;
color: #fff !important;
text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
.cs-group-header {
font-family: 'Signika', sans-serif !important;
font-size: 0.75em !important;
color: #ffdddd !important;
text-align: center;
justify-content: center;
text-transform: uppercase;
letter-spacing: 0.06em;
border-left: 1px solid rgba(255,255,255,0.25);
}
}
// Column sub-header row (abbrevs)
.cs-col-row {
background: #ede0cc;
min-height: 20px;
padding: 1px 6px;
align-items: center;
border-bottom: 1px solid #c8b89a;
.cs-col-header {
font-family: 'Signika', sans-serif !important;
font-size: 0.75em !important;
color: #7a0000 !important;
text-align: center;
justify-content: center;
font-weight: bold;
}
}
// Actor portrait
.cs-portrait-col {
flex: 0 0 34px;
width: 34px;
min-width: 34px;
display: flex;
align-items: center;
justify-content: center;
}
.cs-portrait {
width: 30px;
height: 30px;
border-radius: 3px;
border: 1px solid #c0a080;
object-fit: cover;
}
// Name column
.cs-name-col {
min-width: 9rem;
width: 9rem;
}
// Actor rows
.cs-actor-row {
min-height: 36px;
padding: 3px 4px;
border-bottom: 1px solid #d0c8b8;
align-items: center;
background: #faf6ee;
transition: background 0.15s;
&:hover {
background: #ede8dc;
}
}
// Actor name link
.cs-actor-name {
font-family: 'Signika', sans-serif;
font-size: 0.9em;
color: #7a0000;
font-weight: bold;
cursor: pointer;
text-decoration: none;
&:hover { text-decoration: underline; }
}
// Stat cells (clickable rolls)
.cs-stat {
justify-content: center;
text-align: center;
}
// Visual separator at start of a column group
.cs-group-sep {
border-left: 1px solid #c0a878;
}
.cs-col-row .cs-group-sep {
border-left: 1px solid #c0a878;
}
.cs-rollable {
display: inline-block;
min-width: 1.8em;
text-align: center;
color: #333;
font-size: 0.88em;
font-weight: bold;
font-family: 'Orbitron', sans-serif;
border-radius: 3px;
padding: 1px 3px;
cursor: pointer;
text-decoration: none;
&:hover {
background: darkred;
color: #fff;
}
}
// Resource cells (val/max)
.cs-resource {
justify-content: center;
font-size: 0.82em;
color: #555;
gap: 1px;
}
.cs-res-val { color: #191813; font-weight: bold; font-family: 'Orbitron', sans-serif; }
.cs-res-sep { color: #999; }
.cs-res-max { color: #888; font-family: 'Orbitron', sans-serif; }
// Horoscope inputs
.cs-input {
width: 3rem;
text-align: center;
border: 1px solid #c0a080;
border-radius: 3px;
padding: 2px 4px;
background: #fff;
font-size: 0.85em;
}
// Delete button
.actor-delete { color: #c0392b; }
.actor-delete:hover { color: #e74c3c; }
}
.character-summary-rollable {
text-decoration: underline;
}
.activated-green {
color: darkgreen;

View File

@@ -10,6 +10,156 @@ body.system-bol img#logo {
/* Reserved for future use */
}
.bol.dialog {
& > section.window-content {
background: white;
border: 10px solid transparent;
border-image: url("/systems/bol/ui/box-border-large.webp") 36 repeat;
border-image-outset: 1;
padding: 10px;
}
.window-title {
font-family: "Wolfsbane2Expanded", cursive;
color: #4b4a44;
}
.sheet-header {
text-align: center;
margin-bottom: 6px;
padding: 4px 0;
border-bottom: 2px solid darkred;
h3 {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 1.3rem;
color: #191813;
margin: 0;
}
}
.roll-box, .box-roll,
div.flexrow:has(.bg-darkred) {
border-radius: 6px;
overflow: hidden;
margin-bottom: 1px;
background: #f5f0e8;
gap: 2px;
.bg-darkred {
padding: 4px 10px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.78rem;
letter-spacing: 0.6px;
border-radius: 5px;
margin: 2px 0 2px 2px;
background: linear-gradient(135deg, #7a0000, darkred);
text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}
.cell {
background: transparent;
padding: 2px 6px;
display: flex;
align-items: center;
justify-content: center;
color: #191813;
flex-wrap: wrap;
label.checkbox {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
}
}
}
select, input[type="text"], input[type="number"] {
background: transparent !important;
color: #191813 !important;
border: none !important;
box-shadow: none !important;
font-size: 0.88rem;
width: 100%;
option {
background: #f5f0e8;
color: #191813;
}
option:checked, option:hover {
background: darkred;
color: white;
}
}
input:disabled {
color: #8b0000 !important;
font-weight: bold;
font-size: 0.95rem;
}
.dice-options-cell {
display: flex !important;
flex-wrap: wrap;
gap: 4px;
padding: 4px 6px;
justify-content: center;
.dice-option {
display: flex;
align-items: center;
gap: 3px;
padding: 2px 7px;
border-radius: 4px;
font-size: 0.82rem;
cursor: pointer;
white-space: nowrap;
input[type="radio"] { margin: 0; }
}
.bdice-label { background: #e8f5e8; color: #1a5c1a; border: 1px solid #4caf50; }
.neutral-label { background: #f0ede5; color: #4b4a44; border: 1px solid #9e9e7a; }
.mdice-label { background: #fce8e8; color: #7a0000; border: 1px solid #e57373; }
}
}
.bol.sheet, .bol.dialog {
footer.form-footer {
display: flex;
gap: 8px;
margin-top: 8px;
padding-top: 6px;
border-top: 2px solid darkred;
button {
flex: 1;
background: linear-gradient(135deg, #7a0000, darkred);
color: white;
border: 1px solid #6b0000;
border-radius: 5px;
padding: 5px 10px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.95rem;
letter-spacing: 0.6px;
text-shadow: 0 1px 2px rgba(0,0,0,0.4);
cursor: pointer;
transition: background 0.15s;
i { margin-right: 4px; }
&:hover { background: linear-gradient(135deg, #9b0000, #c00000); }
&[type="button"] {
background: linear-gradient(135deg, #2a2a2a, #4b4a44);
border-color: #2a2a2a;
&:hover { background: linear-gradient(135deg, #3a3a3a, #5b5a54); }
}
}
}
}
.bol.sheet {
.window-header {
border: none;
@@ -88,6 +238,13 @@ body.system-bol img#logo {
border: 1px solid #4b4a44 !important;
border-radius: 0.5rem;
text-align: center;
&[type="select"],
&:is(select) {
border: 1px solid #4b4a44 !important;
border-radius: 0.5rem;
background-color: #2a2a2a30;
}
}
}
}
@@ -170,6 +327,18 @@ body.system-bol img#logo {
margin-top: 6px;
margin-bottom: 6px;
}
.editor,
.editor-content,
prose-mirror {
color: #191813;
}
prose-mirror .editor-content,
prose-mirror p,
prose-mirror div,
prose-mirror span {
color: #191813 !important;
}
}
&.description {
@@ -195,6 +364,12 @@ body.system-bol img#logo {
font-size: 0.95rem;
margin-left: 6px;
}
select.header-field-value {
background-color: #2a2a2a30;
border: 1px solid #4b4a44 !important;
border-radius: 0.5rem;
color: #4b4a44;
}
}
}
}

View File

@@ -176,13 +176,14 @@
.form-group {
display: flex;
flex-direction: row;
align-items: center;
align-items: flex-start;
margin: 3px 0;
label {
> label:not(.checkbox) {
flex: 0 0 40%;
color: #191813;
font-weight: bold;
padding-top: 2px;
}
input[type="checkbox"] {
@@ -201,6 +202,12 @@
.form-fields {
flex: 1;
}
.form-fields {
display: flex;
flex-direction: column;
gap: 4px;
}
}
label.checkbox {
@@ -218,6 +225,13 @@
}
}
.vehicle-checkboxes {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 6px 16px;
padding: 4px 0;
}
input[type="text"],
input[type="number"],
input[type="text"]:hover,

View File

@@ -171,23 +171,33 @@
}
h2.critical {
color: green;
font-family: "Wolfsbane2Expanded", cursive;
color: #1a7a1a;
font-weight: bold;
font-size: 1.1rem;
text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
h2.fumble {
color: red;
font-family: "Wolfsbane2Expanded", cursive;
color: #8b0000;
font-weight: bold;
font-size: 1.1rem;
text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
h2.success {
color: darkgreen;
font-family: "Wolfsbane2Expanded", cursive;
color: #1a5c1a;
font-weight: bold;
font-size: 1.05rem;
}
h2.failure {
font-family: "Wolfsbane2Expanded", cursive;
color: darkred;
font-weight: bold;
font-size: 1.05rem;
}
h2.roll {
@@ -208,13 +218,12 @@ h2.bad {
.chat-message {
margin: 3px;
padding: 10px;
font-size: 14px;
border-radius: 0;
background-color: white;
background-image: url("/systems/bol/ui/box-border-large.webp");
background-repeat: no-repeat;
background-size: 100% 100%;
padding: 6px 8px;
font-size: 13px;
border-radius: 3px;
background-color: #faf7f2;
border: 1px solid #d4c8b0;
box-shadow: 0 1px 3px rgba(0,0,0,0.12);
.message-header {
.flavor-text {
@@ -222,8 +231,555 @@ h2.bad {
font-size: 14px;
h2 {
font-family: "Modesto Condensed", "Palatino Linotype", serif;
font-size: 20px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 1.1rem;
margin: 2px 0;
}
}
}
// Status banner (success/failure h2)
h2.success, h2.failure, h2.critical, h2.fumble {
display: flex;
align-items: center;
gap: 6px;
padding: 4px 10px;
border-radius: 4px;
margin: 0 0 6px 0;
font-size: 1rem;
letter-spacing: 0.5px;
i { font-size: 0.9em; }
}
h2.success, h2.critical {
background: linear-gradient(135deg, #1a5c1a20, #2d7a2d15);
border: 1px solid #4caf5040;
color: #1a5c1a;
}
h2.critical {
background: linear-gradient(135deg, #1a5c1a30, #2d7a2d25);
border-color: #4caf5070;
}
h2.failure {
background: linear-gradient(135deg, #7a000015, #8b000010);
border: 1px solid #8b000030;
color: #8b0000;
}
h2.fumble {
background: linear-gradient(135deg, #7a000025, #8b000020);
border: 1px solid #8b000060;
color: #6b0000;
}
h3 {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.95rem;
color: #191813;
margin: 2px 0 5px 0;
border-bottom: 1px solid #d4c8b0;
padding-bottom: 3px;
letter-spacing: 0.3px;
}
.chat-icon {
float: right;
border: 1px solid #c4a882;
box-shadow: 1px 1px 3px rgba(0,0,0,0.25);
border-radius: 3px;
margin: 0 0 4px 6px;
width: 52px;
height: 52px;
object-fit: cover;
}
.actions-section {
font-size: 0.82rem;
color: #4b4a44;
line-height: 1.4;
& > div {
margin: 2px 0;
}
}
.chat-button,
.chat-damage-roll,
.chat-damage-apply,
.damage-handling,
.recup-vitalite {
display: block;
width: 100%;
margin: 3px 0;
padding: 4px 10px;
background: linear-gradient(135deg, #2a2a2a, #4b4a44);
color: #e8e0d0;
border: 1px solid #2a2a2a;
border-radius: 4px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.82rem;
letter-spacing: 0.4px;
cursor: pointer;
text-align: center;
transition: background 0.15s;
&:hover { background: linear-gradient(135deg, #3a3a3a, #5b5a54); }
&.hero-reroll {
background: linear-gradient(135deg, #7a5500, #a07000);
border-color: #6a4500;
&:hover { background: linear-gradient(135deg, #9a6500, #c08000); }
}
&.transform-heroic-roll, &.transform-legendary-roll {
background: linear-gradient(135deg, #7a0000, darkred);
border-color: #6b0000;
&:hover { background: linear-gradient(135deg, #9b0000, #c00000); }
}
}
// Dommages normaux
.chat-damage-roll[data-damage-mode="normal-damage"] {
background: linear-gradient(135deg, #7a0000, darkred);
border-color: #6b0000;
&:hover { background: linear-gradient(135deg, #9b0000, #c00000); }
}
// Dommages +6 / +12 (critique)
.chat-damage-roll[data-damage-mode^="damage-plus"] {
background: linear-gradient(135deg, #5a0070, #7a00a0);
border-color: #4a0060;
&:hover { background: linear-gradient(135deg, #7a0090, #9a00c0); }
}
// Appliquer dommages
.chat-damage-apply {
background: linear-gradient(135deg, #7a0000, darkred);
border-color: #6b0000;
&:hover { background: linear-gradient(135deg, #9b0000, #c00000); }
}
// Récupération
.recup-vitalite {
background: linear-gradient(135deg, #1a5c1a, #2d7a2d);
border-color: #1a4a1a;
&:hover { background: linear-gradient(135deg, #2a7a2a, #3d9a3d); }
}
// Défense/gestion dommages
.damage-handling {
background: linear-gradient(135deg, #7a5500, #a07000);
border-color: #6a4500;
&:hover { background: linear-gradient(135deg, #9a6500, #c08000); }
&[data-defense-mode="damage-not-applied"] {
background: linear-gradient(135deg, #1a5c1a, #2d7a2d);
border-color: #1a4a1a;
&:hover { background: linear-gradient(135deg, #2a7a2a, #3d9a3d); }
}
&[data-defense-mode="hero-in-extremis"], &[data-defense-mode="hero-reduce-damage"] {
background: linear-gradient(135deg, #7a0000, darkred);
border-color: #6b0000;
&:hover { background: linear-gradient(135deg, #9b0000, #c00000); }
}
}
// Damage & defense cards
.bol-damage-card, .bol-defense-card {
.damage-card-header, .defense-card-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 6px;
padding-bottom: 5px;
border-bottom: 1px solid #d4c8b0;
.damage-weapon-img {
width: 44px;
height: 44px;
border: 1px solid #c4a882;
border-radius: 3px;
box-shadow: 1px 1px 3px rgba(0,0,0,0.25);
object-fit: cover;
flex: 0 0 44px;
}
.damage-card-title {
flex: 1;
display: flex;
flex-direction: column;
gap: 2px;
.damage-card-label {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.75rem;
color: #7a0000;
letter-spacing: 0.5px;
text-transform: uppercase;
}
.damage-weapon-name {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.9rem;
color: #191813;
letter-spacing: 0.3px;
}
.damage-formula {
font-size: 0.78rem;
color: #6b6b5a;
font-style: italic;
}
.damage-total-badge {
display: inline-block;
background: linear-gradient(135deg, #7a0000, darkred);
color: #e8d890;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 1.2rem;
font-weight: bold;
padding: 1px 10px;
border-radius: 4px;
letter-spacing: 1px;
align-self: flex-start;
&.damage-total-badge--hit {
background: linear-gradient(135deg, #7a5500, #a07000);
}
}
}
}
.damage-target {
font-size: 0.8rem;
color: #4b4a44;
font-style: italic;
margin-bottom: 4px;
}
.damage-note {
font-size: 0.78rem;
color: #4b4a44;
padding: 2px 6px;
margin-bottom: 4px;
border-left: 2px solid #c4a882;
&.damage-note--warn {
border-left-color: darkred;
color: darkred;
}
}
.defense-hero-separator {
text-align: center;
font-size: 0.72rem;
color: #8b7355;
font-family: "IMFellDWPicaSC-Regular", serif;
font-style: italic;
margin: 3px 0 1px;
}
.defense-footer-note {
font-size: 0.72rem;
color: #8b7355;
font-style: italic;
text-align: center;
margin-top: 4px;
padding-top: 3px;
border-top: 1px dashed #d4c8b0;
}
}
.bol-defense-summary-card {
.defense-summary-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 6px;
padding-bottom: 5px;
border-bottom: 1px solid #d4c8b0;
.damage-weapon-img {
width: 44px;
height: 44px;
border: 1px solid #c4a882;
border-radius: 3px;
box-shadow: 1px 1px 3px rgba(0,0,0,0.25);
object-fit: cover;
flex: 0 0 44px;
}
}
.defense-summary-details {
display: flex;
flex-direction: column;
gap: 3px;
}
.defense-detail {
font-size: 0.82rem;
color: #4b4a44;
padding: 1px 4px;
border-left: 2px solid #c4a882;
&.warning {
border-left-color: darkred;
color: darkred;
}
}
.defense-final {
margin-top: 5px;
padding: 3px 8px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.9rem;
color: #191813;
background: #f0ece0;
border-radius: 3px;
border-left: 3px solid darkred;
&.defense-final--safe {
border-left-color: #4a7a4a;
color: #2a5a2a;
background: #e8f5e8;
}
}
.damage-total-badge--none {
background: linear-gradient(135deg, #4a7a4a, #2d5a2d) !important;
}
}
// Vitality / death card
.bol-vitality-card {
.vitality-card-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 6px;
padding-bottom: 5px;
border-bottom: 2px solid #4b1010;
.damage-weapon-img {
width: 44px;
height: 44px;
border: 1px solid #c4a882;
border-radius: 3px;
box-shadow: 1px 1px 3px rgba(0,0,0,0.25);
object-fit: cover;
flex: 0 0 44px;
}
}
.vitality-card-body {
display: flex;
flex-direction: column;
gap: 3px;
}
.vitality-detail {
font-size: 0.82rem;
color: #4b4a44;
padding: 1px 4px;
border-left: 2px solid #c4a882;
}
.vitality-hint {
font-size: 0.78rem;
color: #6b6b5a;
font-style: italic;
padding-left: 6px;
}
.vitality-dead {
margin-top: 4px;
padding: 3px 8px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.9rem;
color: #f0e8d0;
background: linear-gradient(135deg, #4b1010, #7a0000);
border-radius: 3px;
}
.vitality-epitaph {
font-size: 0.78rem;
color: #6b6b5a;
font-style: italic;
text-align: center;
margin-top: 3px;
}
}
// Spell card
.bol-spell-card {
margin: 6px 0;
.spell-card-header {
display: flex;
align-items: center;
gap: 8px;
padding: 5px 0;
border-bottom: 1px solid #d4c8b0;
.spell-img {
width: 40px; height: 40px;
border: 1px solid #c4a882;
border-radius: 3px;
object-fit: cover;
flex: 0 0 40px;
}
.spell-card-title {
flex: 1;
display: flex;
flex-direction: column;
gap: 3px;
.spell-name {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.9rem;
color: #191813;
}
.spell-stats {
display: flex;
flex-wrap: wrap;
gap: 4px;
.spell-stat-badge {
display: inline-block;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.72rem;
padding: 1px 7px;
border-radius: 3px;
letter-spacing: 0.3px;
&.cost {
background: linear-gradient(135deg, #3a0080, #6a00c0);
color: #e8d0ff;
border: 1px solid #5a00a0;
}
&.remaining {
background: linear-gradient(135deg, #1a4a6a, #2a6a9a);
color: #d0e8ff;
border: 1px solid #1a3a5a;
}
}
}
}
}
}
// Alchemy card
.bol-alchemy-card {
margin: 6px 0;
.alchemy-card-header {
display: flex;
align-items: center;
gap: 8px;
padding-bottom: 5px;
border-bottom: 1px solid #d4c8b0;
.alchemy-img {
width: 40px; height: 40px;
border: 1px solid #c4a882;
border-radius: 3px;
object-fit: cover;
flex: 0 0 40px;
}
.alchemy-card-title {
flex: 1;
display: flex;
flex-direction: column;
gap: 3px;
.alchemy-name {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.9rem;
color: #191813;
}
.alchemy-stat-badge {
display: inline-block;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.72rem;
padding: 1px 7px;
border-radius: 3px;
background: linear-gradient(135deg, #5a3a00, #8a6000);
color: #ffe0a0;
border: 1px solid #4a3000;
}
}
}
.alchemy-result {
font-size: 0.78rem;
font-style: italic;
padding: 4px 6px;
margin-top: 5px;
border-radius: 3px;
line-height: 1.4;
&.success {
color: #1a4a1a;
background: #e8f5e8;
border: 1px solid #a0d0a0;
}
&.failure {
color: #4a1a1a;
background: #f5e8e8;
border: 1px solid #d0a0a0;
}
}
}
// Horoscope card
.bol-horoscope-card {
margin: 6px 0;
.horoscope-card-header {
display: flex;
align-items: center;
gap: 8px;
padding-bottom: 5px;
border-bottom: 1px solid #d4c8b0;
.horoscope-icon {
font-size: 1.6rem;
color: #8a6500;
flex: 0 0 auto;
}
.horoscope-card-title {
flex: 1;
display: flex;
flex-direction: column;
gap: 3px;
.horoscope-type {
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.9rem;
color: #191813;
}
.horoscope-stat-badge {
display: inline-block;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.72rem;
padding: 1px 7px;
border-radius: 3px;
background: linear-gradient(135deg, #6a5500, #a08000);
color: #ffe890;
border: 1px solid #5a4500;
}
}
}
.horoscope-result {
.horoscope-text {
display: block;
font-size: 0.78rem;
font-style: italic;
padding: 4px 6px;
margin-top: 5px;
border-radius: 3px;
line-height: 1.4;
&.success {
color: #1a4a1a;
background: #e8f5e8;
border: 1px solid #a0d0a0;
}
&.failure {
color: #4a1a1a;
background: #f5e8e8;
border: 1px solid #d0a0a0;
}
}
}
}
@@ -232,30 +788,97 @@ h2.bad {
.dice-roll {
.dice-result {
.dice-formula {
border-radius: 0px;
border: 1px inset lightgray;
background-color: #282828;
color: white;
border-radius: 4px;
border: 1px solid #555;
background: linear-gradient(135deg, #1a1a1a, #2a2a2a);
color: #d0c8b8;
font-size: 0.8rem;
padding: 2px 8px;
text-align: center;
margin-bottom: 3px;
}
.dice-tooltip {
background: #1a1a1a;
border: 1px solid #444;
border-radius: 4px;
.tooltip-part {
.part-total {
border-radius: 0px;
border: 1px inset lightgray;
border-radius: 0;
border: 1px inset #444;
background-color: #2a2a2a;
color: white;
color: #d0c8b8;
}
}
}
.dice-total {
border-radius: 0px;
border: 1px inset lightgray;
background-color: #2a2a2a;
color: white;
border-radius: 4px;
border: 2px solid #4b4a44;
background: linear-gradient(135deg, #191813, #2a2a2a);
color: #e8d890;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 1.4rem;
font-weight: bold;
letter-spacing: 1px;
padding: 2px 0;
margin-top: 3px;
}
}
}
}
}
.bol-welcome-card {
.welcome-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 8px;
padding-bottom: 6px;
border-bottom: 2px solid darkred;
.welcome-logo {
width: 52px;
height: 52px;
object-fit: contain;
flex: 0 0 52px;
}
}
.welcome-body {
font-size: 0.82rem;
color: #191813;
line-height: 1.4;
p {
margin: 4px 0;
padding-left: 4px;
border-left: 2px solid #d4c8b0;
}
a { color: darkred; }
}
.welcome-footer {
margin-top: 8px;
padding: 4px 10px;
font-family: "Wolfsbane2Expanded", cursive;
font-size: 0.95rem;
color: #e8d890;
background: linear-gradient(135deg, #7a0000, darkred);
border-radius: 4px;
letter-spacing: 0.5px;
}
.welcome-warning {
margin-top: 6px;
padding: 4px 8px;
font-size: 0.8rem;
color: #7a0000;
background: #fff3f3;
border: 1px solid #e57373;
border-radius: 3px;
}
}

View File

@@ -23,6 +23,17 @@
box-shadow: none;
}
/* Hide number input spinners */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
appearance: textfield;
}
input:disabled:hover,
select:disabled:hover,
textarea:disabled:hover,

View File

@@ -9,6 +9,22 @@
src: url(https://fonts.gstatic.com/s/contrailone/v10/eLGbP-j_JA-kG0_Zo51noafdZQ.ttf) format('truetype');
}
@font-face {
font-family: 'Orbitron';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/orbitron/v31/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyGy6BoWgz.woff2) format('woff2');
}
@font-face {
font-family: 'Orbitron';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/orbitron/v31/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyKS6BoWgz.woff2) format('woff2');
}
@font-face {
font-family: "CCMeanwhile";
src: url('../fonts/ccmeanwhile-regular.ttf');