body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:#f4f6f9;color:#1f2937}#root{max-width:1650px;margin:0 auto;padding:24px}h1,h2,h3{margin-top:0;margin-bottom:16px;color:#0f172a}a{color:inherit}input,select,textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;background:#fff;color:#111827;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}input[readonly]{background:#f8fafc;color:#475569}button{padding:9px 14px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;background:#fff;color:#111827;cursor:pointer;transition:all .15s ease}button:hover{background:#f3f4f6}button:disabled{opacity:.7;cursor:not-allowed}button.primary{background:#3b82f6;color:#fff;border-color:#3b82f6}button.primary:hover{background:#2563eb;border-color:#2563eb}.page-container,.page-box{background:#fff;border-radius:16px;padding:22px;box-shadow:0 2px 8px #0f172a0f;border:1px solid #e5e7eb}.page-box+.page-box,.page-container+.page-container{margin-top:18px}.page-title,.section{margin-bottom:18px}.form-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 1px 4px #0f172a0a}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.form-row,.filter-row,.filters-row,.dashboard-filters,.topbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.form-row input,.form-row select,.filter-row input,.filter-row select,.filters-row input,.filters-row select,.dashboard-filters input,.dashboard-filters select{min-width:180px}.checkbox-row{display:flex;align-items:center;gap:8px;margin:10px 0 14px}.checkbox-row input[type=checkbox]{width:16px;height:16px;min-width:auto}.topbar a,.menu-link{text-decoration:none;padding:9px 14px;border-radius:10px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:14px;transition:all .15s ease}.topbar a:hover,.menu-link:hover{background:#f3f4f6}.menu-link.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.app-title{margin-left:auto;color:#4b5563;display:flex;align-items:center;padding:8px 0}.table-wrap,.table-wrapper{width:100%;overflow-x:auto;overflow-y:hidden;margin-top:16px;position:relative;border:1px solid #cbd5e1;border-radius:12px;background:#fff}.grid-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;background:#fff}.grid-table th,.grid-table td{border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;padding:10px 8px;text-align:left;vertical-align:middle;line-height:1.25;font-size:13px;white-space:nowrap;background:#fff}.grid-table thead th{background:#eef2f7;position:sticky;top:0;z-index:1}.grid-table tbody tr:nth-child(2n) td{background:#fafafa}.grid-table tbody tr:hover td{background:#f5f7fb}.grid-table tr:last-child td{border-bottom:none}.grid-table th:last-child,.grid-table td:last-child{border-right:none}.actions-cell{display:flex;gap:8px;flex-wrap:wrap}.stats-row{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;min-width:140px;box-shadow:0 1px 4px #0f172a0a}.clickable-card{cursor:pointer;transition:all .18s ease}.clickable-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0f172a14;border-color:#93c5fd}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.dashboard-card{background:#fff;border:1px solid #dbe3ef;border-radius:14px;padding:18px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0f172a0f}.dashboard-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px #0f172a1a}.dashboard-card h3{margin:0 0 10px;font-size:16px;color:#334155}.dashboard-card p{margin:0;font-size:28px;color:#0f172a}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chart-card{background:#fff;border:1px solid #dbe3ef;border-radius:14px;padding:18px;box-shadow:0 2px 8px #0f172a0f}.chart-card h3{margin-top:0;margin-bottom:14px;font-size:18px;color:#1e293b}.full-width{grid-column:1 / -1}.filter-input{min-width:220px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font-size:15px;background:#fff}.status-badge{display:inline-block;padding:6px 10px;border-radius:999px;font-size:14px;white-space:nowrap}.status-badge.danger{background:#fee2e2;color:#b91c1c}.status-badge.warning{background:#fef3c7;color:#b45309}.status-badge.safe{background:#dcfce7;color:#166534}.status-normal{background:#e8f5e9}.status-warning{background:#fff8e1}.status-low{background:#ffe5e5}.status-critical{background:#ffc9c9}.percent-badge{display:inline-block;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.percent-normal{background:#dcfce7;color:#166534}.percent-warning{background:#fef3c7;color:#b45309}.percent-low{background:#fee2e2;color:#c2410c}.percent-critical{background:#fecaca;color:#b91c1c}.needrows-table-wrap{white-space:nowrap;box-sizing:border-box}.needrows-table{width:max-content;min-width:1415px}.needrows-table th,.needrows-table td{padding:8px 6px;font-size:12px}.needrows-table thead th{white-space:normal;line-height:1.15;background:#eef2f7}.needrows-table tbody td{white-space:nowrap}.needrows-table th:nth-child(1),.needrows-table td:nth-child(1){min-width:120px;width:120px}.needrows-table th:nth-child(2),.needrows-table td:nth-child(2){min-width:160px;width:160px}.needrows-table td:nth-child(2),.needrows-table th:nth-child(2){white-space:normal;line-height:1.2}.needrows-table th:nth-child(3),.needrows-table td:nth-child(3){min-width:60px;width:60px}.needrows-table th:nth-child(4),.needrows-table td:nth-child(4){min-width:82px;width:82px}.needrows-table th:nth-child(5),.needrows-table td:nth-child(5){min-width:88px;width:88px}.needrows-table th:nth-child(6),.needrows-table td:nth-child(6){min-width:92px;width:92px}.needrows-table th:nth-child(7),.needrows-table td:nth-child(7){min-width:140px;width:140px}.needrows-table th:nth-child(8),.needrows-table td:nth-child(8){min-width:88px;width:88px}.needrows-table th:nth-child(9),.needrows-table td:nth-child(9){min-width:80px;width:80px}.needrows-table th:nth-child(10),.needrows-table td:nth-child(10){min-width:105px;width:105px}.needrows-table th:nth-child(11),.needrows-table td:nth-child(11){min-width:105px;width:105px}.needrows-table th:nth-child(12),.needrows-table td:nth-child(12){min-width:105px;width:105px}.needrows-table th:nth-child(13),.needrows-table td:nth-child(13){min-width:72px;width:72px}.needrows-table .resizable-th{position:sticky;top:0;overflow:visible}.needrows-table .col-resizer{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:30}.needrows-table .col-resizer:hover{background:#3b82f62e}.needrows-table th.sticky-left-1,.needrows-table td.sticky-left-1{position:sticky;left:0;min-width:120px;width:120px;z-index:6;background:#f8fafc;box-shadow:1px 0 #dbe3ef}.needrows-table th.sticky-left-2,.needrows-table td.sticky-left-2{position:sticky;left:120px;min-width:160px;width:160px;z-index:6;background:#f8fafc;box-shadow:1px 0 #dbe3ef;white-space:normal}.needrows-table th.sticky-actions,.needrows-table td.sticky-actions{position:sticky;right:0;min-width:116px;width:116px;z-index:7;background:#f8fafc;box-shadow:-1px 0 #dbe3ef}.needrows-table thead th.sticky-left-1,.needrows-table thead th.sticky-left-2,.needrows-table thead th.sticky-actions{background:#eaf0f6;z-index:10}.needrows-table .sticky-actions-cell{display:flex;flex-direction:column;gap:6px}.needrows-table .sticky-actions-cell button{width:100%;padding:6px 8px;font-size:12px;line-height:1.1}@media(max-width:900px){#root{padding:14px}.dashboard-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.page-container,.page-box{padding:16px}.grid-table{min-width:760px}.needrows-table{min-width:1415px}}.empty-state-card{max-width:760px;margin:40px auto}.empty-state-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.btn-secondary{padding:10px 14px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;cursor:pointer}.btn-primary{padding:10px 14px;border-radius:10px;border:1px solid #2563eb;background:#2563eb;color:#fff;cursor:pointer}.muted-text{color:#475569}.topbar-logout{margin-left:8px}.page-loading{min-height:40vh;display:flex;align-items:center;justify-content:center}.page-loading-text{color:#475569;font-size:15px}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:10px;color:#4b5563}.topbar-username{padding:8px 0}.section-loading-card{text-align:center;color:#475569}.section-denied-card{max-width:760px;margin:0 auto;text-align:center}.needrows-page{padding:16px}.needrows-page h2{margin-bottom:6px;font-size:24px}.needrows-page>p{margin-top:0!important;margin-bottom:10px!important}.needrows-page .form-card{padding:12px;margin-top:10px!important;border-radius:12px}.needrows-page .form-card h3{margin-top:0!important;margin-bottom:8px!important;font-size:16px}.needrows-page .form-card p{margin-top:0;margin-bottom:8px}.needrows-page .form-row,.needrows-page .filter-row,.needrows-page .filters-row{gap:8px;margin-bottom:8px}.needrows-page input,.needrows-page select,.needrows-page textarea{padding:7px 9px;min-height:34px;border-radius:8px;font-size:13px}.needrows-page button{padding:7px 10px;min-height:34px;border-radius:8px;font-size:13px}.needrows-page .actions-cell{gap:6px}.needrows-main-table-wrap{max-height:min(72vh,740px);overflow:auto!important;overscroll-behavior:contain;margin-top:10px;border-radius:12px}.needrows-main-table-wrap .grid-table thead th{position:sticky!important;top:0;z-index:30!important;background:#eef2f7!important;box-shadow:0 1px #cbd5e1}.needrows-main-table-wrap .grid-table thead th:first-child{z-index:35!important}.needrows-data-table th,.needrows-data-table td{padding:7px 6px!important;font-size:12px!important}.needrows-data-table tbody td{height:30px}#need-additions-history{max-height:min(52vh,540px);overflow:auto!important}#need-additions-history .grid-table thead th{position:sticky!important;top:0;z-index:20!important;background:#eef2f7!important}.needrows-page [style*=gridTemplateColumns]{max-height:260px;overflow:auto}@media(max-width:900px){.needrows-page{padding:12px}.needrows-page .form-card{padding:10px}.needrows-main-table-wrap{max-height:68vh}}@media print{.needrows-main-table-wrap,#need-additions-history{max-height:none!important;overflow:visible!important}}.needrows-compact-toolbar{position:sticky;top:0;z-index:35;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 12px;padding:10px 12px;border:1px solid #dbe3ef;border-radius:14px;background:#fffffff5;box-shadow:0 2px 8px #0f172a0f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.needrows-compact-title{display:flex;flex-direction:column;gap:3px;min-width:220px}.needrows-compact-title strong{color:#0f172a}.needrows-compact-title span{color:#64748b;font-size:12px}.needrows-compact-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.needrows-compact-actions button{padding:7px 10px;font-size:12px;border-radius:9px}.needrows-top-panel-collapsed>.form-card,.needrows-top-panel-collapsed>.filter-row,.needrows-top-panel-collapsed>.filters-row{display:none!important}.needrows-filters-collapsed>.needrows-filter-card{display:none!important}.needrows-columns-collapsed>.needrows-column-tools-card{display:none!important}.needrows-history-collapsed #need-additions-history{display:none!important}.needrows-page-layout .table-wrap{scroll-margin-top:76px}@media print{.needrows-compact-toolbar{display:none!important}}.needrows-compact-toolbar-v2{padding:7px 9px;margin:8px 0 10px;min-height:auto}.needrows-compact-toolbar-v2 .needrows-compact-title{gap:1px}.needrows-compact-toolbar-v2 .needrows-compact-title strong{font-size:13px}.needrows-compact-toolbar-v2 .needrows-compact-title span{font-size:11px}.needrows-compact-toolbar-v2 .needrows-compact-actions{gap:6px}.needrows-compact-toolbar-v2 .needrows-compact-actions button{padding:6px 9px;font-size:11px;border-radius:8px}.needrows-compact-toolbar-v2 .needrows-compact-actions button.is-on{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.needrows-compact-toolbar-v2 .needrows-compact-actions button.is-off{background:#fff;color:#64748b}.needrows-compact-toolbar-v2 .needrows-compact-actions button.mode-active{background:#2563eb;border-color:#2563eb;color:#fff}.needrows-toolbar-divider{width:1px;height:24px;background:#e2e8f0;display:inline-block;margin:0 2px}.needrows-top-panel-collapsed>h1,.needrows-top-panel-collapsed>.page-title{display:none!important}.needrows-top-panel-collapsed>h1+p,.needrows-top-panel-collapsed>.page-title+p{display:none!important}.needrows-top-panel-collapsed .needrows-compact-toolbar-v2{margin-top:0;margin-bottom:8px}.needrows-top-panel-collapsed{padding-top:12px}.needrows-top-panel-collapsed .table-wrap,.needrows-top-panel-collapsed .needrows-main-table-wrap{margin-top:8px}@media(max-width:900px){.needrows-compact-toolbar-v2{align-items:flex-start}.needrows-compact-toolbar-v2 .needrows-compact-actions button{padding:6px 8px}.needrows-toolbar-divider{display:none}}body.needrows-table-focus{overflow:hidden}body.needrows-table-focus #root{max-width:none;width:100%;padding:6px 8px}body.needrows-table-focus .topbar{display:none!important}body.needrows-table-focus .page-container,body.needrows-table-focus .page-box{padding:8px 10px;border-radius:10px;box-shadow:none}body.needrows-table-focus .page-container>h1,body.needrows-table-focus .page-container>h2,body.needrows-table-focus .page-container>h3{display:none!important}body.needrows-table-focus .page-container>h1+p,body.needrows-table-focus .page-container>h2+p,body.needrows-table-focus .page-container>h3+p{display:none!important}body.needrows-table-focus .needrows-compact-toolbar-v2{position:sticky;top:4px;z-index:80;margin-top:0;margin-bottom:6px;padding:5px 7px;background:#fff;border-color:#cbd5e1;box-shadow:0 2px 8px #0f172a14}body.needrows-table-focus .needrows-compact-toolbar-v2 .needrows-compact-title strong{font-size:12px}body.needrows-table-focus .needrows-compact-toolbar-v2 .needrows-compact-title span{font-size:10px}body.needrows-table-focus .needrows-compact-toolbar-v2 .needrows-compact-actions button{padding:5px 7px;font-size:10.5px;border-radius:7px}body.needrows-table-focus .needrows-main-table-wrap,body.needrows-table-focus .needrows-table-wrap,body.needrows-table-focus .table-wrap{margin-top:6px!important;max-height:calc(100vh - 78px);overflow:auto!important;border-radius:8px}body.needrows-table-focus .grid-table thead th,body.needrows-table-focus .needrows-table thead th{position:sticky;top:0;z-index:25}body.needrows-table-focus .needrows-table thead th.sticky-left-1,body.needrows-table-focus .needrows-table thead th.sticky-left-2,body.needrows-table-focus .needrows-table thead th.sticky-actions{z-index:35}body.needrows-table-focus .needrows-table th,body.needrows-table-focus .needrows-table td,body.needrows-table-focus .grid-table th,body.needrows-table-focus .grid-table td{padding:5px;font-size:11.5px;line-height:1.18}body.needrows-table-focus .needrows-table .sticky-actions-cell{gap:4px}body.needrows-table-focus .needrows-table .sticky-actions-cell button{padding:4px 6px;font-size:11px}body.needrows-table-focus .status-badge,body.needrows-table-focus .percent-badge{padding:3px 7px;font-size:11px}@media(max-width:900px){body.needrows-table-focus #root{padding:4px}body.needrows-table-focus .needrows-main-table-wrap,body.needrows-table-focus .needrows-table-wrap,body.needrows-table-focus .table-wrap{max-height:calc(100vh - 92px)}}.global-route-mode-toolbar{position:sticky;top:6px;z-index:2000;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;padding:8px 10px;border:1px solid #dbe3ef;border-radius:12px;background:#fffffff5;box-shadow:0 2px 8px #0f172a12;font-size:13px}.global-route-mode-toolbar span{color:#64748b;margin-left:8px}.global-route-mode-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.global-route-mode-actions button{padding:6px 10px;font-size:12px;border-radius:9px}body.route-monthly-issues.page-mode-compact #root,body.route-stock-summary.page-mode-compact #root{padding-top:10px}body.route-monthly-issues.page-mode-compact .page-container,body.route-monthly-issues.page-mode-compact .page-box,body.route-stock-summary.page-mode-compact .page-container,body.route-stock-summary.page-mode-compact .page-box{padding:14px}body.route-monthly-issues.page-mode-compact .page-container>h1,body.route-monthly-issues.page-mode-compact .page-container>p,body.route-monthly-issues.page-mode-compact .page-box>h1,body.route-monthly-issues.page-mode-compact .page-box>p,body.route-stock-summary.page-mode-compact .page-container>h1,body.route-stock-summary.page-mode-compact .page-container>p,body.route-stock-summary.page-mode-compact .page-box>h1,body.route-stock-summary.page-mode-compact .page-box>p{display:none!important}body.route-monthly-issues.page-mode-compact .form-card,body.route-stock-summary.page-mode-compact .form-card{padding:10px}body.route-monthly-issues.page-mode-compact .form-row,body.route-monthly-issues.page-mode-compact .filter-row,body.route-monthly-issues.page-mode-compact .filters-row,body.route-stock-summary.page-mode-compact .form-row,body.route-stock-summary.page-mode-compact .filter-row,body.route-stock-summary.page-mode-compact .filters-row{margin-bottom:8px;gap:8px}body.route-monthly-issues.page-mode-compact input,body.route-monthly-issues.page-mode-compact select,body.route-stock-summary.page-mode-compact input,body.route-stock-summary.page-mode-compact select{padding:7px 9px;font-size:12px}body.route-monthly-issues.page-mode-compact button,body.route-stock-summary.page-mode-compact button{padding:7px 10px;font-size:12px}body.route-monthly-issues.page-mode-table #root,body.route-stock-summary.page-mode-table #root{max-width:none;padding:6px}body.route-monthly-issues.page-mode-table .topbar,body.route-stock-summary.page-mode-table .topbar{display:none!important}body.route-monthly-issues.page-mode-table .global-route-mode-toolbar,body.route-stock-summary.page-mode-table .global-route-mode-toolbar{top:0;margin-bottom:6px;border-radius:8px}body.route-monthly-issues.page-mode-table .page-container,body.route-monthly-issues.page-mode-table .page-box,body.route-stock-summary.page-mode-table .page-container,body.route-stock-summary.page-mode-table .page-box{max-width:none;padding:6px;border-radius:8px;box-shadow:none}body.route-monthly-issues.page-mode-table .page-container>*:not(.table-wrap):not(.table-wrapper):not(:has(.table-wrap)):not(:has(.table-wrapper)),body.route-monthly-issues.page-mode-table .page-box>*:not(.table-wrap):not(.table-wrapper):not(:has(.table-wrap)):not(:has(.table-wrapper)),body.route-stock-summary.page-mode-table .page-container>*:not(.table-wrap):not(.table-wrapper):not(:has(.table-wrap)):not(:has(.table-wrapper)),body.route-stock-summary.page-mode-table .page-box>*:not(.table-wrap):not(.table-wrapper):not(:has(.table-wrap)):not(:has(.table-wrapper)){display:none!important}body.route-monthly-issues.page-mode-table .table-wrap,body.route-monthly-issues.page-mode-table .table-wrapper,body.route-stock-summary.page-mode-table .table-wrap,body.route-stock-summary.page-mode-table .table-wrapper{margin-top:4px;max-height:calc(100vh - 76px);overflow:auto;border-radius:8px}body.route-monthly-issues.page-mode-table .grid-table th,body.route-monthly-issues.page-mode-table .grid-table td,body.route-stock-summary.page-mode-table .grid-table th,body.route-stock-summary.page-mode-table .grid-table td{padding:6px;font-size:12px;line-height:1.15}body.route-monthly-issues.page-mode-table .grid-table thead th,body.route-stock-summary.page-mode-table .grid-table thead th{position:sticky;top:0;z-index:20}@media(max-width:900px){.global-route-mode-toolbar{align-items:flex-start;flex-direction:column}.global-route-mode-actions{justify-content:flex-start}}.global-route-mode-toolbar{box-sizing:border-box;overflow:visible!important;padding-left:16px!important;padding-right:10px!important}.global-route-mode-title{display:flex;align-items:center;gap:8px;min-width:0;overflow:visible!important;padding-left:2px}.global-route-mode-title strong,.global-route-mode-title span,.global-route-mode-actions button{text-indent:0!important;overflow:visible!important}.global-route-mode-title strong{display:inline-block;white-space:nowrap}.global-route-mode-actions{padding-left:8px}body.route-monthly-issues.page-mode-table .global-route-mode-toolbar,body.route-stock-summary.page-mode-table .global-route-mode-toolbar{margin-left:8px!important;margin-right:8px!important;width:auto!important}body.route-institutions.page-mode-compact .page-container,body.route-drugs.page-mode-compact .page-container,body.route-prices.page-mode-compact .page-container,body.route-need-rows-summary.page-mode-compact .page-container{margin-top:12px!important;max-width:calc(100vw - 28px)!important}body.route-institutions.page-mode-compact .page-container>h1,body.route-drugs.page-mode-compact .page-container>h1,body.route-prices.page-mode-compact .page-container>h1,body.route-need-rows-summary.page-mode-compact .page-container>h1{font-size:24px!important;margin-bottom:8px!important}body.route-institutions.page-mode-compact input,body.route-institutions.page-mode-compact select,body.route-institutions.page-mode-compact button,body.route-drugs.page-mode-compact input,body.route-drugs.page-mode-compact select,body.route-drugs.page-mode-compact button,body.route-prices.page-mode-compact input,body.route-prices.page-mode-compact select,body.route-prices.page-mode-compact button,body.route-need-rows-summary.page-mode-compact input,body.route-need-rows-summary.page-mode-compact select,body.route-need-rows-summary.page-mode-compact button{min-height:32px!important;padding-top:6px!important;padding-bottom:6px!important}body.route-institutions.page-mode-table .page-container,body.route-drugs.page-mode-table .page-container,body.route-prices.page-mode-table .page-container,body.route-need-rows-summary.page-mode-table .page-container{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;border:0!important}body.route-institutions.page-mode-table table,body.route-drugs.page-mode-table table,body.route-prices.page-mode-table table,body.route-need-rows-summary.page-mode-table table{width:100%!important}body.route-institutions.page-mode-table .global-route-mode-toolbar,body.route-drugs.page-mode-table .global-route-mode-toolbar,body.route-prices.page-mode-table .global-route-mode-toolbar,body.route-need-rows-summary.page-mode-table .global-route-mode-toolbar{margin-left:8px!important;margin-right:8px!important;width:auto!important}.global-route-mode-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;width:auto;max-width:calc(100vw - 56px);margin:10px auto;padding:10px 12px;background:#fff;border:1px solid #dbe3ef;border-radius:10px;box-shadow:0 1px 8px #0f172a0f}.global-route-mode-title{display:flex;align-items:center;gap:12px;min-width:0}.global-route-mode-title span{color:#64748b;font-size:13px}.global-route-mode-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.global-route-mode-actions button{min-height:30px;padding:6px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer}.global-route-mode-actions button.primary{color:#fff;border-color:#2f7df6;background:#2f7df6}body.route-institutions.page-mode-compact .page-container,body.route-drugs.page-mode-compact .page-container,body.route-prices.page-mode-compact .page-container,body.route-need-rows-summary.page-mode-compact .page-container{max-width:calc(100vw - 28px)!important;margin-top:10px!important}body.route-institutions.page-mode-table #root,body.route-drugs.page-mode-table #root,body.route-prices.page-mode-table #root,body.route-need-rows-summary.page-mode-table #root{padding:4px 8px!important}body.route-institutions.page-mode-table .page-container,body.route-drugs.page-mode-table .page-container,body.route-prices.page-mode-table .page-container,body.route-need-rows-summary.page-mode-table .page-container{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}body.route-institutions.page-mode-table .page-container>h1,body.route-institutions.page-mode-table .page-container>p,body.route-institutions.page-mode-table .page-container>form,body.route-institutions.page-mode-table .page-container>div:not(:has(table)),body.route-drugs.page-mode-table .page-container>h1,body.route-drugs.page-mode-table .page-container>p,body.route-drugs.page-mode-table .page-container>form,body.route-drugs.page-mode-table .page-container>div:not(:has(table)),body.route-prices.page-mode-table .page-container>h1,body.route-prices.page-mode-table .page-container>p,body.route-prices.page-mode-table .page-container>form,body.route-prices.page-mode-table .page-container>div:not(:has(table)),body.route-need-rows-summary.page-mode-table .page-container>h1,body.route-need-rows-summary.page-mode-table .page-container>p,body.route-need-rows-summary.page-mode-table .page-container>form,body.route-need-rows-summary.page-mode-table .page-container>div:not(:has(table)){display:none!important}body.route-institutions.page-mode-table .page-container>div:has(table),body.route-drugs.page-mode-table .page-container>div:has(table),body.route-prices.page-mode-table .page-container>div:has(table),body.route-need-rows-summary.page-mode-table .page-container>div:has(table){display:block!important;max-height:calc(100vh - 112px)!important;overflow:auto!important;border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff!important}body.route-institutions.page-mode-table table thead th,body.route-drugs.page-mode-table table thead th,body.route-prices.page-mode-table table thead th,body.route-need-rows-summary.page-mode-table table thead th{position:sticky!important;top:0!important;z-index:5!important;background:#eef3f8!important;box-shadow:0 1px #cbd5e1!important}.table-pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0;padding:8px 10px;border:1px solid #dbe5f0;border-radius:10px;background:#fff}.table-pagination-info{display:flex;align-items:center;gap:6px;color:#0f172a;font-size:13px}.table-pagination-info span{color:#475569;font-weight:500}.table-pagination-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}.table-pagination-actions button,.table-page-size-select{min-height:30px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:4px 8px;color:#0f172a}.table-pagination-actions button:not(:disabled):hover,.table-page-size-select:hover{border-color:#3b82f6}.table-pagination-actions button:disabled{opacity:.45;cursor:not-allowed}.table-pagination-page{min-width:54px;text-align:center;color:#334155;font-weight:600}body.page-mode-table .table-pagination-bar{position:sticky;top:0;z-index:8;margin-top:0;border-left:0;border-right:0;border-radius:0}@media(max-width:900px){.table-pagination-bar{align-items:flex-start}.table-pagination-actions{width:100%}}.resizable-columns-table th{overflow:visible}.resizable-table-column{padding-right:14px!important}.column-resize-handle{position:absolute;top:0;right:-4px;width:9px;height:100%;min-height:28px;cursor:col-resize;z-index:20;-webkit-user-select:none;user-select:none;touch-action:none}.column-resize-handle:after{content:"";position:absolute;top:18%;bottom:18%;left:4px;width:1px;border-radius:999px;background:transparent}.column-resize-handle:hover:after,.column-resizing .column-resize-handle:after{background:#2563eb;box-shadow:0 0 0 1px #2563eb1f}.column-resizing{cursor:col-resize!important}.column-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.resizable-columns-table{border-collapse:separate;border-spacing:0}.resizable-columns-table th,.resizable-column-header{position:relative!important}.column-resize-handle{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:25;opacity:0;transition:opacity .12s ease,background .12s ease}.resizable-column-header:hover .column-resize-handle,.column-resize-handle:hover{opacity:1;background:#2563eb3d}.column-resizing,.column-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.column-resizing .column-resize-handle{opacity:1;background:#2563eb57}body.route-need-rows .needrows-fixed-control-col{width:40px!important;min-width:40px!important;max-width:40px!important;text-align:center!important;padding-left:4px!important;padding-right:4px!important;box-sizing:border-box!important;white-space:nowrap!important}body.route-need-rows .needrows-fixed-control-col input[type=checkbox]{margin-left:auto!important;margin-right:auto!important}body.route-need-rows .needrows-fixed-control-col .column-resize-handle,body.route-need-rows .needrows-fixed-control-col [class*=resize]{display:none!important}body.route-need-rows table.needrows-fixed-control-table{border-collapse:separate;border-spacing:0}body.route-need-rows table.needrows-checkbox-first-col-table colgroup col:first-child,body.route-need-rows table.needrows-checkbox-first-col-table .needrows-checkbox-first-col{width:40px!important;min-width:40px!important;max-width:40px!important}body.route-need-rows table.needrows-checkbox-first-col-table th:first-child,body.route-need-rows table.needrows-checkbox-first-col-table td:first-child{width:40px!important;min-width:40px!important;max-width:40px!important;padding-left:4px!important;padding-right:4px!important;text-align:center!important;box-sizing:border-box!important;white-space:nowrap!important}body.route-need-rows table.needrows-checkbox-first-col-table{border-collapse:separate;border-spacing:0}body.route-need-rows table.needrows-checkbox-first-col-table{border-collapse:separate!important;border-spacing:0!important}body.route-need-rows table.needrows-checkbox-first-col-table colgroup col:first-child,body.route-need-rows table.needrows-checkbox-first-col-table th:first-child,body.route-need-rows table.needrows-checkbox-first-col-table td:first-child{width:40px!important;min-width:40px!important;max-width:40px!important}body.route-need-rows table.needrows-checkbox-first-col-table th:first-child,body.route-need-rows table.needrows-checkbox-first-col-table td:first-child{padding-left:4px!important;padding-right:4px!important;text-align:center!important;box-sizing:border-box!important;white-space:nowrap!important}body.route-need-rows table.needrows-checkbox-first-col-table th:first-child input[type=checkbox],body.route-need-rows table.needrows-checkbox-first-col-table td:first-child input[type=checkbox]{margin-left:auto!important;margin-right:auto!important}body.route-need-rows table.needrows-checkbox-first-col-table th:first-child .column-resize-handle,body.route-need-rows table.needrows-checkbox-first-col-table td:first-child .column-resize-handle,body.route-need-rows table.needrows-checkbox-first-col-table th:first-child [class*=resize],body.route-need-rows table.needrows-checkbox-first-col-table td:first-child [class*=resize]{display:none!important}.needrows-column-tools-card{display:block}.needrows-checkbox-first-col-table colgroup col:first-child,.needrows-checkbox-first-col-table th:first-child,.needrows-checkbox-first-col-table td:first-child,.needrows-checkbox-first-col{width:40px!important;min-width:40px!important;max-width:40px!important;padding-left:4px!important;padding-right:4px!important;text-align:center!important;box-sizing:border-box!important;white-space:nowrap!important}.needrows-checkbox-first-col-table th:first-child input[type=checkbox],.needrows-checkbox-first-col-table td:first-child input[type=checkbox],.needrows-checkbox-first-col input[type=checkbox]{margin-left:auto!important;margin-right:auto!important}.needrows-checkbox-first-col-table th:first-child .column-resize-handle,.needrows-checkbox-first-col-table td:first-child .column-resize-handle,.needrows-checkbox-first-col .column-resize-handle,.needrows-checkbox-first-col [class*=resize]{display:none!important}.needrows-data-table,.needrows-history-table{border-collapse:separate!important;border-spacing:0!important}:root{--app-sidebar-width: 260px;--app-bg: #eef3f8;--app-panel: #ffffff;--app-border: #dbe5ef;--app-text: #0f172a;--app-muted: #64748b;--app-primary: #2563eb;--app-primary-dark: #1d4ed8;--app-sidebar-bg: #0f172a;--app-sidebar-card: rgba(255, 255, 255, .08);--app-sidebar-border: rgba(255, 255, 255, .12)}html,body,#root{min-height:100%}body{background:radial-gradient(circle at top left,#dbeafe 0,transparent 32%),var(--app-bg)}#root{width:100%;max-width:none;margin:0;padding:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--app-sidebar-width) minmax(0,1fr);gap:0}.app-sidebar{position:sticky;top:0;height:100vh;box-sizing:border-box;padding:18px 14px;background:linear-gradient(180deg,#0f172a,#111827 55%,#172554);color:#fff;display:flex;flex-direction:column;z-index:1200;box-shadow:12px 0 28px #0f172a1f}.app-brand{display:flex;align-items:center;gap:12px;padding:10px 10px 18px;border-bottom:1px solid var(--app-sidebar-border);margin-bottom:14px}.app-brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#38bdf8,#2563eb);color:#fff;font-size:22px;font-weight:800;box-shadow:0 12px 28px #2563eb52}.app-brand strong{display:block;font-size:18px;line-height:1.1}.app-brand span{display:block;margin-top:4px;color:#cbd5e1;font-size:12px;line-height:1.25}.app-menu{display:flex;flex-direction:column;gap:7px;overflow-y:auto;padding-right:4px;scrollbar-width:thin}.app-menu .menu-link{width:100%;box-sizing:border-box;display:flex;align-items:center;min-height:40px;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:transparent;color:#e5e7eb;font-size:14px;font-weight:600;text-decoration:none}.app-menu .menu-link:hover{background:var(--app-sidebar-card);border-color:var(--app-sidebar-border);color:#fff}.app-menu .menu-link.active{background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;border-color:transparent;box-shadow:0 10px 22px #2563eb47}.app-sidebar-footer{margin-top:auto;display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--app-sidebar-border)}.app-language-switcher{display:grid;gap:6px;color:#cbd5e1;font-size:12px;font-weight:600}.app-language-switcher select{width:100%;min-width:0;border-radius:10px;border-color:var(--app-sidebar-border);background:#fffffffa;color:#0f172a;padding:8px 10px}.app-user-card{border:1px solid var(--app-sidebar-border);border-radius:12px;padding:10px 12px;background:#ffffff12;min-width:0}.app-user-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.app-user-label{display:block;color:#cbd5e1;font-size:11px;margin-bottom:4px}.app-logout-button{width:100%;border:1px solid rgba(248,113,113,.35);background:#ef44441f;color:#fecaca;font-weight:700}.app-logout-button:hover{background:#ef444438;color:#fff}.app-main{min-width:0;padding:16px 18px 34px;box-sizing:border-box}.auth-main{min-height:100vh}.app-mobile-menu-button,.app-mobile-topbar,.app-sidebar-backdrop{display:none}.page-container,.page-box,.chart-card,.dashboard-card,.form-card,.stat-card{border-color:var(--app-border);box-shadow:0 8px 24px #0f172a0f}.grid-table thead th{background:#eaf0f7;color:#0f172a;font-weight:700}.table-wrap,.table-wrapper{box-shadow:inset 0 0 0 1px #cbd5e180}body.page-mode-table .app-sidebar{display:none!important}body.page-mode-table .app-shell{grid-template-columns:minmax(0,1fr)}body.page-mode-table .app-main{padding:6px!important}body.route-need-rows.page-mode-table #root{max-width:none}body.route-need-rows.page-mode-table .app-mobile-topbar,body.route-need-rows.page-mode-table .app-mobile-menu-button{display:none!important}body.route-need-rows.page-mode-table .page-container,body.route-need-rows.page-mode-table .page-box{padding:6px!important;border-radius:8px!important;box-shadow:none!important}body.route-need-rows.page-mode-table .needrows-main-table-wrap,body.route-need-rows.page-mode-table .table-wrap,body.route-need-rows.page-mode-table .table-wrapper{max-height:calc(100vh - 76px)!important;overflow:auto!important}@media(max-width:1024px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-sidebar{position:fixed;inset:0 auto 0 0;width:min(86vw,var(--app-sidebar-width));transform:translate(-105%);transition:transform .18s ease}.app-sidebar.is-open{transform:translate(0)}.app-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:1100;background:#0f172a6b;border:0;border-radius:0}.app-mobile-menu-button{display:grid;position:fixed;top:12px;left:12px;z-index:1250;width:42px;height:42px;place-items:center;padding:0;border-radius:12px;border:1px solid #cbd5e1;background:#fff;box-shadow:0 8px 20px #0f172a24;font-size:20px}.app-mobile-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px 48px;padding:8px 10px;border:1px solid var(--app-border);border-radius:14px;background:#ffffffeb;box-shadow:0 8px 20px #0f172a14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-mobile-title strong,.app-mobile-title span{display:block}.app-mobile-title span{color:var(--app-muted);font-size:12px}.app-mobile-topbar .app-language-switcher{min-width:120px;color:var(--app-muted)}.app-main{padding:12px}}@media(max-width:700px){.app-main{padding:10px 8px 22px}.app-mobile-topbar{align-items:flex-start;flex-direction:column;margin-left:52px}.page-container,.page-box,.form-card,.chart-card{padding:12px!important;border-radius:12px!important}.dashboard-cards,.stats-row,.form-row,.filter-row,.filters-row,.dashboard-filters{gap:8px}.form-row input,.form-row select,.filter-row input,.filter-row select,.filters-row input,.filters-row select,.dashboard-filters input,.dashboard-filters select,.filter-input{width:100%;min-width:0}button,input,select,textarea{font-size:13px}.global-route-mode-toolbar{max-width:none!important;margin:8px 0!important}}.app-shell.sidebar-collapsed .app-brand strong,.app-shell.sidebar-collapsed .app-brand span,.app-shell.sidebar-collapsed .menu-link span,.app-shell.sidebar-collapsed .app-language-switcher,.app-shell.sidebar-collapsed .app-user-card{display:none!important}.app-sidebar{width:260px}.app-brand{padding:8px 8px 14px}.app-brand-mark{width:36px;height:36px;border-radius:12px;font-size:18px}.app-brand strong{font-size:16px}.app-menu .menu-link{min-height:34px;padding:8px 10px;border-radius:10px;font-size:13px}.app-sidebar-footer{gap:7px;padding-top:10px}.app-language-switcher{font-size:10px}.app-language-switcher select{height:34px;padding:5px 8px;font-size:12px}.app-user-card{padding:7px 9px;border-radius:10px}.app-user-label{font-size:9px}.app-user-card strong{font-size:12px}.app-logout-button{min-height:32px;padding:6px 8px;font-size:12px}.app-shell{transition:grid-template-columns .12s ease}.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.app-shell.sidebar-collapsed .app-sidebar{width:0!important;min-width:0!important;padding:0!important;overflow:hidden!important;border:0!important;box-shadow:none!important}.sidebar-toggle-btn{width:100%;height:32px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#e2e8f0;cursor:pointer;margin-bottom:10px}.sidebar-toggle-btn:hover{background:#ffffff26;color:#fff}.sidebar-floating-open-btn{position:fixed!important;top:72px!important;left:14px!important;z-index:9999!important;width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;border-radius:10px!important;font-size:17px!important;line-height:1!important;display:grid!important;place-items:center!important;background:#fff!important;color:#0f172a!important;border:1px solid #dbeafe!important;box-shadow:0 6px 16px #0f172a24!important}
