.licitacoes-table-wrap{width:100%;margin-top:18px;box-sizing:border-box;display:flex;flex-direction:column}.licitacoes-table{width:100%;border-collapse:collapse;background:#fff;box-shadow:0 1px 2px #0000000a;height:100%}.licitacoes-table th,.licitacoes-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e6e6e6}.licitacoes-table th{background:#fafafa;font-weight:600;font-size:13px;position:sticky;top:0;z-index:2}.licitacoes-table thead th{box-shadow:inset 0 -1px #00000005}.licitacoes-table tbody tr:hover td{background:transparent}.licitacoes-table .title{max-width:420px}.licitacoes-table .value{white-space:nowrap}.empty{padding:18px;color:#666}.licitacoes-table-wrap.scrollable{flex:1;overflow:auto}.licitacoes-table-wrap.scrollable table{width:100%;border-spacing:0}.updating-banner{background:#fff3cd;color:#856404;padding:8px 12px;border:1px solid #ffeeba;border-radius:6px;margin:8px 12px;display:inline-flex;align-items:center}.updating-banner .spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(0,0,0,.08);border-top-color:#00000059;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.licitacoes-table tbody{display:table-row-group}.pagination-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.pagination-row{display:flex;justify-content:center;align-items:center;width:100%;padding:8px 0;position:relative}.pagination-left{position:absolute;left:0;display:flex;align-items:center}.pagination-meta{color:#444;font-size:13px}.pagination-controls-centered{margin:0 auto}.jump-form{display:flex;align-items:center;gap:6px}.jump-form input{width:90px;padding:6px 8px;border:1px solid #ddd;border-radius:6px}.row-clickable{cursor:pointer}.row-clickable:focus{outline:none;background:#f3f4f6}.details-row td{background:#f8fafc;padding:12px 16px;border-bottom:1px solid #e6e6e6}.details{display:flex;gap:12px;flex-wrap:wrap}.details .pre-wrap{white-space:pre-wrap;max-width:100%}.color-picker{position:relative;display:inline-block}.color-btn{width:28px;height:28px;padding:0;border:1px solid #ddd;border-radius:6px;cursor:pointer}.color-btn:focus{outline:none}.palette{position:absolute;right:0;top:36px;display:flex;gap:8px;padding:8px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 4px 12px #0000000f;border-radius:8px;z-index:30}.swatch{width:28px;height:28px;border-radius:6px;border:1px solid rgba(0,0,0,.08);padding:0;cursor:pointer}.swatch:focus{outline:2px solid #cbd5e1}.licitacoes-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.licitacoes-table th.sortable:hover{background:#f3f4f6}.licitacoes-table thead .filters-row th{background:#fafafa;position:sticky;top:39px;z-index:2;padding:6px 8px}.column-filter-input{width:100%;min-width:90px;padding:6px 8px;border:1px solid #ddd;border-radius:6px;font-size:12px;box-sizing:border-box}.column-filter-range{display:grid;grid-template-columns:1fr;gap:6px}.slider-cell .slider-value{font-size:12px;color:#333;display:flex;justify-content:space-between}.slider{width:100%;-webkit-appearance:none;height:6px;border-radius:4px;background:linear-gradient(90deg,#1976d2,#90caf9)}.slider:focus{outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #1976d2}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f7fb}.app{display:flex;align-items:stretch;justify-content:flex-start;min-height:100vh;flex-direction:column;gap:12px;padding:20px;box-sizing:border-box}.btn{padding:6px 10px;border-radius:6px;border:1px solid #ddd;background:#fff;cursor:pointer}.btn:hover{background:#f3f4f6}.btn[disabled]{opacity:.6;cursor:not-allowed}.btn-primary{padding:8px 14px;border-radius:10px;border:0;background:linear-gradient(180deg,#16a34a,#107c10);color:#fff;font-weight:600;box-shadow:0 8px 22px #107c1029;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px #107c102e}.btn-primary:active{transform:translateY(0);box-shadow:0 6px 16px #107c101f}.btn-secondary{padding:7px 12px;border-radius:10px;border:1px solid #e6e6e6;background:#fff;color:#333;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #0206170a;transition:background .12s ease,transform .1s ease}.btn-secondary:hover{background:#fafbfd;transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)}.content{width:100%;display:flex;flex:1}.table-area{flex:1;display:flex;justify-content:center;align-items:stretch}.table-area .licitacoes-table-wrap{width:100%}.pagination{display:flex;padding:10px 0;justify-content:center;width:100%}.pagination-controls{width:100%;max-width:1200px;display:flex;justify-content:center;gap:8px}.pagination .btn[disabled]{opacity:.5;cursor:not-allowed}.pagination.top{margin-bottom:8px}.pagination.bottom{margin-top:8px}.login{display:flex;align-items:center;justify-content:center;padding:40px 0}.login-card{width:420px;background:#fff;padding:24px;border-radius:12px;box-shadow:0 8px 30px #02061714}.login-title{margin:0 0 6px;font-size:20px}.login-sub{margin:0 0 16px;color:#666;font-size:13px}.login-form .field{margin-bottom:12px;display:flex;flex-direction:column}.login-form .label{font-size:12px;color:#444;margin-bottom:6px}.login-form input{padding:10px 12px;border-radius:8px;border:1px solid #e6e6e6;font-size:14px}.login-actions{display:flex;justify-content:flex-end;margin-top:8px}.login-error{color:#b00020;margin-top:6px;font-size:13px}.users-page{width:100%;display:flex;justify-content:center;padding:12px 0}.users-card{width:100%;max-width:1200px;background:#fff;border-radius:12px;box-shadow:0 8px 30px #02061714;padding:18px}.users-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #f0f0f0;padding-bottom:12px;margin-bottom:12px}.users-title{margin:0;font-size:20px}.users-sub{color:#666;font-size:13px;margin-top:4px}.users-error{color:#b00020;background:#fff5f5;border:1px solid #ffd1d1;padding:10px 12px;border-radius:10px;margin-bottom:12px}.users-grid{display:grid;grid-template-columns:360px 1fr;gap:12px}.users-panel{border:1px solid #eee;border-radius:12px;padding:12px}.users-panel-wide{grid-column:2 / 3;grid-row:1 / span 2}.users-panel-title{margin:0 0 10px;font-size:14px}.users-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.users-form{display:flex;flex-direction:column;gap:10px}.users-field{display:flex;flex-direction:column;gap:6px}.users-label{font-size:12px;color:#444}.users-card input{padding:10px 12px;border-radius:8px;border:1px solid #e6e6e6;font-size:14px}.users-check{display:flex;align-items:center;gap:8px;font-size:13px;color:#333}.users-actions{display:flex;gap:8px;justify-content:flex-end}.users-muted{color:#666;font-size:13px}.users-table-wrap{width:100%;overflow:auto}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:10px 12px;text-align:left;border-top:1px solid #f0f0f0;font-size:13px}.users-table th{background:#fafafa;position:sticky;top:0}.users-username{font-weight:600}.users-row-actions{display:flex;gap:8px}.users-empty{padding:16px;color:#666}@media (max-width: 980px){.users-grid{grid-template-columns:1fr}.users-panel-wide{grid-column:auto;grid-row:auto}}.pagination-inline{display:flex;justify-content:center;padding:8px 0}.bottom-inline{margin-top:8px}.search-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}.search-input{min-width:220px;padding:8px 10px;border-radius:8px;border:1px solid #e6e6e6;font-size:14px;background:#fff}.search-input:focus{outline:none;border-color:#1976d2}.search-check{display:flex;align-items:center;gap:6px;font-size:14px;color:#333}.hamburger{background:#fff;border:1px solid #e6e6e6;border-radius:8px;padding:8px 10px;margin-right:12px;cursor:pointer}.top-row{display:flex;align-items:center;gap:12px}.side-menu{position:fixed;left:-320px;top:0;bottom:0;width:320px;background:#fff;box-shadow:6px 0 24px #0206171f;transition:left .22s ease;z-index:1200;display:flex;flex-direction:column}.side-menu.open{left:0}.side-menu-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #f0f0f0}.top-controls{margin-top:8px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.control-group{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.export-btn{background:#107c10;border-color:#0e6d0f;color:#fff;font-weight:600}.export-btn:hover{background:#148b16}.export-btn:disabled{opacity:.6;cursor:not-allowed}.export-icon{margin-right:6px}.side-menu-title{font-weight:600}.close-btn{background:transparent;border:0;font-size:18px;cursor:pointer}.side-menu-body{padding:12px;display:flex;flex-direction:column;gap:8px;flex:1;overflow:auto}.menu-item{color:#333}.menu-action{background:#f6f7fb;border:1px solid #e6e6e6;padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}.menu-action svg{vertical-align:middle}.side-menu-footer{border-top:1px solid #f0f0f0;padding:12px;display:flex;flex-direction:column;gap:8px}.footer-user{display:flex;align-items:center}.logout-action{background:#d32f2f;color:#fff;border-color:#c62828;width:100%;display:flex;align-items:center;justify-content:center}.logout-action svg{filter:drop-shadow(0 1px 0 rgba(0,0,0,.04))}.side-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;pointer-events:none;transition:background .22s ease;z-index:1100}.side-overlay.visible{background:#00000052;pointer-events:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000005c;z-index:1300}.modal-card{background:#fff;padding:20px;border-radius:10px;min-width:320px;box-shadow:0 12px 40px #0206172e}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000005c;z-index:1300}.modal{background:#fff;padding:18px;border-radius:8px;min-width:360px;box-shadow:0 12px 40px #0206172e}.states-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.states-list{display:flex;gap:8px;flex-wrap:wrap}.states-special{display:flex;gap:8px}.state-btn{padding:6px 10px;border-radius:6px;border:1px solid #ccc;background:#fff;cursor:pointer}.state-btn.active{border:2px solid #1976d2;background:#e3f2fd}.state-btn:hover{background:#f3f6fb}
