@page{size:A4 landscape;margin:0}*{margin:0;padding:0;box-sizing:border-box}body,html{background:#f4f6f8;font-family:Liberation Sans,DejaVu Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#12212e}.app-bar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px clamp(12px,3vw,28px);background:#ffffff;border-bottom:2px solid #1d3e5f;box-shadow:0 1px 6px rgba(29,62,95,.08)}.app-brand{font-size:15px;font-weight:700;color:#1d3e5f;letter-spacing:.2px}.app-brand span{color:#94a3b1;font-weight:400}.company-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.company-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;font-size:13.5px;font-weight:700;color:#4a5966;text-decoration:none;background:#eef2f6;border:1px solid rgba(29,62,95,.14);border-radius:999px;transition:background .12s ease,color .12s ease,box-shadow .12s ease;white-space:nowrap}.company-tab:hover{background:#e3e9ef;color:#1d3e5f}.company-tab[aria-current=page]{background:#1d3e5f;color:#ffffff;border-color:#1d3e5f;box-shadow:0 2px 8px rgba(29,62,95,.28)}.company-tab .dot{width:8px;height:8px;border-radius:50%;background:#94a3b1}.company-tab[aria-current=page] .dot{background:#ffffff}.data-badge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8a6d1a;background:#fdf3d6;border:1px solid #ecd9a0;border-radius:6px;padding:3px 8px}.report{padding:clamp(12px,2.4vw,26px) clamp(8px,2vw,24px) 40px}.page{width:100%;max-width:1123px;margin:0 auto 22px;padding:clamp(14px,2.2vw,26px) clamp(14px,2.4vw,30px);background:#f7f9fb;border:1px solid rgba(29,62,95,.1);border-radius:14px;box-shadow:0 6px 20px rgba(29,62,95,.07);display:flex;flex-direction:column}header.report-head{gap:14px;border-bottom:2px solid #1d3e5f;padding-bottom:8px;margin-bottom:12px}.logo,header.report-head{display:flex;align-items:center}.logo{flex:0 0 auto}.logoimg{height:44px;width:auto;display:block}h1{font-size:20px;color:#1d3e5f;flex:1 1}h1 span{color:#94a3b1;font-weight:400}.meta{font-size:11px;color:#8a97a3;text-align:right;line-height:1.5}.tile{background:#ffffff;border:1px solid rgba(29,62,95,.14);border-radius:10px;padding:12px 14px}.tile h2{font-size:11.5px;color:#1d3e5f;font-weight:700;margin-bottom:8px}.kpi-row{grid-template-columns:repeat(4,1fr);grid-gap:10px}.kpi-row,.kpi-row3{display:grid;gap:10px;margin-bottom:10px}.kpi-row3{grid-template-columns:repeat(3,1fr);grid-gap:10px}.kpi-label{font-size:11px;color:#4a5966;margin-bottom:3px}.kpi-value{font-size:22px;font-weight:700;color:#1d3e5f}.kpi-sub{font-size:10px;color:#8a97a3;margin-top:2px}.grid2{display:flex;gap:12px;min-height:0}.grid2,.grid2>.tile{flex:1 1}.legend{display:flex;gap:16px;font-size:11px;color:#4a5966;margin-bottom:6px}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}footer.report-foot{margin-top:8px;line-height:1.45}.pagenum,footer.report-foot{font-size:9.5px;color:#8a97a3}.pagenum{text-align:right;margin-top:auto;padding-top:6px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:10.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}th{text-align:right;font-size:9.5px;color:#4a5966;font-weight:700;border-bottom:1px solid #c2ccd5;padding:6px 7px;white-space:nowrap}td:first-child,th:first-child{text-align:left}td{text-align:right;padding:6px 7px;border-bottom:1px solid #e3e8ed;white-space:nowrap}td:first-child{color:#4a5966}tr.sum td{border-top:1.5px solid #c2ccd5;border-bottom:none;font-weight:700}td.bad{color:#d03b3b}td.bad,td.good{font-weight:700}td.good{color:#0a7a34}.zlegend{font-size:9px;color:#8a97a3;margin-top:10px;line-height:1.4}.zrow{display:grid;grid-template-columns:170px 1fr 1fr;grid-gap:18px;gap:18px;align-items:center;padding:8px 2px;border-bottom:1px solid #e3e8ed}.zrow:last-of-type{border-bottom:none}.store{font-size:12px;font-weight:700}.chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#4a5966;margin-top:3px}.chip i{width:8px;height:8px;border-radius:50%;display:inline-block}.mblock{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mline1{display:flex;justify-content:space-between;font-size:10px;color:#4a5966;margin-bottom:3px}.mline2{font-size:9.5px;color:#8a97a3;margin-top:3px}.mline2 b{color:#12212e}.mline2 .ok{color:#0a7a34;font-weight:700}.meter{position:relative;height:10px;border-radius:5px;background:#dbe2e9}.meter .fill{position:absolute;left:0;top:0;height:100%;border-radius:5px;background:#1d3e5f}.meter .tick{position:absolute;top:-3px;width:1.5px;height:16px;background:#12212e;opacity:.55}.cols3{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:12px;gap:12px;flex:1 1;align-items:start}.colhead{font-size:13px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:7px}.colhead i{width:10px;height:10px;border-radius:50%;display:inline-block}.card{background:#ffffff;border:1px solid rgba(29,62,95,.14);border-radius:8px;padding:10px 12px;margin-bottom:10px}.cardhead{font-size:12px;margin-bottom:6px;display:flex;align-items:center;gap:8px}.tag{font-size:8.5px;font-weight:700;color:#4a5966;border:1px solid #c2ccd5;border-radius:9px;padding:1.5px 7px;text-transform:uppercase;letter-spacing:.4px}.card ul{margin-left:15px}.card li{font-size:10px;color:#4a5966;line-height:1.5;margin-bottom:3px}.card li b{color:#12212e}.dash-chart{width:100%;height:auto;display:block}@media screen and (max-width:860px){.kpi-row,.kpi-row3{grid-template-columns:repeat(2,1fr)}.cols3{grid-template-columns:1fr}.grid2{flex-direction:column}.zrow{grid-template-columns:1fr;gap:10px}}@media screen and (max-width:560px){.kpi-row,.kpi-row3{grid-template-columns:1fr}header.report-head{flex-wrap:wrap}.meta{text-align:left;width:100%}.company-tabs{margin-left:0;width:100%}}@media print{body,html{background:#ffffff}.app-bar{display:none!important}.report{padding:0}.page{width:297mm;height:210mm;max-width:none;margin:0;padding:9mm 10mm;background:#ffffff;border:none;border-radius:0;box-shadow:none;page-break-after:always}.page:last-child{page-break-after:auto}.table-scroll{overflow:visible}}.company-tabs{margin-left:0}.app-user{display:flex;align-items:center;gap:12px;margin-left:auto}.app-adminlink,.app-username{font-size:12.5px;font-weight:700;color:#1d3e5f}.app-adminlink{text-decoration:none;padding:6px 12px;border:1px solid rgba(29,62,95,.2);border-radius:999px}.app-adminlink:hover,.app-logout{background:#eef2f6}.app-logout{font-size:12.5px;font-weight:700;color:#4a5966;border:1px solid rgba(29,62,95,.14);border-radius:999px;padding:6px 14px;cursor:pointer}.app-logout:hover{background:#e3e9ef;color:#1d3e5f}.app-logout:disabled{opacity:.6;cursor:default}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f4f6f8}.auth-card{width:100%;max-width:380px;background:#ffffff;border:1px solid rgba(29,62,95,.14);border-radius:14px;box-shadow:0 10px 30px rgba(29,62,95,.1);padding:28px 26px;display:flex;flex-direction:column;gap:14px}.auth-brand{font-size:14px;font-weight:700;color:#1d3e5f}.auth-brand span{color:#94a3b1;font-weight:400}.auth-title{font-size:22px;color:#1d3e5f;margin-top:2px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field span{font-size:12px;font-weight:700;color:#4a5966}.auth-field input,.fld input,.fld select{font-size:14px;padding:10px 12px;border:1px solid #c2ccd5;border-radius:8px;background:#fff;color:#12212e}.auth-field input:focus,.fld input:focus,.fld select:focus{outline:2px solid #1d3e5f;outline-offset:1px}.auth-submit{margin-top:6px;font-size:14px;font-weight:700;color:#fff;background:#1d3e5f;border:none;border-radius:8px;padding:11px 14px;cursor:pointer}.auth-submit:hover{background:#17324d}.auth-submit:disabled{opacity:.7;cursor:default}.auth-error{font-size:12.5px;color:#8a1c1c;background:#fdeaea;border:1px solid #f2c2c2;border-radius:8px;padding:9px 11px}.admin-main{padding:clamp(14px,2.4vw,28px);max-width:1180px;margin:0 auto}.admin-head h1{font-size:22px;color:#1d3e5f}.admin-head p{font-size:12.5px;color:#4a5966;margin-top:6px;max-width:760px;line-height:1.5}.admin-panel{margin-top:16px}.admin-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:12px}.admin-count{font-size:12px;color:#8a97a3}.admin-msg{font-size:12.5px;border-radius:8px;padding:9px 12px;margin-bottom:12px}.admin-msg.ok{color:#0a5a28;background:#e7f6ec;border:1px solid #b7e3c4}.admin-msg.err{color:#8a1c1c;background:#fdeaea;border:1px solid #f2c2c2}.btn{font-size:12.5px;font-weight:700;color:#1d3e5f;background:#eef2f6;border:1px solid rgba(29,62,95,.16);border-radius:8px;padding:8px 14px;cursor:pointer}.btn:hover{background:#e3e9ef}.btn:disabled{opacity:.55;cursor:default}.btn.small{padding:6px 11px;font-size:12px}.btn.primary{background:#1d3e5f;color:#fff;border-color:#1d3e5f}.btn.primary:hover{background:#17324d}.btn.warn{color:#8a5a00;background:#fdf3d6;border-color:#ecd9a0}.btn.danger{color:#fff;background:#c0392b;border-color:#c0392b}.btn.danger:hover{background:#a5301f}.admin-card{background:#fff;border:1px solid rgba(29,62,95,.14);border-radius:12px;padding:18px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.admin-card h2{font-size:15px;color:#1d3e5f}.admin-card .grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.fld{display:flex;flex-direction:column;gap:5px}.fld>span{font-size:12px;font-weight:700;color:#4a5966}.fld-set{border:1px solid #e3e8ed;border-radius:8px;padding:10px 12px;display:flex;gap:16px;flex-wrap:wrap}.fld-set legend{font-size:12px;font-weight:700;color:#4a5966;padding:0 6px}.check{font-size:13px;color:#12212e;display:inline-flex;align-items:center;gap:6px}.admin-actions{display:flex;gap:10px}.admin-table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-table th{text-align:left;font-size:11px;color:#4a5966;border-bottom:1px solid #c2ccd5;padding:8px 10px;white-space:nowrap}.admin-table td{text-align:left;padding:9px 10px;border-bottom:1px solid #e3e8ed;vertical-align:middle}.admin-table td.right{text-align:right}.admin-table .row-inactive td{opacity:.6}.muted{color:#8a97a3}.role-badge{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 8px}.role-badge.admin{color:#1d3e5f;background:#e3ecf5;border:1px solid #bcd2e6}.role-badge.user{color:#4a5966;background:#eef2f6;border:1px solid #d6dee6}.status-badge{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 8px}.status-badge.active{color:#0a5a28;background:#e7f6ec;border:1px solid #b7e3c4}.status-badge.inactive{color:#8a1c1c;background:#fdeaea;border:1px solid #f2c2c2}.chip-badge{display:inline-block;font-size:10.5px;color:#4a5966;background:#eef2f6;border:1px solid #d6dee6;border-radius:6px;padding:2px 7px;margin:0 4px 2px 0}.editor-row td{background:#f7f9fb}.editor{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;padding:6px 2px 10px}.editor-col{display:flex;flex-direction:column;gap:8px}.editor-col h3{font-size:12.5px;color:#1d3e5f;margin-top:6px}.editor-col h3.danger-h{color:#c0392b}.editor-col .row{display:flex;gap:8px;align-items:center}.editor-col .hint{font-size:11px;color:#8a97a3}.access-note{padding:24px}.access-note h2{font-size:16px;color:#1d3e5f;margin-bottom:8px}.access-note p{font-size:13px;color:#4a5966;line-height:1.55;max-width:560px}@media screen and (max-width:860px){.admin-card .grid2,.editor{grid-template-columns:1fr}}@media print{.app-user{display:none!important}}