/* Composants communs aux 24 outils. Les classes historiques sont conservées pour les scripts. */
.tool-page{--control-radius:9px;--control-border:#cfd8e7;--control-focus:#8fb2ff}
/* L'attribut hidden doit toujours primer sur les règles display des composants. */
.tool-page [hidden]{display:none!important}
.tool-page :is(.calc-btn,.slope-btn,.hours-btn,.gravel-btn,.speed-submit,.reducer-action,.reducer-secondary,.reducer-download,.result-action){min-height:44px;padding:12px 19px;border:1px solid var(--blue);border-radius:var(--control-radius);background:var(--blue);color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.tool-page :is(.calc-btn,.slope-btn,.hours-btn,.gravel-btn).secondary,.tool-page :is(.reducer-secondary,.result-action-reset){background:#fff;color:var(--blue)}
.tool-page :is(.calc-btn,.slope-btn,.hours-btn,.gravel-btn,.speed-submit,.reducer-action,.reducer-secondary,.reducer-download,.result-action):hover:not(:disabled){filter:brightness(.95)}
.tool-page :is(.calc-btn,.slope-btn,.hours-btn,.gravel-btn,.speed-submit,.reducer-action,.reducer-secondary,.reducer-download,.result-action):focus-visible{outline:3px solid var(--control-focus);outline-offset:3px}
.tool-page :is(.reducer-action,.reducer-secondary):disabled{cursor:not-allowed;background:#aab5c5;border-color:#aab5c5;color:#fff}
.tool-page .speed-submit{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin-top:24px}
.tool-page :is(.fields,.calc-fields,.hours-grid,.gravel-grid)>*{min-width:0}
.tool-page :is(.fields,.calc-field,.slope-field,.hours-field,.gravel-field) :is(input,select){min-width:0;max-width:100%;background:#fff;color:var(--ink);border:1px solid var(--control-border);border-radius:var(--control-radius)}
.tool-page :is(.fields,.calc-field,.slope-field,.hours-field,.gravel-field) :is(input,select):focus-visible{outline:3px solid var(--control-focus);outline-offset:2px}
.tool-page :is(.result,.calc-result,.slope-result,.hours-result,.gravel-result) strong{min-width:0;overflow-wrap:anywhere}
