:root{--color-primary-900:#0b1f3b;--color-primary-800:#12264a;--color-primary-700:#1e3a5f;--color-primary-600:#2a4e75;--color-primary-500:#36628b;--color-primary-400:#5581a8;--color-primary-300:#7aa0c5;--color-primary-200:#a3c0db;--color-primary-100:#d1e0f0;--color-primary-50:#e8f0f8;--color-accent-700:#0a5f4b;--color-accent-600:#0c6d56;--color-accent-500:#0e7c61;--color-accent-400:#2b9475;--color-accent-300:#3fd0a1;--color-accent-200:#7fe0bf;--color-accent-100:#bff0df;--color-accent-50:#e5f8f1;--color-neutral-50:#f4f6f8;--color-neutral-100:#e5e9ed;--color-neutral-200:#cdd3da;--color-neutral-300:#b0b8c1;--color-neutral-400:#8e98a3;--color-neutral-500:#6c7682;--color-neutral-600:#525b66;--color-neutral-700:#3d454f;--color-neutral-800:#2a2e35;--color-neutral-900:#1a1d22;--color-surface-dark:#121417;--color-surface-card:#1f2328;--color-surface-elevated:#282c33;--color-surface-overlay:#32363d;--color-success:#2e9e6f;--color-success-light:#d4f4e7;--color-success-dark:#1e6b4c;--color-warning:#e6a700;--color-warning-light:#fff4d6;--color-warning-dark:#b38500;--color-danger:#c23b22;--color-danger-light:#ffddd6;--color-danger-dark:#8b2918;--color-info:#2b7cff;--color-info-light:#d6e8ff;--color-info-dark:#1d5acc;--font-heading:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"JetBrains Mono","Courier New",monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--shadow-sm:0 1px 2px 0 #0b1f3b0d;--shadow-md:0 4px 6px -1px #0b1f3b1a,0 2px 4px -1px #0b1f3b0f;--shadow-lg:0 10px 15px -3px #0b1f3b1a,0 4px 6px -2px #0b1f3b0d;--shadow-xl:0 20px 25px -5px #0b1f3b1a,0 10px 10px -5px #0b1f3b0a;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--bg-primary:var(--color-neutral-50);--bg-secondary:#fff;--bg-tertiary:var(--color-neutral-100);--text-primary:var(--color-neutral-900);--text-secondary:var(--color-neutral-700);--text-tertiary:var(--color-neutral-500);--border-primary:var(--color-neutral-200);--border-secondary:var(--color-neutral-100)}[data-theme=dark]{--bg-primary:var(--color-surface-dark);--bg-secondary:var(--color-surface-card);--bg-tertiary:var(--color-surface-elevated);--text-primary:#fff;--text-secondary:var(--color-neutral-300);--text-tertiary:var(--color-neutral-500);--border-primary:#ffffff1a;--border-secondary:#ffffff0d;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006,0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006,0 4px 6px -2px #0000004d;--shadow-xl:0 20px 25px -5px #00000080,0 10px 10px -5px #0006}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-primary-900);font-weight:600;line-height:1.2}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] h5,[data-theme=dark] h6{color:#fff}code,pre{font-family:var(--font-mono);font-size:.9em}
.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3)var(--space-6);font-family:var(--font-body);font-size:var(--text-sm);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;font-weight:600;line-height:1;text-decoration:none;transition:all .15s;display:inline-flex}.btn:focus{outline:2px solid var(--color-accent-300);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary-900),var(--color-primary-700));color:#fff;border-color:var(--color-primary-900)}.btn-primary:hover:not(:disabled){background:var(--color-primary-800);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-secondary{background:var(--color-accent-500);color:#fff;border-color:var(--color-accent-500)}.btn-secondary:hover:not(:disabled){background:var(--color-accent-600);box-shadow:var(--shadow-md)}.btn-ghost{color:var(--text-primary);border-color:var(--border-primary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--color-primary-300)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn-sm{padding:var(--space-2)var(--space-4);font-size:var(--text-xs)}.btn-lg{padding:var(--space-4)var(--space-8);font-size:var(--text-base)}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);border-left:4px solid;line-height:1.5;display:flex}.alert-success{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark)}.alert-warning{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.alert-danger{background:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger-dark)}.alert-info{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}[data-theme=dark] .alert-success{color:var(--color-accent-300);background:#2e9e6f26}[data-theme=dark] .alert-warning{color:var(--color-warning);background:#e6a70026}[data-theme=dark] .alert-danger{color:#ff6b6b;background:#c23b2226}[data-theme=dark] .alert-info{color:var(--color-info);background:#2b7cff26}.card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-secondary);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-lg);color:var(--color-primary-900);font-weight:600}[data-theme=dark] .card-title{color:#fff}.card-body{color:var(--text-secondary);line-height:1.6}.card-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-secondary);gap:var(--space-3);align-items:center;display:flex}.card-dashboard{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6);position:relative;overflow:hidden}.card-dashboard:before{content:"";background:linear-gradient(180deg,var(--color-accent-500),var(--color-accent-300));width:4px;height:100%;position:absolute;top:0;left:0}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1)var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger-dark)}.badge-info{background:var(--color-info-light);color:var(--color-info-dark)}.badge-ai{background:var(--color-accent-50);color:var(--color-accent-700);border:1px solid var(--color-accent-300)}[data-theme=dark] .badge-ai{color:var(--color-accent-300);background:#0e7c6133}.table-container{border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{background:var(--bg-tertiary);color:var(--text-secondary);text-align:left;padding:var(--space-3)var(--space-4);border-bottom:2px solid var(--border-primary);text-transform:uppercase;font-weight:600;font-size:var(--text-xs);letter-spacing:.05em}.table td{padding:var(--space-4);border-bottom:1px solid var(--border-secondary);color:var(--text-primary)}.table tr:last-child td{border-bottom:none}.table tr:hover{background:var(--bg-tertiary)}.progress{background:var(--bg-tertiary);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,var(--color-accent-500),var(--color-accent-300));border-radius:999px;height:100%;transition:width .3s}.progress-bar-danger{background:var(--color-danger)}.progress-bar-warning{background:var(--color-warning)}.status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-compliant .status-dot{background:var(--color-success);box-shadow:0 0 0 3px var(--color-success-light)}.status-risk .status-dot{background:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-light)}.status-warning .status-dot{background:var(--color-warning);box-shadow:0 0 0 3px var(--color-warning-light)}.status-ai .status-dot{background:var(--color-accent-500);box-shadow:0 0 0 3px var(--color-accent-100);animation:2s ease-in-out infinite pulse-ai}@keyframes pulse-ai{0%,to{opacity:1}50%{opacity:.6}}.metric-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6)}.metric-value{font-size:var(--text-4xl);color:var(--color-primary-900);margin-bottom:var(--space-2);font-weight:700;line-height:1}[data-theme=dark] .metric-value{color:#fff}.metric-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.metric-change{align-items:center;gap:var(--space-1);margin-top:var(--space-3);font-size:var(--text-sm);font-weight:600;display:inline-flex}.metric-change-positive{color:var(--color-success)}.metric-change-negative{color:var(--color-danger)}
@tailwind base;@tailwind components;@tailwind utilities;*{box-sizing:border-box}html,body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:16px;line-height:1.6}html{transition:background-color .2s,color .2s}a{color:inherit;text-decoration:none}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--color-accent-300);outline-offset:2px}
