*{box-sizing:border-box}
html,body,#app{height:100%}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Apple Color Emoji','Segoe UI Emoji';color:#0f172a;background:#fff}
.container{max-width:1080px;margin:0 auto;padding:16px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-6{padding:24px}
.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}
.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}
.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}
@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-1{grid-column:span 1 / span 1}}
.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}
.inline-flex{display:inline-flex}.text-right{text-align:right}.text-center{text-align:center}
.rounded{border-radius:8px}.rounded-2xl{border-radius:16px}
.border{border:1px solid #e5e7eb}.border-t{border-top:1px solid #e5e7eb}
.shadow-sm{box-shadow:0 1px 2px rgba(0,0,0,.04)}
.w-full{width:100%}.w-20{width:80px}.w-24{width:96px}.w-48{width:192px}
.h-full{height:100%}
.btn{padding:8px 12px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;cursor:pointer}
.btn:hover{background:#f8fafc}
.btn-primary{background:#1d4ed8;border-color:#1d4ed8;color:#fff}
.btn-outline{background:#fff;border:1px solid #cbd5e1}
.input{padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;width:100%}
.badge{display:inline-flex;align-items:center;border-radius:9999px;padding:2px 8px;background:#e9d5ff;color:#4c1d95;font-size:12px}
.small{font-size:12px}.text-sm{font-size:14px}.text-base{font-size:16px}.text-lg{font-size:18px}.font-semibold{font-weight:600}.font-bold{font-weight:700}
.opacity-70{opacity:.7}
.hidden{display:none}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:8px;text-align:left;border-top:1px solid #e5e7eb}
.link{color:#1d4ed8;text-decoration:none}
.nav a{margin-right:8px}
.kpi{font-size:18px;font-weight:700}
