:root{--navy:#0b1929;--navy-mid:#112240;--navy-light:#1a3356;--navy-border:rgba(100,160,255,.12);--navy-border-mid:rgba(100,160,255,.25);--blue:#2563eb;--blue-light:#3b82f6;--blue-pale:rgba(37,99,235,.12);--accent:#0ea5e9;--gold:#f59e0b;--gold-pale:rgba(245,158,11,.12);--green:#10b981;--green-pale:rgba(16,185,129,.12);--red:#ef4444;--red-pale:rgba(239,68,68,.12);--orange:#f97316;--orange-pale:rgba(249,115,22,.12);--text:#e2eaf4;--text-mid:#94a3b8;--text-muted:rgba(148,163,184,.55);--white:#f8fafc;--radius:10px;--radius-sm:6px;--font-display:"Syne",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--sidebar-w:240px;--header-h:60px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-body);background:var(--navy);color:var(--text);min-height:100dvh;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--navy)}::-webkit-scrollbar-thumb{background:var(--navy-border-mid);border-radius:4px}.app-layout{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--navy-mid);border-right:.5px solid var(--navy-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;overflow-y:auto}.sidebar-logo{padding:20px 20px 16px;border-bottom:.5px solid var(--navy-border)}.sidebar-logo-name{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--white);letter-spacing:.02em;display:flex;align-items:center;gap:8px}.sidebar-logo-badge{background:var(--blue);color:#fff;font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;letter-spacing:.05em}.sidebar-logo-sub{font-size:10px;color:var(--text-muted);margin-top:2px;letter-spacing:.05em}.sidebar-org{padding:12px 16px;font-size:10px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;border-bottom:.5px solid var(--navy-border)}.sidebar-section-label{padding:16px 16px 6px;font-size:9px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.sidebar-nav{padding:6px 10px;flex:1 1}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:400;color:var(--text-mid);text-decoration:none;cursor:pointer;transition:all .15s;margin-bottom:1px;background:transparent;border:none;width:100%;text-align:left}.nav-item:hover{background:var(--navy-light);color:var(--text)}.nav-item.active{background:var(--blue-pale);color:var(--blue-light);border-left:2px solid var(--blue);padding-left:10px}.nav-item-icon{font-size:15px;flex-shrink:0;width:20px;text-align:center}.nav-badge{margin-left:auto;background:var(--blue);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}.sidebar-footer{padding:14px 16px;border-top:.5px solid var(--navy-border);font-size:10px;color:var(--text-muted);line-height:1.5}.main-content{margin-left:var(--sidebar-w);flex:1 1;display:flex;flex-direction:column;min-height:100dvh}.topbar{background:var(--navy-mid);border-bottom:.5px solid var(--navy-border);padding:0 28px;height:var(--header-h);justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:40}.topbar,.topbar-title{display:flex;align-items:center}.topbar-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--white);gap:10px}.topbar-actions{display:flex;gap:8px;align-items:center}.page-body{flex:1 1;padding:28px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-bottom:28px}.kpi-card{background:var(--navy-mid);border:.5px solid var(--navy-border);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.kpi-card.blue:before{background:var(--blue)}.kpi-card.green:before{background:var(--green)}.kpi-card.gold:before{background:var(--gold)}.kpi-card.accent:before{background:var(--accent)}.kpi-card.red:before{background:var(--red)}.kpi-card.orange:before{background:var(--orange)}.kpi-icon{font-size:22px;margin-bottom:10px}.kpi-label{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.kpi-value{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--white);line-height:1}.kpi-sub{font-size:11px;color:var(--text-muted);margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;border:none;text-decoration:none}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-light)}.btn-secondary{background:transparent;border:.5px solid var(--navy-border-mid);color:var(--text-mid)}.btn-secondary:hover{background:var(--navy-light);color:var(--text)}.btn-success{background:var(--green-pale);border:.5px solid rgba(16,185,129,.4);color:var(--green)}.btn-danger{background:var(--red-pale);border:.5px solid rgba(239,68,68,.4);color:var(--red)}.btn-gold{background:var(--gold-pale);border:.5px solid rgba(245,158,11,.4);color:var(--gold)}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon{padding:7px;border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:500}.badge-blue{background:var(--blue-pale);color:var(--blue-light);border:.5px solid rgba(59,130,246,.35)}.badge-green{background:var(--green-pale);color:var(--green);border:.5px solid rgba(16,185,129,.35)}.badge-gold{background:var(--gold-pale);color:var(--gold);border:.5px solid rgba(245,158,11,.35)}.badge-red{background:var(--red-pale);color:var(--red);border:.5px solid rgba(239,68,68,.35)}.badge-orange{background:var(--orange-pale);color:var(--orange);border:.5px solid rgba(249,115,22,.35)}.badge-muted{background:rgba(148,163,184,.1);color:var(--text-muted);border:.5px solid var(--navy-border)}.badge-accent{background:rgba(14,165,233,.12);color:var(--accent);border:.5px solid rgba(14,165,233,.35)}.table-wrap{background:var(--navy-mid);border:.5px solid var(--navy-border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}table{width:100%;border-collapse:collapse;font-size:13px}th{padding:11px 14px;text-align:left;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);background:rgba(0,0,0,.2);white-space:nowrap}td,th{border-bottom:.5px solid var(--navy-border)}td{padding:12px 14px;vertical-align:middle;color:var(--text)}tr:last-child td{border-bottom:none}tr:hover td{background:hsla(0,0%,100%,.02)}.card{background:var(--navy-mid);border:.5px solid var(--navy-border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card-header{justify-content:space-between;margin-bottom:16px;padding-bottom:14px;border-bottom:.5px solid var(--navy-border)}.card-header,.card-title{display:flex;align-items:center}.card-title{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--white);gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:14px;gap:14px}.form-group{margin-bottom:14px}.form-label{display:block;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.form-input,.form-select,.form-textarea{width:100%;background:rgba(0,0,0,.3);border:.5px solid var(--navy-border);border-radius:var(--radius-sm);padding:9px 12px;font-family:var(--font-body);font-size:13px;color:var(--text);outline:none;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-select option{background:var(--navy-mid)}.form-range{width:100%;accent-color:var(--blue)}.alert{border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;margin-bottom:14px;display:flex;align-items:flex-start;gap:10px}.alert-info{background:var(--blue-pale);border:.5px solid rgba(37,99,235,.35);color:var(--blue-light)}.alert-success{background:var(--green-pale);border:.5px solid rgba(16,185,129,.35);color:var(--green)}.alert-warning{background:var(--gold-pale);border:.5px solid rgba(245,158,11,.35);color:var(--gold)}.alert-danger{background:var(--red-pale);border:.5px solid rgba(239,68,68,.35);color:var(--red)}.progress-bar{height:4px;background:var(--navy-border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;transition:width .3s ease}.score-circle{width:52px;height:52px;border-radius:50%;font-family:var(--font-display);font-size:14px;font-weight:700;border:2px solid}.modal-overlay,.score-circle{display:flex;align-items:center;justify-content:center}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;padding:20px}.modal{border:.5px solid var(--navy-border-mid);border-radius:var(--radius);width:100%;max-width:680px;max-height:90vh;overflow-y:auto}.modal,.modal-header{background:var(--navy-mid)}.modal-header{padding:20px 24px;border-bottom:.5px solid var(--navy-border);display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--white)}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:.5px solid var(--navy-border);display:flex;gap:10px;justify-content:flex-end}.tabs{display:flex;gap:2px;border-bottom:.5px solid var(--navy-border);margin-bottom:20px}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:var(--font-body);font-size:13px;padding:10px 16px;cursor:pointer;transition:all .15s;margin-bottom:-.5px}.tab.active{color:var(--blue-light);border-bottom-color:var(--blue)}.tab:hover{color:var(--text)}.search-box{position:relative}.search-box input{width:100%;background:rgba(0,0,0,.3);border:.5px solid var(--navy-border);border-radius:var(--radius-sm);padding:9px 12px 9px 36px;font-family:var(--font-body);font-size:13px;color:var(--text);outline:none;transition:border-color .15s}.search-box input:focus{border-color:var(--blue)}.search-box input::placeholder{color:var(--text-muted)}.search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;font-size:14px}.section-header{justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.section-header,.section-title{display:flex;align-items:center}.section-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--white);gap:10px}.section-sub{font-size:13px;color:var(--text-muted);margin-top:2px}.empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.4}.empty-title{font-family:var(--font-display);font-size:18px;color:var(--text-mid);margin-bottom:8px}.empty-sub{font-size:13px;color:var(--text-muted);margin-bottom:20px}.eval-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.eval-card{background:var(--navy-light);border:.5px solid var(--navy-border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.eval-supplier{font-weight:600;font-size:14px;color:var(--white)}.eval-rank{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.timeline{display:flex;flex-direction:column;gap:0}.timeline-item{display:flex;gap:16px}.timeline-line{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.timeline-dot{width:12px;height:12px;border-radius:50%;border:2px solid;flex-shrink:0}.timeline-connector{flex:1 1;width:1px;background:var(--navy-border);min-height:24px}.timeline-content{flex:1 1;padding-bottom:20px}.timeline-title{font-size:13px;font-weight:500;color:var(--white)}.timeline-meta{font-size:11px;color:var(--text-muted);margin-top:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .25s ease both}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.main-content{margin-left:0}.form-grid,.form-grid-3{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}}