/* Contract controls belong to the route card, with the assignment visible at a glance. */
.route-card-heading .contract-entry{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border-radius:8px;padding:7px 10px;font-size:11px;white-space:nowrap}
.contract-count{background:#dce8dc;min-width:17px;border-radius:10px;font-size:10px;padding:1px 4px}
.contract-compact{margin:10px 0 14px;padding:10px 12px;border:0;border-left:3px solid #7b9d8c;border-radius:0 8px 8px 0;background:#eff2ea;gap:14px}
.contract-summary{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.contract-summary strong{font-size:12px}.contract-summary>span{font-size:11px;color:#637969;line-height:1.4}.contract-summary progress{height:4px;width:100%;max-width:230px;margin-top:3px;accent-color:#658b76}.contract-compact .text-button{flex-shrink:0;font-size:11px;min-height:36px;max-width:42%}.contract-compact.is-ready{border-color:#b88a37;background:#f6f0de}
.contracts-modal{width:780px}.contracts-modal .modal-body{padding-top:0}.contract-intro{font-size:12px;line-height:1.5}.contract-tabs{display:flex;gap:4px;border-bottom:1px solid #dbe2d7;margin-bottom:18px;padding-bottom:0;position:sticky;top:0;background:#fff;z-index:1}.contract-tab{flex:1;min-width:0;padding:12px 5px;color:#68786d;background:none;border:0;border-bottom:3px solid transparent;display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px}.contract-tab.selected{color:#315d49;border-color:#678f78;font-weight:700}.contract-tab>span{border-radius:12px;background:#eef1e9;padding:2px 6px;font-size:10px}.contract-filters{display:flex;gap:7px;margin-bottom:15px}.contract-filter{background:#f5f5ef;border:1px solid #e0e4d9;border-radius:20px;font-size:11px;padding:8px 12px;color:#627766}.contract-filter.selected{background:#e7eee2;border-color:#9db59f;color:#345b44}
.contract-sheet{padding:20px;background:#fafaf4}.contract-heading>div{min-width:0}.contract-heading h3{font-size:21px;line-height:1.2}.contract-heading>strong{font-size:14px}.contract-sheet>p{font-size:13px;line-height:1.5}.contract-checklist{list-style:none;padding:0;margin:18px 0;display:grid;gap:12px}.contract-checklist li{display:flex;align-items:center;gap:10px;color:#7a867a;font-size:13px}.step-marker{display:grid;place-items:center;flex:0 0 25px;height:25px;border:1px solid #d5dfd1;border-radius:50%;font-size:11px;background:#f2f4ed}.contract-checklist small{display:block;font-size:11px;margin-top:3px}.contract-checklist .current{color:#355e49;font-weight:600}.current .step-marker{background:#638871;color:#fff;border-color:#638871}.done .step-marker{background:#e2ecdc;color:#436d4e}.contract-guide{margin-top:16px;font-size:13px}.contract-guide summary{cursor:pointer;font-size:12px;color:#637969}.contract-help{font-size:12px;color:#68796b;line-height:1.5}.contract-footer{display:block;border-top:1px solid #e1e5d8;padding-top:12px;font-size:11px;color:#72816f}.contract-footer summary{cursor:pointer}.contract-footer small{display:block;margin-top:4px}.contract-card{display:flex;flex-direction:column;gap:8px;padding:17px}.contract-card h3{font-size:19px;margin:0}.contract-card p{font-size:12px;line-height:1.5;margin:0;min-height:0;color:#687b6c}.contract-card>small{font-size:10px;line-height:1.5}.contract-card>div:last-of-type{margin-top:auto;padding-top:7px}.contract-card .contract-card-goal{display:flex;justify-content:flex-start;gap:7px;align-items:flex-start;margin:2px 0;font-size:12px;line-height:1.4;color:#355b45}.contract-card-goal svg{flex-shrink:0}.contract-empty{padding:25px 12px;text-align:center;color:#687c6b;grid-column:1/-1;line-height:1.5}.contract-empty h3{font-size:20px}.contract-history{display:grid;gap:10px}.contract-history article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;border:1px solid #dce4d6;border-radius:10px;background:#f6f8f0;font-size:13px}.contract-history article>span{display:grid;grid-template-columns:20px 1fr;gap:4px 7px}.contract-history small{grid-column:2;color:#71816e;font-size:11px}.contract-history article>strong{white-space:nowrap}
.contract-tab:focus-visible,.contract-filter:focus-visible{outline:2px solid #517b64;outline-offset:2px}
@media(max-width:550px){.route-card-heading{flex-wrap:wrap}.route-card-heading .contract-entry{font-size:10px;padding:7px}.contracts-modal{max-width:calc(100% - 20px)}.contract-tabs{gap:0}.contract-tab{font-size:11px;gap:4px}.contract-sheet{padding:14px}.contract-heading h3{font-size:18px}.contract-heading>strong{font-size:12px}.contract-heading>svg{display:none}.contract-offers{grid-template-columns:1fr}.contract-compact{gap:8px;padding:8px}.contract-summary>span{font-size:10px}.contract-compact .text-button{font-size:10px}.contract-actions .button{flex:1;font-size:11px}.contract-history article{padding:12px;font-size:12px}}
.contracts-modal[open]{display:flex;flex-direction:column;max-height:90dvh;overflow:hidden}.contracts-modal .modal-heading{flex-shrink:0}.contracts-modal .modal-body{overflow-y:auto;min-height:0;overscroll-behavior:contain}.contracts-modal .contract-tabs{background:#fbfbf5}
.contracts-modal .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.contract-sheet progress,.contract-summary progress{appearance:none;border:0;border-radius:4px;overflow:hidden;background:#e1e7db}.contract-sheet progress::-webkit-progress-bar,.contract-summary progress::-webkit-progress-bar{background:#e1e7db}.contract-sheet progress::-webkit-progress-value,.contract-summary progress::-webkit-progress-value{background:#6c9179}.contract-sheet progress::-moz-progress-bar,.contract-summary progress::-moz-progress-bar{background:#6c9179}
