:root{--navy:#0a2443;--navy2:#071a34;--ink:#132743;--muted:#7186a0;--line:#dee6ee;--paper:#f1f5f9;--white:#fff;--green:#20894f;--amber:#d5a133;--red:#ce3744;--blue:#2363a7;--sidebar:264px;--top:78px;--radius:14px;--shadow:0 2px 6px rgba(15,42,74,.05),0 15px 25px rgba(15,42,74,.025);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 'Segoe UI',Tahoma,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}svg{flex-shrink:0}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-.55px;margin:0;font-weight:800}h2{font-size:16px;margin:0;font-weight:750}h3{font-size:15px}small{font-size:11px}.boot{padding:100px 30px;text-align:center;font-size:36px;color:var(--navy);font-weight:900}.boot span{font-size:14px;display:block;color:var(--muted)}
.topbar{z-index:20;position:fixed;top:0;left:0;right:0;background:linear-gradient(105deg,#071831,#0c294d);color:#fff;height:var(--top);border-bottom:3px solid #c69a4e;display:flex;align-items:center;justify-content:space-between;padding:0 25px;box-shadow:0 2px 6px #06142618;gap:20px}.brand-wrap{display:flex;align-items:center;gap:16px;min-width:0}.tra-logo{width:56px;height:49px;object-fit:contain}.authority{display:flex;flex-direction:column;line-height:1.48}.authority strong{font-size:15px;font-weight:800}.authority span{font-size:12px}.authority small{color:#b6c8de}.top-actions{display:flex;align-items:center;gap:16px}.clock{padding-inline:16px;border-inline-start:1px solid #334f6f;display:flex;flex-direction:column;align-items:center;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.3}.clock small{letter-spacing:1px;font-size:9px;color:#98b9d9;font-weight:600}.lang-switch{border-radius:27px;border:1px solid #6c829e;background:#ffffff13;color:#fff;padding:8px 17px;font-weight:700;white-space:nowrap}
.sidebar{position:fixed;z-index:10;inset-block-start:var(--top);inset-inline-start:0;width:var(--sidebar);height:calc(100vh - var(--top));background:linear-gradient(180deg,#0a2546,#09203d);color:#d8e4f4;display:flex;flex-direction:column;overflow:auto}.app-name{font-weight:900;font-size:22px;letter-spacing:1px;padding:20px 23px;border-bottom:1px solid #29445f;display:flex;align-items:center;gap:8px}.app-name small{font-size:8px;letter-spacing:1.6px;margin-inline-start:auto;color:#92aecb}.logo-seed{background:#c99a48;width:11px;height:11px;border-radius:4px;box-shadow:0 0 0 5px #c99a4826}.sidebar nav{padding:10px 12px 20px;flex:1}.nav-group{font-size:10px;color:#7295b5;letter-spacing:1.4px;font-weight:800;margin:18px 12px 7px}.nav-link{display:flex;align-items:center;gap:13px;padding:10px 13px;margin-bottom:3px;border-radius:8px;color:#c4d5e9;font-weight:600;transition:background .16s;color-mix(in srgb,color #fff 82%, #738ca3 18%)}.nav-link svg{color:#c0d5eb}.nav-link:hover{background:#18416d;color:#fff}.nav-link.active{background:#123a65;color:#fff;border-inline-start:3px solid #d6a659;font-weight:750}.sidebar-foot{border-top:1px solid #29445f;padding:15px 22px;display:flex;flex-wrap:wrap;gap:7px}.sidebar-foot b{color:#d5a456}.sidebar-foot small{width:100%;color:#9eacc3}
.main{margin-inline-start:var(--sidebar);padding:34px 34px 18px;min-height:100vh;padding-top:calc(var(--top) + 32px);max-width:calc(100% - var(--sidebar))}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.head-title{display:flex;align-items:center;gap:14px}.page-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--navy);color:#fff}.eyebrow{color:#8198b4;margin:0;font-size:10px;font-weight:800;letter-spacing:1.25px}.head-tools{display:flex;align-items:center;gap:12px}.source-badge{font-size:11px;border-radius:22px;padding:7px 13px;white-space:nowrap;font-weight:750}.source-demo{border:1px solid #ecd4a0;background:#fff9ec;color:#9a6a18}.source-real{color:#2d8153}.source-badge.source-real{border:1px solid #b5dcc6;background:#f0fcf5;color:#25754b}.select,.input{height:36px;background:#fff;border:1px solid #d3dfeb;border-radius:9px;padding:0 12px;min-width:98px;color:var(--ink);outline-color:#5a94d7}.input{min-width:210px}.select-wide{min-width:380px;max-width:100%}.btn{display:inline-flex;gap:7px;align-items:center;justify-content:center;line-height:1.2;padding:10px 15px;border-radius:9px;color:#153351;border:1px solid #cfdeec;background:#fff;font-size:12px;font-weight:750;white-space:nowrap;transition:transform .15s,box-shadow .15s}.btn:hover:not(:disabled){box-shadow:0 3px 9px #10273b15;transform:translateY(-1px)}.btn.solid{background:#0b284b;color:#fff;border-color:#0b284b}.btn.danger{background:#fff3f3;color:#ae3b42;border-color:#edc0c3}.btn.full{width:100%;margin-top:14px}.tag{background:#e8f0fb;border:1px solid #d1e0ef;color:#254e7d;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:800}.small-badges{display:flex;gap:9px;margin-bottom:18px;flex-wrap:wrap}.small-badges span{background:#e9f2fe;color:#355679;padding:5px 11px;border:1px solid #cddff3;border-radius:9px;font-size:12px;font-weight:700}.site-footer{margin-top:30px;display:flex;justify-content:space-between;color:#8399b0;font-size:11px;padding-block:20px;border-top:1px solid #dfe8f1}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:19px}.kpi{background:#fff;box-shadow:var(--shadow);border:1px solid #e0e7f0;border-radius:13px;min-height:117px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;border-block-start:2px solid #e2ebf4}.kpi span{color:#7388a0;font-size:12px;font-weight:750}.kpi strong{display:block;font-size:30px;color:var(--navy2);font-weight:900;font-variant-numeric:tabular-nums;line-height:1.35;letter-spacing:-1px}.kpi small{color:#8395ad}.kpi.accent-green{border-block-start:3px solid #1e944a}.kpi.accent-red{border-block-start:3px solid #d3424c}.panel{background:#fff;border:1px solid #e0e7f0;border-radius:var(--radius);box-shadow:var(--shadow);padding:21px;margin-bottom:18px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-head h2{font-size:16px;display:flex;align-items:center;gap:7px}.panel-head h2::before{content:'';width:4px;height:18px;border-radius:5px;background:#b9893b}.panel-actions{display:flex;align-items:center;gap:9px;margin-top:22px;flex-wrap:wrap}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-col .panel{margin-bottom:0}.report-help{font-size:13px;color:#6a829c;line-height:1.9}.data-source{border:1px solid #dfebf4;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:space-between;padding:13px 18px;gap:12px;margin-bottom:20px}.data-source>span{font-size:12px;color:#728aa5;font-weight:700}.source-grid{display:flex;gap:16px}.source-grid span{border:1px solid #e3eaf1;border-radius:7px;padding:4px 13px;display:flex;align-items:center;gap:8px}.source-grid b{font-size:15px;color:#174c78}.source-grid small{font-size:10px;color:#879bb0}.inline-summary{padding:6px 0;color:#6c86a0;font-size:12px;font-weight:750}.note{color:#8294a9;font-size:12px;margin:9px 0 14px}.text-link,.link-btn{background:none;border:0;color:#276dba;font-weight:800;font-size:12px;padding:4px}.text-link:hover,.link-btn:hover{text-decoration:underline}.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:17px}.controls label{display:flex;align-items:center;gap:9px;color:#677f99;font-size:12px;font-weight:700}
.table-scroll{max-width:100%;overflow:auto;max-height:580px;border:1px solid #e1e8f0;border-radius:11px}.data-table{width:100%;border-collapse:collapse;text-align:start;min-width:570px;font-size:12px}.data-table th{color:#6b839e;background:#f6f9fc;font-size:11px;font-weight:800;white-space:nowrap;position:sticky;top:0;z-index:2}.data-table th,.data-table td{padding:11px 13px;border-bottom:1px solid #e9eef4;text-align:start}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td{background:#f6faff}.data-table td{white-space:nowrap}.data-table b{color:#23486c}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;font-size:12px;font-weight:700;color:#657b93}.pager .btn{padding:5px 12px;font-size:20px}.status-chip{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:3px 8px;border:1px solid transparent;white-space:nowrap;font-weight:750;font-size:10px}.status-chip i{height:7px;width:7px;border-radius:50%;background:currentColor}.status-expected,.status-reception{background:#e9f8ee;color:#237e4c;border-color:#c1e7cd}.status-unexpected{background:#fff0f0;color:#c73643;border-color:#fad0d0}.status-missing,.status-noReception{background:#fff8df;color:#a47b11;border-color:#f4df9a}.status-none,.status-notMeasured{background:#edf1f5;color:#596a7e;border-color:#d4dde6}.status-unknown{background:#f1f2f5;color:#8793a4}
.arc-shell{margin:13px 0 12px}.arc-axis{display:flex;justify-content:space-between;direction:ltr;color:#7791ac;font-size:11px;font-weight:700;margin-bottom:9px}.arc-grid{display:grid;grid-template-columns:repeat(299,minmax(2px,1fr));gap:0;width:100%;direction:ltr;height:146px;border:1px solid #d9e2ef;border-radius:8px;overflow:hidden;background:#f1f5f9;padding:8px 6px;align-items:stretch}.arc-cell{min-width:1px;cursor:crosshair;border-inline-start:1px solid #ffffff60;transition:filter .14s}.arc-cell:hover{filter:brightness(1.4);outline:2px solid #213c60;z-index:2;position:relative}.arc-compact{height:92px}.legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;color:#667b93;font-size:11px;font-weight:700;margin:15px 0}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px}.subheading{font-size:13px;color:#254664;font-weight:850;margin:23px 0 10px}.band-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.band-summary>div{display:flex;flex-direction:column;gap:4px}.band-summary strong{font-size:11px;color:#486681}.band-summary span{font-size:10px;color:#7b92ad}.progress{background:#e5edf6;height:8px;border-radius:20px;overflow:hidden;min-width:50px;flex:1}.progress i{background:linear-gradient(90deg,#ccaa49,#208b50);display:block;height:100%;border-radius:20px}.campaign-list{display:flex;flex-direction:column;gap:12px}.campaign{border:1px solid #e4ecf3;border-radius:12px;padding:16px;display:flex;align-items:center;gap:22px;justify-content:space-between}.campaign h3{margin:0}.campaign p{color:#8499af;font-size:12px;margin:4px 0 0}.campaign-progress{display:flex;align-items:center;gap:9px;min-width:160px}.campaign-progress small{font-variant-numeric:tabular-nums;color:#627e98}
.coverage-table{min-width:650px;font-size:11px}.coverage-table th,.coverage-table td{padding:6px 7px;text-align:center}.coverage-table tr>th:first-child{position:sticky;inset-inline-start:0;background:#f5f9fc;z-index:4}.coverage-table thead th:first-child{z-index:5}.matrix-cell{border:0;border-radius:4px;display:block;width:100%;height:18px;min-width:25px}.matrix-cell:hover{outline:2px solid #214b76}.matrix-complete{background:#228648}.matrix-partial{background:#d8aa32}.matrix-demo{background:#cedae6}.heat-table .matrix-cell{height:22px}
.frequency-bar{height:74px;background:#eff4f9;border:1px solid #d7e1ed;border-radius:8px;position:relative;direction:ltr;overflow:hidden;margin:20px 0 4px}.frequency-bar i{position:absolute;top:0;bottom:0;border-right:1px solid #ffffff70}.bar-ticks{display:flex;justify-content:space-between;direction:ltr;color:#7990a5;font-size:11px}.image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:17px}.image-grid figure{margin:0;border:1px solid #e0e8f1;border-radius:11px;padding:10px;background:#fafcff}.image-grid figcaption{padding:8px;color:#7187a0;text-align:center;font-size:12px}.spectrum-image{width:100%;max-height:320px;object-fit:contain;cursor:zoom-in}.no-image{border:1px dashed #d3dfe9;border-radius:10px;display:flex;justify-content:center;align-items:center;min-height:130px;color:#829ab2}.meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid #e5ebf2;border-radius:9px;overflow:hidden;background:#e5ebf2}.meta-grid>div{background:white;padding:12px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}.meta-grid span{color:#8497ae;font-size:11px}.meta-grid strong{color:#213c5c;font-weight:750;font-size:12px;overflow-wrap:anywhere}.comparison-chart{padding:16px 4px}.comparison-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.comparison-row>strong{width:55px}.comparison-row>span{min-width:120px;color:#8195aa;text-align:end;font-size:12px}
.upload-tabs{display:flex;gap:8px;justify-content:flex-start;margin-bottom:15px}.tab{padding:10px 17px;border:1px solid #cfdce9;background:#fff;border-radius:24px;font-size:12px;font-weight:800;color:#546d87}.tab.selected{color:#fff;background:#092644;border-color:#092644}.upload-columns{display:grid;grid-template-columns:1.65fr 1fr;gap:20px}.upload-columns .panel{min-width:0}.dropzone{border:2px dashed #cad9e8;background:#fbfdff;min-height:255px;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center;cursor:default;transition:background .16s}.dropzone.drag-active{background:#dff0ff;border-color:#437cbb}.drop-illustration{color:#24547e;background:#eaf3fd;padding:13px;border-radius:12px;margin-bottom:11px}.dropzone h2{font-size:17px}.dropzone p{max-width:470px;color:#7d92a9;font-size:12px;margin:8px 0 14px}.formats{margin-top:12px;font-size:11px;color:#93a5b7;letter-spacing:1.5px}.upload-label{cursor:pointer}.file-list{display:flex;flex-direction:column;gap:7px}.file{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid #e3ecf3;border-radius:10px}.file-icon{color:#2d6392}.file>div{flex:1;min-width:0}.file strong{display:block;font-size:12px;overflow-wrap:anywhere}.file small{color:#889bb0}.icon-button{border:1px solid #f5ced1;background:#fff4f4;color:#c94855;border-radius:8px;padding:1px 10px;font-size:20px}.result-preview{margin-top:21px;border-top:1px solid #e6edf5;padding-top:17px}.result-preview .kpi{min-height:85px;padding:12px}.result-preview .kpi strong{font-size:24px}.section-bar{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-bar h3{margin:0 0 8px}.status-counts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.status-counts strong{font-size:12px;color:#26466a;margin-inline-end:8px}.validate-summary{background:#f4f8fc;border:1px solid #dfe8f3;padding:12px 15px;border-radius:10px;margin-bottom:13px;font-size:12px}.validate-summary p{margin:4px 0;color:#667e97}.validate-summary small{color:#839aaf}.imported-library h2{margin-bottom:15px}.library-list{display:flex;flex-direction:column;gap:9px}.library-item{text-align:start;border:1px solid #e0e8f0;border-radius:10px;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:12px;color:#234465}.library-item:hover{background:#f6faff}.library-item strong{font-size:13px}.library-item span{text-align:end;color:#5c7a9b;font-size:11px}.library-item small{grid-column:1/-1;color:#8497ad}.library-bottom{margin-top:18px;color:#8ba0b3;font-size:11px}.settings-stack{display:grid;gap:3px}.settings-stack>div{padding:18px 10px;border-bottom:1px solid #e5ecf4}.settings-stack strong{font-size:14px}.settings-stack p,.notes p{font-size:12px;color:#7d91a8;line-height:1.95;margin:5px 0 12px}.empty{min-height:165px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px;color:#7890aa}.empty-icon{color:#9cb2c9;margin-bottom:9px}.empty h3{color:#536e8a;margin:5px}.empty p{max-width:470px;margin:0 0 11px}.modal-backdrop{position:fixed;inset:0;background:#061a31e8;z-index:100;display:grid;place-items:center;padding:30px}.modal-content{position:relative;max-width:94vw;max-height:94vh;background:white;border-radius:13px;padding:15px;overflow:auto}.modal-image{max-width:88vw;max-height:82vh;object-fit:contain}.modal-close{position:absolute;top:10px;right:10px;background:#102c50;color:#fff;border:0;border-radius:50%;font-size:25px;width:38px;height:38px}.toast-tray{position:fixed;bottom:22px;left:20px;z-index:200;display:flex;flex-direction:column;gap:9px}.toast{background:#123d63;color:#fff;padding:13px 18px;border-radius:10px;box-shadow:0 6px 20px #142d3d25;max-width:440px;font-size:12px}.toast-error{background:#9d3540}
@media(max-width:1300px){:root{--sidebar:220px}.main{padding-inline:22px}.kpi-grid{gap:9px}.kpi{padding:14px}.kpi strong{font-size:25px}.upload-columns{grid-template-columns:1.4fr 1fr}}
@media(max-width:1000px){:root{--sidebar:64px}.sidebar .app-name{font-size:0;justify-content:center;padding:22px 5px}.sidebar .app-name small{display:none}.sidebar nav{padding:8px 5px}.nav-link{justify-content:center;padding:12px}.nav-link span,.nav-group,.sidebar-foot{display:none}.main{padding-inline:20px}.topbar{padding-inline:16px}.authority strong{font-size:12px}.authority span,.authority small{font-size:10px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.upload-columns{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}}
@media(max-width:600px){:root{--top:64px;--sidebar:0px}.topbar{height:64px;padding-inline:8px}.tra-logo{width:35px}.authority strong{font-size:10px}.authority span{font-size:9px}.authority small{display:none}.clock{font-size:13px;padding-inline:6px}.clock small{font-size:7px}.lang-switch{padding:7px 8px;font-size:10px}.sidebar{position:fixed;top:auto;bottom:0;inset-inline:0;width:100%;height:57px;overflow-x:auto;overflow-y:hidden;z-index:18}.app-name,.sidebar-foot,.nav-group{display:none}.sidebar nav{display:flex;width:max-content;align-items:center;height:57px;padding:4px}.nav-link{width:43px;min-width:43px;height:45px;padding:5px}.main{max-width:100%;margin:0;padding:calc(var(--top) + 16px) 12px 75px}.page-head{align-items:flex-start}.head-title{gap:8px}.head-title h1{font-size:20px}.page-icon{width:36px;height:36px}.head-tools{flex-wrap:wrap;justify-content:flex-end}.source-badge{font-size:9px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi{min-height:105px}.kpi strong{font-size:24px}.data-source{flex-direction:column;align-items:stretch}.source-grid{gap:5px;justify-content:space-between}.source-grid span{padding:4px}.source-grid small{font-size:9px}.panel{padding:14px}.two-col{gap:13px}.meta-grid{grid-template-columns:repeat(2,1fr)}.image-grid{grid-template-columns:1fr}.upload-columns{grid-template-columns:1fr}.site-footer{display:none}}
@media print{.topbar,.sidebar,.head-tools,.btn,.panel-actions,.controls,.upload-tabs,.toast-tray,.site-footer{display:none!important}.main{margin:0;padding:10px;max-width:100%}.panel{box-shadow:none;break-inside:avoid}.kpi{box-shadow:none}.table-scroll{overflow:visible;max-height:none}}
.pdf-modal{width:90vw;height:90vh;max-width:none;max-height:none;padding:13px}.pdf-frame{width:100%;height:100%;border:0}
.integrity-list{display:flex;flex-wrap:wrap;gap:9px}.integrity-list span{font-size:11px;border-radius:20px;padding:6px 12px;font-weight:750}.integrity-ok{background:#e9f8ee;color:#207b4c}.integrity-warn{background:#fff4dd;color:#916c18}
