@keyframes dv2-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.dv2-grid-container{width:100%}.dv2-card{width:100%;height:100%;display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--card, #fff);border:1px solid var(--border, rgba(0,0,0,.08));box-shadow:0 4px 16px #00000014,0 1px 4px #0000000a;transition:box-shadow .3s ease,transform .3s ease,border-color .25s ease;position:relative;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.dv2-card:hover{box-shadow:0 12px 32px #00000024,0 3px 8px #0000000f,0 0 0 1px color-mix(in oklch,var(--primary) 12%,transparent);border-color:color-mix(in oklch,var(--primary) 30%,transparent)}.dv2-card-accent{position:absolute;top:0;left:0;right:0;height:3px;border-radius:12px 12px 0 0;z-index:2}.dv2-card-header{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;flex-shrink:0;position:relative;z-index:1;border-bottom:1px solid var(--border, rgba(0,0,0,.06));background:color-mix(in oklch,var(--card) 95%,var(--primary) 5%);min-height:40px}.dv2-drag-handle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;cursor:-webkit-grab;cursor:grab;color:var(--muted-foreground, #888);flex-shrink:0;transition:color .15s ease,background .15s ease;margin-right:2px}.dv2-drag-handle:hover{color:var(--primary);background:color-mix(in oklch,var(--primary) 10%,transparent)}.dv2-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.dv2-cat-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dv2-widget-title{font-size:12px;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;letter-spacing:.01em}.dv2-card-body{flex:1;min-height:0;overflow:hidden;position:relative}.dv2-grid-container .react-resizable-handle{width:18px;height:18px;bottom:4px;right:4px;background-image:none;padding:0;z-index:10;display:flex;align-items:center;justify-content:center}.dv2-resize-grip{width:14px;height:14px;border-radius:50%;background:color-mix(in oklch,var(--primary) 18%,transparent);border:1.5px solid color-mix(in oklch,var(--primary) 40%,transparent);display:flex;align-items:center;justify-content:center;cursor:se-resize;transition:background .15s ease,border-color .15s ease}.dv2-resize-grip:hover{background:color-mix(in oklch,var(--primary) 30%,transparent);border-color:var(--primary)}.dv2-skeleton{border-radius:12px;overflow:hidden;background:linear-gradient(90deg,var(--card) 0%,color-mix(in oklch,var(--card) 85%,var(--primary) 15%) 50%,var(--card) 100%);background-size:600px 100%;animation:dv2-shimmer 1.4s ease-in-out infinite;border:1px solid var(--border)}.dv2-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 2px 10px;gap:8px;flex-wrap:wrap}.dv2-toolbar-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dv2-toolbar-right{display:flex;align-items:center;gap:6px}.dv2-updated-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:color-mix(in oklch,var(--primary) 8%,transparent);border:1px solid color-mix(in oklch,var(--primary) 20%,transparent);font-size:11px;color:var(--muted-foreground);font-weight:500}.dv2-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;flex-wrap:wrap;position:relative;z-index:1}.dv2-hero-band{position:relative;overflow:hidden;margin:0 -1.5rem;margin-bottom:8px;border-bottom:1px solid color-mix(in oklch,var(--border) 80%,transparent);background:linear-gradient(135deg,color-mix(in oklch,var(--primary) 12%,transparent) 0%,var(--background, #f8fafc) 45%,var(--background, #f8fafc) 100%)}.dv2-hero-glow{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;opacity:.22;filter:blur(48px);background:radial-gradient(ellipse at top left,color-mix(in oklch,var(--primary) 50%,transparent) 0%,transparent 65%)}.dv2-header-left{display:flex;flex-direction:column;gap:4px}.dv2-greeting{font-size:22px;font-weight:700;color:var(--foreground);line-height:1.2}.dv2-greeting-sub{font-size:13px;color:var(--muted-foreground);display:flex;align-items:center;gap:6px}.dv2-header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dv2-status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.01em}.dv2-status-badge.active{background:color-mix(in oklch,var(--primary) 12%,transparent);color:color-mix(in oklch,var(--primary) 80%,var(--foreground) 20%);border:1px solid color-mix(in oklch,var(--primary) 25%,transparent)}.dv2-accent-compliance{background:linear-gradient(90deg,#10b981,#34d399)}.dv2-accent-tasks{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.dv2-accent-risks{background:linear-gradient(90deg,#ef4444,#f87171)}.dv2-accent-data{background:linear-gradient(90deg,#06b6d4,#22d3ee)}.dv2-accent-suppliers{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.dv2-accent-documents{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.dv2-accent-corrective-actions{background:linear-gradient(90deg,#f97316,#fb923c)}.dv2-accent-default{background:linear-gradient(90deg,#f7971f,#f7a74b,#f6b669)}.dv2-catbg-compliance{background:#10b9811f;color:#10b981}.dv2-catbg-tasks{background:#3b82f61f;color:#3b82f6}.dv2-catbg-risks{background:#ef44441f;color:#ef4444}.dv2-catbg-data{background:#06b6d41f;color:#06b6d4}.dv2-catbg-suppliers{background:#8b5cf61f;color:#8b5cf6}.dv2-catbg-documents{background:#f59e0b1f;color:#f59e0b}.dv2-catbg-corrective-actions{background:#f973161f;color:#f97316}.dv2-catbg-default{background:color-mix(in oklch,var(--primary) 12%,transparent);color:var(--primary)}.dv2-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:320px;border:2px dashed var(--border);border-radius:16px;background:color-mix(in oklch,var(--card) 60%,transparent);animation:dv2-fade-in .4s ease}@keyframes dv2-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.react-grid-item.react-draggable-dragging .dv2-card{box-shadow:0 28px 64px #00000038,0 8px 20px #0000001a,0 0 0 1.5px var(--primary);transform:scale(1.025);border-color:var(--primary);z-index:100}.react-grid-item.resizing .dv2-card{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in oklch,var(--primary) 30%,transparent)}
