/* Design system Ecofil. In questa fase lo stile è limitato a Trasportatori. */
.cr-workspace, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) {
  --ef-brand:#214e41; --ef-brand-hover:#173c32; --ef-brand-soft:#eaf1ed;
  --ef-text:#253c32; --ef-muted:#586d60; --ef-surface:#fff; --ef-surface-soft:#f6f8f6;
  --ef-line:#e0e7e2; --ef-control-line:#809086;
  --ef-success:#21623b; --ef-success-soft:#eaf4ec;
  --ef-warning:#805200; --ef-warning-soft:#fff3d6;
  --ef-error:#ab2537; --ef-error-soft:#fcebee;
  --ef-info:#185a83; --ef-info-soft:#edf5ff; --ef-focus:#176b91;
  --ef-space-1:4px; --ef-space-2:8px; --ef-space-3:12px;
  --ef-space-4:16px; --ef-space-6:24px; --ef-space-8:32px;
  --ef-radius:8px; --ef-radius-panel:12px; --ef-shadow:0 8px 24px #16372b12;
  font-family:"Segoe UI",system-ui,sans-serif; font-size:14px; line-height:1.5;
  color:var(--ef-text); font-variant-numeric:tabular-nums;
}
.cr-workspace {min-width:0;max-width:100%;}
.cr-workspace *, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) * {box-sizing:border-box;}
.cr-workspace p, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) p {color:var(--ef-muted);font-size:14px;line-height:1.5;}
.cr-workspace :is(button,summary,input,select,textarea,a), #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) :is(button,summary,input,select,textarea,a) {transition:background-color 160ms,border-color 160ms,box-shadow 160ms;}
.cr-workspace :is(button,summary,input,select,textarea,a):focus-visible, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) :is(button,summary,input,select,textarea,a):focus-visible {outline:3px solid var(--ef-focus);outline-offset:3px;}
.cr-workspace :is(button,summary,.button), #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) :is(button,summary,.button) {min-height:44px;min-width:44px;font-size:14px;}
.cr-workspace .button, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) .button {padding:10px 16px;border:1px solid var(--ef-control-line);border-radius:var(--ef-radius);color:var(--ef-text);background:#fff;font-weight:600;text-decoration:none;}
.cr-workspace .button:hover, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) .button:hover {background:var(--ef-surface-soft);filter:none;}
.cr-workspace .button.primary, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) .button.primary {background:var(--ef-brand);border-color:var(--ef-brand);color:#fff;}
.cr-workspace .button.primary:hover, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) .button.primary:hover {background:var(--ef-brand-hover);}
.cr-workspace button:disabled, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) button:disabled {opacity:.6;cursor:not-allowed;}
.cr-workspace :is(input,select,textarea), #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) :is(input,select,textarea) {width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--ef-control-line);border-radius:8px;font-size:16px;background:#fff;color:var(--ef-text);}
.cr-workspace input::placeholder, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) :is(input,textarea)::placeholder {color:var(--ef-muted);opacity:1;}
#modal:is(.cr-drawer,.cr-editor) :is(input,select,textarea)[aria-invalid="true"] {border-color:var(--ef-error);box-shadow:0 0 0 1px var(--ef-error);}
.cr-workspace svg, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) svg {width:20px;height:20px;flex:none;vertical-align:middle;}
.cr-panel {border:1px solid var(--ef-line);border-radius:12px;background:#fff;overflow:visible;}
.cr-heading {display:flex;gap:16px;align-items:center;justify-content:space-between;padding:20px 24px 12px;}
.cr-heading-actions {display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.cr-eyebrow {font-size:14px;font-weight:600;color:var(--ef-muted);margin:0;}
.cr-toolbar {display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 24px 16px;}
.cr-search {flex:1 1 320px;min-width:0;position:relative;}
.cr-search label {display:block;margin-bottom:8px;color:var(--ef-text);font-weight:600;}
.cr-search input {padding-left:40px;}
.cr-search svg {position:absolute;left:12px;bottom:12px;color:var(--ef-muted);}
.cr-toolbar>.button, .cr-sort {align-self:flex-end;}
.cr-sort {min-width:150px;}
.cr-sort label {display:block;color:var(--ef-muted);margin-bottom:8px;font-weight:600;}
.cr-list-meta {display:flex;justify-content:space-between;gap:16px;align-items:center;padding:0 24px 12px;color:var(--ef-muted);}
.cr-segments {display:flex;gap:4px;flex-wrap:wrap;}
.cr-segments button {border:1px solid transparent;background:transparent;border-radius:8px;padding:10px 14px;color:var(--ef-muted);font-weight:600;}
.cr-segments button:hover {background:var(--ef-surface-soft);}
.cr-segments button[aria-pressed="true"] {color:var(--ef-brand);background:var(--ef-brand-soft);border-color:#b1c5b9;}
.cr-scope-note {padding:0 24px 12px;font-size:14px;color:var(--ef-muted);}
.cr-chips {display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 12px;}
.cr-chips:empty {display:none;}
.cr-chip {display:inline-flex;gap:8px;align-items:center;border:1px solid #b1c5b9;border-radius:24px;background:var(--ef-brand-soft);color:var(--ef-brand);padding:6px 12px;font-size:14px;}
button.cr-chip {padding:8px 12px;}
.cr-status {padding:0 24px 12px;color:var(--ef-muted);}
.cr-status:empty {display:none;}
.cr-menu {position:relative;}
.cr-menu>summary {list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ef-control-line);border-radius:8px;background:#fff;padding:10px;color:var(--ef-text);}
.cr-menu>summary::-webkit-details-marker {display:none;}
.cr-menu>.cr-menu-items {position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:216px;padding:8px;border:1px solid var(--ef-line);border-radius:12px;box-shadow:var(--ef-shadow);background:#fff;}
.cr-menu-items {display:grid;gap:4px;}
.cr-menu-items button {border:0;text-align:left;background:#fff;padding:10px 12px;color:var(--ef-text);border-radius:8px;}
.cr-menu-items button:hover {background:var(--ef-brand-soft);}
.cr-icon-button {display:inline-flex;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ef-brand);padding:8px;font-size:24px;text-decoration:none;}
.cr-icon-button:hover {background:var(--ef-brand-soft);}
.cr-contact-icons {display:flex;gap:2px;flex-wrap:wrap;}
.cr-list {min-width:0;max-width:100%;overflow:visible;}
.cr-table {width:100%!important;min-width:0!important;table-layout:fixed;white-space:normal;zoom:1!important;border-collapse:collapse;font-size:14px;}
.cr-table th {position:static;background:var(--ef-surface-soft);color:var(--ef-muted);font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;padding:12px 16px;border-top:1px solid var(--ef-line);border-bottom:1px solid var(--ef-line);white-space:normal;}
.cr-table th button {border:0;background:transparent;color:inherit;padding:0;font:inherit;font-weight:600;display:inline-flex;align-items:center;gap:6px;text-align:left;}
.cr-table td {padding:16px;border-bottom:1px solid var(--ef-line);vertical-align:middle;overflow-wrap:anywhere;white-space:normal!important;}
.cr-table tr[data-carrier-row] {cursor:pointer;}
.cr-table tr[data-carrier-row]:hover {background:var(--ef-surface-soft);}
.cr-table tr[data-carrier-row]:focus-visible {outline:3px solid var(--ef-focus);outline-offset:-3px;}
.cr-company {width:29%;} .cr-sites {width:15%;} .cr-tariffs {width:29%;} .cr-contacts {width:19%;} .cr-actions {width:8%;text-align:right;}
.cr-table th:nth-child(1) {width:29%;} .cr-table th:nth-child(2) {width:15%;} .cr-table th:nth-child(3) {width:29%;} .cr-table th:nth-child(4) {width:19%;} .cr-table th:nth-child(5) {width:8%;}
.cr-company strong {display:block;font-size:14px;color:var(--ef-text);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cr-company>span {display:block;color:var(--ef-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cr-tariffs>strong {display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cr-tariffs>small {white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cr-sites {white-space:nowrap!important;}
.cr-table td {padding-top:12px;padding-bottom:12px;}
.cr-contact-icons {flex-wrap:nowrap;}
.cr-company small, .cr-tariffs small, .cr-muted {display:block;color:var(--ef-muted);font-size:14px;margin-top:4px;}
.cr-table th {white-space:nowrap;}
.cr-sites .cr-site {font-size:12px;padding:4px 6px;}
.cr-workspace [hidden], #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) [hidden] {display:none!important;}
.cr-site, .cr-tariff-status, #modal:is(.cr-drawer,.cr-editor) .badge {display:inline-flex;align-items:center;padding:4px 8px;font-size:14px;font-weight:600;letter-spacing:0;border-radius:6px;background:var(--ef-brand-soft);color:var(--ef-brand);white-space:normal;margin:2px;}
.cr-tariff-status.cr-current {background:var(--ef-success-soft);color:var(--ef-success);}
.cr-tariff-status:is(.cr-missing,.cr-expired) {background:var(--ef-warning-soft);color:var(--ef-warning);}
.cr-tariff-status.cr-future {background:var(--ef-info-soft);color:var(--ef-info);}
.cr-tariff-status.cr-archived {background:#eef1ee;color:var(--ef-muted);}
.cr-pager {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 24px;color:var(--ef-muted);border-top:1px solid var(--ef-line);}
.cr-pager>div {display:flex;gap:8px;align-items:center;}
.cr-workspace .empty {padding:32px 24px;}
.cr-workspace .empty h3 {font-size:20px;}
.cr-workspace .empty p {font-size:14px;}
.cr-skeleton {min-height:76px;margin:12px 24px;border-radius:8px;background:#eef2ee;}
.cr-skeleton-row {display:grid;grid-template-columns:2fr 1fr 2fr;gap:16px;min-height:64px;padding:16px;border-bottom:1px solid var(--ef-line);}
.cr-skeleton-row span {display:block;border-radius:4px;background:#e0e7e2;}
/* Dialog nativo: focus contenuto e scheda laterale sul desktop. */
#modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) {padding:0;border:0;background:#fff;box-shadow:var(--ef-shadow);}
#modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog)::backdrop {background:#142b2370;backdrop-filter:none;}
#modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog)>.modal-top {display:none;}
#modal.cr-drawer {inset:0 0 0 auto;margin:0 0 0 auto;width:min(680px,100vw);height:100dvh;max-height:100dvh;max-width:100vw;border-radius:0;overflow-y:auto;}
#modal.cr-editor {width:min(780px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border-radius:12px;}
#modal:is(.cr-filter-dialog,.cr-actions-dialog) {width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border-radius:12px;}
.cr-drawer-content {display:flex;flex-direction:column;height:100dvh;min-height:0;}
.cr-editor-content {display:flex;flex-direction:column;height:min(800px,calc(100dvh - 32px));min-height:0;}
.cr-editor-content>.cr-form {display:flex;flex-direction:column;flex:1;min-height:0;margin:0;overflow:hidden;}
.cr-editor-content .cr-form-fieldsets, .cr-drawer-content>.cr-drawer-body {flex:1;min-height:0;overflow-y:auto;}
.cr-drawer-content>.cr-drawer-head, .cr-editor-content>.cr-drawer-head, .cr-form-footer, .cr-drawer-footer {flex:none;}
.cr-drawer-head {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:5;padding:24px;border-bottom:1px solid var(--ef-line);background:#fff;}
.cr-drawer-head h2 {font-size:24px;line-height:1.3;margin:0;}
.cr-drawer-head p {margin-top:4px;}
.cr-drawer-body {padding:24px;}
.cr-drawer-body>section, .cr-sheet-panel>section {margin-bottom:24px;}
.cr-drawer-body h3 {font-size:16px;color:var(--ef-text);margin:0 0 12px;}
.cr-section-head {display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;}
.cr-section-head h3 {margin:0;}
.cr-drawer-tabs {display:flex;gap:4px;padding:0 24px;border-bottom:1px solid var(--ef-line);position:sticky;top:0;background:#fff;z-index:4;}
.cr-drawer-tabs button {border:0;border-bottom:3px solid transparent;background:#fff;color:var(--ef-muted);padding:12px 16px;font-weight:600;}
.cr-drawer-tabs button[aria-selected="true"] {color:var(--ef-brand);border-bottom-color:var(--ef-brand);}
.cr-sheet-panel[hidden] {display:none!important;}
.cr-columns-fields {display:grid;gap:12px;}
.cr-columns-fields label {display:flex;align-items:center;gap:12px;min-height:44px;}
.cr-columns-fields input[type="checkbox"] {width:20px;min-height:20px;accent-color:var(--ef-brand);}
.cr-details {display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:0;}
.cr-details dt {font-size:14px;color:var(--ef-muted);margin:0 0 4px;}
.cr-details dd {font-size:16px;color:var(--ef-text);margin:0;overflow-wrap:anywhere;white-space:pre-wrap;}
.cr-drawer-footer, .cr-form-footer {position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--ef-line);background:#fff;}
.cr-form-fieldsets {display:grid;gap:24px;}
.cr-form-fieldsets fieldset {min-width:0;margin:0;padding:0;border:0;}
.cr-form-fieldsets legend {font-size:16px;font-weight:600;color:var(--ef-text);margin-bottom:12px;}
.cr-field-grid {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0;}
.cr-form-fieldsets label, .cr-filter-fields label {display:grid;gap:8px;font-size:14px;font-weight:600;color:var(--ef-text);min-width:0;}
.cr-full {grid-column:1/-1;}
.cr-filter-fields {display:grid;gap:16px;}
.cr-form-fieldsets label.cr-checkbox {display:flex;align-items:center;flex-direction:row;min-height:44px;}
.cr-form-fieldsets input[type="checkbox"] {width:20px;min-height:20px;margin:0 8px 0 0;accent-color:var(--ef-brand);}
.cr-form-fieldsets textarea {min-height:80px;resize:vertical;}
.cr-form-fieldsets small, .carrier-route-hint {display:block;font-size:14px;font-weight:400;line-height:1.5;color:var(--ef-muted);}
.cr-field-error, #modal:is(.cr-drawer,.cr-editor) .form-error {color:var(--ef-error);font-size:14px;line-height:1.5;}
.cr-field-error:empty, #modal:is(.cr-drawer,.cr-editor) .form-error:empty {display:none;}
.cr-form>.form-error {padding:0 24px 16px;margin:0;}
.cr-action-list {padding:16px;}
/* Dati estesi solo nella scheda. */
.carrier-tariff-table, .carrier-route-table {border:1px solid var(--ef-line);border-radius:8px;overflow:hidden;background:#fff;}
.carrier-tariff-row {display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:12px;padding:16px;align-items:start;}
.carrier-tariff-editable .carrier-tariff-row {grid-template-columns:minmax(0,1fr) 112px 44px;}
.carrier-tariff-row+.carrier-tariff-row, .carrier-route-row+.carrier-route-row {border-top:1px solid var(--ef-line);}
.carrier-tariff-head, .carrier-route-head {background:var(--ef-surface-soft);font-size:14px;color:var(--ef-muted);font-weight:600;}
.carrier-tariff-route {min-width:0;}
.carrier-tariff-route>:is(strong,span,small) {display:block;font-size:14px;line-height:1.5;}
.carrier-tariff-route>strong {font-size:16px;color:var(--ef-text);}
.carrier-tariff-route>:is(span,small) {margin-top:4px;color:var(--ef-muted);}
.carrier-tariff-meta {display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;font-size:14px;}
.carrier-tariff-state {padding:4px 8px;border-radius:6px;font-size:14px;font-weight:600;}
.carrier-tariff-state.current {color:var(--ef-success);background:var(--ef-success-soft);}
.carrier-tariff-state.future {color:var(--ef-info);background:var(--ef-info-soft);}
.carrier-tariff-state.expired {color:var(--ef-warning);background:var(--ef-warning-soft);}
.carrier-tariff-state.archived {color:var(--ef-muted);background:#eef1ee;}
.carrier-tariff-amount {text-align:right;min-width:0;}
.carrier-tariff-amount>:is(strong,span,small) {display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.carrier-tariff-amount>strong {font-size:16px;color:var(--ef-brand);}
.carrier-tariff-note {white-space:pre-wrap;margin-top:12px;font-size:14px;}
.carrier-tariff-edit-list {display:grid;gap:8px;justify-items:end;}
.carrier-tariff-edit {width:44px;padding:8px!important;}
.carrier-no-tariffs {grid-column:1/-1;color:var(--ef-muted);font-size:14px;padding:4px;}
.carrier-registered-routes h3 {margin:24px 0 12px;font-size:16px;}
.carrier-route-row {display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:16px;padding:16px;font-size:14px;}
.carrier-route-row [role="cell"]>:is(strong,span,small) {display:block;font-size:14px;line-height:1.5;}
.carrier-route-row [role="cell"]>:is(span,small) {color:var(--ef-muted);margin-top:4px;}
.carrier-route-date {text-align:right;color:var(--ef-muted);}
@media(max-width:900px) {
  .cr-table th,.cr-table td {padding:12px;}
  .cr-heading,.cr-toolbar,.cr-list-meta,.cr-scope-note,.cr-chips,.cr-status,.cr-pager {padding-left:16px;padding-right:16px;}
  .cr-company {width:28%;} .cr-sites {width:14%;} .cr-tariffs {width:28%;} .cr-contacts {width:20%;} .cr-actions {width:10%;}
}
@media(max-width:700px) {
  .cr-heading {align-items:flex-start;flex-direction:column;}
  .cr-heading-actions {width:100%;}
  .cr-heading-actions>.button.primary {flex:1;}
  .cr-toolbar {gap:8px;} .cr-search {flex-basis:100%;}
  .cr-sort {flex:1;min-width:0;} .cr-sort label {font-size:14px;}
  .cr-list-meta {align-items:flex-start;flex-direction:column;gap:8px;}
  .cr-segments {gap:0;} .cr-segments button {padding:10px;}
  .cr-table,.cr-table tbody {display:block;width:100%!important;min-width:0!important;max-width:100%;height:auto!important;}
  .cr-table colgroup,.cr-table thead {display:none;}
  .cr-table tbody tr {display:grid;grid-template-columns:minmax(0,1fr) 44px;padding:16px;border-top:1px solid var(--ef-line);position:relative;gap:8px 12px;}
  .cr-table td {display:block;width:auto;padding:0;border:0;}
  .cr-table td.cr-company {grid-column:1;grid-row:1;} .cr-table td.cr-actions {grid-column:2;grid-row:1;}
  .cr-table td.cr-sites {grid-column:1/-1;grid-row:2;} .cr-table td.cr-tariffs {grid-column:1/-1;grid-row:3;}
  .cr-table td.cr-contacts {grid-column:1/-1;grid-row:4;}
  .cr-table td:is(.cr-sites,.cr-tariffs)::before {content:attr(data-label);display:block;color:var(--ef-muted);font-size:14px;margin-bottom:4px;}
  .cr-table tr:has(td[colspan]) {display:block;}
  .cr-pager {display:grid;justify-content:stretch;} .cr-pager>div {justify-content:space-between;}
  #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) {inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;overflow-y:auto;}
  .cr-drawer-head {padding:16px;} .cr-drawer-head h2 {font-size:20px;}
  .cr-editor-content {height:100dvh;}
  .cr-drawer-tabs {padding:0 16px;overflow-x:auto;}
  .cr-drawer-body {padding:16px;}
  .cr-details,.cr-field-grid {grid-template-columns:1fr;}
  .cr-drawer-footer,.cr-form-footer {padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:8px;}
  .cr-form-footer>button {flex:1;}
  .carrier-tariff-row,.carrier-tariff-editable .carrier-tariff-row {grid-template-columns:minmax(0,1fr) 88px;padding:12px;gap:8px;}
  .carrier-tariff-edit-list {grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:flex-end;}
  .carrier-tariff-head>:last-child:empty {display:none;}
  .carrier-route-row {grid-template-columns:1fr;gap:8px;padding:12px;}
  .carrier-route-date {text-align:left;}
}
@media(prefers-reduced-motion:reduce) {
  .cr-workspace *, #modal:is(.cr-drawer,.cr-editor,.cr-filter-dialog,.cr-actions-dialog) * {transition:none!important;animation:none!important;}
}
