Files
2026-05-12 16:00:41 -04:00

539 lines
11 KiB
CSS

.charsheet {
--qualin-ink: #1d221a;
--qualin-muted: #596451;
--qualin-panel: #f5edd8;
--qualin-panel-strong: #ecdfc2;
--qualin-accent: #566b2f;
--qualin-accent-dark: #39471f;
--qualin-border: #b39b6b;
--qualin-shadow: rgba(31, 31, 20, 0.12);
--qualin-sky: #d9e4cf;
color: var(--qualin-ink);
font-family: Georgia, "Book Antiqua", serif;
}
.charsheet .sheet-qualin {
background:
radial-gradient(circle at top right, rgba(86, 107, 47, 0.18), transparent 28%),
linear-gradient(180deg, #faf4e4 0%, #efe2c2 100%);
border: 1px solid var(--qualin-border);
border-radius: 18px;
box-shadow: 0 16px 30px var(--qualin-shadow);
margin: 0 auto;
max-width: 1180px;
padding: 18px;
}
.charsheet .sheet-banner,
.charsheet .sheet-card,
.charsheet .sheet-columns,
.charsheet .sheet-grid,
.charsheet .sheet-attribute-grid,
.charsheet .sheet-repeating-top,
.charsheet .sheet-repeating-grid,
.charsheet .sheet-repeating-actions,
.charsheet .sheet-combat-actions,
.charsheet .sheet-notes-grid {
display: grid;
gap: 12px;
}
.charsheet .sheet-banner {
align-items: end;
background:
linear-gradient(135deg, rgba(57, 71, 31, 0.94), rgba(86, 107, 47, 0.88)),
linear-gradient(180deg, rgba(245, 237, 216, 0.2), rgba(245, 237, 216, 0));
border-radius: 16px;
color: #f6f0df;
grid-template-columns: minmax(0, 1fr) auto;
margin-bottom: 16px;
padding: 18px;
}
.charsheet .sheet-kicker {
font-family: "Trebuchet MS", sans-serif;
font-size: 11px;
letter-spacing: 0.18em;
margin: 0 0 6px;
text-transform: uppercase;
}
.charsheet .sheet-banner h1,
.charsheet .sheet-card-header h2,
.charsheet .sheet-skill-group h3 {
margin: 0;
}
.charsheet .sheet-banner h1 {
font-size: 34px;
line-height: 1;
}
.charsheet .sheet-subtitle,
.charsheet .sheet-card-header p {
margin: 0;
}
.charsheet .sheet-banner-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: flex-end;
}
.charsheet .sheet-card {
background: rgba(255, 250, 238, 0.78);
border: 1px solid rgba(179, 155, 107, 0.9);
border-radius: 14px;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
margin-bottom: 14px;
padding: 14px;
}
.charsheet .sheet-card-header {
border-bottom: 1px solid rgba(179, 155, 107, 0.5);
display: flex;
flex-direction: column;
gap: 4px;
margin-bottom: 12px;
padding-bottom: 8px;
}
.charsheet .sheet-grid-identity {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.charsheet .sheet-columns {
grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.95fr);
align-items: start;
}
.charsheet .sheet-primary-column,
.charsheet .sheet-secondary-column {
min-width: 0;
}
.charsheet .sheet-attribute-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.charsheet .sheet-attribute {
background: linear-gradient(180deg, rgba(217, 228, 207, 0.72), rgba(236, 223, 194, 0.88));
border: 1px solid rgba(86, 107, 47, 0.22);
border-radius: 12px;
padding: 12px;
}
.charsheet .sheet-attribute-top {
align-items: center;
display: grid;
gap: 10px;
grid-template-columns: 1fr 90px;
margin-bottom: 10px;
}
.charsheet .sheet-attribute-name {
font-size: 18px;
font-weight: 700;
}
.charsheet .sheet-grid-derived {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.charsheet .sheet-wide-field {
grid-column: 1 / -1;
}
.charsheet .sheet-skill-group {
margin-bottom: 14px;
}
.charsheet .sheet-skill-group h3 {
border-left: 4px solid var(--qualin-accent);
font-size: 15px;
margin-bottom: 8px;
padding-left: 8px;
}
.charsheet .sheet-skill-row {
align-items: center;
display: grid;
gap: 8px;
grid-template-columns: 92px minmax(140px, 1fr) 70px 70px;
margin-bottom: 6px;
}
.charsheet .sheet-skill-specialization {
grid-template-columns: 92px minmax(110px, 1fr) minmax(100px, 1fr) 70px 70px;
}
.charsheet .sheet-combat-actions {
grid-template-columns: repeat(2, minmax(0, 1fr));
margin-bottom: 12px;
}
.charsheet .sheet-repeating-item {
background: rgba(236, 223, 194, 0.5);
border: 1px solid rgba(179, 155, 107, 0.7);
border-radius: 12px;
margin-bottom: 10px;
padding: 10px;
}
.charsheet .sheet-repeating-top {
grid-template-columns: 1.4fr repeat(3, minmax(0, 0.7fr));
margin-bottom: 10px;
}
.charsheet .sheet-repeating-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
margin-bottom: 10px;
}
.charsheet .sheet-repeating-actions {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.charsheet .sheet-recharge-flag {
display: none;
}
.charsheet .sheet-recharge-flag[value="0"] ~ .sheet-recharge-button {
display: none;
}
.charsheet .sheet-ability-effect-field {
grid-column: 1 / -1;
}
.charsheet .sheet-ability-effect-field textarea {
min-height: 4.8em;
}
.charsheet .sheet-notes-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(2, 1fr);
margin-bottom: 16px;
}
.charsheet .sheet-card-header h2 {
font-size: 20px;
margin-bottom: 8px;
}
.charsheet label {
display: flex;
flex-direction: column;
gap: 4px;
}
.charsheet span {
font-family: "Trebuchet MS", sans-serif;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.charsheet input[type="text"],
.charsheet input[type="number"],
.charsheet select,
.charsheet textarea {
background: rgba(255, 252, 245, 0.96);
border: 1px solid rgba(86, 107, 47, 0.28);
border-radius: 10px;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06);
box-sizing: border-box;
color: var(--qualin-ink);
font-family: Georgia, "Book Antiqua", serif;
font-size: 14px;
min-height: 34px;
padding: 6px 8px;
width: 100%;
}
.charsheet input[disabled] {
background: rgba(217, 228, 207, 0.54);
color: var(--qualin-accent-dark);
font-weight: 700;
}
.charsheet input[readonly],
.charsheet textarea[readonly] {
background: rgba(217, 228, 207, 0.54);
color: var(--qualin-accent-dark);
font-weight: 700;
}
.charsheet textarea {
min-height: 86px;
resize: vertical;
}
.charsheet button[type="roll"] {
background: linear-gradient(180deg, #687f39 0%, #425123 100%);
border: 0;
border-radius: 999px;
box-shadow: 0 6px 14px rgba(57, 71, 31, 0.24);
color: #f8f3e4;
font-family: "Trebuchet MS", sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.05em;
margin: 0;
padding: 8px 12px;
text-shadow: none;
text-transform: uppercase;
}
.charsheet button[type="roll"]:hover {
background: linear-gradient(180deg, #728c3d 0%, #4a5b28 100%);
}
.charsheet .repcontrol {
margin-top: 8px;
}
.charsheet .repcontrol .btn {
background: var(--qualin-panel-strong);
border: 1px solid var(--qualin-border);
border-radius: 999px;
color: var(--qualin-accent-dark);
font-family: "Trebuchet MS", sans-serif;
font-weight: 700;
padding: 4px 10px;
}
.charsheet .sheet-is-npc {
left: -9999px;
position: absolute;
}
.charsheet .sheet-mode-toggle {
margin-bottom: 12px;
}
.charsheet .sheet-toggle-pill {
align-items: center;
background: rgba(255, 250, 238, 0.85);
border: 1px solid rgba(86, 107, 47, 0.35);
border-radius: 999px;
cursor: pointer;
display: inline-flex;
gap: 10px;
padding: 6px 14px;
}
.charsheet .sheet-toggle-pill strong {
font-family: "Trebuchet MS", sans-serif;
font-size: 11px;
letter-spacing: 0.07em;
text-transform: uppercase;
}
.charsheet .sheet-toggle-pill .sheet-toggle-mode {
background: linear-gradient(180deg, #687f39 0%, #425123 100%);
border-radius: 999px;
color: #f8f3e4;
font-family: "Trebuchet MS", sans-serif;
font-size: 11px;
padding: 4px 10px;
}
.charsheet .sheet-is-npc:checked + .sheet-mode-toggle .sheet-toggle-mode {
background: linear-gradient(180deg, #5d4a2a 0%, #3f3019 100%);
}
.charsheet .sheet-is-npc:checked + .sheet-mode-toggle .sheet-toggle-mode::after {
content: "";
}
.charsheet .sheet-is-npc:not(:checked) ~ .sheet-npc-sheet {
display: none;
}
.charsheet .sheet-is-npc:checked ~ .sheet-pc-sheet {
display: none;
}
.charsheet .sheet-is-npc:checked + .sheet-mode-toggle .sheet-toggle-mode {
font-size: 0;
}
.charsheet .sheet-is-npc:checked + .sheet-mode-toggle .sheet-toggle-mode::before {
content: "NPC";
font-size: 11px;
}
.charsheet .sheet-npc-sheet {
margin: 0 auto;
max-width: 860px;
}
.charsheet .sheet-npc-statblock {
background: #d8d3bf;
border: 2px solid #216f31;
border-radius: 0;
padding: 0;
}
.charsheet .sheet-npc-row {
border-top: 2px solid #216f31;
padding: 0;
}
.charsheet .sheet-npc-row:first-child {
border-top: 0;
}
.charsheet .sheet-npc-row input,
.charsheet .sheet-npc-row textarea {
background: transparent;
border: 0;
border-radius: 0;
box-shadow: none;
font-family: Georgia, "Book Antiqua", serif;
padding: 4px 8px;
}
.charsheet .sheet-npc-row textarea {
min-height: 68px;
resize: vertical;
}
.charsheet .sheet-npc-row-title input {
font-size: 30px;
font-weight: 700;
line-height: 1.1;
min-height: 44px;
padding: 8px;
}
.charsheet .sheet-npc-row label {
align-items: center;
display: grid;
gap: 8px;
grid-template-columns: auto minmax(0, 1fr);
padding: 4px 8px;
}
.charsheet .sheet-npc-row-paired {
display: grid;
gap: 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.charsheet .sheet-npc-row-paired label:first-child {
border-right: 2px solid #216f31;
}
.charsheet .sheet-npc-divider {
background: #d3cfba;
border-top: 2px solid #216f31;
font-family: "Trebuchet MS", sans-serif;
font-size: 18px;
font-weight: 700;
letter-spacing: 0.02em;
line-height: 1;
padding: 6px 8px;
text-transform: none;
}
.charsheet .sheet-npc-ability-list {
margin: 0;
padding: 0;
}
.charsheet .sheet-npc-ability-item {
border-top: 2px solid #216f31;
display: grid;
gap: 0;
grid-template-columns: minmax(180px, 0.38fr) minmax(0, 0.62fr);
padding: 0;
}
.charsheet .sheet-npc-ability-name {
border-right: 2px solid #216f31;
display: grid;
gap: 4px;
padding: 4px;
}
.charsheet .sheet-npc-ability-name input[type="text"]:first-child {
font-size: 26px;
font-weight: 700;
min-height: 40px;
}
.charsheet .sheet-npc-ability-name input[type="text"]:last-child {
font-size: 12px;
font-style: italic;
min-height: 22px;
padding-top: 0;
text-transform: lowercase;
}
.charsheet .sheet-npc-ability-text {
padding: 4px;
}
.charsheet .sheet-npc-ability-text textarea {
min-height: 86px;
}
.charsheet .sheet-npc-ability-meta {
border-top: 2px solid #216f31;
display: grid;
gap: 6px;
grid-column: 1 / -1;
grid-template-columns: repeat(6, minmax(0, 1fr));
padding: 6px;
}
.charsheet .sheet-npc-ability-meta input,
.charsheet .sheet-npc-ability-meta select {
background: rgba(255, 252, 245, 0.86);
border: 1px solid rgba(33, 111, 49, 0.5);
border-radius: 6px;
font-family: "Trebuchet MS", sans-serif;
font-size: 11px;
min-height: 26px;
padding: 4px 6px;
text-transform: uppercase;
}
.charsheet .sheet-npc-ability-rolls {
border-top: 2px solid #216f31;
display: grid;
gap: 8px;
grid-column: 1 / -1;
grid-template-columns: repeat(3, minmax(0, 1fr));
padding: 6px;
}
.charsheet .sheet-npc-helper-row {
border-top: 2px solid #216f31;
display: grid;
gap: 6px;
grid-template-columns: repeat(3, minmax(0, 1fr));
padding: 6px;
}
.charsheet .sheet-npc-helper-row label {
display: flex;
flex-direction: column;
gap: 4px;
padding: 0;
}
.charsheet .sheet-npc-helper-rolls {
border-top: 2px solid #216f31;
display: grid;
gap: 8px;
grid-template-columns: repeat(2, minmax(0, 1fr));
padding: 6px;
}