@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap";:root{--brand-primary:#004880;--brand-primary-dark:#00325a;--brand-primary-light:#ebf5ff;--brand-primary-glow:#00488026;--brand-accent:#0d9488;--brand-accent-light:#ccfbf1;--color-success:#059669;--color-success-bg:#d1fae5;--color-warning:#d97706;--color-warning-bg:#fef3c7;--color-danger:#e11d48;--color-danger-bg:#ffe4e6;--text-dark:#0f172a;--text-body:#334155;--text-muted:#64748b;--text-light:#fff;--bg-main:#f4f6f9;--bg-card:#fff;--bg-glass:#ffffffe6;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--shadow-sm:0 1px 3px #0000000a, 0 1px 2px #00000005;--shadow-md:0 4px 12px -2px #0f172a0f, 0 2px 6px -1px #0f172a08;--shadow-lg:0 12px 28px -6px #0048801f, 0 4px 10px -2px #0048800a;--shadow-active:0 0 0 3px #00488033;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--transition-smooth:.2s cubic-bezier(.16, 1, .3, 1);--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.1rem;--fs-lg:1.3rem;--lh-base:1.5}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-dark);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:var(--lh-base);-webkit-font-smoothing:antialiased}code,pre,.font-mono{font-family:Fira Code,monospace}.recharts-text,.recharts-cartesian-axis-tick-value,.recharts-legend-item-text,.recharts-tooltip-cursor,.recharts-default-tooltip,svg text{letter-spacing:-.01em!important;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-weight:600!important}.recharts-default-tooltip{background-color:#fff!important;border:1px solid #cbd5e1!important;border-radius:12px!important;padding:10px 14px!important;font-family:Plus Jakarta Sans,sans-serif!important;box-shadow:0 10px 25px -5px #00488026!important}.recharts-legend-item-text{color:#1e293b!important;font-size:var(--fs-sm)!important;font-weight:700!important}.app-header{color:#fff;box-shadow:var(--shadow-md);z-index:100;background:linear-gradient(135deg,#004880 0%,#002d52 100%);justify-content:space-between;align-items:center;padding:.9rem 2.2rem;display:flex;position:sticky;top:0}.brand-badge{align-items:center;gap:.9rem;display:flex}.brand-logo-text{letter-spacing:2px;color:#fff;font-family:Plus Jakarta Sans,sans-serif;font-size:1.6rem;font-weight:900;line-height:1}.brand-subtext{font-size:var(--fs-sm);color:#ffffffd9;margin-top:3px;font-weight:500}.nav-tabs{border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff;gap:.5rem;padding:.5rem 2.2rem 0;display:flex;overflow-x:auto}.nav-tab-btn{color:var(--text-muted);cursor:pointer;transition:var(--transition-smooth);white-space:nowrap;background:0 0;border:none;border-bottom:3.5px solid #0000;align-items:center;gap:.55rem;padding:.85rem 1.35rem;font-size:.95rem;font-weight:600;display:flex}.nav-tab-btn:hover{color:var(--brand-primary);border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm);background:#00488008}.nav-tab-btn.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary);font-weight:800}.dashboard-container{width:100%;max-width:1750px;margin:0 auto;padding:1.75rem 2.2rem}.kpi-cards-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.35rem;margin-bottom:1.75rem;display:grid}.kpi-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-smooth);padding:1.4rem 1.65rem;position:relative;overflow:hidden}.kpi-card:hover{box-shadow:var(--shadow-lg);border-color:#0048804d;transform:translateY(-3px)}.kpi-card-title{font-size:var(--fs-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.kpi-card-value{color:var(--text-dark);letter-spacing:-.5px;margin:.35rem 0;font-size:2.1rem;font-weight:900}.kpi-badge{font-size:var(--fs-sm);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-weight:700;display:inline-flex}.kpi-badge.green{background:var(--color-success-bg);color:var(--color-success)}.kpi-badge.amber{background:var(--color-warning-bg);color:var(--color-warning)}.kpi-badge.red{background:var(--color-danger-bg);color:var(--color-danger)}.kpi-badge.grey{color:#475569;background:#f1f5f9}.kpi-badge.blue{color:#004880;background:#ebf5ff}@keyframes sgc-spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite sgc-spin;display:inline-block}@media (prefers-reduced-motion:reduce){.spin{animation-duration:3s}}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:1.5rem;margin-bottom:1.75rem;display:grid}.chart-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);width:100%;padding:1.65rem}.chart-card-header{justify-content:space-between;align-items:center;margin-bottom:1.35rem;display:flex}.chart-card-title{color:var(--text-dark);font-size:1.15rem;font-weight:800}.defects-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;margin-top:1rem;display:grid}.defect-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-smooth);flex-direction:column;justify-content:space-between;min-height:180px;padding:1.1rem;display:flex;position:relative}.defect-card:hover{box-shadow:var(--shadow-md);border-color:#00488066;transform:translateY(-2px)}.defect-card.selected{background-color:var(--brand-primary-light);border:2px solid var(--brand-primary);box-shadow:var(--shadow-md)}.defect-card-img-container{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:#f8fafc;width:100%;height:130px;margin-bottom:.75rem;overflow:hidden}.defect-card-img{object-fit:cover;width:100%;height:100%}.defect-card-body{flex-direction:column;flex-grow:1;display:flex}.defect-card-name{color:var(--text-dark);margin-bottom:.35rem;font-weight:800;line-height:1.3}.data-table-container{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);width:100%;margin-top:1.5rem;padding:1.35rem}.table-header{justify-content:space-between;align-items:center;margin-bottom:1.1rem;display:flex}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.925rem}th{color:var(--text-muted);text-align:left;border-bottom:2px solid var(--border-subtle);font-weight:700;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;padding:.85rem 1rem}td{border-bottom:1px solid var(--border-subtle);color:var(--text-dark);padding:.95rem 1rem}tr:hover td{background-color:#f8fafc}.btn-primary{background:linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-smooth);border:none;min-height:44px;padding:.7rem 1.4rem;font-size:.925rem;font-weight:700;box-shadow:0 4px 10px -2px #00488040}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px -3px #00488059}.btn-primary:active{transform:scale(.98)}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-dark);margin-bottom:.45rem;font-size:.875rem;font-weight:700;display:block}.form-control{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;transition:var(--transition-smooth);background-color:#fff;min-height:44px;padding:.7rem .9rem;font-size:.925rem}.form-control:focus{border-color:var(--brand-primary);box-shadow:var(--shadow-active);outline:none}@keyframes pulse-green{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.15)}to{opacity:.8;transform:scale(.95)}}.live-pulse{animation:2s ease-in-out infinite pulse-green}.app-header{flex-wrap:wrap;gap:.6rem .75rem}.brand-badge{min-width:0}.brand-logo-text,.brand-subtext{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.85rem;min-width:0;display:flex}.header-group{align-items:center;gap:.4rem;min-width:0;display:flex}.header-pill{border-radius:var(--radius-sm);color:#fff;font-size:var(--fs-sm);background:#ffffff2e;border:1px solid #ffffff4d;align-items:center;gap:.4rem;min-width:0;padding:.35rem .75rem;display:flex}.header-pill--round{border-radius:999px}button.header-pill{cursor:pointer;transition:background var(--transition-smooth);font-family:inherit;font-weight:700}button.header-pill:hover{background:#ffffff4d}.header-pill-text{font-weight:800;font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.header-select{color:#fff;font-family:inherit;font-weight:800;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;outline:none;min-width:0;max-width:100%}.header-select option{color:#1c1d1d}.header-apk-btn{background:var(--color-success);color:#fff;border-radius:var(--radius-sm);font-weight:800;font-size:var(--fs-sm);transition:var(--transition-smooth);white-space:nowrap;justify-content:center;align-items:center;gap:.45rem;padding:.4rem .85rem;text-decoration:none;display:flex;box-shadow:0 2px 6px #0596694d}.header-apk-btn:hover{background:#047857}.header-help-link{border-radius:var(--radius-sm);color:#fff;font-weight:800;font-size:var(--fs-sm);white-space:nowrap;transition:background var(--transition-smooth);background:#ffffff2e;border:1px solid #ffffff4d;align-items:center;gap:.4rem;padding:.35rem .75rem;text-decoration:none;display:flex}.header-help-link:hover{background:#ffffff4d}.header-logout-btn{color:#fff;border-radius:var(--radius-sm);font-family:inherit;font-weight:700;font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:background var(--transition-smooth);background:#e11d4840;border:1px solid #e11d4880;justify-content:center;align-items:center;gap:.4rem;padding:.4rem .75rem;display:flex}.header-logout-btn:hover{background:#e11d4873}.header-help-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.header-help-btn:hover{background:#ffffff26}.header-menu-toggle{border-radius:var(--radius-sm);color:#fff;cursor:pointer;width:44px;height:44px;transition:background var(--transition-smooth);background:#ffffff26;border:1px solid #ffffff59;flex-shrink:0;justify-content:center;align-items:center;display:none}.header-menu-toggle:hover{background:#ffffff4d}.header-net-dot{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.header-net-dot.is-online{background:#4ade80}.header-net-dot.is-offline{background:#f87171}.header-net-text.is-online{color:#bbf7d0}.header-net-text.is-offline{color:#fee2e2}.header-net-text.is-unknown{color:#e2e8f0}.header-pill--down{background:#7f1d1d;border-color:#fca5a5}button.header-pill--down:hover{background:#991b1b}.header-net-compact{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;font-size:var(--fs-sm);align-items:center;gap:.35rem;margin:-1px;padding:0;font-weight:700;position:absolute;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header-scrim{display:none}.app-header :focus-visible,.help-dialog :focus-visible{outline-offset:2px;border-radius:inherit;outline:3px solid #fcd34d}.help-dialog:focus-visible{outline:3px solid var(--brand-primary);outline-offset:3px}@media (width<=1699.98px) and (width>=1024px){.app-header{padding-top:.6rem;padding-bottom:.6rem}.brand-subtext{display:none}.header-actions{gap:.6rem}.header-actions .header-pill{max-width:300px}}@media (width<=1279.98px){.app-header{padding:.8rem 1.4rem}.nav-tabs{padding-left:1.4rem;padding-right:1.4rem}.dashboard-container{padding:1.5rem 1.4rem}}.header-label-long{display:none}@media (width<=1023.98px){.app-header{flex-wrap:nowrap;gap:.5rem;padding:.7rem 1rem}.brand-subtext{display:none}.brand-logo-text{letter-spacing:1px;font-size:1.25rem}.brand-badge{gap:.6rem}.header-menu-toggle{display:inline-flex}.header-net-compact{clip:auto;flex-shrink:0;width:auto;height:auto;min-height:32px;margin:0 0 0 auto;padding:0 .35rem;display:inline-flex;position:static;overflow:visible}.header-net-compact-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=400px){.header-net-compact-label{clip:auto;width:auto;height:auto;margin:0;position:static;overflow:visible}}.header-actions{box-shadow:var(--shadow-lg);z-index:2;background:linear-gradient(135deg,#004880 0%,#002d52 100%);border-top:1px solid #fff3;flex-flow:column;justify-content:flex-start;align-items:stretch;gap:.75rem;max-height:calc(100dvh - 4.5rem);padding:1rem;animation:.16s cubic-bezier(.16,1,.3,1) header-panel-in;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.header-actions[data-open=false]{display:none}.header-scrim{z-index:90;cursor:pointer;background:#0f172a59;border:none;padding:0;display:block;position:fixed;inset:0}.header-group{width:100%}.header-actions>.header-group:first-of-type{order:4}.header-actions>.header-group:nth-of-type(2){order:2}.header-actions>.header-group:nth-of-type(3){order:1}.header-actions>.header-group:nth-of-type(4){order:3}.header-actions>.header-group:nth-of-type(5){order:4}.header-actions>.header-logout-btn{order:5}.header-group .header-pill,.header-group .header-apk-btn,.header-group .header-help-link{flex:auto;min-width:0}.header-pill,.header-apk-btn,.header-help-link,.header-logout-btn{justify-content:flex-start;min-height:44px;padding-left:.85rem;padding-right:.85rem}.header-apk-btn,.header-help-link,.header-logout-btn{justify-content:flex-start;width:100%}.header-actions .header-logout-btn{border-top:1px solid #ffffff2e;margin-top:.6rem}.header-help-btn{width:44px;height:44px}.header-select{flex:auto}.header-actions .header-pill{flex-wrap:wrap;row-gap:.15rem;padding-top:.3rem;padding-bottom:.3rem}.header-actions .header-pill-text{white-space:normal;overflow-wrap:anywhere;overflow:visible}.header-actions .header-select{min-height:40px}.header-label-long{display:inline}}@media (width<=767.98px){.app-header{padding:.65rem .85rem}.nav-tabs{padding-left:.85rem;padding-right:.85rem}.dashboard-container{padding:1.1rem .85rem}.charts-grid,.kpi-cards-grid{grid-template-columns:1fr}.charts-grid>*,.kpi-cards-grid>*,.defects-grid>*,.dashboard-container div,.dashboard-container form,.dashboard-container select{min-width:0}.dashboard-container div:not([style*=overflow]){flex-wrap:wrap}.dashboard-container select,.dashboard-container input,.dashboard-container textarea{max-width:100%}.chart-card-header{flex-wrap:wrap;row-gap:.6rem}.chart-card-header select{width:100%}.dashboard-container div[style*=minmax]{grid-template-columns:1fr!important}table{max-width:100%;display:block;overflow-x:auto}.chart-card{overflow-x:auto}}.data-table-container{overflow-x:auto}@keyframes header-panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.live-pulse{animation:none}.header-actions{animation:none!important}.kpi-card:hover,.defect-card:hover,.btn-primary:hover{transform:none}}:root{--rail-width:296px;--rail-width-collapsed:72px}.app-shell{background-color:var(--bg-main);min-height:100vh}.brand-badge{font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-smooth);background:0 0;border:none;margin-left:-.45rem;padding:.3rem .45rem}.brand-badge:hover{background:#ffffff24}@media (width>=1024px){.app-shell{grid-template-columns:var(--rail-width) minmax(0, 1fr);height:100dvh;transition:grid-template-columns var(--transition-smooth);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"topbar topbar""rail main";display:grid;overflow:hidden}.app-shell[data-rail=collapsed]{grid-template-columns:var(--rail-width-collapsed) minmax(0, 1fr)}.app-header{grid-area:topbar;position:static}.app-shell>main{grid-area:main;min-width:0;overflow:hidden auto}.nav-tabs{border-bottom:none;border-right:1px solid var(--border-subtle);flex-direction:column;grid-area:rail;align-items:stretch;gap:.2rem;min-width:0;height:100%;padding:.75rem .6rem;position:static;overflow:hidden auto}.nav-tab-btn{border-radius:var(--radius-sm);border-bottom:none;border-left:3.5px solid #0000;justify-content:flex-start;width:100%;min-height:44px;padding:.65rem .8rem;font-size:.9rem}.nav-tab-btn:hover{border-radius:var(--radius-sm);background:#0048800f}.nav-tab-btn.active{background:var(--brand-primary-light);border-bottom-color:#0000;border-left-color:var(--brand-primary)}.nav-tab-btn>svg,.rail-action>svg{flex-shrink:0}.nav-tab-label,.rail-action-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.rail-footer{border-top:1px solid var(--border-subtle);flex-direction:column;gap:.35rem;margin-top:auto;padding-top:.7rem;display:flex}.rail-action-row{align-items:center;gap:.25rem;min-width:0;display:flex}.rail-action{border-radius:var(--radius-sm);min-width:0;min-height:44px;color:var(--text-body);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:1px solid #0000;flex:auto;align-items:center;gap:.6rem;padding:.6rem .8rem;font-family:inherit;font-size:.875rem;font-weight:700;text-decoration:none;display:flex}.rail-action:hover{color:var(--brand-primary);background:#0048800f}.rail-action--apk{color:var(--color-success);background:#ecfdf5;border-color:#05966959}.rail-action--apk:hover{background:var(--color-success);color:#fff}.rail-action--logout{color:var(--color-danger);border-color:#e11d484d}.rail-action--logout:hover{background:var(--color-danger);color:#fff}.rail-help-btn:hover{background:#00488014}.nav-tabs :focus-visible{outline:3px solid var(--brand-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.app-shell[data-rail=collapsed] .nav-tabs{padding-left:.5rem;padding-right:.5rem}.app-shell[data-rail=collapsed] .nav-tab-label,.app-shell[data-rail=collapsed] .rail-action-label,.app-shell[data-rail=collapsed] .rail-action-trailing,.app-shell[data-rail=collapsed] .rail-help-btn{display:none}.app-shell[data-rail=collapsed] .nav-tab-btn,.app-shell[data-rail=collapsed] .rail-action{justify-content:center;gap:0;padding-left:.25rem;padding-right:.25rem}.app-shell[data-rail=collapsed] .nav-tab-btn{border-left-color:#0000}}@media (prefers-reduced-motion:reduce){.app-shell,.rail-action,.brand-badge{transition:none!important}}
