:root{--blue:#0058ab;--vibrant:#1db8f2;--navy:#1b2a41;--deep:#0a3b66;--teal:#0f878a;--indigo:#3a37ab;--bg:#f4f7f9;--line:#dde6eb;--text:#1e2530;--muted:#5e6e7a;--danger:#c24545;--shadow:0 2px 10px #142d4617}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Ubuntu,Segoe UI,system-ui,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}.top{border-bottom:1px solid var(--line);z-index:30;background:#fff;align-items:center;gap:18px;height:70px;padding:0 24px;display:flex;position:sticky;top:0}.logo{color:var(--blue);align-items:center;gap:10px;font-size:20px;font-weight:700;display:inline-flex}.logo img{object-fit:contain;background:var(--blue);border-radius:7px;width:48px;height:44px;padding:7px}.logo span{color:var(--blue)}.title{border-left:1px solid var(--line);padding-left:18px}.title small{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;display:block}.user{text-align:right;margin-left:auto;font-size:12px}.role{color:var(--blue);background:#e3f1f9;border-radius:12px;margin-left:8px;padding:3px 8px;display:inline-block}.tabs,.filters{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 24px;display:flex}.tab,.btn{border:1px solid var(--line);cursor:pointer;color:var(--navy);background:#fff;border-radius:6px;padding:8px 13px;text-decoration:none}.tab.on,.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.danger{border-color:var(--danger);color:var(--danger)}.filters input{width:240px}.filters input,.filters select,.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 10px}.filters .count{color:var(--muted);margin-left:auto}main{padding:22px 24px}.hero{background:linear-gradient(130deg,var(--navy),var(--deep));color:#fff;border-radius:12px;margin-bottom:20px;padding:32px}.hero h1{margin:0 0 8px;font-size:30px}.hero p{color:#c9d9e7;max-width:700px}.stats{flex-wrap:wrap;gap:12px;display:flex}.stat{box-shadow:var(--shadow);background:#fff;border-radius:9px;min-width:150px;padding:16px 20px}.stat b{color:var(--blue);font-size:24px;display:block}.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:9px;margin-bottom:18px;padding:18px}.panel h2{color:var(--navy);margin:0 0 14px;font-size:17px}.matrix-wrap{overflow:auto}.matrix{border-collapse:separate;border-spacing:0;width:100%;min-width:1200px}.matrix th{background:var(--navy);color:#fff;text-align:left;padding:11px;font-size:12px;position:sticky;top:0}.matrix td{vertical-align:top;border:0 solid var(--line);border-width:0 1px 1px 0;min-width:170px;padding:7px}.matrix td:first-child{color:var(--blue);background:#fff;font-weight:600;position:sticky;left:0}.chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-left:3px solid #8aa0ac;border-radius:6px;margin:4px 0;padding:7px}.chip.p1{background:#f0fafe;border-left-color:#00b0f0}.chip.p2{background:#fdf3f9;border-left-color:#e557ad}.chip .code{color:var(--navy);font-size:11px;font-weight:600}.chip .name{margin-top:2px;font-size:11px}.chip .meta{color:var(--muted);margin-top:4px;font-size:9px}.tag{color:var(--blue);background:#e3f1f9;border-radius:3px;margin:3px 3px 0 0;padding:2px 5px;font-size:9px;display:inline-block}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:9px;padding:16px}.card h3{color:var(--navy);margin:0 0 5px}.card p{color:var(--muted);line-height:1.5}.table{border-collapse:collapse;background:#fff;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:10px;font-size:12px}.table th{color:var(--muted);text-transform:uppercase;font-size:10px}.modal{z-index:50;background:#14202d88;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:10px;width:min(760px,94vw);max-height:90vh;padding:22px;overflow:auto}.dialog h2{margin-top:0}.formgrid{grid-template-columns:repeat(2,1fr);gap:13px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field.wide{grid-column:1/-1}.field label{text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600}.checks{flex-wrap:wrap;gap:18px;display:flex}.actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.error{color:var(--danger);background:#fdf1f1;border-radius:6px;padding:10px}.empty{text-align:center;color:var(--muted);padding:50px}.bars{gap:8px;display:grid}.bar{grid-template-columns:140px 1fr 50px;align-items:center;gap:8px;display:grid}.track{background:#eef3f7;border-radius:5px;height:14px;overflow:hidden}.fill{background:var(--blue);height:100%}@media (max-width:700px){.top{padding:0 12px}.title{display:none}.tabs,.filters,main{padding-left:12px;padding-right:12px}.formgrid{grid-template-columns:1fr}.field.wide{grid-column:auto}.user .email{display:none}}
.user{align-items:center;gap:10px;display:flex}.user-copy{align-items:center;display:flex}.avatar{width:40px;height:40px;box-shadow:0 0 0 1px var(--line);object-fit:cover;background:#e3f1f9;border:2px solid #fff;border-radius:50%}.avatar.fallback{color:var(--blue);place-items:center;font-weight:700;display:grid}
.tabs{flex-wrap:nowrap;gap:0;padding-top:0;padding-bottom:0;overflow-x:auto}.tab{white-space:nowrap;border:0;border-bottom:3px solid #0000;border-radius:0;padding:14px 15px}.tab.on{border-bottom-color:var(--blue);color:var(--blue);background:#fff}.hero{background:linear-gradient(120deg,#071f3d 0%,#064f8f 70%,#12a9e8 100%);border-radius:0;padding:48px}.hero h1{font-size:38px;font-weight:400}.cards .card{border-top:3px solid var(--vibrant)}.dashboard-heading{border-bottom:3px solid var(--vibrant);background:#fff;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;padding:24px;display:flex}.dashboard-heading h1{color:var(--navy);margin:2px 0 6px;font-size:30px}.eyebrow{color:var(--blue);letter-spacing:1.2px;margin:0;font-size:11px;font-weight:700}.thor-upload{align-items:center;gap:8px;display:flex}.thor-upload input{opacity:0;width:1px;height:1px;position:absolute}.kpi-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.kpi{background:var(--navy);color:#fff;padding:18px}.kpi span{color:#b9ccda;text-transform:uppercase;font-size:11px;display:block}.kpi strong{margin-top:5px;font-size:28px;font-weight:400;display:block}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashboard-grid .panel{margin:0}.dashboard-grid .bar{grid-template-columns:minmax(110px,160px) 1fr 90px}.dashboard-grid .bar b{text-align:right;font-size:11px}.preview-title{justify-content:space-between;align-items:start;gap:20px;display:flex}.import-preview h2{margin-bottom:3px}@media (max-width:850px){.dashboard-heading{flex-direction:column;align-items:stretch}.thor-upload{flex-wrap:wrap}.kpi-row,.dashboard-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.kpi-row,.dashboard-grid{grid-template-columns:1fr}}
.country-picker{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:20px 24px;display:flex}.country-picker h1{color:var(--navy);margin:3px 0;font-size:28px;font-weight:500}.country-picker p{color:var(--muted);margin:0}.country-picker label{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.country-picker select{border:1px solid var(--line);min-width:220px;color:var(--navy);background:#f7fafc;border-radius:20px;padding:9px 14px}.country-donuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.donut-card{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:18px}.donut-copy h2{color:var(--navy);margin:0;font-size:15px}.donut-copy p{color:var(--muted);margin:3px 0 14px;font-size:11px}.donut-wrap{align-items:center;gap:18px;display:flex}.donut{border-radius:50%;flex:none;place-items:center;width:138px;height:138px;display:grid;transform:rotate(-90deg)}.donut-hole{border:1px solid var(--line);background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:82px;height:82px;display:flex;transform:rotate(90deg);box-shadow:inset 0 0 0 5px #f8fafc}.donut-hole strong{color:var(--navy);font-size:25px}.donut-hole span{color:var(--muted);text-transform:uppercase;font-size:10px}.donut-legend{min-width:0;color:var(--muted);gap:7px;font-size:10px;display:grid}.donut-legend div{grid-template-columns:8px 22px minmax(0,1fr);align-items:center;gap:5px;display:grid}.donut-legend span{border-radius:50%;width:8px;height:8px}.donut-legend b{color:var(--navy);font-size:11px}.country-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px;display:grid}.country-detail-grid .panel{margin:0}.country-bars{gap:9px;display:grid}.country-bars>div{grid-template-columns:125px 1fr 24px;align-items:center;gap:8px;font-size:11px;display:grid}.country-bars>div>span{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.country-bars i{background:#eef3f7;border-radius:4px;height:13px;overflow:hidden}.country-bars em{background:var(--blue);border-radius:4px;height:100%;display:block}.country-bars b{text-align:right}.attention-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 2px;display:flex}.attention-row:last-child{border:0}.attention-row>div{min-width:0}.attention-row b{color:var(--navy);font-size:12px;display:block}.attention-row small{color:var(--muted);margin-top:3px;display:block}.attention-row p{color:var(--muted);background:#f7fafc;border-radius:5px;margin:5px 0 0;padding:6px 8px;font-size:11px;font-style:italic}.status-dot{background:#9aa7b0;border-radius:50%;width:9px;height:9px;margin-top:4px}.status-dot.red{background:#c24545}.status-dot.yellow{background:#f0a93b}.status-dot.green{background:#2ea88c}@media (max-width:1100px){.country-donuts{grid-template-columns:1fr 1fr}.country-detail-grid{grid-template-columns:1fr}}@media (max-width:700px){.country-picker,.country-picker label{flex-direction:column;align-items:stretch}.country-picker select{min-width:0}.country-donuts{grid-template-columns:1fr}.donut-wrap{justify-content:center}}
