.contracts-only{display:none!important}.contracts-enabled .contracts-only{display:block!important}.contracts-enabled button.contracts-only{display:flex!important}.contracts-enabled .view.contracts-only:not(.active){display:none!important}
.contracts-manage-only,.contract-owner-only{display:none!important}.contracts-can-manage .contracts-manage-only{display:inline-flex!important}.contracts-can-grant .contract-owner-only{display:inline-flex!important}
.contracts-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;margin-bottom:14px}.contracts-toolbar h2,.contracts-toolbar p{margin:0}.contracts-toolbar p{margin-top:5px;color:var(--muted);font-size:13px}.contracts-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.contract-filter-panel{padding:16px;margin-bottom:14px}.contract-filters{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:end}.contract-filters>label,.contract-filter-field,.contract-catalog-form label,.contract-catalog-search label,.contract-permission-search-row label,.contract-items-tools label{display:grid;gap:5px;color:#486581;font-size:11px;font-weight:800}.contract-filters input,.contract-filters select{box-sizing:border-box;width:100%;height:38px}.contract-search{grid-column:span 4}.contract-filter-field{grid-column:span 2;min-width:0}.contract-filter-field>span{min-height:13px}.contract-status-filter{grid-column:span 2}.contract-filter-range{grid-column:span 3;display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0;margin:0;padding:0;border:0}.contract-value-range{grid-column:span 4}.contract-filter-range legend{display:block;width:100%;margin:0 0 5px;padding:0;color:#486581;font-size:11px;font-weight:800}.contract-filter-range label{display:grid;gap:4px;min-width:0;color:#71808a;font-size:10px;font-weight:800}.contract-multi-filter{position:relative;min-width:0}.contract-multi-filter summary{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;height:38px;padding:0 12px;border:1px solid #c9d6df;border-radius:8px;background:#fff;color:#1e2d37;font-size:12px;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-multi-filter summary::-webkit-details-marker{display:none}.contract-multi-filter summary::after{content:"⌄";margin-left:8px;color:#486581}.contract-multi-filter[open] summary{border-color:var(--blue);box-shadow:0 0 0 2px #2e718f20}.contract-multi-options{box-sizing:border-box;position:absolute;z-index:30;top:43px;left:0;width:min(310px,calc(100vw - 36px));max-height:285px;overflow-x:hidden;overflow-y:auto;padding:8px;border:1px solid #d9e2e8;border-radius:9px;background:#fff;box-shadow:0 12px 30px #17233226}.contract-multi-options label{box-sizing:border-box;display:flex!important;align-items:flex-start;gap:9px;width:100%;max-width:100%;min-height:36px;padding:8px 9px;border-radius:6px;color:#243641;font-size:12px;font-weight:700;line-height:1.3;white-space:normal;overflow-wrap:anywhere;cursor:pointer}.contract-multi-options label:hover{background:#eef4f7}.contract-multi-options input{width:16px!important;height:16px!important;min-width:16px;flex:0 0 16px;margin-top:0}.contract-filter-empty{margin:8px;color:var(--muted);font-size:12px}.contract-filter-footer{display:flex;align-items:center;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.contract-filter-footer strong{margin-left:auto;color:var(--blue)}
.contracts-grid-wrap{max-height:calc(100vh - 390px);min-height:320px}.contracts-grid{min-width:1780px}.contracts-grid th:first-child,.contracts-grid td:first-child{position:sticky;left:0;z-index:2;background:#fff}.contracts-grid th:first-child{background:#fafbfc}.contract-row-deleted{opacity:.62}.contract-actions-cell{display:flex;gap:5px;white-space:nowrap}.contract-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}.contract-status.active{background:#dff3eb;color:#176b55}.contract-status.draft{background:#e9eef2;color:#52616b}.contract-status.suspended{background:#fff0d8;color:#946018}.contract-status.ended{background:#e5edf5;color:#345a7b}.contract-status.terminated{background:#fae5e5;color:#a13e3e}.contract-object{min-width:230px;white-space:normal}.contract-expiring{color:#b35e12;font-weight:800}
.contract-dialog{width:min(1220px,calc(100vw - 28px));height:min(92vh,840px);max-width:none;overflow:hidden}.contract-dialog>form{height:100%;max-height:none;overflow:hidden;padding:0;display:grid;grid-template-rows:auto auto minmax(150px,1fr) auto auto}.contract-dialog .modal-head,.contract-catalogs-dialog .modal-head,.contract-permissions-dialog .modal-head{padding:14px 18px;border-bottom:1px solid var(--line)}.contract-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px;padding:12px 18px}.contract-main-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:0}.contract-main-fields label{gap:4px}.contract-main-fields input,.contract-main-fields select{height:36px}.contract-main-fields textarea{min-height:46px;resize:vertical}.contract-summary{align-self:stretch;border:1px solid #c8d9e8;border-radius:10px;overflow:hidden;background:#f7fbff}.contract-summary h3{margin:0;padding:9px 12px;background:#dceafa;color:#224d73;font-size:13px}.contract-summary dl{margin:0}.contract-summary dl>div{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-top:1px solid #dce6ef}.contract-summary dt{color:#52616b;font-size:11px}.contract-summary dd{margin:0;font-size:11px;font-weight:800;text-align:right}.contract-summary .contract-summary-net{background:#edf4ff;color:#1743bd}.contract-summary .contract-summary-net dt,.contract-summary .contract-summary-net dd{color:#1743bd;font-size:13px;font-weight:900}.contract-items-editor{min-height:0;margin:0 18px 10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.contract-items-head{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:9px 12px;background:#f8fafb;border-bottom:1px solid var(--line)}.contract-items-head h3,.contract-items-head p{margin:0}.contract-items-head p{margin-top:2px;color:var(--muted);font-size:11px}.contract-items-tools{display:flex;align-items:end;gap:9px}.contract-items-tools label{min-width:260px}.contract-items-tools input{height:36px}.contract-items-tools small{padding-bottom:10px;color:var(--muted);white-space:nowrap}.contract-items-tools button{height:36px;white-space:nowrap}.contract-items-editor .table-wrap{min-height:0;max-height:none;overflow:auto}.contract-items-editor table{min-width:980px}.contract-dialog form>.form-error{margin:0 18px;min-height:16px}.contract-dialog .modal-actions{margin:0;padding:10px 18px;border-top:1px solid var(--line)}.contract-item-dialog{width:min(720px,calc(100vw - 28px))}
.contract-catalogs-dialog{width:min(1040px,calc(100vw - 28px));height:min(82vh,690px);max-width:none;overflow:hidden}.contract-catalogs-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto}.contract-catalog-tabs{display:flex;gap:5px;padding:8px 14px;background:#eef2f4}.contract-catalog-tabs button{border:0;border-radius:8px;padding:8px 13px;background:transparent;color:#60707a;font-weight:800;cursor:pointer}.contract-catalog-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 1px 5px #17233218}.contract-catalog-panel{display:none;min-height:0;padding:11px 14px 7px}.contract-catalog-panel.active{display:grid;grid-template-rows:auto auto minmax(0,1fr)}.contract-catalog-form{display:grid;gap:8px;align-items:end;padding:10px;border:1px solid #dce5ea;border-radius:9px;background:#f7f9fa}.contract-catalog-form label,.contract-catalog-form .catalog-field-main,.contract-catalog-form .catalog-field-contact{grid-column:auto;min-width:0}.contract-catalog-form input,.contract-catalog-form select{box-sizing:border-box;width:100%;height:34px}.contract-catalog-form-actions{grid-column:auto;display:flex;justify-content:flex-end;gap:6px;padding:0}.contract-catalog-form-actions button{height:34px;padding-inline:13px;white-space:nowrap}.contract-catalog-cancel[hidden]{display:none!important}#contract-entity-form{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr) minmax(90px,.65fr) auto}#contract-company-form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.95fr) minmax(0,1.15fr) minmax(90px,.68fr) auto}#contract-product-form{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(90px,.7fr) auto}.contract-catalog-search{display:flex;align-items:end;gap:10px;padding:8px 1px 7px}.contract-catalog-search label{width:min(460px,100%)}.contract-catalog-search input,.contract-permission-search-row input{height:34px;width:100%}.contract-catalog-search small,.contract-permission-search-row small{padding-bottom:8px;color:var(--muted);white-space:nowrap}.contract-catalog-panel .table-wrap{min-height:0;max-height:none;overflow:auto;border:1px solid #e2e8ec;border-radius:8px}.contract-catalogs-dialog>.form-error{margin:0 14px}.contract-catalogs-dialog>.modal-actions{margin:0;padding:8px 14px;border-top:1px solid var(--line)}
.contract-permissions-dialog{width:min(880px,calc(100vw - 28px));height:min(76vh,640px);overflow:hidden}.contract-permissions-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto}.contract-permissions-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);align-items:end;gap:18px;padding:12px 18px}.contract-permissions-toolbar .helper{margin:0;color:var(--muted);line-height:1.45}.contract-permission-search-row{display:flex;align-items:end;gap:10px}.contract-permission-search-row label{flex:1}.contract-permissions-dialog .table-wrap{min-height:0;max-height:none;overflow:auto;margin:0 18px;border:1px solid #e2e8ec;border-radius:8px}.contract-permissions-dialog table{min-width:690px}.contract-permissions-dialog td:first-child small{display:block;margin-top:3px;color:var(--muted)}.contract-permissions-dialog>.form-error{margin:6px 18px}.contract-permissions-dialog>.modal-actions{margin:0;padding:10px 18px;border-top:1px solid var(--line)}.contract-permission-select{min-width:190px}.contract-permanent-access{color:var(--green);font-size:11px;font-weight:800;white-space:nowrap}
.contract-dialog>form{position:relative}.contract-item-panel{position:absolute;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:#102b3a99}.contract-item-panel[hidden]{display:none!important}.contract-item-card{box-sizing:border-box;width:min(720px,100%);max-height:100%;overflow:auto;border-radius:12px;background:#fff;box-shadow:0 18px 50px #102b3a55}.contract-item-card>.modal-head{padding:14px 18px}.contract-item-card>.fields{padding:18px}.contract-item-card>.form-error{min-height:17px;margin:0 18px}.contract-item-card>.modal-actions{margin:0;padding:12px 18px;border-top:1px solid var(--line)}
.contract-catalog-form-actions{grid-column:1/-1;min-width:0}.contract-catalog-form-actions button{max-width:100%}#contract-entity-form{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr) minmax(90px,.65fr)}#contract-company-form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.95fr) minmax(0,1.15fr) minmax(90px,.68fr)}#contract-product-form{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(90px,.7fr)}
@media(max-width:1100px){.contract-editor-layout{grid-template-columns:minmax(0,1fr) 260px}.contract-main-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px) and (min-width:901px){#contract-entity-form{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr) minmax(90px,.65fr)}#contract-company-form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.95fr) minmax(0,1.15fr) minmax(90px,.68fr)}#contract-product-form{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(90px,.7fr)}.contract-catalog-form-actions{grid-column:1/-1}.contract-catalog-form-actions button{height:32px}}
@media(max-width:900px) and (min-width:701px){#contract-entity-form,#contract-company-form,#contract-product-form{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-catalog-form-actions{grid-column:1/-1}.contract-catalog-form-actions button{height:34px}}
@media(max-width:700px){.contracts-toolbar{align-items:stretch;flex-direction:column}.contracts-actions{justify-content:flex-start}.contracts-actions button{min-height:42px}.contract-filters{grid-template-columns:1fr 1fr}.contract-search,.contract-filter-range{grid-column:1/-1}.contract-filter-field,.contract-status-filter{grid-column:span 1}.contract-multi-options{position:fixed;top:auto;left:10px;right:10px;bottom:12px;width:auto;max-height:50vh}.contract-filter-footer{align-items:flex-start;flex-wrap:wrap}.contract-filter-footer strong{width:100%;margin:0}.contracts-grid-wrap{max-height:55vh}.contract-dialog,.contract-catalogs-dialog,.contract-permissions-dialog{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:none}.contract-dialog>form{display:block;height:100%;overflow:auto}.contract-dialog .modal-head{position:sticky;top:0;z-index:5;background:#fff}.contract-editor-layout{grid-template-columns:1fr;padding:10px}.contract-main-fields{grid-template-columns:1fr}.contract-summary{order:-1}.contract-items-editor{min-height:300px;margin:0 10px 10px}.contract-items-head{align-items:stretch;flex-direction:column}.contract-items-tools{align-items:stretch;display:grid;grid-template-columns:1fr auto}.contract-items-tools label{grid-column:1/-1;min-width:0}.contract-items-tools small{align-self:center;padding:0}.contract-items-tools button{min-height:42px}.contract-items-editor .table-wrap{max-height:42vh}.contract-dialog .modal-actions{position:sticky;bottom:0;background:#fff}.contract-catalog-tabs{overflow-x:auto;padding:8px 10px}.contract-catalog-tabs button{white-space:nowrap;min-height:42px}.contract-catalog-panel{padding:10px;overflow:auto}.contract-catalog-panel.active{display:block}.contract-catalog-form{grid-template-columns:1fr;padding:10px}.contract-catalog-form label,.contract-catalog-form .catalog-field-main,.contract-catalog-form .catalog-field-contact{grid-column:1}.contract-catalog-form-actions{grid-column:1;display:grid;grid-template-columns:1fr 1fr}.contract-catalog-form-actions button:only-child{grid-column:1/-1}.contract-catalog-search{align-items:stretch;flex-direction:column;gap:4px}.contract-catalog-search small{padding:0}.contract-catalog-panel .table-wrap{max-height:42vh;margin-top:4px}.contract-catalog-panel table{min-width:680px}.contract-catalogs-dialog>.modal-actions{background:#fff}.contract-permissions-toolbar{grid-template-columns:1fr;padding:10px}.contract-permission-search-row{align-items:stretch;flex-direction:column;gap:4px}.contract-permission-search-row small{padding:0}.contract-permissions-dialog .table-wrap{margin:0 10px}.contract-permissions-dialog>.modal-actions{background:#fff}.contract-item-dialog{width:calc(100vw - 12px);max-height:calc(100vh - 12px);overflow:auto}.contract-item-dialog form{padding:16px}.contract-item-dialog .fields{grid-template-columns:1fr}.contract-item-dialog .wide{grid-column:auto}}
@media(max-width:430px){.contract-filters{grid-template-columns:1fr}.contract-search,.contract-filter-field,.contract-status-filter,.contract-filter-range{grid-column:1}.contract-filter-range{grid-template-columns:1fr}.contract-catalog-form-actions{grid-template-columns:1fr}.contract-catalog-form-actions button{grid-column:1}.contract-items-tools{grid-template-columns:1fr}.contract-items-tools label,.contract-items-tools button{grid-column:1}}
@media(max-width:700px){.contract-item-panel{align-items:stretch;padding:6px}.contract-item-card{width:100%;height:100%;border-radius:10px}.contract-item-card>.fields{grid-template-columns:1fr;padding:12px}.contract-item-card .wide{grid-column:1}.contract-item-card>.modal-actions{position:sticky;bottom:0;background:#fff}}

/* Densidade do modulo Contratos: desktop de referencia 1366x768 com zoom em 90%. */
.contract-filters input,.contract-filters select,.contract-main-fields input,.contract-main-fields select,.contract-main-fields textarea,.contract-items-tools input,.contract-catalog-form input,.contract-catalog-form select,.contract-catalog-search input,.contract-permission-search-row input,.contract-item-card input,.contract-item-card select{min-width:0;max-width:100%}
@media(min-width:701px){
  .contracts-toolbar{gap:12px;padding:11px 14px;margin-bottom:8px}.contracts-toolbar p{margin-top:2px;font-size:11px}.contracts-actions{gap:6px}.contracts-actions .primary,.contracts-actions .secondary{padding:8px 12px}
  .contract-filter-panel{padding:10px 12px;margin-bottom:8px}.contract-filters{column-gap:10px;row-gap:7px}.contract-filters>label,.contract-filter-field,.contract-filter-range label{gap:3px}.contract-filter-field>span{min-height:12px}.contract-filter-range legend{margin-bottom:3px}.contract-filters input,.contract-filters select,.contract-multi-filter summary{height:32px}.contract-filters input{padding:6px 8px}.contract-multi-filter summary{padding:0 9px}
  .contract-multi-options{top:35px;width:min(360px,calc(100vw - 28px));max-height:250px;padding:5px}.contract-multi-options label{align-items:center;min-height:30px;padding:6px 7px;line-height:1.25}.contract-multi-options input{margin:0}
  .contract-filter-footer{gap:10px;margin-top:8px;padding-top:8px}.contract-filter-footer .check-field{padding:2px 0}.contract-filter-footer .secondary{padding:7px 11px}
  .contracts-grid-wrap{height:calc(100vh - 305px);max-height:none;min-height:260px}.contracts-grid th,.contracts-grid td{padding:9px 12px}
  .contract-dialog{height:min(94vh,800px)}.contract-dialog .modal-head,.contract-catalogs-dialog .modal-head,.contract-permissions-dialog .modal-head{padding:9px 14px}.contract-dialog .modal-head h2,.contract-catalogs-dialog .modal-head h2,.contract-permissions-dialog .modal-head h2{font-size:16px}.contract-dialog .icon,.contract-catalogs-dialog .icon,.contract-permissions-dialog .icon{font-size:24px}
  .contract-editor-layout{grid-template-columns:minmax(0,1fr) 270px;gap:8px;padding:8px 14px}.contract-main-fields{gap:6px 8px}.contract-main-fields label{gap:2px}.contract-main-fields input,.contract-main-fields select{height:32px;padding:6px 8px}.contract-main-fields textarea{min-height:36px;padding:6px 8px}.contract-summary h3{padding:6px 9px;font-size:12px}.contract-summary dl>div{padding:5px 8px}.contract-summary dt,.contract-summary dd{font-size:10px}.contract-summary .contract-summary-net dt,.contract-summary .contract-summary-net dd{font-size:11px}
  .contract-items-editor{margin:0 14px 6px}.contract-items-head{gap:10px;padding:6px 9px}.contract-items-tools{gap:6px}.contract-items-tools label{min-width:235px;gap:2px}.contract-items-tools input,.contract-items-tools button{height:32px}.contract-items-tools input{padding:6px 8px}.contract-items-tools small{padding-bottom:8px}.contract-items-editor th,.contract-items-editor td{padding:8px 10px}.contract-dialog form>.form-error{margin:0 14px;min-height:14px}.contract-dialog .modal-actions{padding:7px 14px}.contract-dialog .modal-actions .primary,.contract-dialog .modal-actions .secondary{padding:8px 13px}
  .contract-catalogs-dialog{height:min(88vh,720px)}.contract-catalog-tabs{padding:5px 10px}.contract-catalog-tabs button{padding:7px 11px}.contract-catalog-panel{padding:7px 10px 5px}.contract-catalog-form{gap:6px;padding:7px}.contract-catalog-form label{gap:2px}.contract-catalog-form input,.contract-catalog-form select,.contract-catalog-form-actions button,.contract-catalog-search input,.contract-permission-search-row input{height:31px}.contract-catalog-form input,.contract-catalog-form select,.contract-catalog-search input,.contract-permission-search-row input{padding:6px 8px}.contract-catalog-form-actions{gap:5px}.contract-catalog-form-actions button{padding:6px 11px}.contract-catalog-search{gap:8px;padding:5px 1px}.contract-catalog-search label{gap:2px}.contract-catalog-search small,.contract-permission-search-row small{padding-bottom:7px}.contract-catalog-panel th,.contract-catalog-panel td{padding:9px 12px}.contract-catalogs-dialog>.modal-actions{padding:6px 10px}.contract-catalogs-dialog>.modal-actions .secondary{padding:8px 13px}
  .contract-permissions-dialog{height:min(82vh,680px)}.contract-permissions-toolbar{gap:14px;padding:8px 14px}.contract-permissions-dialog .table-wrap{margin:0 14px}.contract-permissions-dialog th,.contract-permissions-dialog td{padding:9px 12px}.contract-permissions-dialog>.form-error{margin:4px 14px}.contract-permissions-dialog>.modal-actions{padding:7px 14px}
  .contract-item-panel{padding:12px}.contract-item-card>.modal-head{padding:9px 14px}.contract-item-card>.fields{gap:8px;padding:12px 14px}.contract-item-card input,.contract-item-card select{height:32px;padding:6px 8px}.contract-item-card>.form-error{margin:0 14px}.contract-item-card>.modal-actions{padding:8px 14px}
}
@media(min-width:1200px){.contract-main-fields{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* No celular a prioridade e toque confortavel, leitura e ausencia de cortes. */
@media(max-width:700px){
  .contract-filter-panel{padding:10px;margin-bottom:10px}.contract-filters{gap:10px}.contract-filters>label,.contract-filter-field,.contract-filter-range label{gap:4px}.contract-filters input,.contract-filters select,.contract-multi-filter summary{height:42px}.contract-multi-filter summary{padding:0 11px}.contract-multi-options{padding:8px}.contract-multi-options label{align-items:center;min-height:42px;padding:9px}.contract-filter-footer{gap:8px;margin-top:10px;padding-top:10px}.contract-filter-footer .secondary{min-height:42px}.contracts-grid-wrap{max-height:52vh;min-height:280px}.contracts-grid th,.contracts-grid td{padding:10px 12px}
  #contract-entity-form,#contract-company-form,#contract-product-form{grid-template-columns:minmax(0,1fr)}
  .contract-main-fields{gap:10px}.contract-main-fields input,.contract-main-fields select,.contract-items-tools input,.contract-catalog-form input,.contract-catalog-form select,.contract-catalog-search input,.contract-permission-search-row input,.contract-item-card input,.contract-item-card select{height:42px}.contract-main-fields textarea{min-height:72px}.contract-items-head{padding:10px}.contract-catalog-form{gap:10px}.contract-catalog-form-actions button{min-height:42px}.contract-catalog-search{padding:10px 1px 7px}.contract-catalog-panel th,.contract-catalog-panel td{padding:10px 12px}.contract-item-card>.fields{gap:10px}
}
