:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#172033;background:#f4f6f8;font-size:14px}*{box-sizing:border-box}body{margin:0}.topbar{height:58px;background:#123b5d;color:#fff;display:flex;align-items:center;padding:0 24px;gap:30px}.brand{font-size:20px;font-weight:700;color:#fff;text-decoration:none}.brand small{font-size:11px;font-weight:500;opacity:.72}.topbar nav{display:flex;gap:18px;flex:1}.topbar a{color:#fff}.user-menu{display:flex;align-items:center;gap:12px}.user-menu form{margin:0}.link-button{border:0;background:none;color:#fff;text-decoration:underline;cursor:pointer}.page{padding:16px;width:100%;max-width:none;margin:0}h1{margin:0 0 8px;font-size:26px}.muted{color:#687386}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.actions{display:flex;gap:8px}.actions form{margin:0}.button,button{display:inline-block;border:1px solid #9ba9b5;border-radius:6px;padding:8px 12px;background:#fff;color:#172033;text-decoration:none;cursor:pointer}.primary{background:#1769aa;color:#fff;border-color:#1769aa}.danger{background:#a83232;color:#fff;border-color:#a83232}.card,.auth-card{background:#fff;border:1px solid #dce2e7;border-radius:10px;padding:24px;box-shadow:0 2px 7px #1c344512}.narrow,.auth-card{max-width:620px;margin:30px auto}.stack p,.stack label{display:block}.stack input,.stack select,.stack textarea,.mapping-form input,.mapping-form select{width:100%;padding:9px;border:1px solid #b8c2ca;border-radius:5px}.filters{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.filters input{min-width:320px}.filters input,.filters select{padding:8px;border:1px solid #b8c2ca;border-radius:5px}.missing-legend{margin:-2px 0 12px;color:#6f5600}.missing-legend span{display:inline-block;width:15px;height:15px;background:#fff2cc;border:1px solid #d8c982;vertical-align:-3px;margin-right:5px}.table-wrap{overflow:auto;background:#fff;border:1px solid #dce2e7}.data-table{border-collapse:collapse;width:100%;background:#fff}.data-table th,.data-table td{border-bottom:1px solid #e1e6ea;border-right:1px solid #edf0f2;padding:8px 9px;text-align:left;white-space:nowrap;vertical-align:top}.data-table th{position:sticky;top:0;background:#e8eef5;z-index:1;font-size:12px}.data-table .number{text-align:right;font-variant-numeric:tabular-nums}.row-missing td{background:#fff2cc}.row-conflict,.row-error{background:#fff1f1}.row-new{background:#edf8ee}.row-old,.row-excluded{color:#7b8490;background:#f5f5f5}.message{padding:11px 14px;border-radius:6px;margin-bottom:14px;background:#e6f0f8}.message.success{background:#e4f4e6}.message.warning{background:#fff2cc}.message.error{background:#fde7e7}.message details{margin-top:7px}.warning-text{color:#8a5b00}.error-text{color:#a02020}.badge{padding:3px 7px;border-radius:10px;background:#e2e7eb}.badge.conflict,.badge.error{background:#ffdede}.badge.applied{background:#d9f1dc}.summary-grid{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.stat{background:#fff;border:1px solid #dce2e7;border-radius:6px;padding:10px 14px}.stat strong{font-size:20px;display:block}.stat span{color:#687386}.inline-form{display:flex;gap:5px}.pagination{display:flex;justify-content:center;gap:16px;margin:18px}.break{word-break:break-all}.mapping-form{max-width:800px}.mapping-form p{display:grid;grid-template-columns:260px 1fr;gap:10px;align-items:center}.actions-cell a{margin-right:12px}.actions-cell a:last-child{margin-right:0}.configurable-table{table-layout:fixed}.configurable-table th,.configurable-table td{overflow:hidden;text-overflow:ellipsis}.table-settings-card{max-width:950px;margin:0 auto}.layout-table input[type=number]{width:130px;padding:7px;border:1px solid #b8c2ca;border-radius:5px}.layout-table .drag-handle{width:45px;cursor:grab;color:#687386;font-size:18px}.layout-table .layout-actions{width:130px}.layout-table .layout-actions button{padding:5px 10px}.layout-table .layout-export-toggle{min-width:115px}.layout-table .layout-export-toggle input{vertical-align:-2px;margin-right:6px}.layout-table tr.dragging{opacity:.45}.settings-actions{display:flex;gap:8px;margin-top:18px}

