#page-service-directory .service-directory-toolbar { margin:0 0 12px; }
#service-dispatch-root { min-width:0; margin-bottom:16px; }
.service-agreement-overview { min-width:0; margin:0 0 14px; padding:12px; border:1px solid var(--border); border-radius:12px; background:#fff; }
.service-agreement-overview-toggle { width:100%; min-height:44px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font-weight:700; text-align:left; cursor:pointer; }
.service-agreement-overview-toggle::after { content:'▾'; float:right; }
.service-agreement-overview-toggle[aria-expanded="true"]::after { content:'▴'; }
.service-agreement-overview-glance { display:flex; flex-wrap:wrap; gap:3px 10px; margin:4px 18px 0 0; color:var(--muted); font-size:12px; font-weight:500; line-height:1.35; }
.service-agreement-overview-glance .is-ended { color:#9b3030; font-weight:700; }
.service-agreement-overview-note { margin:10px 0; color:var(--muted); font-size:12px; }
.service-agreement-overview-search { display:grid; gap:5px; min-width:0; font-size:12px; font-weight:600; }
.service-agreement-overview-search input { min-width:0; width:100%; min-height:44px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; font:inherit; font-size:16px; }
.service-agreement-overview-filters { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.service-agreement-overview-filters button { min-height:44px; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; cursor:pointer; }
.service-agreement-overview-filters button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); font-weight:700; }
.service-agreement-overview-results { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:0 0 8px; }
.service-agreement-overview-results p { margin:0; color:var(--muted); font-size:12px; }
.service-agreement-overview-results button { min-height:44px; }
.service-agreement-overview-list { display:grid; gap:0; }
.service-agreement-overview-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:10px 0; border-top:1px solid var(--border); }
.service-agreement-overview-row > div { display:grid; gap:3px; min-width:0; overflow-wrap:anywhere; }
.service-agreement-overview-row span { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.service-agreement-overview-row .quiet-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; text-align:center; text-decoration:none; }
.service-dispatch-board { min-width:0; padding:16px; border:1px solid var(--border); border-radius:14px; background:#fff; }
.service-dispatch-heading { display:flex; align-items:center; gap:8px; }
.service-dispatch-create-open { margin:0 0 10px auto; min-height:40px; }
.service-dispatch-create form { display:grid; gap:12px; min-width:0; max-width:680px; }
.service-dispatch-create .service-dispatch-create-heading h2 { margin:0 0 3px; }
.service-dispatch-create-heading p { margin:0; }
.service-dispatch-create-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; min-width:0; }
.service-dispatch-create-fields .is-full { grid-column:1/-1; }
.service-dispatch-create label { display:grid; gap:5px; min-width:0; color:var(--text); font-weight:600; overflow-wrap:anywhere; }
.service-dispatch-create input,.service-dispatch-create select,.service-dispatch-create textarea { width:100%; min-width:0; min-height:44px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; }
.service-dispatch-create textarea { min-height:104px; resize:vertical; }
.service-dispatch-create .service-dispatch-create-note { padding:9px 11px; border-radius:8px; background:#f0f6f7; color:#395866; }
.service-dispatch-create-status.is-error { color:#ab3030; }
.service-dispatch-create-status:empty { display:none; }
.service-dispatch-create-footer { display:grid; gap:6px; }
.service-dispatch-create-actions { display:flex; flex-wrap:wrap; gap:8px; }
.service-dispatch-create-actions button { min-height:44px; }
.service-dispatch-board h2 { margin:0 0 10px; font-size:1.08rem; }
.service-dispatch-heading h2 { margin:0 0 10px; }
.service-dispatch-board p { margin:4px 0; color:var(--muted); }
.service-dispatch-search { display:grid; gap:5px; margin:0 0 10px; min-width:0; }
.service-dispatch-search label { color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-search > div { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:6px; min-width:0; }
.service-dispatch-search input,.service-dispatch-search button { min-width:0; min-height:44px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; }
.service-dispatch-search input { width:100%; padding:8px 10px; font:inherit; font-size:16px; }
.service-dispatch-search button { padding:0; font-size:22px; cursor:pointer; }
.service-dispatch-search button:disabled { opacity:.45; cursor:default; }
.service-dispatch-completed-filter { display:grid; gap:5px; max-width:220px; margin:0 0 10px; color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-completed-filter input { width:100%; min-width:0; min-height:44px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-dispatch-filters { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.service-dispatch-filters button { min-height:44px; padding:6px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; cursor:pointer; }
.service-dispatch-filters button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); font-weight:700; }
.service-dispatch-attention-control { display:flex; align-items:center; gap:5px; min-width:0; }
.service-dispatch-attention-control button { flex:1 1 auto; min-width:0; }
.service-dispatch-attention-control .info-tip { flex:0 0 auto; }
.service-dispatch-filters button[data-service-dispatch-filter="attention"] { border-color:#e5bd83; color:#774410; font-weight:700; }
.service-dispatch-filters button[data-service-dispatch-filter="attention"][aria-pressed="true"] { background:#fff2df; border-color:#b97628; }
.service-dispatch-filters button[data-service-dispatch-filter="overdue"] { border-color:#efcbaa; color:#803c15; font-variant-numeric:tabular-nums; }
.service-dispatch-filters button[data-service-dispatch-filter="overdue"][aria-pressed="true"] { background:#fff0e6; border-color:#bd6833; }
.service-dispatch-filters button[data-service-dispatch-filter="contactDue"] { border-color:#e5bd83; color:#774410; font-variant-numeric:tabular-nums; }
.service-dispatch-filters button[data-service-dispatch-filter="contactDue"][aria-pressed="true"] { background:#fff2df; border-color:#b97628; }
.service-dispatch-worker-filter { display:grid; gap:5px; max-width:290px; min-width:0; margin:0 0 12px; color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-worker-filter select { width:100%; min-width:0; min-height:44px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-dispatch-site-filter { display:grid; gap:5px; max-width:390px; min-width:0; margin:0 0 12px; color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-site-filter select { width:100%; min-width:0; min-height:44px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-dispatch-site-filter select:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-ordinary-sort { display:grid; gap:5px; max-width:390px; min-width:0; margin:0 0 12px; color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-ordinary-sort select { width:100%; min-width:0; min-height:44px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-dispatch-ordinary-sort select:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-ordinary-group { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
.service-dispatch-ordinary-group button { min-height:44px; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; cursor:pointer; }
.service-dispatch-ordinary-group button[aria-pressed="true"] { border-color:#3972a3; background:#e8f2fa; font-weight:700; }
.service-dispatch-ordinary-group button:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-ordinary-site { min-width:0; margin-top:10px; }
.service-dispatch-ordinary-site h3 { display:flex; justify-content:space-between; gap:8px; margin:0 0 6px; color:var(--muted); font-size:12px; font-weight:700; overflow-wrap:anywhere; }
.service-dispatch-ordinary-site h3 span { flex:0 0 auto; border-radius:99px; padding:1px 7px; background:#edf3fa; color:#36516b; }
.service-dispatch-date-heading { display:flex; align-items:center; gap:6px; margin:0 0 5px; color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-date-filter { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; max-width:390px; margin:0 0 8px; }
.service-dispatch-date-filter button { min-width:0; min-height:44px; padding:6px 8px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:12px; font-weight:600; line-height:1.2; cursor:pointer; }
.service-dispatch-date-filter button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); }
.service-dispatch-queue-actions { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; }
.service-dispatch-undated,.service-dispatch-needs-crew { display:inline-flex; align-items:center; min-height:44px; max-width:100%; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; text-align:left; cursor:pointer; }
.service-dispatch-undated[aria-pressed="true"],.service-dispatch-needs-crew[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); }
.service-dispatch-board .service-dispatch-count { margin:-4px 0 8px; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.service-dispatch-result-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px; margin:0 0 8px; }
.service-dispatch-result-bar .service-dispatch-count { margin:0; }
.service-dispatch-result-bar .quiet-btn { min-height:44px; padding:7px 10px; white-space:normal; }
.service-dispatch-visible-status { display:flex; flex-wrap:wrap; gap:5px; margin:0 0 10px; min-width:0; }
.service-dispatch-visible-status span { display:inline-flex; align-items:center; gap:5px; min-width:0; padding:5px 8px; border:1px solid var(--border); border-radius:999px; background:var(--surface-soft,#f7f9fc); color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.service-dispatch-visible-status strong { color:var(--text); font-variant-numeric:tabular-nums; }
.service-dispatch-open-weeks { min-width:0; margin:0 0 12px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface-soft,#f7f9fc); }
.service-dispatch-open-weeks h3 { margin:0; font-size:14px; }
.service-dispatch-open-weeks > p { margin:4px 0 8px; color:var(--muted); font-size:12px; }
.service-dispatch-open-week { margin-top:6px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.service-dispatch-open-week summary { display:flex; align-items:center; gap:5px; min-height:44px; padding:7px 10px; cursor:pointer; font-size:13px; font-variant-numeric:tabular-nums; }
.service-dispatch-open-week summary::before { content:'▸'; margin-right:3px; }
.service-dispatch-open-week[open] summary::before { content:'▾'; }
.service-dispatch-open-week summary strong { margin-left:auto; padding:2px 8px; border-radius:99px; background:#edf3fa; }
.service-dispatch-open-week summary:focus-visible,.service-dispatch-open-week a:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-open-week ul { margin:0; padding:0 10px 4px; list-style:none; }
.service-dispatch-open-week li { border-top:1px solid var(--border); }
.service-dispatch-open-week a { display:grid; grid-template-columns:140px minmax(0,1fr) auto; align-items:center; gap:8px; min-height:44px; padding:7px 0; color:inherit; text-decoration:none; overflow-wrap:anywhere; }
.service-dispatch-open-week a small { color:var(--muted); }
@media (max-width:600px) { .service-dispatch-open-week a { grid-template-columns:minmax(0,1fr); gap:2px; } .service-dispatch-open-week summary { flex-wrap:wrap; } }
.service-dispatch-week-controls { display:grid; grid-template-columns:44px minmax(0,1fr) 44px auto auto; align-items:end; gap:6px; min-width:0; margin:0 0 10px; }
.service-dispatch-week-controls label { display:grid; gap:2px; min-width:0; color:var(--muted); font-size:11px; font-weight:600; }
.service-dispatch-week-controls button,.service-dispatch-week-controls input { min-width:0; min-height:44px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; }
.service-dispatch-week-controls button { padding:6px 10px; cursor:pointer; }
.service-dispatch-week-controls input { width:100%; padding:6px 8px; font:inherit; font-size:16px; }
.service-dispatch-week-controls > span { align-self:center; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.service-dispatch-month-controls { display:grid; grid-template-columns:44px minmax(0,1fr) 44px auto; align-items:end; gap:6px; min-width:0; margin:0 0 10px; }
.service-dispatch-month-controls label,.service-dispatch-month-site { display:grid; gap:3px; min-width:0; color:var(--muted); font-size:12px; font-weight:600; }
.service-dispatch-month-controls button,.service-dispatch-month-controls input,.service-dispatch-month-site select { min-width:0; min-height:44px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; }
.service-dispatch-month-controls input,.service-dispatch-month-site select { width:100%; padding:7px 9px; font:inherit; font-size:16px; }
.service-dispatch-month-controls button { padding:6px 9px; cursor:pointer; }
.service-dispatch-month-site { max-width:390px; margin:0 0 10px; }
.service-dispatch-week-overdue { display:block; min-height:44px; margin:0 0 10px; padding:8px 10px; border:1px solid #efcbaa; border-radius:8px; background:#fff4e9; color:#803c15; font-weight:700; cursor:pointer; }
.service-dispatch-week-print { min-height:44px; margin:0 0 8px; padding:8px 12px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font-weight:600; cursor:pointer; }
.service-dispatch-week-csv { min-height:44px; margin:0 8px 8px 0; padding:8px 12px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font-weight:600; cursor:pointer; }
.service-dispatch-week-csv:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-week-csv:disabled { opacity:.5; cursor:default; }
.service-dispatch-overdue-print { min-height:44px; margin:0 0 8px; padding:8px 12px; border:1px solid #bd6833; border-radius:8px; background:#fff0e6; color:#803c15; font-weight:700; cursor:pointer; }
.service-dispatch-overdue-print:disabled { opacity:.5; cursor:default; }
.service-dispatch-list-print { min-height:44px; margin:0 0 8px; padding:8px 12px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font-weight:600; cursor:pointer; }
.service-dispatch-list-print:disabled { opacity:.5; cursor:default; }
.service-dispatch-list-print:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-list-csv { min-height:44px; margin:0 8px 8px 0; padding:8px 12px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font-weight:600; cursor:pointer; }
.service-dispatch-list-csv:disabled { opacity:.5; cursor:default; }
.service-dispatch-list-csv:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-dispatch-list-sheet { display:none; }
.service-dispatch-overdue-sheet { display:none; }
.service-dispatch-week-print:disabled { opacity:.5; cursor:default; }
.service-dispatch-week-sheet { display:none; }
.service-dispatch-week-day { min-width:0; margin-top:10px; }
.service-dispatch-planned-title { margin:12px 0 6px; font-size:1rem; }
.service-dispatch-planned-row { display:grid; grid-template-columns:minmax(105px,.6fr) minmax(0,1.4fr) auto; align-items:center; gap:10px; min-width:0; padding:10px 0; border-top:1px solid var(--border); }
.service-dispatch-planned-row time { font-weight:700; font-variant-numeric:tabular-nums; }
.service-dispatch-planned-row > div { display:grid; gap:2px; min-width:0; overflow-wrap:anywhere; }
.service-dispatch-planned-row span,.service-dispatch-planned-row small { color:var(--muted); }
.service-dispatch-planned-row .quiet-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; text-align:center; text-decoration:none; }
.service-dispatch-week-worker { min-width:0; margin-top:10px; }
.service-dispatch-today-groups { display:grid; gap:2px; min-width:0; }
.service-dispatch-today-groups .service-dispatch-week-worker { margin-top:6px; }
.service-dispatch-week-group { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; }
.service-dispatch-week-group button { min-height:44px; min-width:0; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; cursor:pointer; }
.service-dispatch-week-group button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); font-weight:700; }
.service-dispatch-week-day h3,.service-dispatch-week-worker h3 { display:flex; justify-content:space-between; gap:8px; margin:0 0 6px; color:var(--muted); font-size:12px; font-weight:700; overflow-wrap:anywhere; }
.service-dispatch-week-day h3 span:last-child,.service-dispatch-week-worker h3 span:last-child { flex:0 0 auto; border-radius:99px; padding:1px 7px; background:#edf3fa; color:#36516b; }
.service-dispatch-list { display:grid; gap:8px; }
.service-dispatch-row { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto; gap:12px; align-items:center; min-width:0; padding:10px 0; border-top:1px solid var(--border); }
.service-dispatch-main,.service-dispatch-details { display:grid; gap:3px; min-width:0; overflow-wrap:anywhere; }
.service-dispatch-main span,.service-dispatch-details span { color:var(--muted); font-size:.86rem; }
.service-dispatch-main small { color:var(--muted); font-size:.72rem; overflow-wrap:anywhere; }
.service-dispatch-next-contact { display:block; color:#774410!important; font-size:.78rem; font-weight:600; font-variant-numeric:tabular-nums; }
.service-dispatch-next-contact.is-reached { color:#8b3c1e!important; }
.service-dispatch-contacts > .service-dispatch-next-contact { margin:0; }
.service-dispatch-inspection-result { display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; padding:6px 8px; border:1px solid #d7e3ee; border-radius:8px; background:#f4f8fc; color:#34516b; font-size:12px; line-height:1.35; }
.service-dispatch-inspection-result span { color:inherit; font-size:inherit; overflow-wrap:anywhere; }
.service-dispatch-inspection-result .quiet-btn { min-height:44px; padding:6px 9px; font-size:12px; }
@media (max-width:600px) { .service-dispatch-inspection-result { display:grid; grid-template-columns:minmax(0,1fr); } .service-dispatch-inspection-result .quiet-btn { width:100%; } }
.service-dispatch-details .service-dispatch-badge { color:inherit; font-weight:700; }
.service-dispatch-details .service-dispatch-overdue { justify-self:start; padding:3px 7px; border-radius:999px; background:#fff0e6; color:#8c3d10; font-size:.78rem; font-weight:700; }
.service-dispatch-details .service-dispatch-same-slot { justify-self:start; padding:3px 7px; border-radius:999px; background:#fff3d8; color:#754b00; font-size:.78rem; font-weight:700; }
.service-dispatch-slot-help { margin:0 0 10px !important; font-size:.8rem; }
.service-dispatch-row.is-compact { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto; gap:10px; }
.service-dispatch-completed-date { display:grid; gap:2px; min-width:0; font-size:.8rem; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.service-dispatch-completed-date span { color:var(--muted); }
.service-dispatch-compact-facts { display:grid; gap:3px; min-width:0; color:var(--muted); font-size:.8rem; overflow-wrap:anywhere; }
.service-dispatch-compact-facts .service-dispatch-badge { color:inherit; font-weight:700; }
.service-dispatch-attention-reason { justify-self:start; padding:3px 7px; border-radius:999px; background:#fff2df; color:#774410; font-size:11px; line-height:1.3; }
.service-dispatch-empty { padding:8px 0; }
.service-dispatch-row .quiet-btn { text-decoration:none; text-align:center; }
.service-dispatch-actions { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.service-dispatch-actions .quiet-btn { min-height:44px; display:inline-flex; align-items:center; justify-content:center; flex:1 1 auto; }
.service-dispatch-actions .service-dispatch-card-link { color:var(--muted); }
.service-dispatch-actions .service-dispatch-conflict-link { border-color:#a76b13; color:#754b00; }
.service-dispatch-actions .service-dispatch-conflict-link:focus-visible { outline:2px solid #754b00; outline-offset:2px; }
.service-dispatch-detail { display:grid; gap:10px; }
.service-dispatch-detail .service-dispatch-back { justify-self:start; min-height:44px; }
.service-dispatch-detail h2 { margin:0; }
.service-dispatch-detail-card { display:grid; gap:12px; min-width:0; padding:12px; border:1px solid var(--border); border-radius:10px; background:#f8fbfe; overflow-wrap:anywhere; }
.service-dispatch-detail-heading { display:flex; align-items:start; justify-content:space-between; gap:8px; min-width:0; }
.service-dispatch-detail-heading strong { min-width:0; font-size:1rem; line-height:1.3; }
.service-dispatch-detail-heading span { flex:none; padding:4px 8px; border-radius:999px; background:var(--surface-soft,#e8f2fa); color:#244c75; font-size:11px; font-weight:700; }
.service-dispatch-detail-essential { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; min-width:0; }
.service-dispatch-detail-essential > div { display:grid; gap:2px; min-width:0; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:var(--surface,#fff); }
.service-dispatch-detail-essential .service-dispatch-detail-place { grid-column:1/-1; }
.service-dispatch-detail-essential span { color:var(--muted); font-size:11px; }
.service-dispatch-detail-essential strong { font-size:12px; line-height:1.35; overflow-wrap:anywhere; }
.service-dispatch-detail-more { min-width:0; border-top:1px solid var(--border); }
.service-dispatch-detail-more > summary { display:flex; align-items:center; min-height:44px; color:#244c75; font-size:.86rem; font-weight:700; cursor:pointer; }
.service-dispatch-detail-more > summary:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.service-dispatch-detail-more > .service-dispatch-contract { margin-top:10px; }
.service-dispatch-detail-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; }
.service-dispatch-detail-card .service-dispatch-detail-more > dl { margin:0 0 10px; }
.service-dispatch-detail-card dt { color:var(--muted); font-size:.75rem; }
.service-dispatch-detail-card dd { margin:2px 0 0; font-weight:600; font-variant-numeric:tabular-nums; }
.service-dispatch-detail-note { padding:10px; border-left:3px solid #489073; border-radius:7px; background:#eaf5ef; }
.service-dispatch-detail-note span { color:#285d48; font-size:.75rem; font-weight:700; }
.service-dispatch-detail-note p { margin:4px 0 0; color:#285d48; white-space:pre-wrap; overflow-wrap:anywhere; }
.service-dispatch-detail-description { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--muted); }
.service-dispatch-detail-actions { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.service-dispatch-detail-actions .quiet-btn { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.service-dispatch-primary-action { display:grid; gap:8px; min-width:0; }
.service-dispatch-primary-action > * { min-width:0; }
.service-dispatch-copy-status { margin:0; color:#285d48; font-size:12px; font-weight:650; }
.service-dispatch-copy-status.is-error { color:#9a3030; }
.service-dispatch-timeline { min-width:0; border-top:1px solid var(--border); }
.service-dispatch-timeline summary { display:flex; align-items:center; min-height:44px; color:#244c75; font-size:.86rem; font-weight:700; cursor:pointer; }
.service-dispatch-timeline ol { display:grid; gap:0; margin:0; padding:0 0 0 14px; list-style:none; border-left:2px solid #c8d8e8; }
.service-dispatch-timeline li { display:flex; justify-content:space-between; gap:8px; padding:7px 0 7px 10px; font-size:.81rem; overflow-wrap:anywhere; }
.service-dispatch-timeline li + li { border-top:1px solid var(--border); }
.service-dispatch-timeline time { color:var(--muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.service-dispatch-timeline > p,.service-dispatch-timeline-unavailable { margin:0; color:var(--muted); font-size:.82rem; }
.service-dispatch-assignment { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:7px; padding:9px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.service-dispatch-assignment label { display:grid; gap:4px; min-width:0; font-size:.82rem; font-weight:600; }
.service-dispatch-assignment select { width:100%; min-width:0; min-height:44px; font-size:16px; }
.service-dispatch-assignment button { min-height:44px; }
.service-dispatch-assignment-status { grid-column:1/-1; margin:0; font-size:.8rem; }
.service-dispatch-assignment-status:empty { display:none; }
.service-dispatch-assignment-status.is-error { color:#a13a2b; }
.service-dispatch-plan { display:grid; gap:9px; min-width:0; padding:11px; border:1px solid var(--border); border-radius:9px; background:#fff; }
.service-dispatch-plan > p { margin:0; color:var(--muted); font-size:.82rem; }
.service-dispatch-plan-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.service-dispatch-plan label { display:grid; gap:5px; min-width:0; font-size:.83rem; font-weight:600; }
.service-dispatch-plan input,.service-dispatch-plan textarea { box-sizing:border-box; width:100%; min-width:0; min-height:44px; }
.service-dispatch-plan textarea { min-height:72px; resize:vertical; }
.service-dispatch-plan-more { min-width:0; border-top:1px solid var(--border); }
.service-dispatch-plan-more summary { display:flex; align-items:center; min-height:44px; cursor:pointer; font-size:.83rem; font-weight:700; }
.service-dispatch-plan-more summary:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.service-dispatch-plan-more > label { margin:2px 0 8px; }
.service-dispatch-plan > div:last-child { display:flex; flex-wrap:wrap; gap:8px; }
.service-dispatch-plan button,.service-dispatch-detail-card > [data-service-dispatch-plan-open] { min-height:44px; }
.service-dispatch-plan-status { min-height:1em; margin:0; font-size:.82rem; }
.service-dispatch-plan-status.is-error { color:#a13a2b; }
.service-dispatch-start { display:grid; gap:8px; padding:10px; border-radius:8px; background:#eaf5ef; }
.service-dispatch-start p { margin:0; color:#285d48; font-size:.85rem; }
.service-dispatch-start .primary-btn,.service-dispatch-start .quiet-btn { min-height:44px; justify-self:start; }
.service-dispatch-start-message { margin:0; padding:9px 10px; border-radius:8px; background:#eaf5ef; color:#285d48; }
.service-dispatch-start-message.is-error { background:#fff1ee; color:#a13a2b; }
.service-dispatch-completion { display:grid; gap:8px; min-width:0; padding:10px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.service-dispatch-completion > span,.service-dispatch-completion small { color:var(--muted); font-size:.8rem; }
.service-dispatch-completion label { display:grid; gap:5px; font-size:.85rem; font-weight:600; }
.service-dispatch-completion textarea { box-sizing:border-box; width:100%; min-height:76px; resize:vertical; }
.service-dispatch-completion > div { display:flex; flex-wrap:wrap; gap:8px; }
.service-dispatch-completion button,.service-dispatch-complete-open { min-height:44px; }
.service-dispatch-completion-status { margin:0; font-size:.82rem; }
.service-dispatch-completion-status.is-error { color:#a13a2b; }
.service-directory-search { display:grid; gap:6px; max-width:420px; font-weight:600; }
.service-directory-search input { width:100%; min-width:0; min-height:44px; font-size:16px; }
#service-directory-root { display:grid; gap:12px; min-width:0; }
.service-directory-results { margin:0; color:var(--muted); font-size:12px; font-weight:600; }
.service-directory-jump { display:grid; gap:5px; width:100%; max-width:420px; min-width:0; font-size:12px; font-weight:700; }
.service-directory-jump select { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-directory-jump select:focus-visible,.service-directory-unit > a[data-service-directory-lift]:focus-visible { outline:2px solid var(--accent,#2d6cdf); outline-offset:2px; }
@media (max-width:600px) { .service-directory-jump { max-width:none; } }
.service-directory-print-action { min-height:44px; justify-self:start; }
.service-directory-print { display:none; }
@media (max-width:430px) { .service-directory-print-action { width:100%; } }
.service-directory-due-filters { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; }
.service-directory-due-filters button { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:44px; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:12px; font-weight:700; line-height:1.25; cursor:pointer; }
.service-directory-due-filters button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); }
.service-directory-due-filters button span { padding:2px 5px; border-radius:6px; background:#e9f0f6; font-variant-numeric:tabular-nums; }
.service-directory-repair-filters { margin:0 0 10px; }
.service-directory-repair-filters button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:7px 12px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:12px; font-weight:700; line-height:1.25; cursor:pointer; }
.service-directory-repair-filters button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); }
.service-directory-repair-filters button span { padding:2px 5px; border-radius:6px; background:#e9f0f6; font-variant-numeric:tabular-nums; }
@media (max-width:430px) { .service-directory-due-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }.service-directory-due-filters button { min-width:0; padding:7px 5px; white-space:normal; }.service-directory-due-filters button span { flex:none; } }
@media (max-width:430px) { .service-directory-repair-filters button { width:100%; } }
.service-directory-message, .service-directory-card { min-width:0; padding:20px; border:1px solid var(--border); border-radius:14px; background:#fff; }
.service-directory-card { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.service-directory-card > div { min-width:0; }
.service-directory-card h2 { margin:3px 0 12px; font-size:1.15rem; overflow-wrap:anywhere; }
.service-directory-card p { margin:3px 0 0; overflow-wrap:anywhere; }
.service-directory-card .quiet-btn { display:inline-flex; align-items:center; flex:0 0 auto; text-align:center; text-decoration:none; }
.service-directory-links { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.service-directory-unit { display:grid; gap:4px; min-width:0; max-width:100%; }
.service-directory-serial { min-width:0; color:var(--muted); font-size:11px; line-height:1.3; overflow-wrap:anywhere; }
.service-directory-next { display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; min-width:0; max-width:100%; color:var(--muted); font-size:11px; line-height:1.3; overflow-wrap:anywhere; }
.service-directory-next span { min-width:0; }
.service-directory-next a { display:inline-flex; align-items:center; min-height:44px; padding:6px 8px; border:1px solid var(--border); border-radius:8px; color:var(--accent,#2d6cdf); text-decoration:none; }
.service-directory-next a:focus-visible { outline:2px solid var(--accent,#2d6cdf); outline-offset:2px; }
.service-directory-signals { display:flex; flex-wrap:wrap; gap:4px 8px; min-width:0; }
.service-directory-signals a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; padding:6px 8px; border:1px solid var(--border); border-radius:8px; font-size:11px; line-height:1.3; text-decoration:none; overflow-wrap:anywhere; }
.service-directory-signals a:focus-visible { outline:2px solid var(--accent,#2d6cdf); outline-offset:2px; }
.service-directory-overdue { padding:2px 6px; border-radius:999px; background:#fff0e6; color:#8c3d10; font-size:10px; }
.service-directory-caption { color:var(--muted); font-size:.8rem; }
@media (max-width:600px) { .service-directory-card { align-items:stretch; flex-direction:column; padding:14px; } .service-directory-links { justify-content:flex-start; } .service-directory-card .quiet-btn { align-self:flex-start; } }
@page service-directory-list { size:A4; margin:14mm; }
@media print {
  body.print-service-directory .sidebar,body.print-service-directory .topbar,
  body.print-service-directory .page:not(#page-service-directory),
  body.print-service-directory #page-service-directory > :not(#service-directory-root),
  body.print-service-directory #service-directory-root > :not(.service-directory-print) { display:none !important; }
  body.print-service-directory .app-shell,body.print-service-directory .main,
  body.print-service-directory #page-service-directory,body.print-service-directory #service-directory-root,
  body.print-service-directory .service-directory-print { display:block !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body.print-service-directory .service-directory-print { page:service-directory-list; color:#111; font:9pt/1.3 Arial,sans-serif; }
  body.print-service-directory .service-directory-print header { margin-bottom:6mm; padding-bottom:3mm; border-bottom:1px solid #777; }
  body.print-service-directory .service-directory-print h2 { margin:0 0 2mm; font-size:16pt; }
  body.print-service-directory .service-directory-print p { margin:0 0 2mm; }
  body.print-service-directory .service-directory-print table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body.print-service-directory .service-directory-print th,body.print-service-directory .service-directory-print td { padding:2mm 1.5mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
  body.print-service-directory .service-directory-print thead { display:table-header-group; }
  body.print-service-directory .service-directory-print tr { break-inside:avoid-page; }
}
@media (max-width:600px) {
  .service-dispatch-assignment { grid-template-columns:minmax(0,1fr); }
  .service-dispatch-assignment button { width:100%; }
  .service-dispatch-planned-row { grid-template-columns:minmax(0,1fr); gap:6px; }
  .service-dispatch-planned-row .quiet-btn { width:100%; }
  .service-dispatch-month-controls { grid-template-columns:44px minmax(0,1fr) 44px; }
  .service-dispatch-month-controls > button[data-service-dispatch-month-current] { grid-column:1/-1; }
  .service-dispatch-month-site { max-width:none; }
  .service-dispatch-start .primary-btn,.service-dispatch-start .quiet-btn { width:100%; justify-self:stretch; }
  .service-dispatch-board { padding:12px; }
  .service-dispatch-week-controls { grid-template-columns:44px minmax(0,1fr) 44px; }
  .service-dispatch-week-controls > button[data-service-dispatch-week-current] { grid-column:1/-1; }
  .service-dispatch-week-controls > span { grid-column:1/-1; justify-self:center; }
  .service-dispatch-week-csv,.service-dispatch-week-print,.service-dispatch-overdue-print,.service-dispatch-list-print,.service-dispatch-list-csv { width:100%; }
  .service-dispatch-week-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-dispatch-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-dispatch-filters button { min-height:44px; min-width:0; }
  .service-dispatch-worker-filter { max-width:none; }
  .service-dispatch-site-filter { max-width:none; }
  .service-dispatch-ordinary-sort { max-width:none; }
  .service-dispatch-ordinary-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-dispatch-ordinary-group button { min-width:0; white-space:normal; }
  .service-dispatch-date-filter { max-width:none; }
  .service-dispatch-row { grid-template-columns:minmax(0,1fr); gap:7px; align-items:stretch; }
  .service-dispatch-row.is-compact { grid-template-columns:minmax(0,1fr); gap:7px; }
  .service-dispatch-completed-filter { max-width:none; }
  .service-dispatch-result-bar { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .service-dispatch-result-bar .quiet-btn { min-width:0; max-width:100%; }
  .service-dispatch-row .quiet-btn { min-height:44px; display:flex; align-items:center; justify-content:center; width:100%; }
  .service-dispatch-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-dispatch-actions .quiet-btn:only-child { grid-column:1/-1; }
  .service-dispatch-plan-fields { grid-template-columns:minmax(0,1fr); }
  .service-dispatch-plan > div:last-child { display:grid; grid-template-columns:minmax(0,1fr); }
}
@page service-week-plan { size:A4; margin:14mm; }
@media print {
  body.print-service-week .sidebar, body.print-service-week .topbar,
  body.print-service-week .page:not(#page-service-work-orders),
  body.print-service-week #page-service-work-orders > :not(#service-dispatch-root),
  body.print-service-week .service-dispatch-board > :not(.service-dispatch-week-sheet) { display:none !important; }
  body.print-service-week .app-shell, body.print-service-week .main,
  body.print-service-week #page-service-work-orders, body.print-service-week #service-dispatch-root,
  body.print-service-week .service-dispatch-board,
  body.print-service-week .service-dispatch-week-sheet { display:block !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body.print-service-week .main { background:#fff !important; }
  body.print-service-week .service-dispatch-week-sheet { page:service-week-plan; color:#111; font:9pt/1.3 Arial,sans-serif; }
  body.print-service-week .service-dispatch-week-sheet header { border-bottom:1px solid #777; margin-bottom:6mm; padding-bottom:3mm; }
  body.print-service-week .service-dispatch-week-sheet h2 { margin:0 0 2mm; font-size:16pt; }
  body.print-service-week .service-dispatch-week-sheet header p { margin:0 0 2mm; }
  body.print-service-week .service-dispatch-week-sheet header strong { display:block; margin-top:3mm; }
  body.print-service-week .service-dispatch-week-sheet table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body.print-service-week .service-dispatch-week-sheet th,body.print-service-week .service-dispatch-week-sheet td { padding:2mm 1.5mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
  body.print-service-week .service-dispatch-week-sheet thead { display:table-header-group; }
  body.print-service-week .service-dispatch-week-sheet tr { break-inside:avoid-page; }
}
@page service-overdue-orders { size:A4; margin:14mm; }
@media print {
  body.print-service-overdue .sidebar, body.print-service-overdue .topbar,
  body.print-service-overdue .page:not(#page-service-work-orders),
  body.print-service-overdue #page-service-work-orders > :not(#service-dispatch-root),
  body.print-service-overdue .service-dispatch-board > :not(.service-dispatch-overdue-sheet) { display:none !important; }
  body.print-service-overdue .app-shell, body.print-service-overdue .main,
  body.print-service-overdue #page-service-work-orders, body.print-service-overdue #service-dispatch-root,
  body.print-service-overdue .service-dispatch-board, body.print-service-overdue .service-dispatch-overdue-sheet { display:block !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body.print-service-overdue .service-dispatch-overdue-sheet { page:service-overdue-orders; color:#111; font:9pt/1.3 Arial,sans-serif; }
  body.print-service-overdue .service-dispatch-overdue-sheet header { border-bottom:1px solid #777; margin-bottom:6mm; padding-bottom:3mm; }
  body.print-service-overdue .service-dispatch-overdue-sheet h2 { margin:0 0 2mm; font-size:16pt; }
  body.print-service-overdue .service-dispatch-overdue-sheet header p { margin:0 0 2mm; }
  body.print-service-overdue .service-dispatch-overdue-sheet table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body.print-service-overdue .service-dispatch-overdue-sheet th,body.print-service-overdue .service-dispatch-overdue-sheet td { padding:2mm 1.5mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
  body.print-service-overdue .service-dispatch-overdue-sheet thead { display:table-header-group; }
  body.print-service-overdue .service-dispatch-overdue-sheet tr { break-inside:avoid-page; }
}
@page service-order-register { size:A4; margin:14mm; }
@media print {
  body.print-service-orders .sidebar, body.print-service-orders .topbar,
  body.print-service-orders .page:not(#page-service-work-orders),
  body.print-service-orders #page-service-work-orders > :not(#service-dispatch-root),
  body.print-service-orders .service-dispatch-board > :not(.service-dispatch-list-sheet) { display:none !important; }
  body.print-service-orders .app-shell, body.print-service-orders .main,
  body.print-service-orders #page-service-work-orders, body.print-service-orders #service-dispatch-root,
  body.print-service-orders .service-dispatch-board, body.print-service-orders .service-dispatch-list-sheet {
    display:block !important; width:auto !important; max-width:none !important; margin:0 !important;
    padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important;
  }
  body.print-service-orders .service-dispatch-list-sheet { page:service-order-register; color:#111; font:9pt/1.3 Arial,sans-serif; }
  body.print-service-orders .service-dispatch-list-sheet header { border-bottom:1px solid #777; margin-bottom:6mm; padding-bottom:3mm; }
  body.print-service-orders .service-dispatch-list-sheet h2 { margin:0 0 2mm; font-size:16pt; }
  body.print-service-orders .service-dispatch-list-sheet header p { margin:0 0 2mm; }
  body.print-service-orders .service-dispatch-list-sheet header strong { display:block; margin-top:3mm; }
  body.print-service-orders .service-dispatch-list-sheet table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body.print-service-orders .service-dispatch-list-sheet th,body.print-service-orders .service-dispatch-list-sheet td {
    padding:2mm 1.5mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere;
  }
  body.print-service-orders .service-dispatch-list-sheet thead { display:table-header-group; }
  body.print-service-orders .service-dispatch-list-sheet tr { break-inside:avoid-page; }
}
@media (max-width:430px) {
  .service-dispatch-heading { flex-wrap:wrap; }
  .service-dispatch-create-open { width:100%; margin:0 0 10px; }
  .service-dispatch-create form { gap:9px; }
  .service-dispatch-create-fields { gap:8px; }
  .service-dispatch-plan { gap:7px; padding:9px; }
  .service-dispatch-plan label { gap:3px; }
  .service-dispatch-plan-fields { grid-template-columns:minmax(0,1fr); }
  .service-dispatch-plan > div:last-child { position:sticky; bottom:calc(var(--mobile-status-height, 42px) + 18px + env(safe-area-inset-bottom)); z-index:2; grid-template-columns:repeat(2,minmax(0,1fr)); padding:6px 0; background:var(--surface,#fff); }
  .service-dispatch-plan > div:last-child button { min-width:0; white-space:normal; }
  .service-dispatch-create .service-dispatch-create-heading h2 { margin:0 0 3px; font-size:17px; }
  .service-dispatch-create-heading p { font-size:12px; line-height:1.35; }
  .service-dispatch-create label { gap:3px; font-size:13px; }
  .service-dispatch-create input,.service-dispatch-create select,.service-dispatch-create textarea { font-size:16px; }
  .service-dispatch-create textarea { min-height:76px; }
  .service-dispatch-create .service-dispatch-create-note { padding:6px 8px; font-size:12px; line-height:1.35; }
  .service-dispatch-create-footer { position:sticky; bottom:calc(var(--mobile-status-height, 42px) + 18px + env(safe-area-inset-bottom)); z-index:2; margin:0 -10px -10px; padding:8px 10px; border-top:1px solid var(--border); border-radius:0 0 12px 12px; background:#fff; box-shadow:0 -4px 12px rgb(25 48 67 / 8%); }
  .service-dispatch-create-status { font-size:12px; line-height:1.35; }
  .service-dispatch-create-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.7fr); }
  .service-dispatch-create-actions button { width:100%; min-width:0; min-height:44px; white-space:normal; }
  #service-dispatch-root { margin-bottom:10px; }
  .service-dispatch-board { padding:10px; border-radius:12px; }
  .service-dispatch-board h2 { margin-bottom:8px; font-size:14px; line-height:1.25; }
  .service-dispatch-filters { display:flex; flex-wrap:nowrap; gap:6px; max-width:100%; margin-bottom:8px; padding-bottom:5px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; }
  .service-dispatch-filters > button,.service-dispatch-filters > .service-dispatch-attention-control { flex:0 0 auto; }
  .service-dispatch-filters button { padding:7px 8px; font-size:12px; line-height:1.2; white-space:nowrap; }
  .service-dispatch-list { gap:6px; }
  .service-dispatch-row,.service-dispatch-row.is-compact { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:7px 9px; padding:8px; border:1px solid #cfdae7; border-radius:10px; background:#f8fbfe; }
  .service-dispatch-main { gap:2px; }
  .service-dispatch-main strong { font-size:13px; line-height:1.3; }
  .service-dispatch-main span { font-size:11px; line-height:1.3; }
  .service-dispatch-details { grid-template-columns:minmax(0,1fr); gap:3px; align-items:start; }
  .service-dispatch-compact-facts,.service-dispatch-completed-date { gap:3px; }
  .service-dispatch-details span { font-size:11px; line-height:1.3; }
  .service-dispatch-details .service-dispatch-badge { justify-self:start; padding:3px 7px; border-radius:999px; background:#e7f0fa; color:#244c75; font-size:11px; }
  .service-dispatch-details .service-dispatch-overdue { font-size:11px; }
  .service-dispatch-details .service-dispatch-same-slot { font-size:11px; }
  .service-dispatch-row[data-slot-conflict="true"] .service-dispatch-same-slot,
  .service-dispatch-row[data-slot-conflict="true"] .service-dispatch-when { grid-column:1/-1; text-align:left; }
  .service-dispatch-row[data-status="COMPLETED"] .service-dispatch-badge { background:#e4f3eb; color:#216249; }
  .service-dispatch-when { align-self:start; text-align:left; font-variant-numeric:tabular-nums; }
  .service-dispatch-responsible,.service-dispatch-crew { grid-column:1/-1; }
  .service-dispatch-details .service-dispatch-actual { grid-column:1/-1; padding:6px 8px; border-radius:7px; background:#edf5fc; color:#244c75; font-variant-numeric:tabular-nums; }
  .service-dispatch-row.is-history { background:#f8fcfa; border-color:#bed9c9; }
  .service-dispatch-row .quiet-btn { border-radius:8px; font-size:12px; }
  .service-dispatch-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
  .service-dispatch-actions .quiet-btn { min-width:0; min-height:44px; padding:7px 6px; white-space:normal; overflow-wrap:anywhere; }
  .service-dispatch-actions .quiet-btn:last-child:nth-child(odd) { grid-column:1/-1; }
  .service-dispatch-row .service-dispatch-main { grid-column:1/-1; }
  .service-dispatch-row .service-dispatch-details,
  .service-dispatch-row .service-dispatch-compact-facts,
  .service-dispatch-row .service-dispatch-completed-date { grid-column:1/-1; }
  .service-dispatch-row .service-dispatch-client,
  .service-dispatch-row .service-dispatch-crew,
  .service-dispatch-row .service-dispatch-compact-facts > span:last-child { display:none; }
  .service-dispatch-row .service-dispatch-actions button[data-service-dispatch-detail] { display:none; }
  .service-dispatch-row:not([data-status="DRAFT"]) .service-dispatch-actions:has(a[href*="?order="]) a[href*="?plan="] { display:none; }
  .service-dispatch-row[data-status="DRAFT"] .service-dispatch-actions:has(a[href*="?plan="]) a[href*="?order="] { display:none; }
  .service-dispatch-row .service-dispatch-actions a[href*="?order="],
  .service-dispatch-row .service-dispatch-actions a[href*="?plan="] { border-color:var(--accent,#2d6cdf); color:var(--accent,#2d6cdf); font-weight:700; }
  .service-dispatch-row .service-dispatch-actions { grid-template-columns:minmax(0,1fr) minmax(0,.75fr); }
  .service-dispatch-row .service-dispatch-actions .quiet-btn:last-child:nth-child(odd) { grid-column:auto; }
  .service-dispatch-row .service-dispatch-actions .service-dispatch-conflict-link { grid-column:1/-1; }
  .service-dispatch-detail-card { padding:10px; gap:10px; }
  .service-dispatch-detail-essential { gap:5px; }
  .service-dispatch-detail-essential > div { padding:6px 8px; }
  .service-dispatch-detail-card dl { gap:8px; }
  .service-dispatch-detail-card dl { grid-template-columns:minmax(0,1fr); }
  .service-dispatch-detail-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .service-dispatch-detail-actions .quiet-btn { min-width:0; padding:7px 8px; white-space:normal; text-align:center; overflow-wrap:anywhere; }
  .service-dispatch-detail-actions .quiet-btn:last-child:nth-child(odd) { grid-column:1/-1; }
  .service-dispatch-primary-action { gap:6px; }
  .service-dispatch-primary-action .service-dispatch-start { padding:8px; gap:6px; }
  .service-dispatch-primary-action > button { box-sizing:border-box; width:100%; min-height:44px; white-space:normal; overflow-wrap:anywhere; }
  .service-dispatch-timeline li { display:grid; }
  .service-dispatch-timeline time { white-space:normal; }
  .service-dispatch-completion > div { display:grid; grid-template-columns:minmax(0,1fr); }
  .service-directory-card { padding:11px; gap:9px; }
  .service-directory-card h2 { margin:2px 0 6px; font-size:14px; }
  .service-directory-card p { font-size:12px; }
  .service-directory-card .quiet-btn { min-height:44px; }
  .service-directory-links { justify-content:stretch; }
  .service-directory-unit { width:100%; }
  .service-agreement-overview { padding:10px; }
  .service-agreement-overview-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-agreement-overview-filters button { min-width:0; white-space:normal; }
  .service-agreement-overview-search { gap:4px; }
  .service-agreement-overview-filters { gap:5px; }
  .service-agreement-overview-filters button { padding:7px 6px; font-size:12px; line-height:1.2; }
  .service-agreement-overview-row .quiet-btn { width:100%; }
  .service-directory-next { padding:0 2px; }
  .service-directory-signals { display:grid; grid-template-columns:minmax(0,1fr); }
  #page-service-directory :is(button,a,input,select):focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
}
.service-register-actions { display:flex; justify-content:flex-end; }
.service-register-form { min-width:0; display:grid; gap:12px; padding:16px; border:1px solid var(--border); border-radius:14px; background:#fff; }
.service-register-heading { display:flex; align-items:center; gap:8px; }
.service-register-heading h2 { margin:0; font-size:1.15rem; }
.service-register-warning { margin:0; color:var(--muted); font-size:.85rem; }
.service-register-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:12px; }
.service-register-form label { min-width:0; display:grid; gap:5px; }
.service-register-form input,.service-register-form select { min-width:0; width:100%; min-height:44px; font-size:16px; }
.service-register-form [hidden] { display:none; }
.service-register-status { min-height:1.2em; margin:0; }
.service-register-actions { display:flex; gap:10px; flex-wrap:wrap; }
.service-register-actions button { min-height:44px; }
#page-registers .service-register-search { display:grid; gap:6px; min-width:0; padding:10px 14px 4px; }
#page-registers .service-register-search label { font-size:12px; font-weight:700; }
#page-registers .service-register-search > div { display:flex; gap:8px; min-width:0; }
#page-registers .service-register-search input { box-sizing:border-box; flex:1 1 auto; min-width:0; min-height:44px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
#page-registers .service-register-search button { flex:0 0 auto; min-height:44px; }
#page-registers .service-register-search :is(input,button):focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
#page-registers .service-register-search p { margin:0; color:var(--muted); font-size:12px; }
#page-registers .service-register-months { min-width:0; margin:6px 0 8px; padding:10px 12px; border:1px solid var(--border); border-radius:9px; }
#page-registers .service-register-months summary { cursor:pointer; font-weight:700; }
#page-registers .service-register-months summary:focus-visible,#page-registers .service-register-month a:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
#page-registers .service-register-months > div { display:grid; gap:12px; padding-top:10px; }
#page-registers .service-register-month h3 { margin:0 0 4px; font-size:14px; }
#page-registers .service-register-month h3 small { color:var(--muted); font-weight:400; }
#page-registers .service-register-month ul { margin:0; padding:0; list-style:none; }
#page-registers .service-register-month li + li { border-top:1px solid var(--border); }
#page-registers .service-register-month a { display:grid; grid-template-columns:90px minmax(0,1fr) auto; align-items:center; gap:8px; min-height:44px; color:inherit; text-decoration:none; overflow-wrap:anywhere; }
#page-registers .service-register-month a small { color:var(--muted); }
#page-registers .service-register-month a.service-register-renew { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; max-width:100%; min-height:44px; margin:2px 0 8px; padding:7px 10px; white-space:normal; text-align:center; }
#page-registers .service-register-print-action { min-height:44px; justify-self:start; white-space:normal; text-align:center; }
#page-registers .service-register-print-action:disabled { opacity:.55; cursor:default; }
.service-register-print-sheet { display:none; }
@media (max-width:600px) { #page-registers .service-register-month a { grid-template-columns:minmax(0,1fr); gap:2px; padding:8px 0; } }
@media (max-width:430px) { #page-registers .service-register-month a.service-register-renew { width:100%; } }
@media (max-width:430px) { #page-registers .service-register-print-action { width:100%; } }
@media (max-width:430px) { #page-registers .service-register-search > div { flex-wrap:wrap; } #page-registers .service-register-search input { flex-basis:100%; } #page-registers .service-register-search button { width:100%; } }
@page service-register-expiry { size:A4; margin:14mm; }
@media print {
  body.print-service-register-expiry .sidebar,body.print-service-register-expiry .topbar,body.print-service-register-expiry .mobile-status-bar,
  body.print-service-register-expiry .page:not(#page-registers),body.print-service-register-expiry #page-registers > :not(.register-panel),
  body.print-service-register-expiry #page-registers .register-panel > :not(#register-content),
  body.print-service-register-expiry #register-content > :not(.service-register-print-sheet) { display:none !important; }
  body.print-service-register-expiry .app-shell,body.print-service-register-expiry .main,
  body.print-service-register-expiry #page-registers,body.print-service-register-expiry #page-registers .register-panel,
  body.print-service-register-expiry #register-content,body.print-service-register-expiry .service-register-print-sheet { display:block !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body.print-service-register-expiry .service-register-print-sheet { page:service-register-expiry; color:#111; font:9pt/1.3 Arial,sans-serif; }
  body.print-service-register-expiry .service-register-print-sheet header { margin-bottom:5mm; padding-bottom:3mm; border-bottom:1px solid #777; }
  body.print-service-register-expiry .service-register-print-sheet h1 { margin:0 0 2mm; font-size:16pt; }
  body.print-service-register-expiry .service-register-print-sheet header p { margin:1mm 0; overflow-wrap:anywhere; }
  body.print-service-register-expiry .service-register-print-caveat { font-weight:700; }
  body.print-service-register-expiry .service-register-print-month { margin:0 0 5mm; }
  body.print-service-register-expiry .service-register-print-month h2 { margin:0 0 1mm; padding-bottom:1mm; border-bottom:1px solid #777; font-size:12pt; }
  body.print-service-register-expiry .service-register-print-month h2 small { font-size:8pt; font-weight:400; }
  body.print-service-register-expiry .service-register-print-month article { display:grid; grid-template-columns:25mm minmax(0,1fr); gap:3mm; padding:2mm 0; border-bottom:1px solid #ccc; break-inside:avoid-page; }
  body.print-service-register-expiry .service-register-print-month article div { display:grid; gap:1mm; min-width:0; }
  body.print-service-register-expiry .service-register-print-month article a { color:#111; overflow-wrap:anywhere; }
}
@media (max-width:600px) {
  .service-register-form { padding:12px; gap:10px; }
  .service-register-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .service-register-actions button { flex:1 1 140px; }
}
.service-contract-lifts { margin-top:16px; }
.service-contract-registry { display:grid; gap:10px; margin-bottom:16px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.service-contract-registry-heading h2 { margin:0 0 3px; font-size:16px; }
.service-contract-registry-heading p { margin:0; color:var(--muted); font-size:12px; }
.service-contract-registry-sla-expiry { display:grid; gap:5px; min-width:0; padding:8px; border:1px solid var(--border); border-radius:9px; background:var(--surface-soft,#f7f9fc); }
.service-contract-registry-sla-expiry > strong { font-size:12px; }
.service-contract-registry-sla-expiry > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.service-contract-registry-sla-expiry button { min-width:0; min-height:44px; padding:6px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:12px; line-height:1.2; white-space:normal; overflow-wrap:anywhere; cursor:pointer; }
.service-contract-registry-sla-expiry button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); font-weight:700; }
.service-contract-registry-sla-expiry span { display:block; margin-top:2px; font-variant-numeric:tabular-nums; }
.service-contract-sla-print-action { min-height:44px; justify-self:start; }
.service-contract-sla-print { display:none; }
.service-contract-registry-filters { display:flex; flex-wrap:wrap; gap:6px; }
.service-contract-registry-filters button { min-height:44px; padding:7px 10px; border:1px solid var(--border); border-radius:9px; background:#fff; color:inherit; cursor:pointer; }
.service-contract-registry-filters button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); font-weight:700; }
.service-contract-registry-filters span { color:var(--muted); font-variant-numeric:tabular-nums; }
.service-contract-registry-search { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:8px; }
.service-contract-registry-site { display:grid; gap:5px; min-width:0; font-size:12px; font-weight:600; }
.service-contract-registry-site select { box-sizing:border-box; width:100%; min-height:44px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-contract-registry-search label { display:grid; gap:5px; min-width:0; font-size:12px; font-weight:600; }
.service-contract-registry-search input { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; font:inherit; font-size:16px; }
.service-contract-registry-search button { min-height:44px; margin:0; padding:8px 10px; }
.service-contract-registry-results { margin:0; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.service-contract-registry-list { display:grid; gap:7px; }
.service-contract-expiry-month { display:flex; align-items:center; gap:8px; margin:6px 0 0; padding:5px 2px; border-bottom:1px solid var(--border); font-size:13px; }
.service-contract-expiry-month span { margin-left:auto; padding:2px 7px; border-radius:999px; background:var(--surface-soft,#eef4ff); font-size:11px; font-variant-numeric:tabular-nums; }
.service-contract-registry-list article { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:9px 10px; border:1px solid var(--border); border-radius:9px; }
.service-contract-registry-list article > div { display:grid; gap:2px; min-width:0; }
.service-contract-registry-list strong,.service-contract-registry-list small { overflow-wrap:anywhere; }
.service-contract-registry-reference { display:inline-flex; align-items:center; min-width:0; min-height:44px; overflow-wrap:anywhere; font-size:12px; font-weight:700; }
.service-contract-registry-list span { font-size:12px; font-weight:700; }
.service-contract-registry-list small,.service-contract-registry-empty { color:var(--muted); font-size:12px; }
.service-contract-registry-list .quiet-btn { flex:0 0 auto; min-height:44px; display:inline-flex; align-items:center; text-decoration:none; }
.service-contract-registry-actions,.service-contract-lift-actions { display:flex; flex-wrap:wrap; gap:7px; }
.service-contract-registry-actions .quiet-btn { justify-content:center; white-space:normal; text-align:center; }
@media (max-width:430px) { .service-contract-registry-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .service-contract-registry-list article { align-items:stretch; flex-direction:column; } .service-contract-registry-list .quiet-btn { justify-content:center; width:100%; } }
@media (max-width:430px) { .service-contract-registry { padding:10px; } .service-contract-registry-search { gap:6px; } .service-contract-registry-search button { padding:8px; } }
@media (max-width:430px) { .service-contract-sla-print-action { width:100%; } }
@media (max-width:430px) { .service-contract-registry-actions,.service-contract-lift-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .service-contract-registry-actions .quiet-btn,.service-contract-lift-actions .quiet-btn { min-width:0; } }
@media (max-width:430px) { .service-contract-registry-actions .quiet-btn:nth-child(3):last-child { grid-column:1/-1; } }
@media (max-width:430px) { .service-contract-registry-actions .quiet-btn:only-child { grid-column:1/-1; } }
.service-contract-lifts h2 { margin:0 0 10px; font-size:16px; }
@page service-sla-expiry { size:A4; margin:14mm; }
@media print {
  body.print-service-sla .sidebar,body.print-service-sla .topbar,
  body.print-service-sla .page:not(#page-service-contracts),
  body.print-service-sla #page-service-contracts > :not(#service-agreements-root),
  body.print-service-sla #service-agreements-root > :not(.service-contract-registry),
  body.print-service-sla .service-contract-registry > :not(.service-contract-sla-print) { display:none !important; }
  body.print-service-sla .app-shell,body.print-service-sla .main,
  body.print-service-sla #page-service-contracts,body.print-service-sla #service-agreements-root,
  body.print-service-sla .service-contract-registry,body.print-service-sla .service-contract-sla-print { display:block !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body.print-service-sla .service-contract-sla-print { page:service-sla-expiry; color:#111; font:9pt/1.3 Arial,sans-serif; }
  body.print-service-sla .service-contract-sla-print header { margin-bottom:6mm; padding-bottom:3mm; border-bottom:1px solid #777; }
  body.print-service-sla .service-contract-sla-print h2 { margin:0 0 2mm; font-size:16pt; }
  body.print-service-sla .service-contract-sla-print p { margin:0; }
  body.print-service-sla .service-contract-sla-print table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body.print-service-sla .service-contract-sla-print th,body.print-service-sla .service-contract-sla-print td { padding:2mm 1.5mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
  body.print-service-sla .service-contract-sla-print td span,body.print-service-sla .service-contract-sla-print td small { display:block; }
  body.print-service-sla .service-contract-sla-print td small { color:#555; font-size:7pt; }
  body.print-service-sla .service-contract-sla-print thead { display:table-header-group; }
  body.print-service-sla .service-contract-sla-print tr { break-inside:avoid-page; }
}
.service-contract-lifts > div { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); gap:8px; }
.service-contract-lift { display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; gap:10px; min-width:0; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); }
.service-contract-lift > div { display:grid; gap:3px; min-width:0; }
.service-contract-lift strong, .service-contract-lift small { overflow-wrap:anywhere; }
.service-contract-lift small,.service-contract-lift-pending { color:var(--muted); }
.service-contract-lift-facts { display:grid; gap:3px; margin-top:5px; font-size:12px; line-height:1.35; overflow-wrap:anywhere; }
.service-contract-lift-facts .is-due { color:#9b3030; font-weight:700; }
.service-contract-lift .quiet-btn { display:inline-flex; align-items:center; justify-content:center; align-self:flex-start; max-width:100%; min-height:44px; padding:7px 12px; white-space:normal; text-align:center; text-decoration:none; }
.service-contract-lift .quiet-btn:focus-visible { outline:2px solid #2a76b5; outline-offset:2px; }
.service-contract-terms-board { display:grid; gap:10px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.service-contract-terms-caveat { margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.service-contract-terms-filters { display:flex; flex-wrap:wrap; gap:6px; }
.service-contract-terms-filters button { min-height:44px; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:#fff; color:inherit; cursor:pointer; }
.service-contract-terms-filters button[aria-pressed="true"] { border-color:var(--accent,#2d6cdf); background:var(--surface-soft,#eef4ff); font-weight:700; }
.service-contract-terms-filters button span { color:var(--muted); font-variant-numeric:tabular-nums; }
.service-contract-terms-nearest { display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:12px; }
.service-contract-terms-nearest > strong { flex-basis:100%; }
.service-contract-terms-nearest a { display:inline-flex; gap:6px; align-items:center; min-height:44px; min-width:0; padding:6px 9px; border:1px solid var(--border); border-radius:8px; text-decoration:none; overflow-wrap:anywhere; }
.service-contract-terms-nearest time { font-weight:700; white-space:nowrap; }
.service-contract-terms-empty { margin:12px 0; color:var(--muted); }
.service-contract-dates { margin-top:12px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.service-contract-dates h2 { margin:0 0 4px; font-size:16px; }
.service-contract-dates > p { margin:0 0 10px; color:var(--muted); font-size:12px; line-height:1.4; }
.service-contract-date-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.service-contract-date-group { min-width:0; border:1px solid var(--border); border-radius:9px; overflow:hidden; }
.service-contract-date-group summary { display:flex; justify-content:space-between; gap:8px; padding:10px; min-height:44px; cursor:pointer; font-weight:700; }
.service-contract-date-group summary span { font-variant-numeric:tabular-nums; }
.service-contract-date-group > p { margin:0; padding:10px; color:var(--muted); font-size:12px; }
.service-contract-date-list { display:grid; }
.service-contract-date-list a { display:flex; justify-content:space-between; gap:8px; min-height:44px; padding:9px 10px; border-top:1px solid var(--border); text-decoration:none; overflow-wrap:anywhere; }
.service-contract-date-list a > span:first-child { display:grid; gap:3px; min-width:0; }
.service-contract-date-list small { color:var(--muted); font-variant-numeric:tabular-nums; }
.service-contract-date-list a:focus-visible { outline:2px solid var(--accent,#2d6cdf); outline-offset:-2px; }
.service-contract-sla-detail { margin-top:8px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:var(--surface-soft,#f7f9fc); font-size:12px; }
.service-contract-sla-detail summary { cursor:pointer; font-weight:700; line-height:1.4; overflow-wrap:anywhere; }
.service-contract-sla-detail summary:focus-visible,.service-contract-sla-detail a:focus-visible { outline:2px solid var(--accent,#2d6cdf); outline-offset:2px; }
.service-contract-sla-detail p { margin:8px 0; color:var(--muted); }
.service-contract-sla-detail dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; margin:8px 0; }
.service-contract-sla-detail dl>div { min-width:0; }
.service-contract-sla-detail dt { color:var(--muted); }
.service-contract-sla-detail dd { margin:2px 0 0; font-weight:700; overflow-wrap:anywhere; }
.service-contract-sla-detail a { display:inline-flex; align-items:center; min-height:40px; color:var(--accent,#2d6cdf); font-weight:700; text-decoration:none; }
@media (max-width:430px) { .service-contract-lift .quiet-btn { align-self:stretch; width:100%; } }
@media (max-width:430px) { .service-contract-terms-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .service-contract-terms-filters button { min-width:0; white-space:normal; } .service-contract-terms-nearest a { width:100%; } }
@media (max-width:430px) { .service-contract-date-groups { grid-template-columns:minmax(0,1fr); } .service-contract-dates { padding:10px; } }
@media (max-width:430px) { .service-contract-sla-detail dl { grid-template-columns:1fr; } }
.service-contract-chronology { margin-top:8px; min-width:0; border:1px solid var(--border); border-radius:8px; background:#fff; }
.service-contract-chronology summary { display:flex; justify-content:space-between; gap:8px; align-items:center; min-height:44px; padding:8px 10px; cursor:pointer; font-weight:700; }
.service-contract-chronology summary span { color:var(--muted); font-variant-numeric:tabular-nums; }
.service-contract-chronology ol { display:grid; gap:0; margin:0; padding:0 10px 8px; list-style:none; }
.service-contract-chronology li { display:grid; grid-template-columns:105px minmax(0,1fr); gap:8px; padding:8px 0; border-top:1px solid var(--border); }
.service-contract-chronology time { color:var(--muted); font-size:11px; font-variant-numeric:tabular-nums; }
.service-contract-chronology li>div { display:grid; gap:3px; min-width:0; overflow-wrap:anywhere; font-size:12px; }
.service-contract-chronology small { color:var(--muted); }
.service-contract-chronology a { display:inline-flex; align-items:center; min-height:44px; justify-self:start; font-weight:700; text-decoration:none; }
.service-contract-chronology :is(summary,a):focus-visible { outline:2px solid var(--accent,#2d6cdf); outline-offset:2px; }
@media (max-width:430px) { .service-contract-chronology li { grid-template-columns:minmax(0,1fr); gap:3px; } .service-contract-chronology a { justify-self:stretch; } }
.service-dispatch-contract { display:grid; gap:8px; padding:10px; border:1px solid var(--border); border-radius:9px; background:var(--surface-soft,#f7f9fc); }
.service-dispatch-contract h3,.service-dispatch-contract p { margin:0; }
.service-dispatch-contract > p { color:var(--muted); font-size:.82rem; }
.service-dispatch-contract-items { display:grid; gap:8px; }
.service-dispatch-contract-items > div { display:grid; gap:5px; min-width:0; padding:9px; border:1px solid var(--border); border-radius:7px; background:#fff; overflow-wrap:anywhere; font-size:.86rem; }
.service-dispatch-contract-items small { color:var(--muted); }
.service-dispatch-contract-items .quiet-btn { justify-self:start; min-height:44px; display:inline-flex; align-items:center; }
.service-dispatch-contacts { display:grid; gap:9px; min-width:0; margin-top:10px; padding:11px; border:1px solid var(--border); border-radius:9px; }
.service-dispatch-contacts h3 { display:flex; align-items:center; gap:6px; margin:0; font-size:1rem; }
.service-dispatch-contact-form { display:grid; gap:8px; min-width:0; }
.service-dispatch-contact-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.service-dispatch-contact-form label { display:grid; gap:4px; min-width:0; font-size:.83rem; font-weight:600; }
.service-dispatch-contact-form :is(input,select,textarea) { width:100%; min-width:0; min-height:44px; padding:7px 9px; border:1px solid var(--border); border-radius:7px; background:#fff; color:inherit; font:inherit; font-size:16px; }
.service-dispatch-contact-form textarea { min-height:64px; resize:vertical; }
.service-dispatch-contact-footer { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.service-dispatch-contact-footer button { min-height:44px; }
.service-dispatch-contact-footer p { margin:0; font-size:.82rem; }
.service-dispatch-contact-footer .is-error { color:#a92e2e; }
.service-dispatch-contact-list { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.service-dispatch-contact-list li { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:3px 8px; min-width:0; padding:8px; border:1px solid var(--border); border-radius:7px; overflow-wrap:anywhere; font-size:.84rem; }
.service-dispatch-contact-list time,.service-dispatch-contact-list span,.service-dispatch-contact-list small { color:var(--muted); }
.service-dispatch-contact-list p,.service-dispatch-contact-list small { grid-column:1/-1; margin:0; }
.service-dispatch-contact-empty { margin:0; color:var(--muted); font-size:.84rem; }
@media (max-width:600px) { .service-dispatch-contact-fields { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .service-dispatch-contact-list li { grid-template-columns:auto minmax(0,1fr); } .service-dispatch-contact-list span { grid-column:1/-1; } }
@media (max-width:430px) { .service-dispatch-contract-items .quiet-btn { justify-self:stretch; justify-content:center; } }
@media (max-width:340px) {
  .service-dispatch-create-fields,.service-dispatch-plan-fields,.service-dispatch-contact-fields { grid-template-columns:minmax(0,1fr); }
}
