*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:#1f2937;background:#f8fafc;min-height:100vh;overflow-x:hidden;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.layout-wrapper{margin-left:280px;min-height:100vh;display:flex;flex-direction:column;transition:margin-left .25s cubic-bezier(.4,0,.2,1);overflow-x:hidden;width:auto}body.sidebar-collapsed .layout-wrapper{margin-left:0}body.sidebar-collapsed .sidebar{transform:translate(-100%)}#global-header{width:100%;background:linear-gradient(135deg,#1e3a8a,#11224d);color:#fff;display:flex;align-items:center;padding:12px 20px;gap:12px;box-shadow:0 4px 14px #1e3a8a40;position:sticky;top:0;z-index:9999!important}.g-header-logo{width:32px;height:32px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,255,255,.3)}.g-title-wrapper{display:flex;flex-direction:column;min-width:0;flex:1}.g-title{margin:0;font-size:clamp(.78rem,2.6vw,.95rem);font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:.03em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-title-sub{font-size:clamp(.68rem,2vw,.76rem);color:#93c5fd;font-weight:600;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-toggle{display:inline-flex!important;align-items:center;gap:6px;background:#ffffff2e;border:1.5px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;padding:6px 12px;font-weight:700;font-size:12.5px;cursor:pointer;transition:all .2s ease;flex-shrink:0;min-height:34px}.menu-toggle:hover{background:#ffffff47}.menu-toggle:active{transform:scale(.96)}.sidebar{position:fixed;top:0;left:0;width:280px;max-width:82vw;height:100vh;height:100dvh;background:#f8f9fa;border-right:1px solid #E5E7EB;z-index:10000!important;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 12px #00000014;will-change:transform}.sidebar-inner{display:flex;flex-direction:column;min-height:100%;padding:0 0 20px}.sidebar-brand{padding:16px 16px 12px;border-bottom:2px solid #E2E8F0;margin-bottom:8px}.sidebar-brand-text{margin:0;font-size:.95rem;font-weight:800;color:#1e3a8a;text-transform:uppercase;letter-spacing:.05em}.sidebar-close-btn{background:#eff6ff;border:1px solid #BFDBFE;color:#1e3a8a;border-radius:6px;padding:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;min-width:32px;min-height:32px}.sidebar-close-btn:hover{background:#dbeafe}.sidebar-nav{display:flex;flex-direction:column;gap:3px;padding:0 10px}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#1e293b;font-weight:700;font-size:.88rem;transition:all .15s ease;border:1px solid transparent;min-height:42px}.nav-link:hover{background:#eff6ff;border-color:#bfdbfe}.nav-link.active{background:#eff6ff;border-color:#93c5fd;color:#1e3a8a}.nav-icon{font-size:1.1rem;flex-shrink:0}.nav-label{font-size:.86rem}.sidebar-divider{height:1px;background:#e2e8f0;margin:0 12px 12px}.model-badge{margin:0 12px;background:linear-gradient(135deg,#1e3a8a,#11224d);padding:12px 14px;border-radius:12px;border:1px solid #1E3A8A;box-shadow:0 4px 12px #1e3a8a26;display:flex;align-items:center;gap:10px}.model-badge-logo{width:34px;height:34px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,255,255,.2)}.model-badge-title{color:#fff;font-size:13px;margin:0;font-weight:800}.model-badge-sub{color:#93c5fd;font-size:11px;margin:2px 0 0;font-weight:600}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0f172a99;z-index:9998!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity .25s ease}.sidebar-overlay.active{display:block;opacity:1}.main-content{flex:1;padding:22px 24px 20px;max-width:100%}.site-footer{margin-top:36px;padding:20px 16px;border-top:2px solid #1E3A8A;background:#fff;text-align:center;font-family:Inter,sans-serif}.footer-inner{max-width:600px;margin:0 auto}.footer-name{font-weight:800;font-size:.88rem;margin-bottom:3px;color:#1e3a8a;margin-top:0}.footer-info{margin:2px 0;font-size:.8rem;color:#4b5563}.page-section-header{margin-bottom:14px}.section-title{font-size:clamp(1rem,3vw,1.15rem);font-weight:800;color:#1e3a8a;margin:0 0 4px}.section-subtitle{font-size:.84rem;color:#6b7280;margin:0;line-height:1.45}.page-panel{border-radius:14px;padding:18px 20px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 2px 8px #0f172a0a;margin-bottom:18px;max-width:100%;overflow:hidden}.metric-card{background:#fff;border:1.5px solid #E2E8F0;border-radius:12px;padding:16px 14px;text-align:center;box-shadow:0 2px 8px #0000000a;transition:all .2s ease}.metric-card:hover{box-shadow:0 6px 18px #00000014}.metric-label{color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.metric-value{color:#1e3a8a;font-size:clamp(1.8rem,4.5vw,2.3rem);font-weight:900;line-height:1.1}.narrative-box{background:#f8fafc;border:1px solid #E2E8F0;border-left:4px solid #1E3A8A;border-radius:10px;padding:16px 18px;margin:14px 0;color:#1f2937;line-height:1.65;font-size:.88rem}.narrative-box h4{color:#1e3a8a;margin-top:0;font-size:.95rem;font-weight:800;text-transform:uppercase}.info-card{background:#f8fafc;border-left:4px solid #1E3A8A;padding:14px 16px;margin:10px 0;border-radius:8px;color:#1f2937;font-size:.86rem;border-top:1px solid #E2E8F0;border-right:1px solid #E2E8F0;border-bottom:1px solid #E2E8F0}.info-card h4{margin-top:0;font-weight:800;font-size:.92rem}.page-notice{background:#fffbeb;border:1px solid #FCD34D;border-radius:8px;padding:10px 12px;font-size:.82rem;color:#92400e;margin:10px 0;line-height:1.5}.custom-table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0;border-radius:8px;border:1px solid #E2E8F0;scrollbar-width:thin;scrollbar-color:#CBD5E1 #F1F5F9}.custom-table-wrapper::-webkit-scrollbar{height:6px}.custom-table-wrapper::-webkit-scrollbar-track{background:#f1f5f9}.custom-table-wrapper::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}.custom-table{width:100%;min-width:100%;border-collapse:collapse;font-family:Inter,sans-serif;background:#fff}.custom-table th{background:#1e3a8a;color:#fff;font-weight:800;font-size:12px;padding:8px 10px;border:1px solid #1E3A8A;text-align:center;white-space:nowrap;letter-spacing:.02em}.custom-table td{font-weight:600;color:#0f172a;font-size:12px;padding:6px 9px;border:1px solid #E2E8F0;background:#fff;text-align:center;white-space:nowrap}.custom-table tr:nth-child(2n) td{background:#f8fafc}.custom-table tr:hover td{background:#eff6ff}.form-group{margin-bottom:12px}.form-label{display:block;font-size:.8rem;font-weight:700;color:#374151;margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.form-input,.form-select{width:100%;padding:9px 11px;border:1.5px solid #D1D5DB;border-radius:8px;font-family:Inter,sans-serif;font-size:.88rem;font-weight:600;color:#1f2937;background:#fff;transition:border-color .15s,box-shadow .15s;min-height:40px}.form-input:focus,.form-select:focus{outline:none;border-color:#1e3a8a;box-shadow:0 0 0 3px #1e3a8a1f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:8px;font-family:Inter,sans-serif;font-size:.86rem;font-weight:700;cursor:pointer;border:none;transition:all .15s ease;min-height:40px;text-decoration:none;user-select:none}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px #0000001a}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:#1e3a8a;color:#fff}.btn-primary:hover{background:#163172}.btn-secondary{background:#f1f5f9;color:#1e293b;border:1.5px solid #E2E8F0}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-success{background:#059669;color:#fff}.btn-success:hover{background:#047857}.btn-full{width:100%}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.split-layout{display:grid;grid-template-columns:.95fr 1.25fr;gap:18px}.divider{height:1px;background:#e5e7eb;margin:16px 0}.chart-container{position:relative;width:100%;margin:6px 0}.map-container{width:100%;border-radius:10px;overflow:hidden;border:1px solid #E5E7EB;position:relative;z-index:1!important;isolation:isolate;background:#e2e8f0}.leaflet-top,.leaflet-bottom{z-index:400!important}.leaflet-pane{z-index:300!important}.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-weight:800;font-size:11px}.badge-success{background:#d1fae5;color:#065f46;border:1.5px solid #059669}.badge-warning{background:#fef3c7;color:#92400e;border:1.5px solid #D97706}.badge-danger{background:#fee2e2;color:#991b1b;border:1.5px solid #EF4444}.spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(30,58,138,.2);border-top-color:#1e3a8a;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.layout-wrapper{margin-left:0!important}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.grid-4{grid-template-columns:1fr 1fr}.split-layout{grid-template-columns:1fr;gap:14px}.main-content{padding:16px 14px}}@media (max-width: 640px){html,body{font-size:14px}#global-header{padding:8px 12px;gap:8px}.g-header-logo{width:26px;height:26px}.menu-toggle{padding:5px 9px;font-size:11.5px;min-height:30px}.main-content{padding:12px 10px}.page-panel{padding:14px 12px;border-radius:12px;margin-bottom:14px}.grid-2,.grid-3{grid-template-columns:1fr}.grid-4{grid-template-columns:1fr 1fr;gap:8px}.metric-card{padding:12px 8px}.metric-value{font-size:1.8rem}.custom-table th,.custom-table td{font-size:11px;padding:5px 6px}.form-input,.form-select{font-size:16px}}@media (max-width: 400px){.grid-4{grid-template-columns:1fr}#global-header{padding:6px 10px}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.sidebar,.menu-toggle,#sidebar-overlay{display:none!important}.layout-wrapper{margin-left:0!important}.custom-table th{background:#1e3a8a!important;color:#fff!important}}.fade-in{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
