@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap";html,body,#root{height:100%;margin:0}body{background:#f3f5f8;color:#1f2933;-webkit-font-smoothing:antialiased}a{color:#1f5fa8}*{box-sizing:border-box}.tvs-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.tvs-logo{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #edf0f4;min-height:64px}.tvs-logo img{height:40px}.tvs-logo .t1{font-weight:700;font-size:13px;line-height:1.15;color:#1f2933}.tvs-logo .t2{font-size:11px;color:#6b7785;line-height:1.1}.tvs-menu{flex:1;overflow-y:auto;border-inline-end:0!important}.tvs-menu .ant-menu-item,.tvs-menu .ant-menu-submenu-title{font-size:14px}.tvs-menu .ant-menu-sub .ant-menu-item{padding-left:46px!important;font-size:13px}.tvs-header{display:flex;align-items:center;gap:12px;padding:0 16px;height:56px;border-bottom:1px solid #e6e9ee;position:sticky;top:0;z-index:20;background:#fff}.tvs-header .tvs-search{flex:1;max-width:640px}.tvs-content{padding:16px 20px 40px;max-width:1800px}.tvs-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.tvs-page-header h1{font-size:22px;font-weight:400;margin:0;color:#2c3e50;line-height:1.25}.tvs-page-header .sub{color:#6b7785;font-size:13px;margin-top:2px}.tvs-page-header .actions{display:flex;flex-wrap:wrap;gap:8px}.tvs-card{background:#fff;border:1px solid #e6e9ee;border-radius:4px;padding:14px 16px}.tvs-card+.tvs-card{margin-top:14px}.tvs-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.tvs-toolbar .grow{flex:1}.tvs-filters{background:#f7f9fc;border:1px solid #e6e9ee;border-radius:4px;padding:10px 12px 2px;margin-bottom:10px}.tvs-filters .ant-form-item{margin-bottom:8px}.tvs-muted{color:#6b7785}.tvs-kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:16px}.tvs-kpi .k{background:#fff;border:1px solid #e6e9ee;border-radius:4px;padding:14px 16px;position:relative}.tvs-kpi .k .v{font-size:30px;font-weight:600;color:#1f5fa8;line-height:1.1}.tvs-kpi .k .l{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#4b5563;margin-top:4px;font-weight:600}.tvs-kpi .k .d{font-size:12px;color:#6b7785;margin-top:8px;border-top:1px solid #edf0f4;padding-top:6px}.tvs-kpi .k .d b,.tvs-kpi .k.warn .v{color:#d4380d}.tvs-kpi .k.ok .v{color:#3f9c35}.tvs-kpi .k .ico{position:absolute;right:14px;top:12px;font-size:26px;color:#c5cdd6}.tvs-field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 24px}.tvs-field{display:grid;grid-template-columns:150px 1fr;gap:8px;padding:6px 0;border-bottom:1px dashed #edf0f4;font-size:13px}.tvs-field .fl{color:#6b7785}.tvs-field .fv{color:#1f2933;word-break:break-word}.tvs-section-title{font-size:17px;font-weight:400;color:#2c3e50;margin:6px 0 10px;padding-bottom:6px;border-bottom:1px solid #e6e9ee}.tvs-tabs>.ant-tabs-nav{margin-bottom:12px}.tvs-tabs .ant-tabs-tab .ant-badge{margin-left:6px}.tvs-object-title{font-size:20px;font-weight:400;color:#2c3e50}.tvs-object-title .sub{font-size:14px;color:#6b7785}.tvs-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.tvs-row-actions{white-space:nowrap}.tvs-row-actions .ant-btn{padding:0 6px}.tvs-link-cell{color:#1f5fa8;cursor:pointer}.tvs-link-cell:hover{text-decoration:underline}.tvs-table .ant-table-thead>tr>th{font-weight:600;white-space:nowrap}.tvs-table .ant-table-tbody>tr>td{vertical-align:top}.tvs-empty-hint{color:#6b7785;font-style:italic}.tvs-notes .note{border-left:3px solid #1f5fa8;background:#f7f9fc;padding:8px 12px;margin-bottom:8px;border-radius:0 4px 4px 0}.tvs-notes .note .meta{font-size:12px;color:#6b7785;margin-bottom:4px}.tvs-att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.tvs-att-grid .img{border:1px solid #e6e9ee;border-radius:4px;overflow:hidden;background:#fafbfc}.tvs-att-grid .img img{width:100%;height:110px;object-fit:cover;display:block}.tvs-att-grid .img .cap{font-size:12px;padding:4px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaflet-container{font-family:inherit}.tvs-map{height:calc(100vh - 200px);min-height:480px;border:1px solid #e6e9ee;border-radius:4px}.tvs-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f5fa8,#2b7bd1 60%,#5aa0e6);padding:16px}.tvs-login .box{background:#fff;border-radius:8px;padding:32px 36px;width:100%;max-width:420px;box-shadow:0 10px 40px #00000040}.tvs-login .box h1{font-size:20px;margin:12px 0 4px}.tvs-login .box .sub{color:#6b7785;margin-bottom:20px;font-size:13px}.tvs-gantt-wrap{overflow-x:auto;background:#fff;border:1px solid #e6e9ee}.print-only{display:none}@media print{.no-print,.tvs-sider,.tvs-header{display:none!important}.print-only{display:block}.tvs-content{padding:0}}@media(max-width:768px){.tvs-content{padding:12px}.tvs-field{grid-template-columns:1fr;gap:0}.tvs-page-header h1{font-size:18px}.tvs-map{height:calc(100vh - 160px)}}:focus-visible{outline:3px solid #e8a317!important;outline-offset:2px}.skip-link{position:absolute;left:-999px;top:8px;background:#1f5fa8;color:#fff;padding:8px 12px;z-index:1000;border-radius:4px}.skip-link:focus{left:8px}.tvs-chart-title{font-size:13px;font-weight:600;color:#2c3e50;margin:0 0 6px}.tvs-chart .recharts-wrapper{font-family:inherit}.tvs-report-card{height:100%;display:flex;flex-direction:column}.tvs-report-card .ant-card-body{flex:1}.tvs-report-card .ant-card-head-title{white-space:normal;font-size:14px;line-height:1.3}.tvs-report-desc{font-size:12.5px;color:#4b5563;line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.tvs-narrative{background:#f7f9fc;border-left:3px solid #1f5fa8;padding:10px 14px 2px;margin-bottom:12px;border-radius:0 4px 4px 0}.tvs-kpi .k[role=link]:hover{border-color:#1f5fa8;box-shadow:0 2px 8px #1f5fa81f}@media print{.tvs-report-run .tvs-card{border:0;padding:0}.tvs-report-run .ant-table-sticky-holder{position:static!important}.tvs-report-run .ant-table-body{max-height:none!important;overflow:visible!important}.tvs-report-run .ant-pagination,.tvs-report-run .ant-breadcrumb{display:none!important}}
