html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* The shared layout supplies the responsive page gutter, so nested page
   containers can use the available desktop width without doubling padding. */
.app-content > main > .container {
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

.favicon-img {
    width: 32px;
    height: 32px;
    object-fit: cover; /* Ensures the image covers the area without distortion */
}
.remaining-height {  
       flex: 1;  
 }
.full-height {
    height: 100vh;
}
.text-shadow-white {
    text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.7);
}
.text-shadow-black {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

.hours {
    font-size: 4rem; /* Large text size */
}
.pmp {
    font-size: 3rem; /* Large text size */
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

#logo {
    animation: spin 30s linear infinite;
    animation-play-state: running;
}

/* Square sales uses a restrained ledger aesthetic: operational, dense, and easy to scan. */
.square-ledger {
    --ledger-ink: #17201c;
    --ledger-paper: #f4f1e8;
    --ledger-rule: #cbc6b9;
    --ledger-green: #176b54;
    --ledger-amber: #d97706;
    color: var(--ledger-ink);
    font-family: Georgia, "Times New Roman", serif;
}

.square-ledger.provider-shootproof {
    --ledger-green: #245f82;
    --ledger-amber: #e0a23b;
}

.login-sync-link {
    background: var(--ledger-ink);
    color: #fffdf7;
    display: inline-block;
    font-family: "Courier New", monospace;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    margin-top: 1rem;
    padding: .75rem 1rem;
    text-decoration: none;
    text-transform: uppercase;
}

.login-sync-link:hover { color: #fffdf7; filter: brightness(1.3); }

.total-sales-ledger {
    --ledger-green: #245f82;
    --ledger-amber: #d97706;
}

.total-sales-header { align-items: center; }

.total-sales-summary {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: .65rem;
    min-width: min(31rem, 46vw);
}

.sales-header-actions {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    min-width: min(31rem, 46vw);
}

.ytd-revenue {
    border: 1px solid rgba(255, 253, 247, .35);
    padding: .75rem 1rem .9rem;
}

.ytd-caption {
    color: #aeb9b2;
    display: block;
    font-family: "Courier New", monospace;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    margin-bottom: .65rem;
    text-transform: uppercase;
}

.ytd-values { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ytd-value { border-left: 2px solid var(--ledger-amber); padding-left: .65rem; }
.ytd-value span { color: #aeb9b2; display: block; font-family: "Courier New", monospace; font-size: .72rem; }
.ytd-value strong { display: block; font-size: clamp(1.05rem, 2vw, 1.45rem); font-weight: 400; margin-top: .12rem; white-space: nowrap; }

.provider-key {
    border: 1px solid rgba(255, 253, 247, .35);
    display: flex;
    font-family: "Courier New", monospace;
    font-size: .76rem;
    font-weight: 700;
    gap: 1.35rem;
    letter-spacing: .08em;
    padding: .85rem 1rem;
    text-transform: uppercase;
}

.provider-key span { align-items: center; display: inline-flex; gap: .5rem; }
.provider-swatch { display: inline-block; height: .7rem; width: .7rem; }
.provider-swatch-shootproof { background: #245f82; }
.provider-swatch-square { background: #d97706; }
.total-sales-sheet { margin-top: 0; }
.total-sales-chart-wrap { height: clamp(26rem, 65vh, 42rem); margin-top: 0; }

.ledger-header {
    align-items: end;
    background: var(--ledger-ink);
    color: #fffdf7;
    display: flex;
    justify-content: space-between;
    padding: clamp(1.5rem, 4vw, 3.5rem);
}

.ledger-kicker, .chart-heading span, .meta-block span, .sync-counts span, .page-stamp, .state-label, .empty-ledger > span {
    font-family: "Courier New", monospace;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.ledger-header h1 {
    font-size: clamp(2.5rem, 6vw, 5.5rem);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .9;
    margin: .65rem 0 1rem;
}

.ledger-header p { color: #c7cec9; margin: 0; max-width: 42rem; }

.btn-sync {
    align-items: center;
    background: var(--ledger-amber);
    border: 0;
    color: #1d160c;
    display: inline-flex;
    font-family: "Courier New", monospace;
    font-weight: 700;
    gap: .7rem;
    padding: .9rem 1.25rem;
    text-transform: uppercase;
    transition: transform .15s ease, filter .15s ease;
}

.btn-sync:hover:not(:disabled) { filter: brightness(1.08); transform: translateY(-2px); }
.btn-sync:disabled { cursor: wait; opacity: .82; }
.sync-dot { background: currentColor; border-radius: 50%; height: .55rem; width: .55rem; }
.btn-sync.is-busy { box-shadow: inset 0 0 0 1px rgba(29, 22, 12, .2); }
.btn-sync.is-busy .sync-dot {
    animation: sync-button-spin .75s linear infinite;
    background: transparent;
    border: 2px solid rgba(29, 22, 12, .28);
    border-top-color: currentColor;
    height: .85rem;
    width: .85rem;
}
@keyframes sync-button-spin { to { transform: rotate(360deg); } }

.ledger-meta {
    background: var(--ledger-paper);
    border-bottom: 1px solid var(--ledger-rule);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.meta-block { border-right: 1px solid var(--ledger-rule); padding: 1.1rem 1.4rem; }
.meta-block:last-child { border-right: 0; }
.meta-block span { color: #73776f; display: block; margin-bottom: .35rem; }
.meta-block strong { font-size: 1rem; font-weight: 500; }

.sync-panel, .chart-sheet { background: #fffdf7; border: 1px solid var(--ledger-rule); margin-top: 1.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); }
.sync-panel { border-left: .4rem solid var(--ledger-amber); }
.commission-ledger .sync-panel:not([hidden]) { animation: commission-sync-arrive .28s ease-out both; }
.sync-panel.is-complete { border-left-color: var(--ledger-green); }
.sync-panel.is-failed { border-left-color: #a33d2f; }
.sync-panel-heading, .chart-heading { align-items: start; display: flex; justify-content: space-between; gap: 1rem; }
.sync-panel h2, .chart-heading h2 { font-size: clamp(1.35rem, 3vw, 2.15rem); font-weight: 400; margin: .25rem 0 0; }
.state-label { color: var(--ledger-green); }
.page-stamp, .chart-note { color: #73776f; }
.sync-track { background: #dfdcd2; height: .45rem; margin: 1.5rem 0; overflow: hidden; }
.sync-track span { background: var(--ledger-green); display: block; height: 100%; width: 100%; }
.sync-track span.is-running { animation: ledger-progress 1.6s ease-in-out infinite; width: 36%; }
@keyframes ledger-progress { from { transform: translateX(-105%); } to { transform: translateX(290%); } }
@keyframes commission-sync-arrive {
    from { opacity: 0; transform: translateY(-.6rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .btn-sync.is-busy .sync-dot,
    .sync-track span.is-running,
    .commission-ledger .sync-panel:not([hidden]) { animation-duration: .01ms; animation-iteration-count: 1; }
}

.sync-counts { display: grid; grid-template-columns: repeat(5, 1fr); }
.sync-counts div { border-left: 1px solid var(--ledger-rule); padding: .5rem 1rem; }
.sync-counts div:first-child { border-left: 0; padding-left: 0; }
.sync-counts span { color: #73776f; display: block; }
.sync-counts strong { font-size: 1.7rem; font-weight: 400; }
.chart-sheet { min-height: 31rem; }
.chart-wrap { height: 26rem; margin-top: 2rem; }
.empty-ledger { align-items: center; color: #73776f; display: flex; flex-direction: column; justify-content: center; min-height: 22rem; text-align: center; }
.empty-ledger > span { border: 1px solid var(--ledger-rule); padding: .35rem .6rem; }
.empty-ledger p { margin-top: 1rem; }

.commission-header { align-items: center; }
.commission-rule { border: 1px solid rgba(255, 253, 247, .35); min-width: 17rem; padding: 1rem 1.15rem; }
.commission-rule span, .commission-sync-counts span, .commission-totals span {
    color: #aeb9b2;
    display: block;
    font-family: "Courier New", monospace;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.commission-rule strong { display: block; font-size: .95rem; font-weight: 400; line-height: 1.45; margin-top: .45rem; }
.commission-form-sheet { background: var(--ledger-paper); border: 1px solid var(--ledger-rule); border-top: 0; padding: clamp(1.25rem, 3vw, 2.25rem); }
.commission-form-heading, .commission-results-heading { align-items: center; display: flex; gap: 1.5rem; justify-content: space-between; }
.commission-form-heading h2, .commission-results-heading h2, .commission-chart-section h2, .commission-order-details h2 {
    font-size: clamp(1.45rem, 3vw, 2.25rem);
    font-weight: 400;
    margin: .3rem 0 0;
}
.commission-date-grid { align-items: end; display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); margin-top: 1.75rem; }
.commission-field label { display: block; font-family: "Courier New", monospace; font-size: .72rem; font-weight: 700; letter-spacing: .08em; margin-bottom: .45rem; text-transform: uppercase; }
.commission-field input { background: #fffdf7; border: 1px solid var(--ledger-rule); border-radius: 0; color: var(--ledger-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; padding: .8rem .9rem; width: 100%; }
.commission-field input:focus { border-color: var(--ledger-green); box-shadow: 0 0 0 .18rem rgba(36, 95, 130, .16); outline: 0; }
.commission-field small { color: #73776f; display: block; margin-top: .45rem; }
.commission-field .field-validation-error { color: #a33d2f; display: block; font-size: .85rem; margin-top: .4rem; }
.commission-date-arrow { color: var(--ledger-green); font-size: 2rem; padding-bottom: 1.55rem; }
.commission-validation { color: #a33d2f; font-family: "Courier New", monospace; font-size: .8rem; font-weight: 700; margin-top: 1rem; }
.commission-validation:empty { display: none; }
.commission-validation ul { margin: 0; padding-left: 1.25rem; }
.commission-sync-counts { display: grid; grid-template-columns: repeat(3, 1fr); }
.commission-sync-counts div { border-left: 1px solid var(--ledger-rule); padding: .5rem 1rem; }
.commission-sync-counts div:first-child { border-left: 0; padding-left: 0; }
.commission-sync-counts span, .commission-totals span { color: #73776f; }
.commission-sync-counts strong { display: block; font-size: 1.7rem; font-weight: 400; }
.commission-login-notice { align-items: center; background: #fff3d8; border: 1px solid #d8b775; display: flex; justify-content: space-between; margin-top: 1.5rem; padding: 1.1rem 1.35rem; }
.commission-login-notice span { font-family: "Courier New", monospace; font-size: .7rem; font-weight: 700; letter-spacing: .1em; }
.commission-login-notice p { margin: .3rem 0 0; }
.commission-login-notice .login-sync-link { margin-top: 0; }
.commission-results { background: #fffdf7; border: 1px solid var(--ledger-rule); margin-top: 1.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); }
.commission-results-heading p { color: #73776f; margin: .5rem 0 0; }
.commission-export { text-decoration: none; }
.commission-export:hover { color: #1d160c; }
.commission-totals { border-bottom: 1px solid var(--ledger-rule); border-top: 1px solid var(--ledger-rule); display: grid; grid-template-columns: repeat(3, 1fr); margin: 1.75rem 0; }
.commission-totals div { border-left: 1px solid var(--ledger-rule); padding: 1rem 1.25rem; }
.commission-totals div:first-child { border-left: 0; }
.commission-totals strong { display: block; font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 400; margin-top: .25rem; }
.commission-table-wrap { overflow-x: auto; }
.commission-table { border-collapse: collapse; font-family: "Courier New", monospace; font-size: .82rem; width: 100%; }
.commission-table th { border-bottom: 2px solid var(--ledger-ink); color: #5d625d; font-size: .7rem; letter-spacing: .07em; padding: .7rem .65rem; text-align: right; text-transform: uppercase; white-space: nowrap; }
.commission-table th:first-child, .commission-table td:first-child { text-align: left; }
.commission-table td { border-bottom: 1px solid var(--ledger-rule); padding: .75rem .65rem; text-align: right; }
.commission-table tbody tr:hover { background: #f4f1e8; }
.commission-chart-section, .commission-order-details { border-top: 1px solid var(--ledger-rule); margin-top: 2.25rem; padding-top: 2rem; }
.commission-chart-wrap { height: 24rem; margin-top: 1.5rem; }
.photographer-orders { border-bottom: 1px solid var(--ledger-rule); }
.photographer-orders summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; padding: 1rem .25rem; }
.photographer-orders summary span { color: var(--ledger-green); font-family: "Courier New", monospace; font-size: 1rem; font-weight: 700; }
.photographer-orders summary strong { font-size: .95rem; font-weight: 400; }
.commission-detail-table { margin-bottom: 1.25rem; min-width: 52rem; }
.commission-empty { min-height: 14rem; }

@media (max-width: 767px) {
    .ledger-header { align-items: stretch; flex-direction: column; gap: 1.5rem; }
    .ledger-meta { grid-template-columns: 1fr; }
    .meta-block { border-bottom: 1px solid var(--ledger-rule); border-right: 0; }
    .sync-counts { grid-template-columns: repeat(2, 1fr); gap: 1rem 0; }
    .sync-counts div:nth-child(odd) { border-left: 0; padding-left: 0; }
    .chart-note { display: none; }
    .provider-key { align-self: flex-start; }
    .total-sales-summary { min-width: 0; width: 100%; }
    .sales-header-actions { align-items: stretch; min-width: 0; width: 100%; }
    .sales-header-actions form { align-self: flex-start; }
    .ytd-values { grid-template-columns: 1fr; }
    .commission-rule { min-width: 0; }
    .commission-form-heading, .commission-results-heading, .commission-login-notice { align-items: stretch; flex-direction: column; }
    .commission-form-heading .btn-sync, .commission-export, .commission-login-notice .login-sync-link { align-self: flex-start; }
    .commission-date-grid { align-items: stretch; grid-template-columns: 1fr; }
    .commission-date-arrow { padding: 0; transform: rotate(90deg); width: fit-content; }
    .commission-sync-counts, .commission-totals { grid-template-columns: 1fr; }
    .commission-sync-counts div, .commission-totals div { border-left: 0; border-top: 1px solid var(--ledger-rule); padding-left: 0; }
    .commission-sync-counts div:first-child, .commission-totals div:first-child { border-top: 0; }
    .photographer-orders summary { align-items: flex-start; flex-direction: column; gap: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
    .sync-track span.is-running { animation-duration: 4s; }
}

/* Access management extends the Orders ledger language into a focused admin workspace. */
.admin-ledger { --ledger-green: #245f82; --ledger-amber: #e0a23b; }
.admin-header { align-items: center; }
.admin-header h1 { font-size: clamp(2.7rem, 6vw, 5rem); }
.admin-header .btn-sync { color: #1d160c; text-decoration: none; }
.admin-tabs { background: var(--ledger-paper); border: 1px solid var(--ledger-rule); border-top: 0; display: flex; }
.admin-tabs a { align-items: center; border-right: 1px solid var(--ledger-rule); color: #5d625d; display: inline-flex; font-family: "Courier New", monospace; font-size: .76rem; font-weight: 700; gap: .5rem; letter-spacing: .09em; padding: 1rem 1.4rem; text-decoration: none; text-transform: uppercase; }
.admin-tabs a:hover { background: #fffdf7; color: var(--ledger-ink); }
.admin-tabs a.is-current { background: #fffdf7; box-shadow: inset 0 -3px var(--ledger-green); color: var(--ledger-green); }
.admin-summary { background: #fffdf7; border: 1px solid var(--ledger-rule); border-top: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.admin-summary div { border-left: 1px solid var(--ledger-rule); padding: 1rem 1.4rem; }
.admin-summary div:first-child { border-left: 0; }
.admin-summary span, .admin-note, .role-card-copy > span, .admin-user-stamp span, .delete-role-summary > span { color: #73776f; display: block; font-family: "Courier New", monospace; font-size: .7rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.admin-summary strong { display: block; font-size: 1.75rem; font-weight: 400; margin-top: .15rem; }
.admin-sheet, .admin-form-sheet { background: #fffdf7; border: 1px solid var(--ledger-rule); margin-top: 1.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); }
.admin-section-heading { align-items: end; border-bottom: 2px solid var(--ledger-ink); display: flex; justify-content: space-between; padding-bottom: 1rem; }
.admin-section-heading h2 { font-size: clamp(1.5rem, 3vw, 2.3rem); font-weight: 400; margin: .25rem 0 0; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { border-collapse: collapse; font-family: "Courier New", monospace; font-size: .82rem; min-width: 53rem; width: 100%; }
.admin-table th { color: #5d625d; font-size: .68rem; letter-spacing: .08em; padding: .8rem .7rem; text-transform: uppercase; }
.admin-table td { border-bottom: 1px solid var(--ledger-rule); padding: 1rem .7rem; vertical-align: middle; }
.admin-table tbody tr:hover { background: var(--ledger-paper); }
.admin-table td > strong, .admin-table td > small { display: block; }
.admin-table td > small { color: #73776f; margin-top: .25rem; }
.admin-status { border: 1px solid currentColor; display: inline-block; font-size: .67rem; font-weight: 700; letter-spacing: .06em; padding: .25rem .45rem; text-transform: uppercase; }
.admin-status.is-active { color: var(--ledger-green); }
.admin-status.is-pending { color: #9a6413; }
.admin-status.is-locked { color: #a33d2f; }
.admin-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; justify-content: flex-end; }
.admin-action, .admin-cancel { color: var(--ledger-ink); font-family: "Courier New", monospace; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.admin-action { border: 1px solid var(--ledger-rule); padding: .45rem .6rem; }
.admin-action:hover { background: var(--ledger-ink); border-color: var(--ledger-ink); color: #fffdf7; }
.admin-action.is-primary { border-color: var(--ledger-green); color: var(--ledger-green); }
.admin-action.is-danger { color: #a33d2f; }
.admin-action[aria-disabled="true"] { cursor: not-allowed; opacity: .45; }
.admin-empty { align-items: center; color: #73776f; display: flex; flex-direction: column; justify-content: center; min-height: 12rem; text-align: center; }
.admin-empty > span { border: 1px solid var(--ledger-rule); font-family: "Courier New", monospace; font-size: .7rem; font-weight: 700; letter-spacing: .1em; padding: .35rem .55rem; }
.admin-empty p { margin: 1rem 0 0; }
.role-grid { display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--ledger-rule); margin-top: 1.5rem; }
.role-card { align-items: center; background: #fffdf7; display: grid; gap: 1rem; grid-template-columns: auto 1fr auto; padding: 1.25rem; }
.role-card:hover { background: var(--ledger-paper); }
.role-mark { align-items: center; background: var(--ledger-ink); color: #fffdf7; display: flex; font-size: 1.3rem; height: 2.7rem; justify-content: center; width: 2.7rem; }
.role-card h2 { font-size: 1.45rem; font-weight: 400; margin: .1rem 0; }
.role-card small { color: #8b5a10; }
.admin-form-page { margin: 0 auto; max-width: 72rem; }
.admin-form-sheet { margin-top: 0; }
.admin-form-sheet form { margin: 0; }
.admin-field { max-width: 38rem; }
.admin-field label, .role-selection legend { display: block; font-family: "Courier New", monospace; font-size: .72rem; font-weight: 700; letter-spacing: .09em; margin-bottom: .5rem; text-transform: uppercase; }
.admin-field input { background: #fffdf7; border: 1px solid var(--ledger-rule); border-radius: 0; color: var(--ledger-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; padding: .85rem .95rem; width: 100%; }
.admin-field input:focus { border-color: var(--ledger-green); box-shadow: 0 0 0 .18rem rgba(36, 95, 130, .16); outline: 0; }
.admin-field small, .admin-field .field-validation-error { display: block; margin-top: .45rem; }
.admin-field small { color: #73776f; }
.admin-field .field-validation-error, .admin-validation { color: #a33d2f; }
.admin-validation:empty { display: none; }
.admin-form-actions { align-items: center; display: flex; gap: 1.2rem; margin-top: 2rem; }
.admin-cancel { border-bottom: 1px solid currentColor; }
.admin-user-stamp { border: 1px solid rgba(255, 253, 247, .35); display: flex; flex-direction: column; min-width: min(24rem, 42vw); padding: 1rem 1.15rem; }
.admin-user-stamp span, .admin-user-stamp small { color: #aeb9b2; }
.admin-user-stamp strong { font-size: 1.15rem; font-weight: 400; margin: .25rem 0; }
.role-selection { border: 0; margin: 0; padding: 0; }
.role-selection legend { color: #73776f; }
.role-option { align-items: center; border-bottom: 1px solid var(--ledger-rule); cursor: pointer; display: flex; gap: 1rem; padding: 1rem .25rem; }
.role-option:hover { background: var(--ledger-paper); }
.role-option input[type="checkbox"] { height: 1px; opacity: 0; position: absolute; width: 1px; }
.role-check { align-items: center; border: 1px solid var(--ledger-rule); display: flex; flex: 0 0 auto; height: 2rem; justify-content: center; width: 2rem; }
.role-check i { opacity: 0; }
.role-option input:checked + input + .role-check { background: var(--ledger-green); border-color: var(--ledger-green); color: white; }
.role-option input:checked + input + .role-check i { opacity: 1; }
.role-option input:focus-visible + input + .role-check { box-shadow: 0 0 0 .2rem rgba(36, 95, 130, .2); }
.role-option > span:last-child { display: flex; flex-direction: column; }
.role-option strong { font-size: 1.15rem; font-weight: 400; }
.role-option small { color: #73776f; }
.admin-danger-header { border-left: .45rem solid #a33d2f; }
.delete-role-summary { border-bottom: 1px solid var(--ledger-rule); padding-bottom: 1.25rem; }
.delete-role-summary strong { display: block; font-size: 2rem; font-weight: 400; margin: .25rem 0; }
.delete-role-summary small { color: #73776f; }
.admin-warning { background: #fff3d8; border-left: .3rem solid #d97706; margin: 1.5rem 0 0; padding: 1rem; }
.admin-delete-button { background: #a33d2f; border: 0; color: white; font-family: "Courier New", monospace; font-size: .78rem; font-weight: 700; letter-spacing: .06em; padding: .85rem 1.05rem; text-transform: uppercase; }
.admin-delete-button:disabled { cursor: not-allowed; opacity: .45; }

@media (max-width: 767px) {
    .admin-summary, .role-grid { grid-template-columns: 1fr; }
    .admin-summary div { border-left: 0; border-top: 1px solid var(--ledger-rule); }
    .admin-summary div:first-child { border-top: 0; }
    .admin-user-stamp { min-width: 0; width: 100%; }
    .role-card { grid-template-columns: auto 1fr; }
    .role-card .admin-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