.wagon-action-modal{width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:12px;box-shadow:0 18px 60px #10253666;background:#fff;color:#172033}.wagon-action-modal::backdrop{background:#10253680;backdrop-filter:blur(2px)}.wagon-modal-content{max-height:calc(100vh - 32px);overflow:auto;padding:20px}.wagon-modal-content .card{max-width:none;margin:0;border:0;box-shadow:none;padding:12px}.wagon-modal-close{position:absolute;right:12px;top:10px;z-index:2;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#eef2f5;color:#405264;font-size:25px;line-height:34px}.wagon-modal-close:hover{background:#dfe7ec}.wagon-modal-loading{padding:44px 20px;text-align:center;color:#687386}.wagon-modal-content h1{padding-right:38px}@media(max-width:700px){.wagon-action-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.wagon-modal-content{max-height:calc(100vh - 16px);padding:10px}.wagon-modal-content .card{padding:14px}}

.wagon-history-link,.waybill-link{color:inherit;text-decoration:underline;text-decoration-color:#9aa9b5;text-underline-offset:2px}.wagon-action-modal.wagon-history-dialog{width:min(1500px,calc(100vw - 32px))}.wagon-action-modal.waybill-summary-dialog{width:min(940px,calc(100vw - 32px))}.wagon-history-card{padding:4px!important}.wagon-history-heading{padding:8px 8px 12px}.wagon-history-heading p{margin:4px 0 0}.history-table-wrap{overflow:auto;border:1px solid #e1e6ea;border-radius:7px}.history-table{width:100%;border-collapse:collapse;font-size:13px}.history-table th,.history-table td{padding:8px 10px;border-bottom:1px solid #e6eaed;text-align:left;white-space:nowrap}.history-table th{position:sticky;top:0;background:#f4f6f8;color:#536170;font-size:12px;font-weight:600;z-index:1}.history-table tbody tr:last-child td{border-bottom:0}.history-table tbody tr:hover td{background:#f8fafb}.history-table .number{text-align:right;font-variant-numeric:tabular-nums}.wagon-history-empty{text-align:center!important;padding:28px!important}

.waybill-summary-card{padding:4px!important}.waybill-summary-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:8px 8px 16px;border-bottom:1px solid var(--line)}.waybill-summary-heading h1{margin:4px 0}.waybill-summary-heading p{margin:0}.waybill-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 8px;margin:0}.waybill-summary-grid>div{padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.waybill-summary-grid dt{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}.waybill-summary-grid dd{margin:5px 0 0;font-weight:700;overflow-wrap:anywhere}.waybill-summary-wide{grid-column:1/-1}.waybill-summary-wagons{padding:0 8px 8px}.waybill-summary-wagons h2{font-size:17px;margin:0 0 8px}.waybill-wagon-list{display:flex;flex-wrap:wrap;gap:7px}.waybill-wagon-list span{padding:5px 9px;border-radius:7px;background:var(--blue-soft);font-weight:750;font-variant-numeric:tabular-nums}@media(max-width:700px){.waybill-summary-heading{display:block}.waybill-summary-heading .actions{margin-top:12px}.waybill-summary-grid{grid-template-columns:1fr}.waybill-summary-wide{grid-column:auto}}

/* Softer application shell and human-friendly dislocation grid. */
:root{
  --surface:#fff;
  --surface-soft:#f6f9fc;
  --surface-blue:#eef5ff;
  --ink:#17243b;
  --muted:#68768a;
  --line:#dce5ef;
  --blue:#1e63c6;
  --blue-dark:#174e9d;
  --blue-soft:#e7f0fd;
  --shadow:0 8px 26px #26486d12;
}
body{
  min-height:100vh;
  color:var(--ink);
  background:linear-gradient(180deg,#eef4fa 0,#f7f9fc 220px,#f4f6f8 100%);
}
.topbar{
  position:sticky;
  top:0;
  z-index:20;
  height:64px;
  padding:0 26px;
  gap:34px;
  background:linear-gradient(100deg,#113d70,#15599b);
  box-shadow:0 5px 20px #123b5d2e;
}
.brand{letter-spacing:-.02em}.brand small{margin-left:4px}
.topbar nav{gap:6px;align-self:stretch;align-items:center;min-width:0;overflow-x:auto}
.topbar nav{scrollbar-width:none}
.topbar nav::-webkit-scrollbar{display:none}
.topbar nav a{
  flex-shrink:0;
  white-space:nowrap;
  padding:8px 11px;
  border-radius:7px;
  color:#e8f2ff;
  text-decoration:none;
  transition:background .16s ease,color .16s ease;
}
.topbar nav a:hover{color:#fff;background:#ffffff18}
.topbar nav a.nav-featured{background:#ffffff20;box-shadow:inset 0 0 0 1px #ffffff2e;color:#fff;font-weight:750}
.topbar nav a.nav-featured:hover{background:#ffffff30}
.user-menu{color:#f1f6fc}.user-menu a{color:#fff;text-underline-offset:3px}
.page{padding:26px 28px 34px}
.button,button{
  border-color:#c7d3df;
  border-radius:8px;
  font-weight:600;
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease;
}
.button:hover,button:hover{border-color:#9fb4c8;box-shadow:0 4px 12px #27486618}
.button:active,button:active{transform:translateY(1px)}
.button.primary,.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.button.primary:hover,.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}

.dislocation-dashboard{width:100%;margin:0 auto}
.dislocation-heading{margin-bottom:16px}
.eyebrow{
  display:block;
  margin-bottom:5px;
  color:var(--blue);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.title-line{display:flex;align-items:center;gap:10px}
.title-line h1{margin:0;font-size:28px;letter-spacing:-.025em}
.count-badge{
  min-width:30px;
  padding:4px 9px;
  border-radius:999px;
  background:var(--blue-soft);
  color:var(--blue-dark);
  font-size:12px;
  font-weight:800;
  text-align:center;
}
.dislocation-heading .muted{margin:6px 0 0}
.dislocation-heading .actions{align-items:center;flex-wrap:wrap}
.dislocation-heading .actions .button{display:flex;align-items:center;gap:6px;min-height:40px;padding:9px 14px}

.dislocation-filters{
  display:flex;
  align-items:flex-end;
  gap:10px;
  margin:0 0 14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#ffffffde;
  box-shadow:var(--shadow);
  backdrop-filter:blur(8px);
}
.dislocation-filters .filter-search{
  display:flex;
  flex:1 1 310px;
  flex-direction:column;
  gap:5px;
  min-width:240px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.dislocation-filters .filter-search input,
.dislocation-filters select{
  min-width:0;
  height:40px;
  padding:0 12px;
  border:1px solid #cbd7e3;
  border-radius:8px;
  outline:0;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:13px;
  font-weight:500;
  letter-spacing:normal;
  text-transform:none;
}
.dislocation-filters select{flex:1 1 165px;max-width:240px}
.dislocation-filters .filter-search input:focus,
.dislocation-filters select:focus{border-color:#4e88d7;box-shadow:0 0 0 3px #2d70cb1c}
.filter-submit{height:40px;padding:0 16px;background:#edf3fa;border-color:#c5d5e5;color:#23486e}
.filter-reset{align-self:center;padding:8px 3px;color:#62758a;text-underline-offset:3px}

.table-legends{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 9px}
.table-legends .missing-legend,.table-legends .route-legend,.table-legends .defective-legend{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#ffffffb8;
  color:#53667a;
  font-size:12px;
}
.table-legends .missing-legend span,.table-legends .route-legend span,.table-legends .defective-legend span{
  flex:0 0 auto;
  width:9px;
  height:9px;
  margin:0;
  border:0;
  border-radius:50%;
  vertical-align:0;
}
.table-legends .missing-legend span{background:#e7ae23}
.table-legends .route-legend span{background:#4d91d8}
.table-legends .defective-legend span{background:#e88f8f}

.dislocation-table-wrap{overflow:auto;border:0;background:transparent}
.dislocation-grid{
  border-collapse:separate;
  border-spacing:0 7px;
  background:transparent;
}
.dislocation-grid thead th{
  top:0;
  padding:10px 12px;
  border:0;
  background:#edf3f9;
  color:#2862aa;
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  white-space:normal;
  vertical-align:bottom;
}
.dislocation-grid thead th:first-child{border-radius:9px 0 0 9px}
.dislocation-grid thead th:last-child{border-radius:0 9px 9px 0}
.dislocation-grid tbody td{
  padding:13px 12px;
  border-top:1px solid #e3eaf2;
  border-right:0;
  border-bottom:1px solid #e3eaf2;
  background:var(--surface);
  color:#25344a;
  line-height:1.3;
  white-space:normal;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.dislocation-grid tbody tr:nth-child(even) td{background:#f8fafc}
.dislocation-grid tbody td:first-child{border-left:1px solid #e3eaf2;border-radius:10px 0 0 10px}
.dislocation-grid tbody td:last-child{border-right:1px solid #e3eaf2;border-radius:0 10px 10px 0}
.dislocation-grid tbody tr:hover td{
  border-color:#bcd1e8;
  background:#f0f6fd;
  box-shadow:0 5px 16px #2757830d;
}
.dislocation-grid tbody tr.row-missing td{border-color:#ecdba7;background:#fff9e9}
.dislocation-grid tbody tr.row-missing:hover td{background:#fff5d6}
.dislocation-grid tbody tr.row-transit td{border-color:#c6dced;background:#edf6fd}
.dislocation-grid tbody tr.row-transit:hover td{background:#e2f1fc}
.dislocation-grid tbody tr.row-defective td{border-color:#efc1c1;background:#fde2e2}
.dislocation-grid tbody tr.row-defective:hover td{background:#fad4d4}
.dislocation-grid .number{text-align:left}
.dislocation-grid .column-wagon_number{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.dislocation-grid .wagon-history-link{color:#174f92;text-decoration:none}
.dislocation-grid .wagon-history-link:hover{text-decoration:underline;text-underline-offset:3px}
.dislocation-grid .column-operation_station strong{color:#142f50}
.date-stack{display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}
.date-stack span{color:var(--muted);font-size:12px}
.data-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:4px 8px;
  border-radius:999px;
  background:#edf2f7;
  color:#42566f;
  font-size:12px;
  font-weight:700;
}
.marking-chip{background:#e8f4eb;color:#27703b}
.gu12-chip{background:#eeeafd;color:#5b47a7}
.usage-type-chip{background:#fff1d8;color:#845613}
.actions-cell{white-space:normal!important}
.actions-cell .js-wagon-modal{
  display:inline-flex;
  margin:2px 6px 2px 0;
  padding:5px 8px;
  border-radius:6px;
  background:#edf3fa;
  color:#285b91;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}
.actions-cell .js-wagon-modal:hover{background:#dfeaf6}
.actions-cell .error-text{background:#fff0f0;color:#a23636}

.supplier-heading{max-width:1240px;margin-right:auto;margin-left:auto}
.supplier-heading h1{margin-bottom:6px}
.supplier-workspace{display:grid;grid-template-columns:minmax(360px,460px) minmax(520px,1fr);gap:18px;max-width:1240px;margin:0 auto;align-items:start}
.supplier-workspace-create{grid-template-columns:minmax(360px,680px);justify-content:center}
.supplier-details-card,.supplier-section-card{padding:20px}
.supplier-details-card h2,.supplier-section-card h2{margin:0 0 7px}
.supplier-details-card>.muted,.supplier-section-card>.muted{margin-top:0}
.supplier-details-card .stack p{margin:15px 0}
.supplier-details-card .helptext{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}
.supplier-related-sections{display:grid;gap:18px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}
.section-heading .eyebrow{margin-bottom:3px}
.section-heading h2{margin:0}
.supplier-inner-table{margin-top:14px;border-radius:8px}
.supplier-inner-table .data-table th{position:static}
.sender-list{display:grid;gap:8px;margin-top:14px}
.sender-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}
.sender-item a{overflow-wrap:anywhere}
@media(max-width:980px){.supplier-workspace{grid-template-columns:1fr}.supplier-heading{align-items:flex-start;flex-direction:column}}
.supplier-settings-page{max-width:1320px;margin:0 auto}.supplier-settings-heading h1{margin-bottom:6px}.supplier-settings-heading .actions{flex-wrap:wrap}.settings-jumps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.settings-jumps a{display:flex;flex-direction:column;gap:4px;padding:15px 17px;border:1px solid #cbdbea;border-radius:11px;background:#ffffffd9;color:var(--ink);text-decoration:none;box-shadow:var(--shadow)}.settings-jumps a:hover{border-color:#8bb1d7;background:#f5f9fe}.settings-jumps strong{color:var(--blue-dark);font-size:15px}.settings-jumps span{color:var(--muted);font-size:12px}.settings-section{margin-bottom:18px;padding:22px;scroll-margin-top:82px}.settings-section h2{margin:0}.settings-explainer{margin:0 0 17px;max-width:940px;line-height:1.5}.supplier-settings-list{display:grid;gap:14px}.supplier-settings-item{overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}.supplier-settings-item.is-inactive{opacity:.72}.supplier-settings-item-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}.supplier-settings-item-heading>div{display:flex;align-items:center;gap:10px}.supplier-settings-item-heading h3{margin:0;font-size:18px}.supplier-settings-item-actions{display:flex;align-items:center;gap:10px}.button.danger-outline{border-color:#e2b3b3;background:#fff7f7;color:#a83232}.button.danger-outline:hover{border-color:#c97979;background:#ffeded;color:#7f2020}.supplier-settings-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:0}.supplier-settings-columns>div{min-width:0;padding:15px 16px}.supplier-settings-columns>div+div{border-left:1px solid var(--line)}.settings-subheading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.settings-subheading h4{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#55667a}.settings-compact-list,.owner-chip-list{display:grid;gap:8px}.settings-compact-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:#fff}.settings-compact-item>div{display:flex;min-width:0;flex-direction:column;gap:3px}.settings-compact-item span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.button.small{padding:6px 9px;white-space:nowrap;font-size:12px}.settings-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px dashed #b9c9d8;border-radius:8px;background:#fff;color:var(--muted)}.owner-chip-list{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-chip{display:flex;min-width:0;flex-direction:column;gap:3px;padding:10px 11px;border:1px solid #cfdfed;border-radius:8px;background:#fff;color:var(--ink);text-decoration:none}.owner-chip:hover{border-color:#83acd3;background:#f5f9fe}.owner-chip strong,.owner-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owner-chip span{color:var(--muted);font-size:12px}.permission-note{margin:10px 0 0;font-size:12px}.settings-table-wrap{border-radius:9px}.settings-table th{position:static}.settings-table td{white-space:normal;vertical-align:middle}.settings-table td:last-child{white-space:nowrap}.supplier-delete-card h1{margin-bottom:18px}.supplier-delete-card .message{line-height:1.5}.supplier-delete-card .message ul,.supplier-delete-summary{margin:10px 0 0;padding-left:22px}.supplier-delete-summary{margin-bottom:20px}.supplier-delete-card .stack p{margin:18px 0}.supplier-delete-card .stack input[type=checkbox]{width:auto;margin-right:7px;vertical-align:-1px}@media(max-width:900px){.settings-jumps{grid-template-columns:1fr}.supplier-settings-columns{grid-template-columns:1fr}.supplier-settings-columns>div+div{border-top:1px solid var(--line);border-left:0}.supplier-settings-heading{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.owner-chip-list{grid-template-columns:1fr}.supplier-settings-item-heading,.settings-compact-item,.settings-empty{align-items:flex-start;flex-direction:column}.supplier-settings-item-actions{align-items:flex-start;flex-direction:column;gap:8px}.settings-section{padding:16px}}
.bulk-edit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 10px;padding:11px 14px;border:1px solid #c9d9e8;border-radius:10px;background:#ffffffd9;box-shadow:var(--shadow)}
.bulk-edit-toolbar>div:first-child{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.bulk-edit-actions{display:flex;align-items:center;gap:14px}
.bulk-edit-actions [data-bulk-selected-count]{font-size:16px;color:var(--blue-dark)}
.bulk-select-cell{width:44px!important;min-width:44px;text-align:center!important;vertical-align:middle!important}
.bulk-select-cell input{width:18px;height:18px;margin:0;accent-color:var(--blue);cursor:pointer}
.dislocation-grid tbody tr.is-bulk-selected td{background:#e9f3ff;border-color:#a9c9eb}
.dislocation-grid tbody tr.is-bulk-selected:hover td{background:#deedfd}
.bulk-edit-heading,.bulk-edit-layout{max-width:1320px;margin-right:auto;margin-left:auto}
.bulk-edit-layout{display:grid;grid-template-columns:minmax(480px,620px) minmax(520px,1fr);gap:18px;align-items:start}
.bulk-edit-form-card,.bulk-edit-selection-card{padding:20px}
.bulk-edit-form-card h2,.bulk-edit-selection-card h2{margin-top:0}
.bulk-edit-form-card .stack p{margin:15px 0}
.bulk-edit-form-card .helptext{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}
.bulk-wagon-numbers-field textarea{min-height:230px;resize:vertical;font-family:Consolas,"Courier New",monospace;font-size:15px;line-height:1.5}
.bulk-values-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.bulk-values-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bulk-value-field label{display:block;margin-bottom:5px;font-weight:650}
.bulk-value-field select,.bulk-value-field input,.bulk-value-field textarea{width:100%}
.bulk-value-note{grid-column:1/-1}
.bulk-edit-empty-state{display:flex;min-height:300px;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px;color:var(--muted);border:1px dashed #b8c8d6;border-radius:10px;background:#f8fafc}
.bulk-edit-empty-state strong{color:var(--ink);font-size:17px}.bulk-edit-empty-state p{max-width:430px;line-height:1.55}
.bulk-edit-selection-table{max-height:650px;border-radius:8px}
.bulk-edit-selection-table .data-table th{position:sticky}
@media(max-width:980px){.bulk-edit-layout{grid-template-columns:1fr}.bulk-edit-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.bulk-edit-toolbar,.bulk-edit-actions{align-items:stretch;flex-direction:column}.bulk-edit-actions .button{width:100%}.bulk-values-grid{grid-template-columns:1fr}.bulk-value-note{grid-column:auto}}
.actions-cell .error-text:hover{background:#ffe2e2}
.dislocation-grid tbody tr[data-selectable-row]{cursor:pointer}
.dislocation-grid tbody tr:focus{outline:0}
.dislocation-grid tbody tr.is-selected td,
.dislocation-grid tbody tr:focus-visible td{
  border-top:2px solid #3478c5;
  border-bottom:2px solid #3478c5;
  box-shadow:none;
}
.dislocation-grid tbody tr.is-selected td:first-child,
.dislocation-grid tbody tr:focus-visible td:first-child{border-left:2px solid #3478c5}
.dislocation-grid tbody tr.is-selected td:last-child,
.dislocation-grid tbody tr:focus-visible td:last-child{border-right:2px solid #3478c5}

@media(min-width:721px){
  .dislocation-grid thead th:first-child{
    left:0;
    z-index:4;
    box-shadow:8px 0 14px #33587912;
  }
  .dislocation-grid tbody td:first-child{
    position:sticky;
    left:0;
    z-index:2;
    box-shadow:8px 0 14px #3358790d;
  }
}

@media(max-width:1050px){
  .topbar{padding:0 16px;gap:18px}
  .topbar nav{overflow-x:auto}
  .page{padding:20px 16px 28px}
  .dislocation-filters select{max-width:none}
}
@media(max-width:720px){
  .topbar{position:relative;height:auto;min-height:64px;flex-wrap:wrap;padding:12px 14px;gap:10px 16px}
  .topbar nav{order:3;flex:1 0 100%;width:100%;padding-bottom:2px}
  .user-menu{margin-left:auto}
  .page{padding:16px 10px 24px}
  .title-line h1{font-size:24px}
  .dislocation-filters{align-items:stretch}
  .dislocation-filters .filter-search,.dislocation-filters select{flex-basis:100%;max-width:none;width:100%}
  .filter-submit{flex:1}
  .dislocation-table-wrap{overflow:visible}
  .dislocation-grid{display:block!important;width:100%!important;border-spacing:0}
  .dislocation-grid colgroup,.dislocation-grid thead{display:none}
  .dislocation-grid tbody{display:block}
  .dislocation-grid tbody tr{display:block;margin:0 0 12px;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
  .dislocation-grid tbody tr.is-selected,
  .dislocation-grid tbody tr:focus-visible{box-shadow:0 0 0 2px #3478c5,var(--shadow)}
  .dislocation-grid tbody td{
    display:grid;
    grid-template-columns:minmax(115px,38%) minmax(0,1fr);
    gap:12px;
    width:100%!important;
    padding:10px 12px;
    border:0;
    border-bottom:1px solid #e6edf4;
    border-radius:0!important;
  }
  .dislocation-grid tbody tr.is-selected td,
  .dislocation-grid tbody tr:focus-visible td{
    border-top:0;
    border-right:0;
    border-bottom:1px solid #e6edf4;
    border-left:0;
  }
  .dislocation-grid tbody tr.is-selected td:last-child,
  .dislocation-grid tbody tr:focus-visible td:last-child{border-bottom:0}
  .dislocation-grid tbody td::before{content:attr(data-label);color:#66809a;font-size:11px;font-weight:800;line-height:1.3}
  .dislocation-grid tbody td:first-child{border-radius:12px 12px 0 0!important}
  .dislocation-grid tbody td:last-child{border-bottom:0;border-radius:0 0 12px 12px!important}
  .dislocation-grid .actions-cell{display:flex;align-items:center;gap:4px}
  .dislocation-grid .actions-cell::before{content:"Действия";flex:0 0 calc(38% - 6px);color:#66809a;font-size:11px;font-weight:800}
}

.bulk-value-waybill_action{grid-column:1/-1}

/* Reusable monetary amount / VAT editor. */
.vat-calculator{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.vat-help{margin:0 0 15px;line-height:1.5}
.vat-input-grid{display:grid;grid-template-columns:1fr 1.2fr .7fr;gap:16px;align-items:start}
.vat-calculator input:disabled{background:#edf0f3;color:var(--muted)}
.vat-status{margin:12px 0;font-size:12px;line-height:1.4}
.vat-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.vat-preview>div{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.vat-preview dt{color:var(--muted);font-size:12px}
.vat-preview dd{margin:5px 0 0;font-size:17px;font-weight:750;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.vat-preview .vat-total{border-color:#b5cde8;background:#eaf3fd}
.price-rate .rate-vat-mode{margin-top:7px;font-size:10px;text-transform:none;line-height:1.35}
.price-rate .rate-vat-breakdown{margin-top:6px;color:var(--muted);font-size:11px;font-weight:500;line-height:1.6;white-space:normal}
@media(max-width:720px){.vat-input-grid,.vat-preview{grid-template-columns:1fr}}

/* Commerce: contracts, price agreement protocols and calculation-ready terms. */
.commerce-page,.commerce-form-page{max-width:1280px;margin:0 auto}
.commerce-form-page{max-width:900px}.commerce-form-page.wide-page{max-width:1120px}
.commerce-heading{align-items:flex-end;margin-bottom:22px}
.commerce-heading h1{margin:0;font-size:30px;letter-spacing:-.025em}
.commerce-heading .muted{max-width:780px;margin:6px 0 0;line-height:1.55}
.commerce-breadcrumbs{display:flex;align-items:center;gap:8px;margin:0 0 18px;color:var(--muted);font-size:12px}
.commerce-breadcrumbs a{color:var(--blue-dark);text-decoration:none}.commerce-breadcrumbs a:hover{text-decoration:underline}
.commerce-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.commerce-role-card{position:relative;display:grid;grid-template-columns:54px 1fr;gap:18px;padding:24px;border:1px solid #d7e3ef;border-radius:15px;background:linear-gradient(145deg,#fff,#f5f9ff);box-shadow:var(--shadow);overflow:hidden}
.commerce-role-card::after{content:"";position:absolute;right:-58px;bottom:-88px;width:210px;height:210px;border-radius:50%;background:#dcecff73}
.commerce-role-card.supplier-accent{background:linear-gradient(145deg,#fff,#f9f6ff)}
.commerce-role-card.supplier-accent::after{background:#eee5ff80}
.commerce-role-icon{position:relative;z-index:1;display:flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:14px;background:#e4effd;color:var(--blue-dark);font-size:23px;font-weight:850}
.supplier-accent .commerce-role-icon{background:#eee7fb;color:#6345a5}
.commerce-role-card h2{margin:0 0 7px;font-size:23px}.commerce-role-card p{min-height:66px;margin:0;line-height:1.55}
.commerce-stats{position:relative;z-index:1;display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:10px;margin:2px 0 0}
.commerce-stats div{padding:13px 14px;border:1px solid #dce6ef;border-radius:10px;background:#ffffffc9}
.commerce-stats dt{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}.commerce-stats dd{margin:4px 0 0;font-size:22px;font-weight:800}
.commerce-card-actions{position:relative;z-index:1;display:flex;grid-column:1/-1;align-items:center;gap:14px;margin-top:2px}.commerce-card-actions>a:not(.button){color:var(--blue-dark)}
.commerce-note{margin-top:20px;padding:17px 20px}.commerce-note p{margin:5px 0 0;line-height:1.55}
.commerce-tabs{display:flex;gap:4px;margin:0 0 18px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff;width:max-content}
.commerce-tabs a{padding:8px 15px;border-radius:7px;color:#5b6d80;font-weight:700;text-decoration:none}.commerce-tabs a.active{background:var(--blue-soft);color:var(--blue-dark)}
.commerce-contract-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.commerce-contract-card,.commerce-protocol-card,.price-condition-card{border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 6px 18px #26486d0c}
.commerce-contract-card{display:flex;min-height:245px;flex-direction:column;padding:19px}
.commerce-contract-card.is-inactive,.commerce-protocol-card.is-inactive,.price-condition-card.is-inactive{opacity:.68}
.commerce-contract-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.commerce-contract-title h2{margin:0 0 4px;font-size:19px}.commerce-contract-title p{margin:0;color:var(--muted);line-height:1.4}
.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.status-active{background:#e5f5e9;color:#287440}.status-inactive{background:#edf0f3;color:#687386}
.commerce-contract-meta{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:18px 0}
.commerce-contract-meta div:last-child{grid-column:1/-1}.commerce-contract-meta dt,.commerce-protocol-card dt,.price-rate dt,.price-terms dt{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}.commerce-contract-meta dd,.commerce-protocol-card dd,.price-rate dd,.price-terms dd{margin:3px 0 0;font-weight:700}
.commerce-card-link{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:13px;border-top:1px solid #e7edf3;color:var(--blue-dark);font-weight:750;text-decoration:none}.commerce-card-link span{font-size:18px}
.commerce-empty{grid-column:1/-1;padding:28px;text-align:center}.commerce-empty h2,.commerce-empty h3{margin:0 0 7px}.commerce-empty p{margin:0}
.commerce-contract-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:27px}.commerce-contract-summary .card{padding:17px 19px}.commerce-contract-summary strong{display:block;font-size:17px}.commerce-contract-summary p{margin:7px 0 0;font-size:12px}
.commerce-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 12px}.commerce-section-heading h2{margin:0;font-size:21px}.commerce-section-heading>.muted{max-width:510px;text-align:right}
.commerce-protocol-list{display:grid;gap:11px}.commerce-protocol-card{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(360px,1.1fr) 130px;align-items:center;gap:20px;padding:17px 19px}.commerce-protocol-card h3{margin:7px 0 3px}.commerce-protocol-card p{margin:0;color:var(--muted)}.commerce-protocol-card dl{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:0}.commerce-protocol-actions{display:grid;padding-left:12px;border-left:1px solid #e7edf3}.commerce-protocol-card .commerce-card-link{margin:0;padding:8px 0;border:0}
.commerce-form-card{padding:22px}.commerce-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.commerce-form-grid.four-columns{grid-template-columns:repeat(4,1fr)}
.commerce-form-field{min-width:0}.commerce-form-field.wide{grid-column:1/-1}.commerce-form-field>label{display:block;margin:0 0 6px;font-weight:700}.commerce-form-field input:not([type=checkbox]),.commerce-form-field select,.commerce-form-field textarea{width:100%;padding:9px 10px;border:1px solid #bbc8d4;border-radius:7px;background:#fff;font:inherit}.commerce-form-field textarea{resize:vertical}.commerce-form-field input:focus,.commerce-form-field select:focus,.commerce-form-field textarea:focus{outline:0;border-color:#4e88d7;box-shadow:0 0 0 3px #2d70cb1c}.commerce-form-field .helptext{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.4}.commerce-form-field .errorlist,.commerce-form>.errorlist{margin:6px 0 0;padding-left:18px;color:#a02020}.commerce-form-actions{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.condition-form fieldset{margin:0 0 22px;padding:0;border:0}.condition-form legend{width:100%;margin-bottom:13px;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:16px;font-weight:800}.route-form-grid{padding:15px;border-radius:10px;background:#f7f9fc}
.prr-mode-field{display:flex;align-items:center;gap:16px;margin-bottom:13px}.field-label{display:block;font-weight:700}.prr-mode-field>div,.penalty-vat-field>div{display:flex;gap:7px}.prr-mode-field>div>div,.penalty-vat-field>div>div{display:flex}.prr-mode-field label,.penalty-vat-field label{display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #bbc8d4;border-radius:7px;background:#fff;cursor:pointer}.prr-mode-field label:has(input:checked),.penalty-vat-field label:has(input:checked){border-color:#3e7ccd;background:#eaf3fd;color:#174f92}.prr-mode-field input,.penalty-vat-field input{margin:0}.prr-dependent-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:15px;border-radius:10px;background:#f7f9fc;transition:opacity .15s ease}.prr-dependent-fields.is-disabled{opacity:.48}.prr-dependent-fields.is-disabled label{cursor:not-allowed}.penalty-vat-field .field-label{margin-bottom:6px}.prr-moratorium-note{margin:10px 0 0;padding:10px 12px;border-left:3px solid #3e7ccd;background:#f1f6fc}
.station-autocomplete,.cargo-autocomplete,.waybill-autocomplete{position:relative;width:100%}.station-autocomplete-menu,.cargo-autocomplete-menu,.waybill-autocomplete-menu{position:absolute;z-index:80;top:calc(100% + 4px);right:0;left:0;max-height:260px;overflow-y:auto;border:1px solid #b9cadb;border-radius:8px;background:#fff;box-shadow:0 10px 28px #1f42642e}.station-autocomplete-menu[hidden],.cargo-autocomplete-menu[hidden],.waybill-autocomplete-menu[hidden]{display:none}.station-autocomplete-option,.cargo-autocomplete-option,.waybill-autocomplete-option{display:block;width:100%;padding:9px 11px;border:0;border-bottom:1px solid #e5ebf1;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.station-autocomplete-option:last-child,.cargo-autocomplete-option:last-child,.waybill-autocomplete-option:last-child{border-bottom:0}.station-autocomplete-option:hover,.station-autocomplete-option.is-active,.cargo-autocomplete-option:hover,.cargo-autocomplete-option.is-active,.waybill-autocomplete-option:hover,.waybill-autocomplete-option.is-active{background:#eaf3fd;color:#174f92}
.price-condition-list{display:grid;gap:10px}.price-condition-card{padding:14px 16px}.price-condition-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.price-condition-card header>div{display:flex;align-items:center;gap:9px;min-width:0}.price-condition-card header h3{display:flex;align-items:baseline;gap:7px;margin:0;font-size:17px}.price-condition-card header h3 small{color:var(--muted);font-size:11px;font-weight:600}.price-condition-card header>a{color:var(--blue-dark)}
.price-condition-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,240px);gap:10px;margin-top:11px}.price-route-table-wrap{overflow-x:auto;border:1px solid #e0e7ef;border-radius:9px}.price-route-table{width:100%;border-collapse:collapse;table-layout:fixed;background:#f8fafd}.price-route-table th{padding:7px 11px;border-bottom:1px solid #e0e7ef;color:#52677d;font-size:10px;font-weight:800;text-align:left;text-transform:uppercase}.price-route-table td{padding:8px 11px;vertical-align:top}.price-route-table tbody tr+tr td{border-top:1px solid #e7edf3}.price-route-table small{display:block;margin-bottom:2px;color:var(--muted);font-size:9px;font-weight:750;text-transform:uppercase}.price-route-table strong,.price-route-table span{font-size:13px;line-height:1.3}.price-route-table .route-direction{width:34px;padding-right:3px;padding-left:3px;color:#7590aa;font-size:18px;text-align:center}.price-route-table .route-roads td{padding-top:6px;padding-bottom:6px;background:#fff}.price-rate{display:flex;margin:0}.price-rate>div{display:flex;width:100%;flex-direction:column;justify-content:center;padding:11px 14px;border:1px solid #cbdced;border-radius:9px;background:#f4f8fd}.price-rate dd{color:#102743;font-size:19px;white-space:nowrap}.price-terms{display:flex;flex-wrap:wrap;gap:8px 22px;margin:9px 0 0;padding:0 2px}.price-terms>div{display:flex;align-items:baseline;gap:7px}.price-terms dd{font-size:13px;white-space:nowrap}
@media(max-width:1000px){.commerce-role-grid,.commerce-contract-grid{grid-template-columns:1fr}.commerce-protocol-card{grid-template-columns:1fr 1fr}.commerce-protocol-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px;padding:6px 0 0;border-top:1px solid #e7edf3;border-left:0}.commerce-form-grid.four-columns{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.commerce-heading{align-items:flex-start}.commerce-role-card{grid-template-columns:44px 1fr;padding:17px}.commerce-role-icon{width:44px;height:44px}.commerce-stats,.commerce-contract-summary{grid-template-columns:1fr}.commerce-form-grid,.commerce-form-grid.four-columns,.prr-dependent-fields{grid-template-columns:1fr}.prr-mode-field{align-items:flex-start;flex-direction:column;gap:7px}.commerce-form-field.wide{grid-column:auto}.commerce-protocol-card{grid-template-columns:1fr}.commerce-section-heading{align-items:flex-start;flex-direction:column}.commerce-section-heading>.muted{text-align:left}.price-condition-main{grid-template-columns:1fr}.price-rate>div{align-items:flex-start}.price-condition-card header>div{align-items:flex-start;flex-direction:column;gap:5px}.price-condition-card header h3{display:block}.price-condition-card header h3 small{display:block;margin-top:2px}.commerce-tabs{width:100%}.commerce-tabs a{flex:1;text-align:center}}

/* Identifier search and Excel-style column value filters. */
.column-filter-dialog [hidden]{display:none!important}
.dislocation-filters .filter-search small{font-size:11px;font-weight:400;line-height:1.4;text-transform:none;letter-spacing:normal}
.dislocation-filters .filter-search textarea{box-sizing:border-box;min-width:0;width:100%;min-height:64px;padding:9px 12px;border:1px solid #cbd7e3;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:14px;line-height:1.45;resize:vertical;text-transform:none}
.column-filter-hint{margin:0 0 8px;font-size:12px}.active-column-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.active-column-filters:empty{display:none}.active-column-filters button{padding:5px 9px;background:#e5effb;border-color:#b6cde8;color:#174f92;font-size:12px}
.column-heading{display:flex;align-items:center;justify-content:space-between;gap:4px}.column-heading>span{min-width:0}.column-filter-button{display:flex;flex:none;align-items:center;justify-content:center;width:25px;height:27px;padding:4px;border:1px solid transparent;background:transparent;color:#66809a;border-radius:5px}.column-filter-button:hover,.column-filter-button:focus-visible{background:#dceafb;border-color:#9bbbdc}.column-filter-button.is-active{background:#1769aa;border-color:#1769aa;color:#fff}
.column-filter-dialog{box-sizing:border-box;width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 40px);padding:16px;border:1px solid #b9cadb;border-radius:12px;color:#172033;box-shadow:0 15px 60px #10274340}.column-filter-dialog::backdrop{background:#123b5d22}.column-filter-dialog header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.column-filter-dialog header button{border:0;padding:2px 9px;font-size:22px}.column-values-search{display:grid;gap:5px;font-size:12px;color:#53667a}.column-values-search input{box-sizing:border-box;width:100%;padding:9px;border:1px solid #bbc8d4;border-radius:6px;font:14px inherit}.column-filter-selection{display:flex;gap:8px;margin:10px 0}.column-filter-selection button{padding:5px 8px;font-size:12px}.column-filter-options{max-height:280px;overflow:auto;overscroll-behavior:contain}.column-filter-options label{display:flex;align-items:flex-start;gap:8px;padding:7px 4px;overflow-wrap:anywhere;font-size:13px;cursor:pointer}.column-filter-options input{flex:none;margin-top:2px}.column-filter-options label:hover{background:#edf3fa}.column-filter-dialog footer{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #e3eaf2;margin-top:12px;padding-top:12px}.column-filter-dialog [role=status]{font-size:12px;color:#687386}
@media(max-width:720px){
  .dislocation-grid thead{display:block;margin-bottom:12px;overflow-x:auto}
  .dislocation-grid thead tr{display:flex;gap:6px}
  .dislocation-grid thead th{position:static;flex:0 0 160px;padding:8px;border:1px solid #cbd7e3;border-radius:8px;white-space:normal}
  .dislocation-grid thead th.bulk-select-cell,.dislocation-grid thead th:empty{display:none}
}
