:root{color:#1a1a1a;--brand:#c8282e;--brand-dark:#a41f25;--brand-light:#e05a5f;--brand-grad:linear-gradient(90deg, #c8282e 0%, #d63a3f 100%);--brand-tint:#fcefef;--brand-tint-2:#f8dcdd;--line:#eadede;--warn:#b45309;--error:#b91c1c;background:#fff;font-family:system-ui,-apple-system,Segoe UI,sans-serif}body{margin:0}#root{flex-direction:column;min-height:100vh;display:flex}header.app{background:var(--brand-grad);color:#fff;z-index:10;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 20px;display:flex;position:sticky;top:0;box-shadow:0 2px 6px #7814194d}header.app h1{color:#fff;letter-spacing:.2px;margin:0 12px 0 0;font-size:18px}header.app button{color:#fff;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:7px 9px}header.app button:hover{color:#fff;background:#ffffff2e}header.app button.on{color:var(--brand);background:#fff;font-weight:600}header.app .sp{flex:1}header.app select{max-width:170px}header.app>span{color:#fff;font-size:14px}main{flex:1 0 auto;padding:18px 20px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}table.grid{border-collapse:collapse;background:#fff;font-size:13px}table.grid th,table.grid td{border:1px solid var(--line);white-space:nowrap;padding:4px 8px}table.grid th{background:var(--brand-tint);color:var(--brand-dark);position:sticky;top:0}table.grid td.n{text-align:right;font-variant-numeric:tabular-nums}table.grid tr.entity td{background:var(--brand-tint-2);font-weight:700}table.grid tr.category td{background:var(--brand-tint);font-weight:600}table.grid tr.hcm td{color:#888;background:#f4f4f4}table.grid td.red{color:var(--warn);font-weight:600}.wrap{max-height:75vh;overflow:auto}.card{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:12px;padding:14px;box-shadow:0 1px 4px #0000001a}.err{color:var(--error)}.ok{color:#1b6e2d}.muted{color:#777}.badge{background:var(--brand-tint-2);border-radius:10px;padding:2px 8px;font-size:12px}.st-DRAFT{background:#eee}.st-SUBMITTED{background:#ffe9a8}.st-RETURNED{background:#ffd0d0}.st-APPROVED{background:#cdeccd}.st-EXPORTED{background:#c9dcff}.st-LOCKED{background:#b9b9c9}input.cell{text-align:right;font-variant-numeric:tabular-nums;border:1px solid #d9c3c6;width:110px;padding:3px 4px}input.cell:disabled{color:#777;background:#f0f0f0;border-color:#eee}td.in{padding:0}td.ctx{color:#666;background:#f4f4f6}tr.sel td{outline:1px solid var(--brand)}.statusbar{align-items:center;gap:20px;display:flex}.statusbar .sp{flex:1}.login input{box-sizing:border-box;width:100%;padding:8px 10px;font-size:14px}.login button{padding:6px 16px}input.needs{border:1px solid var(--warn);background:#fff7ed}table.grid .freeze{z-index:1;background:#fff;min-width:260px;max-width:320px;position:sticky;left:0;box-shadow:2px 0 #d8c3c6}table.grid thead th.freeze{z-index:3;background:var(--brand-tint)}table.grid tr.category td.freeze{background:var(--brand-tint)}table.grid tr.entity td.freeze{background:var(--brand-tint-2)}table.grid tr.hcm td.freeze{background:#f4f4f4}table.grid tr.sel td.freeze{background:#fff5f5}table.grid tfoot td.freeze{background:#fff}button{font:inherit;border:1px solid var(--brand);color:var(--brand);cursor:pointer;background:#fff;border-radius:999px;padding:5px 14px}button:hover:not(:disabled){background:var(--brand-tint)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--brand);color:#fff;border-color:var(--brand);padding:6px 22px}button.primary:hover:not(:disabled){background:var(--brand-dark)}button.link{color:var(--brand);background:0 0;border:0;border-radius:0;padding:0 4px;text-decoration:underline}a{color:var(--brand)}h1,h2,h3{color:#1a1a1a}.login button.primary{letter-spacing:.5px;width:100%;padding:10px;font-size:16px}footer.app-footer{color:#777;text-align:center;background:#f6f6f6;border-top:1px solid #e6e6e6;flex-shrink:0;margin-top:auto;padding:8px 20px;font-size:12px;line-height:1.4}button.del{border-radius:4px;padding:1px 7px;font-size:13px;line-height:1.2}button.del:hover:not(:disabled){background:var(--brand);color:#fff}td.flag{min-width:190px;white-space:normal!important}.chip{white-space:nowrap;border-radius:10px;margin:1px 4px 1px 0;padding:1px 8px;font-size:12px;line-height:1.5;display:inline-block}.chip.warn{color:var(--warn);background:#fff4e5;border:1px solid #f5d7a8}.chip.need{color:#a8201f;background:#fdecec;border:1px solid #f3c1c1;font-weight:600}.chip.ok{color:#1b6e2d;background:#e9f6ec;border:1px solid #bfe3c8}
