:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f4f6f5;color:#14201e}*{box-sizing:border-box}body{margin:0}.hidden{display:none!important}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side{background:#102220;color:#fff;padding:24px 18px;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-size:20px;font-weight:800;letter-spacing:.08em}.sub{font-size:11px;color:#aebbb8;margin:5px 0 14px}.supplier-name{font-weight:650;font-size:13px;padding:10px 12px;background:#1b3531;border-radius:9px;margin-bottom:20px}.side a{display:block;color:#dbe4e1;text-decoration:none;padding:10px 12px;border-radius:9px;margin:3px 0}.side a:hover,.side a.active{background:#27423e;color:#fff}.identity{font-size:11px;color:#9fb0ad;margin-top:24px;line-height:1.5}.main{padding:28px;min-width:0;max-width:1600px;width:100%}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.top h1{margin:0;font-size:26px}.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:20px}.card{background:#fff;border:1px solid #dfe5e3;border-radius:12px;padding:16px}.metric{font-size:25px;font-weight:750;margin-top:7px}.muted{color:#687774;font-size:12px}.panel{background:#fff;border:1px solid #dfe5e3;border-radius:12px;margin-bottom:18px;overflow:hidden}.panel h2{font-size:16px;margin:0;padding:15px 16px;border-bottom:1px solid #e7ecea}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #edf0ef;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#687774;background:#fafbfb}.status{font-size:11px;padding:3px 7px;background:#eef2f1;border-radius:999px}.btn{border:0;border-radius:8px;padding:8px 11px;cursor:pointer;background:#173c36;color:#fff;font-size:12px}.btn.alt{background:#e8eeec;color:#173c36}.btn.warn{background:#7a4a19}.btn.danger{background:#8c302a}.empty{padding:20px;color:#687774}.notice{padding:14px;background:#fff7db;border:1px solid #ead590;border-radius:10px;margin-bottom:16px}.success{padding:14px;background:#ecf8f3;border:1px solid #b9dacb;border-radius:10px;margin-bottom:16px}.modal{position:fixed;inset:0;background:#0008;display:none;align-items:center;justify-content:center;padding:24px;z-index:20}.modal.open{display:flex}.dialog{background:#fff;border-radius:12px;max-width:920px;width:100%;max-height:88vh;overflow:auto;padding:20px}.close{float:right}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px}.field span{font-weight:650}.field input,.field select,.field textarea{width:100%;border:1px solid #cfd8d5;border-radius:8px;padding:9px 10px;font:inherit;background:#fff}.field.check{flex-direction:row;align-items:center;padding-top:24px}.field.check input{width:auto}.wide{grid-column:1/-1}.formActions{display:flex;gap:8px;margin-top:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.kv{background:#f8faf9;border-radius:9px;padding:12px}.kv b{display:block;font-size:11px;text-transform:uppercase;color:#687774;margin-bottom:5px}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#edf2f0}.login-card{background:#fff;border:1px solid #dce4e1;border-radius:14px;padding:28px;width:min(470px,100%);box-shadow:0 12px 35px #0000000d}.login-brand{font-size:22px;font-weight:800;letter-spacing:.08em}.login-sub{font-size:12px;color:#687774;margin:4px 0 24px}.login-card input{width:100%;border:1px solid #cfd8d5;border-radius:8px;padding:10px;margin:8px 0}.doclink{color:#174f45;text-decoration:none;font-weight:600}.timeline{border-left:2px solid #dce5e2;margin-left:8px;padding-left:16px}.timeline-item{margin:10px 0}.badge-high{color:#8c302a;font-weight:700}.badge-pending{color:#8a611b;font-weight:700}@media(max-width:950px){.cards{grid-template-columns:repeat(2,1fr)}.shell{grid-template-columns:1fr}.side{position:relative;height:auto}.side a{display:inline-block}.main{padding:18px}}@media(max-width:650px){.cards{grid-template-columns:1fr 1fr}.main{padding:12px}.formgrid,.grid2{grid-template-columns:1fr}.wide{grid-column:auto}.top h1{font-size:21px}.toolbar .btn{width:100%}.dialog{padding:14px}.side{padding:16px 12px}}