.app-shell{min-height:100vh;display:flex;flex-direction:column}.connection-banner{background:var(--color-danger);color:#fff;text-align:center;padding:8px 16px;font-size:var(--font-size-sm);font-weight:600}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);background:linear-gradient(90deg,var(--color-primary-dark),var(--color-primary));color:#fff;position:sticky;top:0;z-index:50}.header-brand{display:flex;flex-direction:column;line-height:1.2}.header-brand strong{font-size:var(--font-size-base);letter-spacing:.04em}.header-brand span{font-size:var(--font-size-xs);opacity:.85}.header-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm)}.header-meta .btn-ghost{color:#fff}.conn-dot{width:10px;height:10px;border-radius:50%;background:#9e9e9e}.conn-dot.online{background:#a5d6a7;box-shadow:0 0 0 3px #a5d6a759}.conn-dot.offline{background:#ef9a9a}.app-body{display:flex;flex:1;min-height:0}.app-nav{width:var(--nav-width);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-3);display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-link{padding:10px 12px;border-radius:var(--radius-button);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600}.nav-link:hover{background:#f1f8f1;color:var(--color-primary-dark)}.nav-link.active{background:#e8f5e9;color:var(--color-primary-dark)}.app-main{flex:1;padding:var(--space-6);overflow:auto;background:radial-gradient(circle at top right,rgba(46,125,50,.06),transparent 40%),var(--color-bg)}.login-page{min-height:100vh;display:grid;place-items:center;padding:var(--space-4);background:linear-gradient(160deg,#1b5e20,#2e7d32 45%,#f5f7f5 45%)}.login-card{width:100%;max-width:400px;background:var(--color-surface);border-radius:12px;padding:var(--space-8);box-shadow:0 12px 40px #00000026;display:flex;flex-direction:column;gap:var(--space-4)}.login-brand{text-align:center}.login-logo{display:inline-block;background:var(--color-primary);color:#fff;font-weight:800;letter-spacing:.12em;padding:4px 10px;border-radius:4px;font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.login-brand h1{font-size:36px;color:var(--color-primary-dark)}.login-brand p{color:var(--color-text-secondary);margin:var(--space-2) 0 0;font-size:var(--font-size-sm)}.login-btn{width:100%;padding:12px;font-size:var(--font-size-base)}.login-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center;margin:0}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);overflow-x:auto}.tab{padding:10px 14px;border:none;background:transparent;cursor:pointer;color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-sm);border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.expandable{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);margin-bottom:var(--space-3)}.expandable-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);cursor:pointer;width:100%;background:transparent;border:none;text-align:left}.expandable-body{border-top:1px solid var(--color-border);padding:var(--space-3)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-cell{aspect-ratio:1;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:var(--font-size-sm)}.calendar-cell.letivo{background:#e8f5e9;border-color:var(--color-primary-light)}.calendar-cell.feriado{background:#ffebee;border-color:#ef9a9a}.calendar-cell.empty{background:transparent;border:none;cursor:default}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;text-align:center;font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:600}.menu-grade{display:grid;grid-template-columns:120px repeat(5,1fr);gap:4px}.menu-cell{min-height:72px;padding:6px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);font-size:var(--font-size-xs);resize:vertical;width:100%}.menu-label{font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);display:flex;align-items:center}@media(max-width:900px){.app-body{flex-direction:column}.app-nav{width:100%;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--color-border)}.nav-link{white-space:nowrap}.header-date,.header-user{display:none}.app-main{padding:var(--space-4)}.menu-grade{grid-template-columns:1fr}}:root{--color-primary: #2e7d32;--color-primary-dark: #1b5e20;--color-primary-light: #81c784;--color-bg: #f5f7f5;--color-surface: #ffffff;--color-border: #e0e0e0;--color-text-primary: #1a1a1a;--color-text-secondary: #5f6368;--color-success: #2e7d32;--color-warning: #f9a825;--color-critical: #fb8c00;--color-danger: #d32f2f;--color-neutral: #757575;--color-info: #1565c0;--font-family: "Source Sans 3", "Segoe UI", system-ui, sans-serif;--font-display: "Source Sans 3", "Segoe UI", system-ui, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 20px;--font-size-xl: 28px;--line-height-base: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-card: 8px;--radius-button: 6px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .08);--header-height: 56px;--nav-width: 220px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 16px;border:none;border-radius:var(--radius-button);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:background .15s ease,opacity .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:#f0f0f0}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.badge-ok{background:#e8f5e9;color:var(--color-success)}.badge-atencao{background:#fff8e1;color:var(--color-warning)}.badge-critico{background:#fff3e0;color:var(--color-critical)}.badge-excedido,.badge-danger{background:#ffebee;color:var(--color-danger)}.badge-zerado,.badge-neutral{background:#f5f5f5;color:var(--color-neutral)}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid var(--color-border);padding:var(--space-4)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-4);box-shadow:var(--shadow-card)}.kpi-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2)}.kpi-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary-dark)}.kpi-sub{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);max-width:100%}table.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);table-layout:auto}table.data-table thead th{position:sticky;top:0;background:#eef5ee;text-align:left;padding:10px 12px;border-bottom:1px solid var(--color-border);z-index:1;white-space:nowrap;vertical-align:middle}table.data-table tbody td{padding:8px 12px;border-bottom:1px solid #f0f0f0;vertical-align:middle}table.data-table tfoot td{padding:10px 12px;border-top:2px solid var(--color-border);background:#f5f9f5;font-weight:600;vertical-align:middle}table.data-table .col-name{min-width:160px;max-width:280px}table.data-table td.col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.data-table .col-text{min-width:100px;max-width:220px}table.data-table td.col-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.data-table .col-compact{width:1%;white-space:nowrap}table.data-table .col-num,table.data-table .col-currency{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:1%}table.data-table .col-num{min-width:76px}table.data-table .col-currency{min-width:100px}table.data-table .col-date{white-space:nowrap;width:1%;min-width:108px}table.data-table .col-status{white-space:nowrap;width:1%;min-width:96px}table.data-table .col-actions{width:1%;white-space:nowrap;text-align:center}table.data-table tbody tr:nth-child(2n){background:#fafafa}table.data-table tbody tr:hover{background:#f1f8f1}table.data-table th.sortable-th{cursor:pointer;user-select:none}table.data-table th.sortable-th:hover{background:#e3efe3}.sortable-th-inner{display:inline-flex;align-items:center;gap:6px}table.data-table th.sortable-th.text-right .sortable-th-inner,table.data-table th.sortable-th.col-num .sortable-th-inner,table.data-table th.sortable-th.col-currency .sortable-th-inner{display:flex;justify-content:flex-end;width:100%}table.data-table th.sortable-th.text-right,table.data-table th.sortable-th.col-num,table.data-table th.sortable-th.col-currency{text-align:right}table.data-table th.sortable-th.col-actions{text-align:center}table.data-table th.sortable-th.col-actions .sortable-th-inner{justify-content:center;width:100%}.sortable-th-icon{font-size:10px;opacity:.45}table.data-table th.sortable-th[aria-sort=ascending] .sortable-th-icon,table.data-table th.sortable-th[aria-sort=descending] .sortable-th-icon{opacity:1}table.data-table th.text-right,table.data-table td.text-right,table.data-table td.col-num,table.data-table td.col-currency{text-align:right}table.data-table input.input-table,table.data-table input.input-table-num{width:100%;max-width:72px;padding:4px 8px;font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:4px;text-align:right;font-variant-numeric:tabular-nums;margin-left:auto;display:block}table.data-table input.input-table-currency{width:100%;max-width:100px;padding:4px 8px;font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:4px;text-align:right;font-variant-numeric:tabular-nums;margin-left:auto;display:block}table.data-table td.col-num input,table.data-table td.col-currency input{margin-left:auto}table.data-table td.col-actions{text-align:center;min-width:76px}.table-actions{display:inline-flex;align-items:center;gap:4px;justify-content:center}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--color-text-secondary)}.btn-icon:hover:not(:disabled){background:#eef5ee;color:var(--color-primary-dark)}.btn-icon.btn-icon-danger:hover:not(:disabled){background:#fdecea;color:var(--color-danger)}.btn-icon:disabled{opacity:.45;cursor:not-allowed}table.data-table td.col-actions .btn{padding:4px 10px;font-size:var(--font-size-xs)}table.data-table td.col-status{text-align:left}table.data-table code{display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4);align-items:flex-end}.field{display:flex;flex-direction:column;gap:4px;min-width:140px}.field label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:600}.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface)}.field textarea{min-height:80px;resize:vertical}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.page-header h1{font-size:var(--font-size-lg)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.alert{padding:12px 16px;border-radius:var(--radius-button);margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.alert-error{background:#ffebee;color:var(--color-danger);border:1px solid #ffcdd2}.alert-info{background:#e3f2fd;color:var(--color-info);border:1px solid #bbdefb}.alert-warning{background:#fff8e1;color:#f57f17;border:1px solid #ffe082}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal{background:var(--color-surface);border-radius:var(--radius-card);width:100%;max-width:560px;max-height:90vh;overflow:auto;box-shadow:0 8px 32px #0000002e}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.modal-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--color-border)}.empty-state{text-align:center;padding:var(--space-12);color:var(--color-text-secondary)}.loading{padding:var(--space-8);text-align:center;color:var(--color-text-secondary)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}@media(max-width:720px){.form-grid{grid-template-columns:1fr}}#root{min-height:100vh}
/*# sourceMappingURL=main-JEPCQCJS.css.map */
