/* Shared action styles: deliberately distinct from the dark panels and labels. */
:is(.button, button:not([class]), input[type="submit"], input[type="button"], input[type="reset"]) {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 44px;
    padding: 10px 17px;
    border: 2px solid #93c5fd;
    border-radius: 8px;
    background: #1d4ed8;
    color: #fff;
    font: inherit;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 3px 0 #102e7d, 0 4px 12px #0004;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.button.primary {
    background: #ffd166;
    border-color: #ffe6a6;
    color: #241900;
    box-shadow: 0 3px 0 #9b680c, 0 4px 12px #0004;
}
.button.secondary {
    background: #75b6ff;
    border-color: #b9dcff;
    color: #081d35;
    box-shadow: 0 3px 0 #285887, 0 4px 12px #0004;
}
.button.danger {
    background: #ff8795;
    border-color: #ffc0c8;
    color: #380811;
    box-shadow: 0 3px 0 #9c3444, 0 4px 12px #0004;
}
.button.ghost {
    background: #193451;
    border-color: #75b6ff;
    color: #e0efff;
}
.button.compact { min-height: 36px; padding: 7px 11px; font-size: 13px; }
:is(.button, button:not([class]), input[type="submit"], input[type="button"], input[type="reset"]):not(:disabled):not([aria-disabled="true"]):hover {
    filter: brightness(1.14);
    transform: none;
    text-decoration: underline;
    text-underline-offset: 3px;
}
:is(.button, button:not([class]), input[type="submit"], input[type="button"], input[type="reset"]):not(:disabled):active {
    box-shadow: 0 1px 0 #0008;
}
/* These existing controls previously looked like ordinary text. */
body :is(.transaction-open, .roster-pilot) {
    display: inline-block;
    padding: 6px 10px;
    border: 1px solid #75b6ff;
    border-radius: 6px;
    background: #193451;
    color: #e0efff;
    font-weight: 700;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

body :is(.transaction-open, .roster-pilot):hover { background: #245181; }
body summary {
    padding: 8px 12px;
    border: 1px solid #75b6ff;
    border-radius: 6px;
    background: #193451;
    color: #e0efff;
    font-weight: 700;
    cursor: pointer;
}
body .admin-navigation > summary { color: #e0efff; background: #193451; border-color: #75b6ff; }
body summary:hover, body .admin-navigation > summary:hover { background: #245181; color: #fff; }
body .mission-value-dialog > button:first-child { background: #1d4ed8; color: #fff; border: 2px solid #93c5fd; }
body :is(.button, button, summary, .roster-pilot, input[type="submit"], input[type="button"], input[type="reset"]):focus-visible,
body table[data-server-table] th a:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
    box-shadow: 0 0 0 6px #0b1424;
}
body :is(.button, button, input[type="submit"], input[type="button"], input[type="reset"]):disabled,
body .button[aria-disabled="true"] {
    background: #293649;
    border-color: #62738c;
    color: #c3cedd;
    box-shadow: none;
    opacity: 1;
    filter: none;
    transform: none;
    text-decoration: none;
    cursor: not-allowed;
}
@media (prefers-reduced-motion: reduce) {
    :is(.button, button:not([class]), input[type="submit"], input[type="button"], input[type="reset"]) { transition: none; }
}

/* Sortable table headings retain plain text styling and a keyboard focus outline. */
body .table-sort, body table[data-server-table] th a { background: transparent; border: 0; border-radius: 0; box-shadow: none; color: inherit; padding: .35rem 0; text-decoration: none; }
body .table-sort:hover, body table[data-server-table] th a:hover { background: transparent; text-decoration: underline; }
body .table-sort:focus-visible, body table[data-server-table] th a:focus-visible { box-shadow: none; }
