/* Shared GBC action contract. Tokens override inherited button paints on every host. */
:root { --gbc-action-solid: #27d17f; --gbc-action-ink: #0b1726; --gbc-action-light: #e3f5eb; --gbc-action-green: #075f3b; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(button, .button, .button-primary, .button-secondary, .button-danger, .v1-primary-button, .v1-secondary-button, .v1-danger-button, .v1-google-button, .primary-button, input[type=submit]):not(.gbc-info-button) {
    --action-bg: var(--gbc-action-light); --action-text: var(--gbc-action-green); --action-border: var(--gbc-action-green);
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    box-sizing: border-box; min-height: 44px; max-width: 100%; padding: 10px 16px !important;
    border: 1px solid var(--action-border) !important; border-radius: 9px !important;
    background: var(--action-bg) !important; color: var(--action-text) !important;
    font: inherit; font-weight: 800 !important; line-height: 1.35; text-align: center;
    text-decoration: none !important; white-space: normal; cursor: pointer;
    transition: background-color .15s, box-shadow .15s; opacity: 1;
}
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(.button-primary, .v1-primary-button, .primary-button) { --action-bg: var(--gbc-action-solid) !important; --action-text: var(--gbc-action-ink) !important; --action-border: #087949 !important; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(button, .button, input[type=submit]):not(.gbc-info-button):hover:not(:disabled) { --action-bg: #c7ead7; box-shadow: 0 2px 0 #075f3b33; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(.button-primary, .v1-primary-button, .primary-button):hover:not(:disabled) { --action-bg: #20bf72 !important; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(button, .button, .button-primary, .button-secondary, .button-danger, .v1-primary-button, .v1-secondary-button, .v1-danger-button, .v1-google-button, .primary-button, input[type=submit]):focus-visible { outline: 3px solid #0b1726 !important; outline-offset: 3px; box-shadow: 0 0 0 6px #fff; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(button, .button, input[type=submit]):is(:disabled, [aria-disabled=true], [aria-busy=true]) { --action-bg: #d8e7df !important; --action-text: #365443 !important; --action-border: #668674 !important; cursor: wait; box-shadow: none; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(button, .button):disabled { cursor: not-allowed; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(.button-danger, .v1-danger-button) { --action-bg: #fce9e7 !important; --action-text: #8e2018 !important; --action-border: #a62a21 !important; }
:is(.v1-surface, .admin-portal, .login-page, .v1-login-page) [hidden] { display: none !important; }
.basket-review-states { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.basket-line-review > form, .basket-line-review > details { margin: 12px 0; }
.basket-product-choices select { width: 100%; max-width: 100%; min-height: 44px; }
.basket-destructive { margin-top: 24px !important; padding-top: 16px; border-top: 1px solid #ccd6d0; }
.basket-destructive label { display: block; margin: 12px 0; }
.basket-row-feedback { scroll-margin: 16px; }
.basket-row-feedback:not(:empty) { padding: 12px; border-left: 4px solid #087949; background: #e3f5eb; }
.basket-row-feedback.is-error { border-color: #a62a21; background: #fce9e7; color: #8e2018; }
.basket-row-feedback:focus { outline: 3px solid #0b1726; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { :is(.v1-surface, .admin-portal, .login-page, .v1-login-page) :is(button, .button) { transition: none; } }

[data-basket-row] { display: flex; flex-direction: column; box-sizing: border-box; }
[data-basket-row] > [data-row-feedback] { margin-top: auto; }
.v1-surface button.basket-card-toggle.button { width:100%; display:grid; grid-template-columns:minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2fr) auto auto; gap:12px; text-align:left; align-items:center; }
.basket-card-toggle > * { min-width:0; overflow-wrap:anywhere; }
[data-basket-row][data-state="ready"] [data-summary-status] { color:#076139; }
[data-basket-row][data-state="attention"] [data-summary-status], [data-unsaved] { color:#694800; }
[data-basket-row][data-state="error"] [data-summary-status] { color:#98281e; }
[data-basket-row][data-state="removed"] [data-summary-status] { color:#505b63; }
.basket-card-controls { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.basket-card-controls p { flex-basis:100%; }
.basket-cost-setup { padding:16px; margin:16px 0; border:1px solid #9ecdb1; border-radius:8px; background:#f2faf5; }
.basket-cost-setup label { display:block; margin:12px 0; }
.basket-cost-setup input:not([type="checkbox"]) { display:block; width:100%; box-sizing:border-box; }
[data-row-content] { padding-top:12px; }
[data-basket-row][hidden], [data-row-content][hidden], [data-unsaved][hidden], [data-apply-adjustment][hidden] { display:none !important; }
@media(max-width:700px) { .v1-surface button.basket-card-toggle.button { grid-template-columns:minmax(0,1fr) auto; } .basket-card-toggle strong, .basket-card-toggle [data-summary-status], .basket-card-toggle [data-unsaved] { grid-column:1 / -1; } }
.basket-card-controls { position:sticky; top:0; z-index:20; padding:12px; background:#e8f5eb; border:1px solid #287d46; border-radius:8px; }
[data-basket-row] { scroll-margin-top:calc(var(--basket-toolbar-height, 150px) + 16px); }
@media(max-width:700px) {
  .basket-card-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .v1-surface .basket-card-controls button.button { width:100%; min-height:44px; white-space:normal; padding:8px !important; font-size:13px; }
  .basket-card-controls p { grid-column:1 / -1; margin:0; font-size:13px; }
}

/* Keep operations chart labels readable without scaling text down on phones. */
.ops-job-chart { display:grid; gap:16px; margin:24px 0; max-width:850px; }
.ops-job-chart-row { display:grid; grid-template-columns:minmax(150px, 1fr) minmax(80px, 2fr) 3ch; align-items:center; gap:12px; font-size:14px; }
.ops-job-chart-track { height:24px; background:#edf3ef; border-radius:4px; overflow:hidden; }
.ops-job-chart-track span { display:block; height:100%; border-radius:4px; }
@media(max-width:600px) {
  .ops-job-chart-row { grid-template-columns:minmax(0, 1fr) 4ch; gap:8px; }
  .ops-job-chart-row > span { grid-column:1 / -1; }
}

.basket-action-checklist ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; list-style:none; }
.basket-action-checklist li { padding:14px; border:1px solid #b7cbbf; border-radius:8px; }
.basket-action-checklist .is-complete { background:#e6f4eb; color:#075b35; }
.basket-action-checklist .needs-action { background:#fff3cf; border:2px solid #9a6b00; color:#604300; }
[data-basket-row][data-state="ready"] .basket-card-toggle { background:#d7efdf !important; border-color:#087949 !important; }
@media(max-width:700px) { .basket-action-checklist ol { grid-template-columns:1fr; } }
