:root{font-family:Arial,"Segoe UI",sans-serif;color:#3d3d3d;background:#fff;font-size:13px}
*{box-sizing:border-box}
body{margin:0;display:flex;min-height:100vh}
button,input,select{font:inherit}

/* Estructura de tres franjas inspirada en el ERP observado, con identidad propia. */
.sidebar{width:198px;flex:0 0 198px;background:#656565;color:#f6f6f6;display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:2}
.sidebar-toggle{position:absolute;top:15px;right:-19px;width:39px;height:39px;border:1px solid #fff;border-radius:50%;background:#ff9009;color:#fff;font-size:27px;line-height:30px;cursor:pointer;z-index:3;box-shadow:0 1px 3px #0002}
.sidebar-toggle:hover{background:#ef7f00}
.sidebar.collapsed{width:56px;flex-basis:56px}
.sidebar.collapsed .brand{padding:0}.sidebar.collapsed .brand img{display:none}.sidebar.collapsed .brand .brand-compact{display:block;text-align:center;font-size:17px;font-weight:700;color:#ffeb32}.sidebar.collapsed .brand small,.sidebar.collapsed .side-search,.sidebar.collapsed .module-label,.sidebar.collapsed .chevron,.sidebar.collapsed .menu-children,.sidebar.collapsed .sidebar-note{display:none}
.sidebar.collapsed .module-button{justify-content:center;padding:7px 5px}
.brand{height:119px;flex:0 0 119px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:5px 8px;background:#676767;border-bottom:1px solid #595959}
.brand img{width:100%;max-width:181px;height:77px;object-fit:contain;display:block}
.brand-compact{display:none}
.brand small{font-size:10px;color:#e7e7e7;margin-top:1px;text-align:center}
.side-search{height:45px;padding:7px 8px;display:flex;align-items:center;position:relative;background:#626262;border-top:1px solid #777}
.side-search span{position:absolute;left:18px;font-size:21px;color:#e9e9e9;line-height:1}
.side-search input{width:100%;height:31px;border:1px solid #777;background:#747474;border-radius:5px;color:#fff;padding:0 9px 0 31px;outline:none;font-size:11px}
.side-search input::placeholder{color:#d8d8d8;font-style:italic}
.side-search input:focus{border-color:#e3bf71;background:#777}
#nav{overflow-y:auto;flex:1;padding:8px 0 14px;scrollbar-width:thin;scrollbar-color:#999 #656565}
.menu-group[hidden]{display:none}
.module-button,.child-button{border:0;background:transparent;color:#f7f7f7;cursor:pointer;text-align:left;width:100%;display:flex;align-items:center}
.module-button{min-height:43px;padding:7px 12px;gap:10px;line-height:1.15;border-left:3px solid transparent}
.module-button:hover,.menu-group.open>.module-button,.menu-group.has-active>.module-button{background:#585858}
.module-button.active,.menu-group.has-active>.module-button{border-left-color:#dfa629}
.module-button:disabled{cursor:default;opacity:.68}
.module-button:disabled:hover{background:transparent}
.menu-icon{font-size:20px;font-family:"Segoe UI Symbol",Arial,sans-serif;display:inline-flex;width:20px;min-width:20px;align-items:center;justify-content:center;color:#fff}
.module-label{flex:1}
.chevron{font-size:17px;transition:transform .15s ease;color:#e9e9e9}
.menu-group.open .chevron{transform:rotate(180deg)}
.menu-children{display:none;background:#5d5d5d;padding:2px 0 5px}
.menu-group.open .menu-children{display:block}
.child-button{min-height:31px;padding:7px 9px 7px 46px;font-size:12px;color:#ededed}
.child-button:hover,.child-button.active{background:#4e4e4e;color:#ffd78a}
.child-button:disabled{opacity:.52;cursor:default}
.child-button:disabled:hover{background:transparent;color:#ededed}
.sidebar-note{margin:0;padding:10px 11px;font-size:10px;color:#dedede;border-top:1px solid #777;line-height:1.4}

.workspace{flex:1;min-width:0;background:#fff}
.site-header{height:119px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 40px 0 23px;border-bottom:1px solid #ddd}
.header-label{font-size:12px;color:#a4a4a4;text-transform:uppercase;letter-spacing:.09em}
.header-tools{display:flex;align-items:center;gap:22px;margin-left:auto;margin-right:23px;color:#798189;font-family:"Segoe UI Symbol",Arial,sans-serif}
.header-tool{font-size:24px}.header-tool.orange{color:#f39819;font-size:18px}
.user-card{height:94px;width:345px;border:1px solid #888;border-radius:16px;display:flex;align-items:center;gap:12px;padding:7px 12px;color:#303030}
.user-card strong,.user-card small{display:block}
.user-card strong{font-size:15px;letter-spacing:.025em}
.user-card small{font-size:11px;color:#888;margin-top:4px}
.user-card>span:last-child{margin-left:auto;font-size:19px}
.user-avatar{width:78px;height:78px;flex:0 0 78px;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:#fff}
.user-avatar img{width:100%;height:100%;object-fit:contain;transform:scale(1.2)}
.quickbar{height:44px;display:flex;align-items:center;gap:6px;padding:0 14px;background:#626262;color:#fff}
.quickbar button{height:36px;width:40px;background:transparent;color:#f8f8f8;border:0;font-size:22px;cursor:pointer}
.quickbar button:hover{background:#515151}
main{padding:12px 12px 48px}
.topbar{height:28px;background:#e7e7e7;display:flex;align-items:center;justify-content:space-between;padding:0 7px;margin-bottom:14px;border-top:1px solid #f1f1f1}
.topbar h1{font-size:16px;color:#c18e20;font-weight:700;margin:0}
.mode{font-size:10px;color:#727272}

#notice:not(:empty){padding:9px 12px;border:1px solid #b8d7bf;background:#eaf6ed;color:#26623a;margin-bottom:12px}
#notice.error{background:#fff0ef;border-color:#e4bdbb;color:#a13e3b}
.panel{background:#fff;border:1px solid #d8d8d8;margin-bottom:14px;padding:0;box-shadow:none}
.panel h2{background:#ededed;color:#777;border-bottom:1px solid #d8d8d8;font-size:14px;margin:0;padding:9px 11px;font-weight:700}
.panel>.muted{margin:10px 12px 12px;color:#777;font-size:11px}
.panel form{padding:0 12px 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:13px}
.field{display:grid;gap:5px}
.field label{color:#555;font-size:11px;font-weight:700}
.field input,.field select,.field textarea{width:100%;height:30px;border:1px solid #c9c9c9;border-radius:1px;background:#fff;padding:5px 8px;color:#333;outline:none}
.field input:focus,.field select:focus{border-color:#bc8f31;box-shadow:0 0 0 1px #e4c67e}
.checkbox-field{display:flex;align-items:end;gap:7px;padding-bottom:5px}
.checkbox-field input{height:auto;width:auto;accent-color:#bb8e29}
.actions{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.primary,.secondary,.small-button{border:1px solid #aaa;background:#777;color:#fff;min-height:30px;padding:5px 14px;cursor:pointer;border-radius:1px}
.primary:hover,.secondary:hover,.small-button:hover{background:#636363}
.secondary,.small-button{background:#f3f3f3;color:#555;border-color:#c8c8c8}
.secondary:hover,.small-button:hover{color:#fff}
.table-wrap{overflow:auto;padding:3px 11px 10px}
table{border-collapse:collapse;width:100%;min-width:650px}
th,td{border:1px solid #e0e0e0;text-align:left;padding:7px 8px;vertical-align:top}
th{background:#f1f1f1;color:#626262;font-size:11px;font-weight:700}
td{font-size:12px}
tbody tr:hover{background:#faf8f1}
.status{display:inline-block;background:#ececec;color:#555;border:1px solid #d2d2d2;padding:2px 7px;font-size:11px}
.status.completed{background:#e7f3e8;color:#4c7950}
.status.canceled{background:#f8e9e6;color:#a05146}
.status.in_transit{background:#fff0d0;color:#89621b}
.small-button{min-height:23px;padding:2px 7px;font-size:11px}
.empty{margin:12px;color:#777;font-size:12px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;margin-bottom:13px}
.card{border:1px solid #d5d5d5;background:#f8f8f8;padding:14px;min-height:82px}
.card .value{font-size:23px;color:#5a5a5a;font-weight:700;margin-bottom:7px}
.card .label{color:#6c6c6c;font-size:11px}
.panel>.footnote{padding:0 12px 12px;color:#777;font-size:11px}

/* Tablero y consultas con la densidad de las pantallas observadas en GM. */
.dashboard-grid,.reports-page{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.reports-page{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-panel{border:1px solid #d2d2d2;background:#fff;min-width:0;min-height:245px}
.dashboard-panel h2{height:28px;line-height:28px;background:#6b6b6b;color:#fff;text-align:center;font-size:13px;font-weight:700;margin:0;padding:0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-scroll{max-height:245px;overflow:auto}
.dashboard-panel table{min-width:100%;width:100%;table-layout:auto}
.dashboard-panel th,.dashboard-panel td{padding:4px 5px;border-left:0;border-right:0;border-top:0;border-bottom:1px solid #eee;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-panel th{background:#f3f3f3;color:#777;font-weight:500}
.dashboard-panel tr:nth-child(even) td{background:#f8f8f8}
.dashboard-panel .dashboard-empty{color:#999;text-align:center;padding:52px 8px;background:#fff!important}
.dashboard-note,.module-note{grid-column:1/-1;color:#777;font-size:11px;margin:8px 2px}
.reports-page .dashboard-panel{min-height:280px}
.reports-page .dashboard-scroll{max-height:280px}
@media(max-width:1050px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-grid,.reports-page{grid-template-columns:1fr}}

/* Pantalla de viajes: barra de acciones, filtros y grilla compacta. */
.view-trips .topbar{display:none}
.view-configurable .sidebar,.view-configurable .site-header,.view-configurable .quickbar{display:none}
.view-configurable .workspace{width:100%}
.view-configurable main{padding:8px 12px}
.config-grid-filters{display:flex;flex-wrap:wrap;align-items:end;gap:7px;margin:6px 0 9px}
.config-grid-filters .trip-filter-field{min-width:110px;display:grid;gap:3px}
.config-grid-filters .trip-filter-field input,.config-grid-filters .trip-filter-field select{width:100%;min-height:26px}
.config-grid-check{display:flex;gap:5px;align-items:center;white-space:nowrap}
.config-grid-list>h2{margin:0;padding:5px 8px;background:#6b6b6b;color:#ffae24;font-size:14px}
.config-group-row td{font-weight:bold}
.config-availability{margin-top:10px;padding:8px}
.config-availability input{margin:6px 0}
.config-grid-dialog{max-height:90vh;overflow:auto;width:min(700px,95vw)}
.trips-page{color:#282828}
.trip-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;min-height:29px;margin:0 0 2px}
.trip-menu{position:relative;flex:0 0 auto}
.trip-menu-items{position:absolute;top:100%;left:0;z-index:9;min-width:165px;background:#606060;box-shadow:0 4px 9px #0005}
.trip-menu-items[hidden]{display:none}
.trip-menu-items .trip-action{display:block;width:100%;text-align:left;min-width:0}
.trip-action{flex:0 0 auto;height:25px;min-width:65px;padding:3px 9px;border:0;background:#747474;color:#ffa509;font-size:11px;font-weight:700;cursor:pointer;text-align:center}
.trip-action:hover:not(:disabled){background:#555;color:#ffbe46}
.trip-action:disabled{background:#858585;color:#e8b45f;cursor:default;opacity:1}
.trip-action-status{background:#606060;min-width:75px}
.toolbar-spacer{flex:1 0 12px}
.trip-filters{display:grid;grid-template-columns:95px 95px minmax(130px,1.2fr) 116px 98px minmax(115px,1fr) 105px 112px 111px 76px;gap:3px;align-items:end;border-bottom:1px solid #c9c9c9;margin-bottom:2px}
.trip-filter-field{display:flex;flex-direction:column;min-width:0}
.trip-filter-field label{font-size:11px;font-weight:700;color:#656565;height:14px;line-height:14px}
.trip-filter-field input,.trip-filter-field select{width:100%;height:25px;border:1px solid #bdbdbd;background:#fff;color:#151515;padding:1px 3px;font-size:11px;border-radius:0}
.trip-filter-field input:focus,.trip-filter-field select:focus{outline:1px solid #dba333}
.trip-filter-field select:disabled{color:#333;opacity:1;background:#f8f8f8}
.apply-filter{height:25px;border:0;background:#747474;color:#ffa509;font-size:11px;font-weight:700;padding:1px 7px;cursor:pointer;white-space:nowrap}
.apply-filter:hover{background:#555}
.trips-page>.panel{margin:7px 0}
.trip-list{border:1px solid #bdbdbd;margin-top:0}
.trip-list-title{height:23px;display:flex;align-items:center;justify-content:space-between;background:#6b6b6b;color:#ffa90c;padding:0 5px;font-size:15px}
.trip-list-title strong{font-weight:700}
.trip-panel-heading{display:flex;align-items:center;background:#6b6b6b;justify-content:space-between}
.trip-panel-heading input{width:115px;margin-right:4px;font-size:11px}
.trip-list-search{display:flex;align-items:center;gap:5px;font-size:10px;color:#ffad19}
.trip-list-search input{height:17px;width:120px;padding:0 3px;border:1px solid #bbb;background:#fff;font-size:10px}
.demo-strip{background:#fff7dc;color:#78602a;border-bottom:1px solid #dbc998;padding:3px 5px;font-size:10px;font-weight:700;letter-spacing:.02em}
.trip-grid-scroll{height:383px;overflow:auto;scrollbar-width:thin}
.trip-grid{min-width:2850px;table-layout:fixed;border:0}
.trip-grid th{height:20px;padding:1px 4px;background:#c9c9c9;color:#505050;border:1px solid #e1e1e1;font-size:10px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trip-grid td{height:25px;padding:2px 4px;font-size:10px;font-weight:700;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:19px}
.trip-grid tbody tr:nth-child(even){background:#f3f3f3}
.trip-grid tbody tr:hover,.trip-grid tr.selected-row{background:#ffe4aa}
.trip-grid tr.demo-row td{color:#444}
.trip-grid th:nth-child(1){width:64px}.trip-grid th:nth-child(2){width:128px}.trip-grid th:nth-child(3){width:150px}.trip-grid th:nth-child(4){width:205px}.trip-grid th:nth-child(5),.trip-grid th:nth-child(6){width:190px}.trip-grid th:nth-child(7){width:105px}.trip-grid th:nth-child(8){width:128px}.trip-grid th:nth-child(9){width:95px}.trip-grid th:nth-child(10){width:165px}.trip-grid th:nth-child(11){width:120px}.trip-grid th:nth-child(12){width:145px}
.trip-ficha{width:min(1250px,98vw);max-height:94vh}
.trip-ficha .catalog-ficha-header{position:static}
.trip-ficha .catalog-tabs{position:sticky;top:0;background:#fff;z-index:2}
.trip-ficha .catalog-tabs button{font-size:11px;padding:6px}
.trip-tab-grid,.trip-convoy-field,.trip-billing-row,.trip-row-editor{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:end}
.trip-wide{grid-column:1/-1}
.trip-convoy-field{grid-template-columns:1fr auto}
.trip-material-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(350px,2fr);gap:15px}
.trip-material-layout>div{min-width:0;overflow:auto}
.trip-billing-row,.trip-row-editor{border:1px solid #ddd;padding:8px;margin:6px 0}
.trip-totals{font-weight:700;background:#f4f4f4;padding:10px;text-align:right}
.trip-chooser{width:min(1100px,96vw);max-height:85vh;overflow:auto;padding:16px}
.trip-chooser .catalog-table tr{cursor:pointer}
.trip-occupied,.credit-low{color:#b3241e}.credit-ok{color:#16803d}
.trip-document-warning{padding:8px;border:1px solid #d39a2f;background:#fff1cf;color:#6b3700;font-weight:700}
.trip-operation-dialog{width:min(850px,96vw);max-height:90vh;overflow:auto}
.trip-operation-dialog .catalog-tabs{display:flex;gap:4px;margin:8px 0}
.trip-operation-panel,.trip-operation-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:end}
.trip-operation-panel[hidden]{display:none}
.trip-operation-panel>p,.trip-operation-dialog .trip-status-history{grid-column:1/-1}
.trip-perception-rows,.trip-perception-line{display:grid;grid-column:1/-1;grid-template-columns:2fr 1fr auto;gap:8px;align-items:end}
.trip-perception-rows{display:block}.trip-perception-line{margin:6px 0}
.lower-grid tr.selected-row{background:#ffe4aa}
@media(max-width:850px){.trip-tab-grid,.trip-billing-row,.trip-row-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-material-layout{grid-template-columns:1fr}}
.trip-status{display:inline-block;min-width:44px;text-align:center;line-height:16px;padding:0 2px;background:#fff300;color:#171717}
.trip-status.completed{background:#a4e48b}.trip-status.canceled{background:#e8b6b1}.trip-status.planned{background:#f4e696}
.empty-trip-cell{text-align:center;color:#777!important;font-weight:400!important;padding:20px!important}
.trip-list-footer{height:26px;background:#707070;color:#fff;display:flex;align-items:center;gap:10px;padding:0 4px;font-size:11px;font-weight:700;white-space:nowrap;overflow:auto}
.export-button{background:#5b5b5b;color:#e8b24e;border:0;font-size:9px;padding:2px 7px;cursor:default}
.pager{margin-left:auto;display:flex;gap:2px}
.pager button{border:0;background:#f3f3f3;color:#444;padding:2px 5px;font-size:10px;cursor:pointer}
.pager button.current{background:#ffa719;color:#171717;font-weight:700;cursor:default}
.pager button:disabled:not(.current){color:#aaa;cursor:default}
.trip-lower{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:2px;background:#6b6b6b;padding:2px}
.lower-panel{min-width:0;background:#fff;height:173px;overflow:auto}
.lower-panel h2{margin:0;background:#6b6b6b;color:#ffa90c;font-size:15px;height:25px;line-height:25px;padding:0 5px}
.lower-grid{width:100%;min-width:620px}
.lower-grid th{background:#c9c9c9;color:#656565;font-size:10px;height:18px;padding:1px 4px;white-space:nowrap}
.lower-grid td{font-size:10px;font-weight:700;height:21px;padding:1px 4px;white-space:nowrap}
.lower-grid tr:nth-child(even){background:#f4f4f4}
.lower-panel>.trip-action{margin:3px 4px}
@media print{.sidebar,.quickbar,.site-header,.trip-toolbar,.trip-filters,.trip-lower,.trip-list-search,.trip-list-footer{display:none!important}.trip-grid-scroll{height:auto;overflow:visible}.trip-grid{min-width:0;width:100%;table-layout:auto}.trip-grid th,.trip-grid td{font-size:7px;white-space:normal}main{padding:0}}
.lower-grid td.available{background:#2cff28;color:#111}.lower-grid td.occupied{background:#f8de6a;color:#111}
.lower-empty{color:#777;font-weight:400!important;text-align:center;height:60px!important}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px;padding:10px}
.detail-cell{border:1px solid #e0e0e0;padding:6px}
.detail-cell small,.detail-cell strong{display:block}.detail-cell small{color:#777;font-size:10px}.detail-cell strong{font-size:12px;margin-top:4px}
.generic-toolbar{display:flex;gap:2px;overflow-x:auto;margin-bottom:2px;scrollbar-width:thin}
.generic-toolbar .trip-action{min-width:83px}
.generic-filter{display:flex;align-items:center;justify-content:flex-end;background:#717171;color:#ffad19;height:23px;gap:5px;padding:2px 5px;font-size:11px;font-weight:700}
.generic-filter input{height:17px;width:155px;border:1px solid #aaa;padding:0 4px;color:#333;font-size:11px}
.generic-page>.panel{margin-top:4px}
.list-panel h2{background:#737373;color:#ffa909;border:0;padding:4px 6px;font-size:15px}
.list-panel .table-wrap{padding:0;min-height:160px}
.list-panel table{min-width:750px}
.list-panel th{background:#cbcbcb;font-size:10px;height:20px;padding:2px 5px}
.list-panel td{font-size:11px;height:25px;padding:3px 5px;font-weight:600;border:0}
.list-panel tr:nth-child(even){background:#f4f4f4}
.list-panel tbody tr:hover,.list-panel tbody tr.selected-row{background:#ffe5ad;cursor:pointer}
.empty-table-cell{text-align:center!important;font-weight:400!important;color:#777;height:55px!important;cursor:default}

.voucher-page{min-height:calc(100vh - 230px)}
.voucher-toolbar{height:50px;display:flex;align-items:center;border-bottom:1px solid #ddd}
.voucher-toolbar .voucher-button+.voucher-button{margin-left:7px}
.voucher-assign-panel{display:flex;align-items:center;gap:7px;padding:7px;background:#fff4df;border:1px solid #e3c783;font-size:11px;flex-wrap:wrap}
.voucher-assign-panel select{height:26px;min-width:140px;border:1px solid #bbb;background:#fff}.voucher-assign-panel .secondary{min-height:26px}
.voucher-assign-error{color:#a13e3b}
.voucher-button{border:0;background:#696969;color:#ffae29;padding:5px 16px;font-weight:700;cursor:pointer;min-height:27px}
.voucher-button:hover{background:#555}
.voucher-filters{display:flex;align-items:center;gap:7px;min-height:34px;padding:4px 5px;border-bottom:1px solid #ccc;flex-wrap:wrap}
.voucher-filters label{font-size:11px}
.voucher-filters input,.voucher-filters select{height:25px;border:1px solid #c8c8c8;background:#fff;color:#333;padding:2px 5px;font-size:11px}
.voucher-filters select{min-width:210px}
.voucher-list-heading{height:27px;background:#707070;color:#ffae29;display:flex;align-items:center;gap:5px;padding:0 6px}
.voucher-list-heading strong{font-size:15px;margin-right:auto}
.voucher-list-heading label{font-size:11px;font-weight:700}
.voucher-list-heading input{height:20px;width:175px;border:1px solid #aaa;padding:1px 4px;font-size:11px}
.voucher-table-wrap{height:calc(100vh - 292px);min-height:320px;overflow:auto;border:1px solid #d4d4d4}
.voucher-table{border-collapse:collapse;min-width:2050px;width:100%;font-size:11px}
.voucher-table th{background:#cacaca;color:#444;border-right:1px solid #eee;text-align:left;white-space:nowrap;padding:5px 6px;position:sticky;top:0}
.voucher-table td{border-right:1px solid #ddd;border-bottom:1px solid #eee;white-space:nowrap;padding:5px 6px}
.voucher-table tr.selected-row{background:#ffe0a6}.voucher-table tbody tr:not(:has(.voucher-empty)):hover{background:#fff0cf;cursor:pointer}
.voucher-table .voucher-empty{text-align:center;height:85px;color:#777}
.voucher-count{background:#707070;color:#fff;margin:0;padding:5px 10px;font-size:11px;font-weight:700}
.voucher-backdrop{position:fixed;inset:0;background:#0009;z-index:20;overflow-y:auto;padding:35px 12px}
.service-order-dialog{width:min(96vw,1250px);margin:0 auto;background:#fff;max-height:calc(100vh - 70px);overflow:auto}
.service-order-action-dialog{width:min(96vw,500px);margin:8vh auto;background:#fff}
.service-order-action-backdrop{z-index:21}
.voucher-dialog{width:min(720px,100%);margin:0 auto;background:#fff;border:1px solid #666;box-shadow:0 5px 24px #0005;color:#444}
.voucher-dialog h2{margin:0;padding:9px 10px;border-bottom:1px solid #ccc;font-size:16px;font-weight:400}
.toll-page .voucher-table{min-width:920px}
.toll-page .voucher-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0}
.toll-page .voucher-dialog{margin:16px auto;padding:0 12px 12px}
.toll-page .voucher-dialog .voucher-field{display:inline-flex;flex-direction:column;gap:3px;margin:8px;min-width:150px;font-size:12px}
.toll-page .voucher-dialog .voucher-field input,.toll-page .voucher-dialog .voucher-field select{min-height:28px}
.toll-page .voucher-dialog pre{white-space:pre-wrap;max-height:220px;overflow:auto}
.toll-page .verification-dialog{width:min(1100px,90vw);max-width:100%;box-sizing:border-box}
.verification-table-wrap{max-width:100%;overflow-x:auto}
.toll-page .import-errors{border-collapse:collapse;width:100%;font-size:12px}
.toll-page .import-errors th,.toll-page .import-errors td{border:1px solid #ddd;padding:5px 8px;text-align:left}
.toll-page .import-error{color:#a12626}
.voucher-form{padding:7px 10px 5px}
.voucher-field{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;min-height:26px;gap:4px;font-size:11px}
.voucher-field label{font-weight:400}
.voucher-field input,.voucher-field select{height:23px;max-width:100%;border:1px solid #c6c6c6;padding:2px 5px;background:#fff;color:#333;font-size:11px}
.invoice-dialog .voucher-field textarea{width:100%;min-height:90px;max-width:100%;border:1px solid #c6c6c6;padding:5px;color:#333;font:inherit}
.voucher-field input[readonly]{background:#f3f3f3}
.voucher-rule{border-top:1px solid #d8d8d8;margin:5px 0}
.voucher-recent{margin-top:12px;border:1px solid #e5b25e;min-height:125px}
.voucher-recent h3{background:#f8b23b;color:#fff;border-radius:8px 8px 0 0;display:inline-block;margin:0;padding:4px 9px;font-size:12px}
.voucher-recent table{border-collapse:collapse;width:100%;font-size:10px}.voucher-recent th{background:#c9c9c9;text-align:left;padding:4px}.voucher-recent td{border-bottom:1px solid #eee;padding:5px 4px}
.voucher-recent p{background:#efc47c;text-align:right;margin:8px 0 0;padding:8px 12px;font-size:11px}
.voucher-tabs{display:flex;gap:4px;margin-top:12px}.voucher-tabs .voucher-button{font-size:11px}
.voucher-dialog .voucher-recent{min-height:145px;max-height:220px;overflow:auto}
.voucher-page .voucher-toolbar{height:auto;min-height:50px;gap:5px;flex-wrap:wrap;padding:5px 0}
.voucher-page .voucher-toolbar button{font-size:11px;padding:5px 9px}.voucher-page .voucher-toolbar button:disabled{opacity:.55;cursor:default}
.voucher-page .voucher-table th{cursor:pointer}.voucher-page .voucher-count{display:flex;align-items:center;gap:8px}
.voucher-dialog-actions{display:flex;justify-content:center;gap:5px;padding:7px}.voucher-dialog-actions button{min-width:80px;min-height:25px;padding:2px 8px;font-size:11px}
.voucher-form-error:not(:empty){margin:2px 0 5px;padding:6px 8px;border:1px solid #e4bdbb;background:#fff0ef;color:#a13e3b;font-size:11px}

.settlement-toolbar{display:flex;align-items:center;gap:6px;min-height:35px;padding:4px 2px;border-bottom:1px solid #ddd}
.settlement-toolbar button:disabled{opacity:.5;cursor:default}
.settlement-table-wrap{height:245px;overflow:auto;border:1px solid #d5d5d5}
.settlement-table{min-width:1600px}
.settlement-detail{margin-top:8px;border:1px solid #ddd;min-height:180px}
.settlement-detail h3,.settlement-itinerary h3{background:#747474;color:#ffad29;font-size:14px;text-align:center;margin:0;padding:4px}
.settlement-detail table,.settlement-trip-wrap table{border-collapse:collapse;width:100%;font-size:11px}
.settlement-detail th,.settlement-trip-wrap th{background:#cacaca;text-align:left;padding:5px;border-right:1px solid #fff}
.settlement-detail td,.settlement-trip-wrap td{padding:5px;border-bottom:1px solid #eee}
.settlement-detail p{margin:8px;padding:6px;color:#555;font-size:11px}
.settlement-dialog{width:min(1240px,100%);margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;color:#444}
.settlement-dialog h2{font-size:16px;font-weight:400;margin:0;padding:5px 7px;border-bottom:1px solid #ccc}
.settlement-form{padding:7px 10px}
.settlement-form-top{display:grid;grid-template-columns:90px 120px minmax(175px,1.5fr) minmax(140px,1fr) minmax(140px,1fr);gap:7px;padding:5px;border:1px solid #ddd}
.settlement-field{display:flex;flex-direction:column;gap:2px;font-size:11px;min-width:0}
.settlement-field label{font-size:11px;font-weight:400}
.settlement-field input,.settlement-field select{height:24px;width:100%;border:1px solid #c8c8c8;background:#fff;padding:2px 4px;font-size:11px}
.settlement-itinerary{margin-top:6px;border:1px solid #ddd}
.settlement-trip-wrap{height:150px;overflow:auto}
.settlement-stats{display:flex;gap:15px;justify-content:flex-end;padding:8px;border:1px solid #ddd;border-top:0;font-size:11px;font-weight:700}
.settlement-tabs{display:flex;gap:2px;flex-wrap:wrap;margin-top:9px}
.settlement-tabs button{border:0;background:#777;color:#fff;padding:5px 8px;font-size:11px;font-weight:700}
.settlement-tabs button.active{background:#f2aa28}.settlement-tabs button:disabled{opacity:.6}
.settlement-calculation{border:1px solid #ddd;min-height:105px;padding:8px;display:grid;grid-template-columns:1fr 180px 1fr;gap:8px;align-items:start}
.settlement-calculation p{margin:0;font-size:11px;line-height:1.4;color:#666}
.settlement-calculation .settlement-field{min-width:0}
.settlement-dialog .settlement-form-top{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.settlement-dialog .voucher-field{display:flex;flex-direction:column;align-items:stretch}
.settlement-dialog .voucher-field input,.settlement-dialog .voucher-field select{width:100%}
.settlement-dialog .voucher-field input[type=checkbox]{width:auto;align-self:flex-start}
.settlement-driver-picker{grid-column:1/-1;border:1px solid #ddd;padding:3px;max-height:170px;overflow:auto}
.settlement-driver-picker summary{cursor:pointer}
.settlement-driver-picker table{width:100%;font-size:11px;border-collapse:collapse}
.settlement-driver-picker td,.settlement-driver-picker th{padding:3px;border-bottom:1px solid #eee}
.settlement-driver-picker tr{cursor:pointer}
.settlement-warning{color:#b02020;font-size:11px;font-weight:700}
.settlement-itinerary{overflow-x:auto}
.settlement-itinerary table{min-width:1550px}
.settlement-stats{justify-content:flex-start;flex-wrap:wrap}
.settlement-calculation{display:block;overflow-x:auto}
.settlement-calculation h3{font-size:13px;margin:8px 0 4px}
.settlement-calculation table{width:100%;margin-bottom:8px}
.settlement-calculation textarea{width:100%;min-height:100px}
.settlement-detail .voucher-button{margin:5px}
.settlement-payment-list{max-height:240px;overflow:auto;border:1px solid #ddd;padding:5px;margin-bottom:8px}
.settlement-dialog .settlement-payment-list .voucher-field{display:flex;flex-direction:row;align-items:center;gap:8px;padding:4px}
.settlement-dialog .settlement-payment-list .voucher-field input[type=checkbox]{align-self:center}
.fiscal-page .voucher-toolbar{height:auto;min-height:50px;gap:5px;flex-wrap:wrap;padding:5px 0}
.fiscal-page .voucher-toolbar button:disabled{opacity:.5;cursor:default}
.fiscal-filters,.fiscal-form-top,.fiscal-add{display:flex;flex-wrap:wrap;gap:8px;align-items:end;padding:8px 0}
.fiscal-field{display:flex;flex-direction:column;gap:3px;font-size:11px;min-width:125px}
.fiscal-field input,.fiscal-field select{height:27px;border:1px solid #bbb;padding:2px 5px;max-width:220px}
.fiscal-field input:disabled,.fiscal-field select:disabled{background:#f1f1f1}
.fiscal-table-wrap{overflow:auto;max-height:400px;border:1px solid #ddd}
.fiscal-list{min-width:900px}
.fiscal-dialog{width:min(1080px,100%)}
.fiscal-preview-error{margin:8px 0;padding:8px;border:1px solid #c98989;background:#fff2f2;color:#762323;font-size:12px}
.fiscal-linked,.fiscal-calculation{border:1px solid #ddd;padding:8px;margin-top:8px}
.fiscal-linked h3,.fiscal-calculation h3{font-size:13px;margin:3px 0 7px}
.fiscal-items{min-width:0;margin-bottom:12px}
.fiscal-items input{width:110px}
.fiscal-items td:last-child button{margin-right:5px}
.fiscal-totals{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:20px;padding:8px;background:#f5f5f5;font-size:12px}
.fiscal-payment{padding:10px}

.expense-page .voucher-toolbar{height:auto;min-height:50px;gap:5px;flex-wrap:wrap;padding:5px 0}
.expense-page .voucher-toolbar button{font-size:11px;padding:5px 9px}
.expense-page .voucher-toolbar button:disabled{opacity:.55;cursor:default}
.expense-table{min-width:1750px}
.expense-dialog{width:min(960px,100%);margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;color:#444}
.expense-dialog h2{font-size:16px;font-weight:400;margin:0;padding:7px 10px;border-bottom:1px solid #ccc}
.expense-form{padding:10px}.expense-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.expense-disabled{align-self:end;height:24px;font-size:11px}
.expense-note{font-size:11px;color:#715e3a;background:#fff6e5;border:1px solid #edd7a4;padding:8px;margin:10px 0}
.expense-recent{min-height:155px;border:1px solid #ddd;overflow:auto}
.expense-recent h3{font-size:13px;color:#fff;background:#777;margin:0;padding:5px 8px}
.expense-recent table{width:100%;border-collapse:collapse;font-size:11px}
.expense-recent th{background:#ccc;text-align:left;padding:5px}.expense-recent td{padding:5px;border-bottom:1px solid #eee}
.expense-page .voucher-table th{cursor:pointer}
.expense-page .voucher-count{display:flex;align-items:center;gap:8px}
.expense-form-grid input[type=checkbox]{width:auto;align-self:flex-start}
.expense-form .expense-recent{margin-top:10px;min-height:0;max-height:260px}
.expense-form .expense-recent p{font-size:11px;text-align:right;padding:6px;margin:0;background:#fff3db}
.expense-form .expense-recent a{display:inline-block;margin:6px;font-size:11px}
.expense-batch-body{max-height:58vh;overflow:auto;margin-top:10px}
.expense-batch-body .voucher-table{min-width:650px}
.expense-batch-body .voucher-table input{max-width:110px}
.expense-batch-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:12px}
.expense-batch-entry .expense-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.expense-batch-list{border:1px solid #ddd;min-height:120px}
.expense-batch-list h3{margin:0;padding:6px;background:#777;color:#fff;font-size:12px}
.expense-batch-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px;border-bottom:1px solid #eee;font-size:11px}
.expense-row-error{background:#fff0ef!important;outline:2px solid #be5b55}
@media(max-width:760px){.expense-batch-columns{grid-template-columns:1fr}}
.check-table-wrap{height:310px;overflow:auto;border:1px solid #ddd}
.check-table{min-width:1300px}
.check-summary{margin-top:3px;border:1px solid #ddd}
.check-summary h3{background:#6e6e6e;color:#ffaf29;text-align:center;margin:0;padding:5px;font-size:15px}
.check-summary-wrap{max-height:215px;overflow:auto}
.check-summary table{width:100%;border-collapse:collapse;font-size:11px}
.check-summary th{background:#c9c9c9;text-align:left;padding:5px;white-space:nowrap}
.check-summary td{padding:4px 5px;border-bottom:1px solid #eee;white-space:nowrap}
.check-summary tr:nth-child(even){background:#f3f3f3}
.check-dialog{width:min(650px,100%);margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;color:#444}
.check-dialog h2{margin:0;padding:7px;font-size:16px;font-weight:400;border-bottom:1px solid #ddd}
.reconciliation-dialog{width:min(1180px,100%);padding:8px;box-sizing:border-box}
.reconciliation-dialog .check-table-wrap{height:240px}
.reconciliation-dialog .check-table{min-width:900px}
.check-form{padding:5px}.check-form h3{margin:2px 0;background:#b6b6b6;color:#555;text-align:center;padding:5px;font-size:12px;font-weight:400}
.check-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:5px 8px 12px;align-items:end}
.check-form-grid input[type=checkbox]{width:auto;height:auto;align-self:start}
.traffic-hub-title{background:#6e6e6e;color:#ffaf29;font-size:15px;padding:7px;margin:0}
.traffic-catalog-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;padding:6px;border:1px solid #ddd}
.traffic-catalog-card{min-height:38px;border:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;background:#fff;color:#444;text-align:left;padding:5px 7px;font-size:11px;cursor:pointer}
.traffic-catalog-card:hover:not(:disabled){background:#fff0cf}.traffic-catalog-card:disabled{color:#aaa;cursor:default}
.catalog-table-wrap{min-height:250px;max-height:calc(100vh - 290px);overflow:auto}.catalog-table{min-width:620px}
.catalog-detail{border:1px solid #ddd;margin-top:8px;padding:7px;font-size:11px}.catalog-detail h3{margin:0 0 5px;font-size:13px}.catalog-detail p{margin:4px 0}
.catalog-dialog{width:min(600px,100%);margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;padding:8px;color:#444}
.catalog-dialog h2{font-size:16px;font-weight:400;margin:0 0 8px}.catalog-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.catalog-form .voucher-dialog-actions,.catalog-form .voucher-form-error{grid-column:1/-1}
.traffic-catalog-card[aria-pressed="true"]{background:#fff0cf;border-left:3px solid #df7900;font-weight:700}
.traffic-catalog-card small{display:block;color:#999;font-size:10px}
.catalog-card-icon{display:inline-block;margin-right:6px;color:#d77c10;font-size:15px}
.catalog-workspace{margin-top:16px;border:1px solid #d8d8d8;background:#fff;padding:14px}
.catalog-workspace h3{margin:0 0 10px;font-size:17px}
.catalog-toolbar,.catalog-filters,.catalog-footer,.catalog-tabs,.catalog-file-row,.catalog-upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.catalog-toolbar{margin-bottom:10px}.catalog-filters{padding:8px;background:#f8f8f8;margin-bottom:8px}
.accounting-generation-actions .voucher-button:disabled{background:#dedede;color:#777;cursor:not-allowed}
.catalog-filters .catalog-field{max-width:260px}.catalog-table-wrap{min-height:140px;max-height:420px}
.catalog-table{width:100%;border-collapse:collapse}.catalog-table th,.catalog-table td{border:1px solid #ddd;padding:6px;text-align:left;font-size:12px}
.catalog-table tr.selected-row{background:#ffe2ae}.catalog-sort{background:transparent;border:0;font:inherit;font-weight:700;cursor:pointer;text-align:left}
.catalog-table tr.accounting-missing-account{color:#b3241e;background:#fff0ef}
.traffic-catalog-page .catalog-table th input{box-sizing:border-box;width:100%;min-width:72px;font-size:12px}
.catalog-footer{margin-top:10px;font-size:12px}.catalog-ficha{width:min(950px,100%);max-height:calc(100vh - 70px);overflow:auto;padding:18px}
.catalog-ficha-header{position:sticky;top:0;z-index:1;background:#fff;border-bottom:1px solid #ddd;padding:0 0 12px;margin-bottom:12px}
.catalog-tabs{border-bottom:1px solid #ddd;margin-bottom:12px}.catalog-tabs button{background:#f5f5f5;border:1px solid #ddd;padding:8px;cursor:pointer}
.catalog-tabs button.active{background:#e88012;color:#fff}.catalog-tab-panels{min-height:230px}
.catalog-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start}
.catalog-ficha[aria-label*="Remitente/Destinatario"] .catalog-ficha-body>.catalog-form-grid>.catalog-form-grid,.catalog-ficha[aria-label*="Remitente/Destinatario"] .catalog-ficha-body>.catalog-form-grid>.catalog-form-grid>h3{grid-column:1/-1}
.catalog-ficha [hidden]{display:none!important}.catalog-ficha-body>*+*{margin-top:12px}
.catalog-field{display:flex;flex-direction:column;gap:3px;font-size:12px;min-width:0}.catalog-field input,.catalog-field select,.catalog-field textarea{padding:7px;border:1px solid #aaa;min-width:0;width:100%;box-sizing:border-box}
.catalog-field input[readonly]{background:#eee;color:#555;cursor:default}
.catalog-field input[type="checkbox"]{width:auto;align-self:flex-start}.catalog-field textarea{min-height:90px}
.catalog-address{grid-column:1/-1;border:1px solid #ddd;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.catalog-address legend{font-weight:700}.catalog-address p{grid-column:1/-1}.catalog-address button{align-self:end}
.catalog-files{grid-column:1/-1}.catalog-file-row{padding:5px;border-bottom:1px solid #ddd}
.catalog-file-row span{flex:1}.catalog-upload{margin-top:12px}.catalog-contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px;border:1px solid #ddd}
.catalog-report{width:min(1100px,100%)}.catalog-import-errors{max-height:180px;overflow:auto}
.catalog-table tr.unit-expired{background:#ffe0de}.catalog-table tr.unit-soon{background:#fff2c8}
.catalog-table tr.selected-row.unit-expired,.catalog-table tr.selected-row.unit-soon{outline:2px solid #d77c10;outline-offset:-2px}
.catalog-expiry-legend{margin:6px 0;font-size:.9em}.expiry-red{color:#be3027}.expiry-yellow{color:#c78500}
.catalog-table td.unit-expired{color:#b3241e;font-weight:700}.catalog-table td.unit-soon{color:#a86a00;font-weight:700}
.unit-satellite-check{color:#16803d;font-weight:700}
.catalog-workspace:has(.unit-document-rows) .catalog-table{min-width:900px}
.unit-ficha{width:min(1180px,100%)}.unit-ficha .catalog-ficha-header{position:static}
.operator-ficha{width:min(1180px,100%)}.operator-ficha .catalog-ficha-header{position:static}
.operator-ficha .catalog-ficha-header>.catalog-form-grid,.operator-tab{grid-template-columns:repeat(4,minmax(0,1fr))}
.operator-photo{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-height:110px}
.operator-photo img{width:110px;height:110px;object-fit:cover;border:1px solid #ddd;border-radius:6px}
.operator-factor-tabs{grid-column:1/-1;display:flex;gap:8px}
.operator-factor-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid #ddd;padding:12px}
.operator-factor-grid[hidden]{display:none}
.operator-factor-grid legend{font-weight:600}
.unit-ficha .catalog-ficha-header>.catalog-form,.unit-ficha .unit-tab{grid-template-columns:repeat(4,minmax(0,1fr))}
.unit-ficha .catalog-tabs{position:sticky;top:0;z-index:2;background:#fff}
.unit-ficha .unit-conversions,.unit-ficha .unit-document-rows,.unit-ficha .catalog-table-wrap,.unit-ficha .catalog-files{grid-column:1/-1}
.unit-document-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;margin:6px 0;padding:6px;border:1px solid #ddd}
.unit-document-row button{align-self:end}.unit-conversions{display:flex;gap:8px;flex-wrap:wrap;background:#f5f5f5;padding:8px}
.unit-conversions .catalog-field{min-width:145px}.catalog-import-preview{max-height:240px;overflow:auto}
@media(max-width:900px){.unit-ficha .catalog-ficha-header>.catalog-form,.unit-ficha .unit-tab{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.operator-ficha .catalog-ficha-header>.catalog-form-grid,.operator-tab{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.unit-ficha .catalog-ficha-header>.catalog-form,.unit-ficha .unit-tab,.unit-document-row{grid-template-columns:1fr}}
@media(max-width:600px){.operator-ficha .catalog-ficha-header>.catalog-form-grid,.operator-tab{grid-template-columns:1fr}}
@media(max-width:600px){.operator-factor-grid{grid-template-columns:1fr}}
@media(max-width:700px){.catalog-form-grid,.catalog-address,.catalog-contact{grid-template-columns:1fr}}
@media print{body:has(>.catalog-overlay)>*:not(.catalog-overlay){display:none!important}.catalog-overlay{position:static;background:#fff;padding:0}.catalog-report{width:100%;border:0;box-shadow:none}.catalog-report .voucher-dialog-actions{display:none}}
.traffic-settings-page{max-width:1000px;margin:0 auto;border:1px solid #ddd;background:#fff}
.traffic-settings-page h2{margin:0;padding:9px;font-size:17px;font-weight:400;background:#eee}
.traffic-settings-page .settlement-tabs{margin:0;padding:5px 5px 0;background:#eee}
.traffic-settings-form{min-height:280px;padding:15px;background:#f0c57e;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}
.traffic-settings-toggle{display:flex;gap:6px;align-items:flex-start;font-size:12px}.traffic-settings-toggle input{margin-top:1px}
.traffic-settings-form .settlement-field{max-width:400px}.traffic-settings-form>button,.traffic-settings-form>.voucher-form-error{grid-column:1/-1;justify-self:start}
.traffic-settings-page>.expense-note{margin:0;border:0}
.traffic-parameter{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;background:#fff8eb;border:1px solid #d9ba86;font-size:12px}
.traffic-parameter-label{display:flex;align-items:center;gap:8px;justify-content:space-between}
.traffic-parameter-label input:not([type=checkbox]),.traffic-parameter-label select{width:min(100%,240px);min-height:28px}
.traffic-parameter-application{color:#66543b;font-size:11px}
.traffic-parameter:has(.traffic-parameter-table){grid-column:1/-1;overflow-x:auto}
.traffic-parameter-table{width:100%;border-collapse:collapse;background:#fff}
.traffic-parameter-table th,.traffic-parameter-table td{border:1px solid #d8c5a4;padding:5px;text-align:left}
.traffic-parameter-table input{width:100%;min-width:110px;box-sizing:border-box}
.traffic-parameter-add{align-self:flex-start}
.traffic-settings-actions{grid-column:1/-1;display:flex;gap:8px}
.traffic-settings-form>.voucher-form-error{grid-column:1/-1}
.advance-toolbar{display:flex;flex-wrap:wrap;gap:3px;padding:5px 0;border-bottom:1px solid #ddd}.advance-toolbar button{font-size:11px;padding:5px 9px}.advance-toolbar button:disabled{opacity:.55;cursor:default}
.advance-menu{position:relative}.advance-menu-items{position:absolute;top:100%;left:0;z-index:12;min-width:155px;background:#fff;border:1px solid #bbb;box-shadow:0 4px 9px #0005}.advance-menu-items[hidden]{display:none}.advance-menu-items .voucher-button{display:block;width:100%;text-align:left;white-space:nowrap}
.advance-table{min-width:2200px}.advance-dialog{width:min(810px,100%);max-height:90vh;overflow:auto;margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;color:#444}
.advance-dialog h2{margin:0;padding:8px;font-size:16px;font-weight:400}.advance-form{padding:8px}.advance-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.advance-band{background:#b8b8b8;color:#555;text-align:center;font-size:12px;padding:5px;margin:10px 0 0;font-weight:400}
.advance-info{min-height:130px;overflow:auto;border:1px solid #ddd;padding:12px;font-size:11px;color:#555}.advance-info table{width:100%;border-collapse:collapse;margin:6px 0}.advance-info th,.advance-info td{padding:5px;border:1px solid #ddd}.advance-bank-info{white-space:pre-wrap}
.approval-table{min-width:2050px}
.discount-table-wrap{height:265px;overflow:auto;border:1px solid #ddd}.discount-table{min-width:1200px}
.discount-detail{min-height:180px;border:1px solid #ddd;margin-top:6px}.discount-detail h3{margin:0;padding:5px;background:#707070;color:#ffae29;font-size:14px;text-align:center}
.discount-detail table{width:100%;border-collapse:collapse;font-size:11px}.discount-detail th{background:#ccc;padding:5px;text-align:left}.discount-detail td{padding:5px;border-bottom:1px solid #eee}.discount-detail p{font-size:11px;color:#555;padding:8px;margin:0}
.discount-active-label{display:flex;align-items:center;gap:4px;font-size:11px}.discount-active-label input{height:auto}
.discount-dialog{width:min(780px,100%);margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;color:#444}
.discount-dialog h2{margin:0;padding:8px;font-size:16px;font-weight:400}.discount-form{padding:8px}
.discount-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px}
@media(max-width:1100px){.traffic-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.traffic-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-settings-form{grid-template-columns:1fr}.advance-form-grid,.discount-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.expense-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:900px){.settlement-form-top{grid-template-columns:repeat(2,minmax(0,1fr))}.settlement-calculation{grid-template-columns:1fr}.settlement-dialog{max-height:calc(100vh - 40px);overflow:auto}}

@media(max-width:1260px){.trip-filters{grid-template-columns:repeat(5,minmax(110px,1fr));row-gap:4px}.trip-grid-scroll{height:350px}}
@media(max-width:800px){body{display:block}.sidebar{width:100%;min-height:0}.sidebar-toggle{display:none}.brand{height:58px;flex-basis:58px}.side-search{display:none}#nav{display:flex;overflow-x:auto;padding:3px}.menu-group{flex:0 0 auto}.module-button{min-height:38px;white-space:nowrap}.menu-children{position:absolute;z-index:2;min-width:180px;box-shadow:0 5px 10px #0003}.sidebar-note{display:none}.site-header{height:65px;padding:6px 12px}.header-label,.header-tools{display:none}.user-card{height:50px;width:auto;margin-left:auto;border-radius:7px}.user-avatar{width:30px;height:30px;flex-basis:30px;font-size:11px}.user-card strong{font-size:11px}.user-card small{font-size:9px}.quickbar{height:40px}main{padding:8px}.topbar{height:auto;min-height:30px}.mode{font-size:9px}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.trip-filters{grid-template-columns:repeat(2,minmax(125px,1fr))}.trip-lower{grid-template-columns:1fr}.trip-list-footer{font-size:10px}}

/* Acceso local */
body.access-mode .sidebar,body.access-mode .workspace{display:none}
.access-screen{display:none}
body.access-mode .access-screen{display:flex;flex:1;min-height:100vh;align-items:center;justify-content:center;background:#ececec;padding:20px;box-sizing:border-box}
.access-card{width:min(380px,100%);box-sizing:border-box;background:#fff;border:1px solid #ccc;padding:25px;box-shadow:0 8px 24px #0002}
.access-card>img{display:block;max-width:190px;max-height:90px;margin:0 auto 20px}
.access-card h1{font-size:20px;color:#444;margin:0 0 20px;text-align:center}
.access-card label{display:block;font-size:13px;color:#444;margin:12px 0}
.access-card input{display:block;box-sizing:border-box;width:100%;padding:9px;margin-top:5px;border:1px solid #aaa;border-radius:3px}
.access-card button{padding:9px 18px;margin:10px 6px 0 0;background:#e99420;color:#222;border:0;border-radius:3px;cursor:pointer}
.access-card button:disabled{opacity:.6;cursor:default}
.access-error{min-height:1em;color:#9d1f1f;font-size:12px}

/* Administración de usuarios y roles */
.admin-page{background:#fff;border:1px solid #ddd;padding:12px;min-height:240px;overflow:auto}
.admin-toolbar{display:flex;align-items:end;gap:10px;margin-bottom:12px;min-height:31px}
.admin-toolbar .voucher-button{margin-left:auto}
.admin-table,.admin-matrix{border-collapse:collapse;width:100%;font-size:12px}
.admin-table th,.admin-matrix th{background:#d2d2d2;text-align:left;padding:7px;border:1px solid #ddd}
.admin-table td,.admin-matrix td{padding:7px;border:1px solid #e5e5e5}
.admin-table tbody tr:nth-child(even),.admin-matrix tr:nth-child(even){background:#f7f7f7}
.admin-actions{display:flex;flex-wrap:wrap;gap:5px}
.admin-actions button,.admin-secret button{cursor:pointer;padding:5px 8px;border:1px solid #aaa;background:#eee;color:#333}
.admin-actions .voucher-button{background:#696969;color:#ffae29;border:0}
.admin-backdrop{position:fixed;inset:0;z-index:30;background:#0009;overflow-y:auto;padding:30px 12px}
.admin-dialog{width:min(580px,100%);box-sizing:border-box;margin:0 auto;background:#fff;border:1px solid #777;box-shadow:0 5px 24px #0005;padding:14px;color:#444}
.admin-role-dialog{width:min(800px,100%)}
.admin-dialog h2{font-size:17px;margin:0 0 12px}
.admin-form{display:grid;gap:10px}
.admin-field{display:grid;gap:4px;font-size:12px}
.admin-field input,.admin-field select{box-sizing:border-box;width:100%;height:29px;border:1px solid #bbb;background:#fff;padding:4px}
.admin-role-options{border:1px solid #ddd;display:flex;flex-wrap:wrap;gap:10px;font-size:12px}
.admin-role-options label{display:flex;align-items:center;gap:4px}
.admin-matrix-wrap{max-height:55vh;overflow:auto;border:1px solid #ddd}
.admin-matrix th,.admin-matrix td{text-align:center;padding:5px}
.admin-matrix th:first-child{text-align:left;min-width:140px}
.admin-matrix input{cursor:pointer}
.admin-matrix input:disabled{cursor:default}
.admin-error:not(:empty){color:#9d1f1f;background:#fff0ef;padding:6px}
.admin-secret{display:flex;align-items:center;gap:10px;background:#fff2d9;border:1px solid #dab778;padding:12px;margin:12px 0;flex-wrap:wrap}
.admin-secret strong{font-size:18px;letter-spacing:1px;user-select:all}
.admin-warning{font-size:12px;color:#6f4a1b}
.route-dialog{width:min(1200px,96vw);max-width:96vw;max-height:94vh;overflow:auto}
.route-dialog .grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.route-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0;border-bottom:1px solid #d9dfe6;padding-bottom:.5rem}
.route-tabs button.active{background:#e97322;color:#fff}
.route-tab-body{min-height:140px;overflow-x:auto}
.route-inline{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end;margin:.8rem 0}
.route-inline .field{min-width:145px;flex:1}
.route-contact-list{display:inline-flex;vertical-align:top;flex-direction:column;gap:.3rem;min-width:260px;margin:.5rem;padding:.7rem;border:1px solid #d9dfe6}
.route-subdialog{z-index:1200}
.route-subdialog .catalog-dialog{width:min(1100px,96vw);max-height:94vh;overflow:auto}
.route-values{display:grid;gap:.7rem;margin:.7rem 0}
.route-values fieldset,.route-extra{border:1px solid #d9dfe6;padding:.7rem}
.route-leg-panel[hidden]{display:none}
.route-print{position:fixed;inset:1rem;background:#fff;z-index:2000;overflow:auto;padding:1rem}
@media print{body:has(>.route-print)>*:not(.route-print){display:none!important}.route-print{position:static;inset:auto}.route-print button,.catalog-report>button{display:none}}

/* Monitoreo local y vista de aeropuerto */
.monitor-page{background:#fff;padding:12px;color:#333}.monitor-bar,.monitor-footer{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.monitor-field{display:flex;align-items:center;gap:5px;font-size:12px}.monitor-field input{padding:5px;border:1px solid #bbb}
.monitor-button{background:#f1f1f1;border:1px solid #aaa;padding:6px 10px;cursor:pointer;color:#333}.monitor-button:disabled{opacity:.45;cursor:default}
.monitor-panel-host{position:relative}.monitor-panel{position:absolute;z-index:8;left:0;top:100%;width:260px;max-height:350px;overflow:auto;background:#fff;border:1px solid #bbb;box-shadow:0 5px 15px #0003;padding:10px;display:grid;gap:5px}
.monitor-choice{display:flex;gap:7px;align-items:center;font-size:12px}.monitor-choice small{color:#777}.monitor-scroll{overflow:auto;max-height:66vh}
.monitor-table{border-collapse:collapse;min-width:1900px;font-size:12px}.monitor-table th,.monitor-table td{border:1px solid #ddd;padding:7px;vertical-align:top;white-space:nowrap}
.monitor-table th{background:#e5e5e5;position:sticky;top:0;z-index:1}.monitor-sort{border:0;background:transparent;cursor:pointer;text-align:left;font-weight:bold}
.monitor-table tr:nth-child(even){background:#f5f5f5}.monitor-time.on-time{background:#e0f3df}.monitor-time.late{background:#ffd4d0}.monitor-time.none{background:#eeeeee;color:#777}
.monitor-chip{display:inline-block;padding:3px 7px;border-radius:3px;background:#e6e6e6;color:#222;font-weight:bold;white-space:nowrap}.monitor-chip.late{background:#c93e3e;color:#fff}.monitor-chip.on-time{background:#48a864;color:#fff}.monitor-chip.no-gps{background:#aaa;color:#fff}
.monitor-unit-link{border:0;background:transparent;padding:0;color:#1262a2;text-decoration:underline;cursor:pointer;font:inherit}.monitor-unit-link:disabled{color:#555;cursor:default;text-decoration:none}
.monitor-empty{text-align:center;padding:25px!important}.monitor-footer{justify-content:flex-end;font-size:12px}
.airport-page{position:fixed;inset:0;z-index:25;background:#fff;overflow:auto;padding:12px;box-sizing:border-box;color:#222;font-size:17px}
.airport-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:#eef0f2}.airport-header h2{margin:0 18px 0 0;font-size:24px}.airport-header time{margin-left:auto;font-weight:bold}
.airport-control{display:inline-flex;align-items:center;gap:5px;font-size:14px}.airport-control input[type=number]{width:58px;padding:5px;border:1px solid #aaa}
.airport-table{border-collapse:collapse;width:100%;margin-top:10px}.airport-table th,.airport-table td{padding:10px;border-bottom:1px solid #ddd;text-align:left;vertical-align:middle}
.airport-table th{background:#dbe0e5;font-size:16px}.airport-table td{font-size:18px}.airport-table tr:not(:first-child){height:108px}.airport-table tbody tr:nth-child(even),.airport-table tr:nth-child(odd):not(:first-child){background:#f2f2f2}
.airport-table tr:nth-child(even){background:#fff}.airport-unit,.airport-unit .monitor-unit-link{font-weight:bold}.airport-table .monitor-chip{font-size:14px;font-weight:bold}.airport-chips{display:grid;gap:3px}.airport-gps{color:#777}.airport-origin{background:#ffe3cc}
.gps-indicator {display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.gps-indicator.green .gps-dot {color:#16834a}
.gps-indicator.red .gps-dot {color:#c53030}
.gps-indicator.gray .gps-dot {color:#808891}
.gps-token {display:block;overflow-wrap:anywhere;padding:1rem;margin:.75rem 0;background:#f3f5f8;border-radius:.4rem}
.catalog-dialog:has(.gps-token) {max-width:34rem}
.catalog-dialog:has(.catalog-table) {max-width:min(90vw,1100px);max-height:85vh;overflow:auto}

/* Inventario de Equipo */
body.inventory-standalone .sidebar,body.inventory-standalone .site-header,
body.inventory-standalone .quickbar,body.inventory-standalone .topbar{display:none}
body.inventory-standalone .workspace{margin:0;width:100%;max-width:none}
body.inventory-standalone main{margin:0;padding:0;max-width:none}
.inventory-page{position:relative;background:#fff;color:#27313b;min-height:100vh;padding:12px;box-sizing:border-box}
.inventory-page h2{font-size:20px;margin:3px 0 12px}.inventory-bar,.inventory-filters,.inventory-footer,.inventory-actions{display:flex;align-items:end;flex-wrap:wrap;gap:7px;margin:8px 0}
.inventory-button{padding:6px 10px;border:1px solid #abb5bf;background:#f2f4f6;border-radius:3px;cursor:pointer;color:#20354a}
.inventory-button:disabled{opacity:.45;cursor:default}.inventory-field{display:flex;flex-direction:column;gap:3px;font-size:12px;min-width:110px}
.inventory-field input,.inventory-field select,.inventory-field textarea{padding:6px;border:1px solid #aeb8c1;border-radius:3px;max-width:260px}
.inventory-field textarea{min-width:280px;min-height:70px}.inventory-check{display:flex;align-items:center;gap:4px;font-size:12px}
.inventory-type-box{position:relative}.inventory-types{position:absolute;z-index:8;top:100%;left:0;width:310px;max-height:290px;overflow:auto;background:#fff;border:1px solid #aeb8c1;box-shadow:0 4px 14px #0003;padding:8px;display:grid;gap:4px}
.inventory-scroll{overflow:auto;max-height:65vh;border:1px solid #d3d9df}.inventory-table{border-collapse:collapse;min-width:1550px;width:100%;font-size:12px}
.inventory-table th,.inventory-table td{padding:7px;border:1px solid #d5dce2;text-align:left;white-space:nowrap}.inventory-table th{background:#e8edf1;position:sticky;top:0;z-index:1}
.inventory-table tr.selected{background:#dfeffc}.inventory-table tr:nth-child(even):not(.selected){background:#f7f9fa}
.inventory-sort{border:0;background:transparent;font:inherit;font-weight:bold;cursor:pointer;white-space:nowrap}.inventory-chip{display:inline-block;border-radius:3px;padding:3px 7px;font-weight:bold}
.inventory-link{border:0;background:transparent;color:#1265a5;text-decoration:underline;cursor:pointer;padding:0;font:inherit}.inventory-location{color:#1265a5}
.inventory-observations{border:1px solid #d5dce2;padding:8px;min-height:55px}.inventory-observations h3{font-size:13px;margin:0 0 4px}.inventory-observations p{margin:0;font-size:12px}
.inventory-footer{justify-content:flex-end;font-size:12px}.inventory-footer .current{background:#305d83;color:#fff}
.inventory-dialog{position:fixed;z-index:35;top:5vh;left:50%;transform:translateX(-50%);width:min(980px,96vw);max-height:90vh;overflow:auto;background:#fff;border:1px solid #9eaab5;box-shadow:0 10px 35px #0005;padding:16px;box-sizing:border-box}
.inventory-dialog h2{font-size:18px}.inventory-form{display:grid;gap:8px}.inventory-dialog .inventory-scroll{max-height:65vh}
.inventory-print{font:12px Arial,sans-serif;color:#222;background:#fff;margin:18px}.inventory-print table{border-collapse:collapse;width:100%}.inventory-print th,.inventory-print td{border:1px solid #bbb;padding:5px;text-align:left}
@media print{body.inventory-standalone .inventory-page .inventory-bar,body.inventory-standalone .inventory-page .inventory-filters,body.inventory-standalone .inventory-page .inventory-footer{display:none}.inventory-scroll{max-height:none;overflow:visible}.inventory-table{min-width:0}}
.permit-utilities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:1rem 0}
.permit-selection{display:grid;grid-template-columns:1fr 2fr;gap:1rem;margin:1rem 0}
.permit-selection fieldset{max-height:18rem;overflow:auto}
.permit-selection label{display:flex;gap:.5rem;align-items:center;padding:.25rem}
@media(max-width:800px){.permit-utilities,.permit-selection{grid-template-columns:1fr}}
.settlement-missing-rate { background: #fff1ce; }
.sos-counter{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:1rem;
  background:#fff0e8;color:#9b2f18;font-weight:700;white-space:nowrap}
.sos-counter[hidden]{display:none}
/* Facturación interna */
.invoice-page{background:#fff;padding:12px;min-height:70vh}
.invoice-page h2{margin:4px 0 12px;font-size:20px}
.invoice-page .settlement-toolbar,.invoice-page .voucher-filters{display:flex;flex-wrap:wrap;gap:7px;align-items:end;margin:9px 0}
.invoice-page .voucher-table-wrap{max-height:55vh;overflow:auto;border:1px solid #d5dce2}
.invoice-page .voucher-table{min-width:1900px;font-size:12px}
.invoice-trip-panel{margin-top:18px;border-top:2px solid #d5dce2;padding-top:10px;overflow:auto}
.invoice-trip-panel .voucher-table{min-width:1550px}
.invoice-dialog{background:#fff;width:min(1250px,97vw);max-height:95vh;overflow:auto;padding:18px;box-sizing:border-box}
.invoice-action-dialog{width:min(520px,96vw);margin:8vh auto}.invoice-action-dialog .voucher-form{padding:14px}
.invoice-action-dialog .voucher-field{grid-template-columns:125px minmax(0,1fr);margin:8px 0}
.invoice-action-dialog .voucher-dialog-actions{margin-top:14px}
.invoice-action-dialog.invoice-utility-mass{width:min(900px,96vw);margin:2vh auto}
.invoice-utility-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px;align-items:center}
.invoice-utility-filters .voucher-button{justify-self:start}
.invoice-utility-mass .voucher-table-wrap{height:min(42vh,450px);min-height:180px}
@media(max-width:650px){.invoice-utility-filters{grid-template-columns:1fr}}
.invoice-form{display:grid;gap:10px}.invoice-header,.invoice-footer{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.invoice-header{padding:10px;background:#f4f7fa}.invoice-header .voucher-field{min-width:165px}
.invoice-header .voucher-field input,.invoice-header .voucher-field select{max-width:210px}
.invoice-credit{padding:8px;background:#e9f2fa;font-weight:700}.invoice-credit-warning{color:#8a341b;background:#fff1e5;padding:8px}
.invoice-trip-picker,.invoice-lines{border:1px solid #d5dce2;padding:10px;overflow:auto}
.invoice-trip-picker .voucher-table,.invoice-lines .voucher-table{min-width:1300px;font-size:12px}
.invoice-trip-picker h3{margin:0 0 8px}.invoice-trip-picker .voucher-filters,.invoice-lines .voucher-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.invoice-cp-trip{background:#fff4bd;text-decoration:underline}
.invoice-footer{border-top:1px solid #d5dce2;padding-top:9px}.invoice-footer p{margin:2px 5px;font-size:12px}
.accounting-equivalence-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;max-height:55vh;overflow:auto}
.accounting-equivalence-fields .voucher-field{display:grid;gap:3px}
.accounting-equivalence-primary{background:#fff1bd;border:2px solid #bf8212;border-radius:6px;padding:6px;font-weight:700}
@media(max-width:700px){.accounting-equivalence-fields{grid-template-columns:1fr 1fr}}
.maintenance-notice-red td { background: #fce3e3; color: #842525; }
.maintenance-notice-amber td { background: #fff0ce; color: #765100; }
