/* Reusable actions for MVC templates. Keep action/JS classes beside these presentation classes. */
body .dusty-button, body .cyborg .cyborg-controls .dusty-button {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 44px; padding: 10px 18px; border: 1px solid var(--dusty-brand, #005433);
    border-radius: 8px; background: var(--dusty-brand, #005433); color: var(--dusty-brand-text, #fff);
    font: 600 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-decoration: none; cursor: pointer; width: auto; height: auto; background-image: none;
}
body .dusty-button-secondary, body .cyborg .cyborg-controls .dusty-button-secondary {
    background: #edf4ef; border-color: #c5d7cb; color: var(--dusty-brand, #005433);
}
body .dusty-button-danger, body .cyborg .cyborg-controls .dusty-button-danger {
    background: #fff1f2; border-color: #ead4d8; color: #a53b47;
}
body .dusty-button:hover { filter: brightness(.94); }
body .dusty-button:disabled { opacity: .6; cursor: wait; }
body .dusty-button:focus-visible { outline: 3px solid var(--dusty-brand, #005433); outline-offset: 3px; }

/* Job badges share the saved status palette across modules; text remains the primary label. */
body .status-badge{display:inline-block;background:var(--status-color,#475569);color:var(--status-text,#fff);font-weight:700;white-space:normal;overflow-wrap:anywhere}

/* Shared control rhythm: quiet surfaces, restrained rounding and stable hover/focus geometry. */
body.dusty-theme .dusty-button {
    min-height:42px; padding:10px 16px; border-radius:6px; letter-spacing:0;
    box-shadow:0 1px 2px #172b2110; transition:background-color .15s,border-color .15s,box-shadow .15s;
}
body.dusty-theme .dusty-button-secondary { background:#f6f8f7; border-color:#cbd5cf; color:#284c3b; }
body.dusty-theme .dusty-button-danger { background:#fff5f5; border-color:#e2b8bd; color:#952f3b; }
body.dusty-theme .dusty-button:hover:not(:disabled) { filter:brightness(.96); box-shadow:0 2px 4px #172b2118; }
body.dusty-theme .dusty-button:disabled { cursor:not-allowed; box-shadow:none; }
body.dusty-theme main label:not(.estimate-review) { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:14px; font-weight:600; line-height:1.5; color:#344454; }
body.dusty-theme .status-badge { padding:5px 10px; border-radius:6px; font-size:12px; line-height:1.5; letter-spacing:0; }
@media(prefers-reduced-motion:reduce){body.dusty-theme .dusty-button{transition:none}}

/* Settings actions use the same silhouette; icon-only help and file-view toggles retain their own controls. */
body.dusty-theme .admin-layout.settings-panel .settings-actions button{min-height:42px;padding:10px 16px;border:1px solid var(--dusty-brand,#005433);border-radius:6px;font:600 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 1px 2px #172b2110}
body.dusty-theme .settings-actions{gap:12px}
body.dusty-theme .settings-actions button:focus-visible{outline:3px solid var(--dusty-brand,#005433);outline-offset:3px}

/* An action belongs beside its field when both fit; flex wrapping responds to available panel width. */
body.dusty-theme .settings-inline-action{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:16px 0}
body.dusty-theme .settings-inline-action .settings-inline-field{flex:1 1 260px;min-width:0}
body.dusty-theme .admin-layout.settings-panel .settings-inline-action .settings-actions{flex:0 0 auto;margin:0;padding:0;align-self:flex-end}
body.dusty-theme .settings-inline-action select{width:100%;box-sizing:border-box;margin-bottom:0}
body.dusty-theme .settings-inline-action .settings-actions button{white-space:nowrap}
