:root{--safe-left: env(safe-area-inset-left);--safe-right: env(safe-area-inset-right);--safe-bottom: env(safe-area-inset-bottom);--text:#111;--muted:#666;--border:#e5e7eb;--bg:#fff}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif;color:var(--text);background:var(--bg)}h1,h2,h3,p{margin:0}.border{border:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.px-2{padding-left:.5rem;padding-right:.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.text-2xl{font-size:1.5rem;line-height:1.2}.font-semibold{font-weight:600}.leading-none{line-height:1}.w-full{width:100%}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-gray-500{color:#6b7280}.text-gray-600{color:#4b5563}.min-h-screen{min-height:100vh}.bg-white{background:#fff}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-x-4{column-gap:1rem}.gap-y-2{row-gap:.5rem}.btn{background:#111;color:#fff;border:0;padding:.5rem .75rem;cursor:pointer}.btn:hover{opacity:.9}.select{padding:.4rem .5rem;border:1px solid var(--border)}.shadow-board{box-shadow:0 20px 40px #00000040,0 2px 8px #00000026,inset 0 0 0 1px #0000000d}@media (min-width: 768px){.md\:px-8{padding-left:2rem;padding-right:2rem}}.container{max-width:1200px;margin:0 auto}.card{border:1px solid var(--border);background:#fff}.card-header{padding:16px 16px 8px;border-bottom:1px solid var(--border)}.card-title{font-weight:700;font-size:1.125rem}.card-subtitle{color:var(--muted);font-size:.9rem;margin-top:2px}.card-body{padding:16px}.table-responsive{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{border:1px solid var(--border);padding:.625rem .75rem;text-align:left}.table thead th{background:#fafafa;font-weight:600}.table-striped tbody tr:nth-child(2n){background:#fcfcfc}.table tbody tr:hover{background:#f8fafc}.badge{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.subtle{background:#f5f5f5;color:#111;border:1px solid #e5e7eb}.grid{display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gap-12{gap:12px}.stat{border:1px solid var(--border);padding:12px;background:#fff}.stat-label{color:var(--muted);font-size:.85rem}.stat-value{font-size:1.25rem;font-weight:700;margin-top:2px}.pill{color:#fff;font-weight:700;font-size:.8rem;padding:.35rem .5rem;border-radius:999px;min-width:28px;text-align:center}label+select{margin-left:8px}label{padding-right:4px}label+select{margin-left:12px!important}label{padding-right:6px!important}@media (max-width: 480px){main.py-5{padding-top:.5rem;padding-bottom:.5rem;padding-left:0;padding-right:0}}} @media (pointer: coarse),(max-width: 768px){.canvas-wrap{padding-left:3px;padding-right:3px}}@media (pointer: coarse) and (orientation: portrait),(max-width: 768px) and (orientation: portrait){.canvas-wrap{padding-left:3px;padding-right:3px}}canvas{touch-action:none}
