/*
 * Register: an accounts book. Every field is a ruled line, the abilities and
 * their skills run down one long ledger with the numbers aligned in a single
 * column, the portrait and the stat tables keep the margin to the right.
 */

.register-page {
    display: flex;
    flex-direction: column;
    gap: 5mm;
}

.register-page .sheet-toggle-mark {
    transform: none;
}

.register-page .sheet-input {
    background: transparent;
    border-radius: 0;
    box-shadow: inset 0 -0.25mm 0 var(--card-rule);
}

.register-page .sheet-textarea {
    background: transparent;
    border-radius: 0;
    box-shadow: inset 0 0 0 0.22mm var(--card-rule);
}

.register-page .banner-name .sheet-input {
    padding-left: 0;
    box-shadow: inset 0 -0.4mm 0 var(--card-rule);
}

/* ---------- header ---------- */

.register-header {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    column-gap: 8mm;
}

.register-cells {
    display: flex;
    gap: 4mm;
}

.register-cells .sheet-slot { width: 20mm; }
.register-cells .identity-level { width: 11mm; }
.register-cells .casting-ability { width: 30mm; }
.register-cells .casting-save,
.register-cells .casting-attack { width: 16mm; }

/* ---------- page one: the ledger and its margin ---------- */

.register-body {
    display: grid;
    grid-template-columns: 1fr 64mm;
    column-gap: 8mm;
    align-items: start;
}

.register-ledger {
    display: flex;
    flex-direction: column;
    gap: 3.6mm;
    min-width: 0;
}

.register-ledger .ability-block {
    display: flex;
    flex-direction: column;
    gap: 1mm;
}

.register-ledger-head {
    display: grid;
    grid-template-columns: 1fr 12mm 18mm 15mm;
    column-gap: 3mm;
    margin-bottom: -1.6mm;
}

.register-ledger-head span {
    font-family: var(--card-label-font);
    font-size: 6pt;
    letter-spacing: var(--card-label-spacing);
    text-transform: var(--card-label-transform);
    text-align: center;
    color: var(--card-ink-faint);
}

.register-ledger-head span:nth-child(1) { grid-column: 2; }
.register-ledger-head span:nth-child(2) { grid-column: 3; }
.register-ledger-head span:nth-child(3) { grid-column: 4; }

.register-ability-row {
    display: grid;
    grid-template-columns: 1fr 12mm 18mm 15mm;
    column-gap: 3mm;
    align-items: end;
    padding-bottom: 1mm;
    border-bottom: 0.3mm solid var(--card-rule);
}

.register-ability-row .ability-name {
    padding-bottom: 0.8mm;
    font-size: 9.6pt;
}

.register-ability-row .ability-score .sheet-input,
.register-ability-row .ability-modifier .sheet-input,
.register-ability-row .ability-save-value .sheet-input {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.register-ability-row .ability-save-label {
    display: none;
}

.register-ability-row .ability-save {
    justify-content: center;
    gap: 2mm;
}

.register-ability-row .ability-modifier .sheet-input {
    padding: 0;
    font-size: 15pt;
    line-height: 1;
}

.register-ability-row .ability-save {
    padding-bottom: 0.4mm;
}

.register-ability-row .ability-save-value {
    width: 11mm;
}

.register-ledger .skill-list {
    gap: 0.8mm;
}

.register-ledger .skill-row {
    display: grid;
    grid-template-columns: 8mm 1fr 15mm;
    column-gap: 3mm;
}

.register-ledger .skill-marks {
    grid-column: 1;
    gap: 1.4mm;
}

.register-ledger .skill-name {
    grid-column: 2;
    grid-row: 1;
    font-size: 8.2pt;
    color: var(--card-ink);
}

.register-ledger .skill-modifier {
    grid-column: 3;
    grid-row: 1;
    width: auto;
}

.register-ledger .skill-modifier .sheet-input {
    padding: 0.3mm 0;
    border-radius: 0;
    box-shadow: inset 0 -0.22mm 0 var(--card-rule);
}

.register-ledger .ability-aside {
    gap: 1mm;
    padding-top: 0.6mm;
}

.register-ledger .aside-slot {
    display: grid;
    grid-template-columns: 1fr 15mm;
    column-gap: 3mm;
    align-items: center;
}

.register-ledger .aside-slot .sheet-slot-label {
    font-family: var(--card-body-font);
    font-size: 8.2pt;
    letter-spacing: 0;
    text-transform: none;
    color: var(--card-ink);
}

.register-ledger .aside-slot .sheet-input {
    padding: 0.3mm 0;
    font-size: 9pt;
    border-radius: 0;
    box-shadow: inset 0 -0.22mm 0 var(--card-rule);
}

.register-side {
    display: flex;
    flex-direction: column;
    gap: 4mm;
}

.register-page .sheet-portrait-frame {
    width: 64mm;
    height: 64mm;
    border-radius: 0;
}

.register-table {
    display: flex;
    flex-direction: column;
    gap: 1.2mm;
}

.register-table .sheet-slot {
    display: grid;
    grid-template-columns: 24mm 1fr;
    column-gap: 3mm;
    align-items: end;
}

.register-table .sheet-slot-label {
    padding-bottom: 0.8mm;
    font-size: 6.4pt;
}

.register-table .sheet-input {
    padding: 0.5mm 1mm;
}

.register-table .armor-class .sheet-input,
.register-table .hit-points .sheet-input {
    font-family: var(--card-title-font);
    font-weight: var(--card-title-weight);
    font-size: 13pt;
    color: var(--card-accent);
}

.register-side .damage-log {
    height: 34mm;
}

.register-notes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8mm;
    flex: 1;
    min-height: 0;
}

/* ---------- page two: accounts with running heads ---------- */

.register-accounts {
    display: flex;
    flex-direction: column;
    gap: 5mm;
    flex: 1;
    min-height: 0;
}

.register-account {
    display: grid;
    grid-template-columns: 36mm 1fr;
    column-gap: 5mm;
    flex: 1;
}

.register-account .sheet-area-title {
    text-align: right;
    line-height: 1.25;
}

.register-page .attunement {
    display: grid;
    grid-template-columns: 36mm 1fr;
    column-gap: 5mm;
    align-items: start;
}

.register-page .attunement .sheet-area-title {
    text-align: right;
}

.register-page .attunement-slots {
    flex-direction: column;
    gap: 2mm;
}

/* ---------- page three: the slot register ---------- */

.register-slots {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 12mm;
}

.register-slot-column {
    display: flex;
    flex-direction: column;
    gap: 2mm;
}

.register-slot-column .spell-slot-level {
    width: 6mm;
    text-align: left;
}

.register-slot-column .spell-slot-total {
    width: 10mm;
}

.register-slot-column .spell-slot-total .sheet-input {
    box-shadow: inset 0 -0.25mm 0 var(--card-rule);
}

.register-page .spell-table {
    row-gap: 0.8mm;
}

.register-page .spell-table-head,
.register-page .spell-row {
    grid-template-columns: 10mm 50mm 1fr;
}
