*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #0F172A;--color-accent: #6366F1;--color-accent-light: #818CF8;--color-accent-dark: #4F46E5;--color-success: #10B981;--color-warning: #F59E0B;--color-error: #EF4444;--color-bg: #F8FAFC;--color-surface: #FFFFFF;--color-surface-2: #F1F5F9;--color-border: #E2E8F0;--color-text: #1E293B;--color-text-muted: #64748B;--color-text-light: #94A3B8;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(15,23,42,.06), 0 1px 2px rgba(15,23,42,.04);--shadow-md: 0 4px 12px rgba(15,23,42,.08), 0 2px 4px rgba(15,23,42,.04);--shadow-lg: 0 12px 32px rgba(15,23,42,.1), 0 4px 8px rgba(15,23,42,.06);--shadow-accent: 0 4px 20px rgba(99,102,241,.25);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .35s ease}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:15px;line-height:1.6;color:var(--color-text);background:var(--color-bg)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-dark)}button{font-family:var(--font-sans);cursor:pointer;border:none;background:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-surface-2)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-base);cursor:pointer;border:none}.btn-primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-accent)}.btn-primary:hover{background:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 6px 24px #6366f159}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover{background:var(--color-surface-2);color:var(--color-text)}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;border-radius:100px;white-space:nowrap}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-error{background:#fee2e2;color:#991b1b}.badge-info{background:#eef2ff;color:#3730a3}.badge-neutral{background:var(--color-surface-2);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}code,pre{font-family:var(--font-mono);font-size:13px}pre{background:var(--color-primary);color:#e2e8f0;padding:16px 20px;border-radius:var(--radius-md);overflow-x:auto;line-height:1.7}code{background:var(--color-surface-2);padding:2px 6px;border-radius:4px;color:var(--color-accent-dark)}pre code{background:none;padding:0;color:inherit}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.animate-fade-in-up{animation:fadeInUp .4s ease-out forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.nav{position:sticky;top:0;z-index:100;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:24px}.nav-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--color-primary);text-decoration:none}.nav-logo:hover{color:var(--color-primary)}.nav-links{display:flex;align-items:center;gap:4px;list-style:none}.nav-links a{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;color:var(--color-text-muted);border-radius:var(--radius-md);transition:all var(--transition-fast)}.nav-links a:hover,.nav-links a.active{background:var(--color-surface-2);color:var(--color-text)}.nav-links a.active{color:var(--color-accent)}.nav-actions{display:flex;align-items:center;gap:8px}.page-header{padding:48px 0 40px}.page-header h1{font-size:32px;font-weight:800;color:var(--color-primary);line-height:1.2;margin-bottom:8px}.page-header p{font-size:16px;color:var(--color-text-muted);max-width:600px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:4px}.stat-card .value{font-size:28px;font-weight:800;color:var(--color-primary);line-height:1}.stat-card .label{font-size:13px;color:var(--color-text-muted);font-weight:500}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 900px){.grid-3{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.grid-3,.grid-2{grid-template-columns:1fr}.page-header h1{font-size:26px}}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:14px;font-weight:600;color:var(--color-text)}.form-input,.form-select{width:100%;padding:10px 14px;font-size:14px;font-family:var(--font-sans);color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast);outline:none}.form-input:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #6366f11f}.form-hint{font-size:12px;color:var(--color-text-muted)}.form-error{font-size:12px;color:var(--color-error)}.capability-chips{display:flex;flex-wrap:wrap;gap:8px}.capability-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;font-size:12px;font-weight:600;border-radius:100px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.capability-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.capability-chip.selected{background:#eef2ff;border-color:var(--color-accent);color:var(--color-accent-dark)}.compliance-ring{position:relative;width:48px;height:48px}.compliance-ring svg{transform:rotate(-90deg)}.compliance-ring .score-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.online{background:var(--color-success);box-shadow:0 0 0 2px #10b98133}.status-dot.offline{background:var(--color-text-light)}.status-dot.degraded{background:var(--color-warning);box-shadow:0 0 0 2px #f59e0b33}.handoff-timeline{display:flex;flex-direction:column;gap:0}.timeline-item{display:flex;gap:16px;position:relative;padding-bottom:20px}.timeline-item:last-child{padding-bottom:0}.timeline-marker{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0}.timeline-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-surface);flex-shrink:0;margin-top:4px;transition:all var(--transition-fast)}.timeline-dot.active{background:var(--color-accent);border-color:var(--color-accent)}.timeline-dot.success{background:var(--color-success);border-color:var(--color-success)}.timeline-dot.error{background:var(--color-error);border-color:var(--color-error)}.timeline-dot.warning{background:var(--color-warning);border-color:var(--color-warning)}.timeline-line{width:2px;flex:1;background:var(--color-border);margin-top:4px;margin-bottom:-20px}.timeline-content{flex:1;padding-top:2px}.timeline-type{font-size:12px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.timeline-time{font-size:11px;color:var(--color-text-light);font-family:var(--font-mono)}.timeline-payload{margin-top:6px;font-size:12px;font-family:var(--font-mono);background:var(--color-surface-2);padding:8px 12px;border-radius:var(--radius-sm);color:var(--color-text-muted)}.timeline-error{margin-top:6px;font-size:12px;background:#fee2e2;color:#991b1b;padding:8px 12px;border-radius:var(--radius-sm);font-family:var(--font-mono)}.skeleton{background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-border) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:5px 10px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:50}[data-tooltip]:hover:after{opacity:1}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:1000}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:14px;font-weight:500;animation:fadeInUp .3s ease-out;max-width:360px}.toast.success{border-left:3px solid var(--color-success)}.toast.error{border-left:3px solid var(--color-error)}.toast.info{border-left:3px solid var(--color-accent)}
