*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;min-height:100%;margin:0;padding:0}body{color:#111827;background:#f8fafc;min-height:100%;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}img{max-width:100%}button,input,select,textarea{font:inherit}input,select,textarea{outline:none}button{cursor:pointer}::selection{color:#111827;background:#6366f12e}.container{max-width:1280px;margin:0 auto;padding:20px}.col{flex-direction:column;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.surface{background:#fff;border:1px solid #e5e7eb;border-radius:24px;box-shadow:0 10px 30px #0f172a0a}.card{background:#fff;border:1px solid #e5e7eb;border-radius:22px;box-shadow:0 10px 24px #0f172a0a}.card-pad{padding:18px}.h1{letter-spacing:-.04em;color:#111827;margin:0;font-size:34px;font-weight:900;line-height:1.05}.h2{letter-spacing:-.03em;color:#111827;margin:0;font-size:26px;font-weight:900;line-height:1.1}.h3{color:#111827;margin:0;font-size:20px;font-weight:900;line-height:1.15}.muted{color:#6b7280}.badge{color:#111827;background:#fff;border:1px solid #0f172a14;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:800;display:inline-flex}.kbd{color:#111827;background:#f8fafc;border:1px solid #e5e7eb;border-radius:999px;align-items:center;min-height:24px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:900;display:inline-flex}.btn{color:#111827;background:#fff;border:1px solid #0f172a1a;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 14px;font-size:14px;font-weight:900;text-decoration:none;transition:transform .15s,box-shadow .18s,border-color .18s,background .18s;display:inline-flex}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #0f172a0f}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{color:#fff;background:#111827;border-color:#111827}.btn-primary:hover{box-shadow:0 14px 28px #0f172a1f}.btn-danger{color:#b91c1c;background:#fff;border-color:#ef4444}.btn-danger:hover{background:#fef2f2}.input,.select,.textarea{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;transition:border-color .16s,box-shadow .16s,background .16s}.input,.select{height:44px;padding:0 12px}.textarea{resize:vertical;min-height:110px;padding:12px}.input::placeholder,.textarea::placeholder{color:#94a3b8}.input:focus,.select:focus,.textarea:focus{border-color:#818cf8;box-shadow:0 0 0 4px #6366f11f}.alert{border-radius:18px;padding:14px 16px;font-size:14px;font-weight:700;line-height:1.6}.alert-danger{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.alert-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:22px;width:100%;overflow-x:auto;box-shadow:0 10px 24px #0f172a0a}table{border-collapse:collapse;background:#fff;width:100%;min-width:980px}thead tr{background:#f8fafc}th{text-align:left;color:#64748b;padding:14px;font-size:13px;font-weight:900}td{color:#111827;vertical-align:top;border-top:1px solid #f1f5f9;padding:14px;font-size:14px}.center{place-items:center;display:grid}.shadow-soft{box-shadow:0 10px 24px #0f172a0a}.shadow-lg{box-shadow:0 18px 48px #0f172a1a}.rounded-xl{border-radius:18px}.rounded-2xl{border-radius:24px}.rounded-3xl{border-radius:30px}#qr-reader{background:0 0!important;border:none!important;width:100%!important}#qr-reader__dashboard{color:#fff!important;padding:12px!important}#qr-reader__dashboard button{color:#fff!important;background:#ffffff14!important;border:1px solid #ffffff24!important;border-radius:12px!important;min-height:40px!important;padding:0 14px!important;font-weight:900!important}#qr-reader__scan_region{border-radius:18px!important;overflow:hidden!important}#qr-reader video{object-fit:cover!important;border-radius:18px!important}@media (max-width:1100px){.h1{font-size:28px}.h2{font-size:22px}}@media (max-width:820px){.container,.card-pad{padding:16px}.row{gap:10px}.h1{font-size:24px}.h2{font-size:20px}th,td{padding:12px}}
