:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#23372f;background:#f4f7f5;font-synthesis:none;--green:#087f5b;--muted:#78867e;--border:#e3eae6}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select{cursor:pointer}button{transition:.15s}button:hover{filter:brightness(.95)}button:focus-visible,a:focus-visible{outline:3px solid #61b49d;outline-offset:3px}aside{position:fixed;inset:0 auto 0 0;width:218px;background:#102e25;color:#dceae4;padding:36px 22px}.brand{display:flex;gap:12px;align-items:center;color:white;text-decoration:none;font-weight:750;letter-spacing:2px;font-size:17px}.mark{display:grid;place-items:center;width:40px;height:44px;border:1px solid #628579;border-radius:12px;font-size:26px;color:#b1e7cb}.brand small{display:block;font-size:8px;letter-spacing:1.4px;color:#91aaa0;margin-top:6px}.nav-caption{font-size:9px;color:#87a297;letter-spacing:1.5px;margin:58px 8px 17px}.nav{display:flex;gap:12px;padding:14px;border-radius:7px;color:#e5f6ed;text-decoration:none;font-size:13px;background:#21463a;border:1px solid #345749}.aside-bottom{position:absolute;bottom:30px;font-size:12px;color:#b3c7bd}.aside-bottom small{display:block;line-height:1.8;color:#7f9d8e;margin-top:12px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#86d9ab;margin-right:7px}main{margin-left:218px;padding:38px 38px 20px;max-width:1800px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;color:var(--green)}h1{font-size:29px;letter-spacing:-1px;margin:10px 0}p{color:var(--muted);font-size:12px;line-height:1.6;margin:4px 0}header p span{margin:0 10px;color:#c1ccc6}button{border:0;border-radius:6px;padding:11px 16px;font-size:12px;font-weight:600}.primary{background:var(--green);color:white}.secondary{background:white;border:1px solid var(--border);color:#425b50}.text-button{background:transparent;color:var(--green);padding:6px;font-size:11px}.notice{display:flex;align-items:center;gap:13px;background:#eaf3ed;border:1px solid #d5e5d9;border-radius:8px;padding:14px 18px;font-size:11px;color:#597263;line-height:1.8;margin-bottom:24px}.notice>span{font-size:19px;color:#5d8d73}.notice strong{font-weight:600;color:#345642}.notice button{margin-left:auto;white-space:nowrap}.panel{background:white;border:1px solid var(--border);border-radius:10px;padding:22px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}h2{font-size:14px;font-weight:650;margin:0;letter-spacing:-.2px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:600;color:#66776d}input,select{min-width:0;width:100%;border:1px solid #dfe6e1;border-radius:5px;padding:10px;background:#fff;color:#3d5347;font-size:12px;height:39px;outline:none}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 2px #e3f5ee}#filter-status{font-size:11px;color:#a75c32;margin-top:10px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin:22px 0}.metrics article{padding:21px;background:white;border:1px solid var(--border);border-radius:9px}.metrics article>div{font-size:12px;color:#66776c;display:flex;justify-content:space-between;align-items:center}.metrics article>div span{background:#edf6f0;border-radius:5px;color:var(--green);padding:6px;font-size:11px}.metrics strong{display:block;font-size:26px;letter-spacing:-.8px;margin:13px 0 9px;overflow-wrap:anywhere}.metrics article:first-child strong{color:var(--green)}.metrics small{font-size:10px;color:#94a197}.charts{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;margin-bottom:22px}.legend{font-size:10px;color:var(--green)}.timeline{height:215px;display:flex;align-items:stretch;gap:12px;padding:12px 4px 0;overflow-x:auto;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#f0f3f1 50px)}.bar-column{min-width:44px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:9px;color:#8a988f}.bar-column strong{font-weight:500;color:#536f60;font-size:9px;margin-bottom:7px;white-space:nowrap}.bar{background:#19966e;border-radius:4px 4px 0 0;width:min(70%,42px);min-height:2px}.bar-column span{padding-top:12px;height:30px;white-space:nowrap}.sources{display:grid;gap:18px;padding-top:10px}.source-label{display:flex;justify-content:space-between;font-size:11px;gap:12px;margin-bottom:9px}.source-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}.track{height:7px;background:#f1f5f2;border-radius:4px;overflow:hidden}.track i{display:block;background:#168d67;height:100%;border-radius:4px}.source-note{font-size:10px;color:var(--muted)}.badge{display:inline-block;background:#edf5ef;padding:4px 7px;border-radius:4px;font-size:10px;margin-left:6px;color:var(--green)}.results{padding:22px 0 0}.results>.section-title{padding:0 22px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}th{text-align:left;background:#f8faf8;color:#809087;font-size:10px;font-weight:500;padding:14px 16px;border-block:1px solid var(--border)}th button{padding:0;background:transparent;color:inherit;font-size:10px}td{padding:16px;border-bottom:1px solid #edf1ee;color:#6a7b70}td.supplier{font-weight:600;color:#304d3c;max-width:220px;overflow:hidden;text-overflow:ellipsis}.numeric{text-align:right;color:#244b37;font-variant-numeric:tabular-nums}tbody tr:hover{background:#f8fcf9}td button{background:#edf6f0;color:var(--green);padding:5px 9px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;font-size:11px;color:#809087}.pagination>div{display:flex;align-items:center;gap:15px}.pagination button{padding:6px 11px}button:disabled{opacity:.4;cursor:default}footer{display:flex;gap:12px;padding:24px 0 0;color:#82988a;font-size:10px;font-weight:700;letter-spacing:1px}footer span{font-weight:400;font-size:9px;letter-spacing:.5px}footer span:last-child{margin-left:auto;max-width:60%;overflow-wrap:anywhere}dialog{width:min(720px,94vw);border:1px solid var(--border);border-radius:12px;padding:26px;color:#23372f;max-height:90vh}dialog::backdrop{background:#0c251e88;backdrop-filter:blur(3px)}.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hint{margin:16px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#import-error{color:#ae432f}#detail-body{display:grid;grid-template-columns:1fr 1fr;gap:20px}#detail-body div{overflow-wrap:anywhere;font-size:13px}#detail-body small{display:block;color:#86958b;margin-bottom:7px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173e2e;color:white;padding:14px 22px;border-radius:8px;font-size:12px;display:none;z-index:20}.empty-message{color:#8a988f;font-size:12px;padding:35px 12px;text-align:center;width:100%}@media(min-width:1500px){main{padding:40px 60px}}@media(max-width:1150px){aside{width:180px;padding-inline:16px}main{margin-left:180px;padding:28px 24px}.metrics strong{font-size:22px}.charts{grid-template-columns:1.3fr 1fr}}@media(max-width:850px){aside{display:none}main{margin:0;padding:22px 16px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.charts{grid-template-columns:1fr}header{align-items:flex-start}h1{font-size:24px}.notice{align-items:flex-start}.notice button{white-space:normal}header .primary{white-space:nowrap;padding:11px}.legend{white-space:nowrap}}@media(max-width:480px){header{flex-direction:column}.metrics article{padding:15px}.metrics strong{font-size:21px}.panel{padding:16px}.results{padding:16px 0 0}.map-grid{grid-template-columns:1fr}.notice{font-size:10px}.notice button{display:none}.section-title{align-items:flex-start}#detail-body{grid-template-columns:1fr}footer span:last-child{max-width:45%}}
.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics article:nth-child(3){background:#edf6f0;border-color:#bbd8c7}.metrics article:nth-child(2) strong,.red{color:#b3684c}.metrics article:nth-child(n+4){padding-block:15px}.metrics article:nth-child(n+4) strong{font-size:23px;margin-block:8px}.dot-cell{max-width:170px;overflow:hidden;text-overflow:ellipsis}.source-cell{max-width:180px;overflow:hidden;text-overflow:ellipsis}td small{display:block;font-size:9px;font-weight:400;color:#8c9b92;margin-top:5px}.status{color:#21835a}.status.canceled{color:#b3684c}.negative,.track i.negative{background:#c47b60}.wide{grid-column:1/-1;line-height:1.8}.filter-grid label.search{grid-column:span 2}.metrics strong{font-size:clamp(20px,2.05vw,31px)}@media(max-width:850px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics strong{font-size:21px}}
[hidden]{display:none!important}.nav{margin-bottom:9px}.nav:not(.active){background:transparent;border-color:transparent;color:#9eb9ab}.view-tabs{display:flex;gap:8px;margin-bottom:20px}.view-tabs .active{background:#e2f0e7;border-color:#9ac5aa;color:#086e4c}.supplier-metrics{margin-block:20px}.supplier-analysis{margin-top:24px;scroll-margin-top:20px}.supplier-analysis .eyebrow{margin-bottom:12px}.supplier-analysis h2#s-name{font-size:22px;overflow-wrap:anywhere}.selected-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:20px 0 28px}.selected-metrics small{display:block;font-size:11px;color:#78867e;margin-bottom:8px}.selected-metrics strong{font-size:18px}.supplier-analysis .charts{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:30px}.supplier-analysis .bar-column{min-width:50px}.supplier-analysis .bar-column strong{font-size:8px}.supplier-analysis .sources{max-height:330px;overflow:auto;padding-right:10px}.supplier-analysis .source-label span{white-space:normal;line-height:1.5;max-width:65%;font-size:11px}.supplier-analysis .source-label strong{white-space:nowrap}.supplier-note{margin-top:22px}.selected-row{background:#edf7f0}#s-status{margin-top:15px}.no-data{background:#dce6df;min-height:1px}.supplier-analysis summary{cursor:pointer;color:#087f5b;font-size:12px;padding:14px 0}.supplier-analysis details table{margin-top:10px}@media(max-width:1000px){.supplier-analysis .charts{grid-template-columns:1fr}.selected-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.supplier-metrics{grid-template-columns:1fr}.selected-metrics strong{font-size:16px}}
#s-monthly{gap:7px}#s-monthly .bar-column{min-width:34px}#s-monthly .bar-column strong{white-space:normal;text-align:center;line-height:1.3;min-height:20px;display:flex;align-items:flex-end;justify-content:center}#s-monthly .bar-column span{font-size:9px}
.view-tabs{flex-wrap:wrap}.supplier-select-open{height:39px;text-align:left;font-weight:400;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-help{padding:12px;background:#edf5ef;border-radius:6px;font-size:12px;margin-bottom:18px;color:#446352}.selection-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.selection-list{max-height:45vh;overflow:auto;margin-top:12px}.selection-list th{position:sticky;top:0;background:#f3f7f4;z-index:1}.selection-list input{height:18px;width:18px;accent-color:#087f5b;cursor:pointer}.selection-list td:not(:first-child){text-align:center}.selection-name{white-space:normal;min-width:180px;font-size:11px;line-height:1.6}.selection-name small{display:block}#u-monthly{gap:7px}#u-monthly .bar-column{min-width:34px}#u-monthly .bar-column strong{white-space:normal;text-align:center;line-height:1.3;min-height:20px;display:flex;align-items:flex-end;justify-content:center}#u-monthly .bar-column span{font-size:9px}#u-name{font-size:22px;overflow-wrap:anywhere}
#supplier-select-dialog[open]{display:flex;flex-direction:column;height:min(780px,90vh);overflow:hidden}#supplier-select-dialog>*{flex-shrink:0}#supplier-select-dialog .selection-list{flex:1;min-height:75px;max-height:none;flex-shrink:1}#supplier-select-dialog .dialog-actions{margin-top:16px}#supplier-select-dialog .section-title{margin-bottom:12px}
.selection-column-actions{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:6px}.selection-column-actions button{font-size:10px;padding:3px 0;white-space:nowrap}.selection-scope{font-size:10px;margin:0 0 8px;line-height:1.5}.selection-list th{vertical-align:top}#supplier-select-dialog .selection-actions{margin:10px 0}#supplier-select-dialog .selection-help{margin-top:0;margin-bottom:12px}
