:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#17221f;background:#f2f7f5;--green:#087f5b;--line:#dfe9e5;--muted:#66756f}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#d7f5e9,transparent 45%),#f5f9f7}.login-card{width:min(440px,100%);background:#fff;padding:42px;border-radius:28px;box-shadow:0 24px 70px #1b584327}.mark{width:64px;height:64px;border-radius:20px;background:linear-gradient(145deg,#0ca678,#087f5b);display:grid;place-items:center;color:#fff;font-size:32px;font-weight:800;box-shadow:0 10px 25px #087f5b45}.mark.small{width:42px;height:42px;border-radius:13px;font-size:22px}h1{font-size:40px;margin:18px 0 4px}h2{font-size:30px;margin:0}h3{margin-top:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--green);font-weight:800}.muted{color:var(--muted);line-height:1.55}form{display:grid;gap:16px;margin-top:26px}label{display:grid;gap:7px;font-size:14px;font-weight:650}input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;outline:none}input:focus{border-color:#19a779;box-shadow:0 0 0 3px #19a77920}button{border:0;border-radius:12px;padding:13px 17px;background:var(--green);color:#fff;font-weight:750}.error{color:#c92a2a;min-height:20px}.workspace{min-height:100vh;display:grid;grid-template-columns:250px 1fr}aside{position:sticky;top:0;height:100vh;padding:22px 16px;background:#102a23;color:#fff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand strong,.brand small{display:block}.brand small{opacity:.6;margin-top:3px}nav{display:grid;gap:6px}.nav,.ghost{text-align:left;background:transparent;color:#cfe5dd}.nav.active,.nav:hover{background:#ffffff15;color:#fff}.ghost{margin-top:auto}.content{padding:34px;min-width:0}.content>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat,.panel,.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 24px #153f3210}.stat strong{display:block;font-size:30px;margin-top:8px}.toolbar{display:flex;gap:10px;margin-bottom:16px}.toolbar input{max-width:460px}.table-wrap{overflow:auto;padding:0}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;padding:15px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase}.badge{display:inline-block;padding:6px 9px;border-radius:999px;background:#dff7eb;color:#087f5b;font-size:12px;font-weight:750}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:15px}.card strong{font-size:18px}.card span{display:block;color:var(--muted);margin-top:8px}.scan-panel{max-width:720px}.scan-object{margin-top:18px;padding:18px;border-radius:14px;background:#f4faf7}.scan-object button{margin-top:12px}.close{position:absolute;right:12px;top:12px;background:#edf3f0;color:#18352c;font-size:22px;padding:6px 12px}dialog{width:min(520px,calc(100% - 24px));border:0;border-radius:22px;padding:28px;box-shadow:0 30px 90px #0005}dialog::backdrop{background:#0d211c99}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-grid div{padding:12px;background:#f3f7f5;border-radius:12px}.detail-grid small{display:block;color:var(--muted);margin-bottom:5px}.qr{display:block;width:210px;max-width:100%;margin:20px auto 6px}@media(max-width:820px){.workspace{display:block}aside{position:static;height:auto}.brand{padding-bottom:12px}nav{display:flex;overflow:auto}.nav{white-space:nowrap}.ghost{margin-top:10px}.content{padding:20px}.stats{grid-template-columns:1fr}.content>header{align-items:flex-start}.chip{font-size:12px}.toolbar{align-items:stretch;flex-direction:column}.toolbar input{max-width:none}}
