@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-base: #0a0a0f;--bg-surface: #12121a;--bg-elevated: #1a1a26;--bg-overlay: #1e1e2e;--bg-subtle: #0f0f18;--glass-bg: rgba(255, 255, 255, .03);--glass-bg-hover: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .08);--glass-border-hover: rgba(124, 58, 237, .4);--glass-blur: 20px;--glass-blur-lg: 28px;--neon-purple: #7c3aed;--neon-blue: #3b82f6;--neon-cyan: #06b6d4;--neon-violet: #6d28d9;--neon-indigo: #4f46e5;--accent-purple: #7c3aed;--accent-blue: #3b82f6;--accent-cyan: #06b6d4;--grad-primary: linear-gradient(135deg, #7c3aed 0%, #3b82f6 50%, #06b6d4 100%);--grad-primary-r: linear-gradient(135deg, #06b6d4 0%, #3b82f6 50%, #7c3aed 100%);--grad-primary-soft: linear-gradient(135deg, rgba(124,58,237,.2) 0%, rgba(59,130,246,.2) 50%, rgba(6,182,212,.2) 100%);--grad-glow: linear-gradient(135deg, rgba(124,58,237,.3) 0%, rgba(6,182,212,.3) 100%);--grad-surface: linear-gradient(180deg, #12121a 0%, #0a0a0f 100%);--color-violation: #ef4444;--color-violation-bg: rgba(239, 68, 68, .1);--color-violation-border: rgba(239, 68, 68, .25);--color-violation-glow: rgba(239, 68, 68, .35);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .1);--color-warning-border: rgba(245, 158, 11, .25);--color-warning-glow: rgba(245, 158, 11, .35);--color-clean: #22c55e;--color-clean-bg: rgba(34, 197, 94, .1);--color-clean-border: rgba(34, 197, 94, .25);--color-clean-glow: rgba(34, 197, 94, .35);--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .1);--color-info-border: rgba(59, 130, 246, .25);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-disabled: #334155;--text-accent: #a78bfa;--text-inverse: #0a0a0f;--border-subtle: rgba(255, 255, 255, .04);--border-default: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--border-accent: rgba(124, 58, 237, .45);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .6), 0 2px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .7), 0 4px 12px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 50px rgba(0, 0, 0, .8), 0 8px 20px rgba(0, 0, 0, .6);--shadow-neon: 0 0 20px rgba(124, 58, 237, .25), 0 0 40px rgba(59, 130, 246, .12);--shadow-neon-cyan: 0 0 20px rgba(6, 182, 212, .25), 0 0 40px rgba(59, 130, 246, .12);--shadow-violation: 0 0 20px rgba(239, 68, 68, .25);--shadow-clean: 0 0 20px rgba(34, 197, 94, .25);--shadow-warning: 0 0 20px rgba(245, 158, 11, .25);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-full: 9999px;--font: "Pretendard Variable", "Pretendard", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", 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;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--transition-fast: .15s ease;--transition-base: .22s ease;--transition-slow: .38s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 240px;--z-below: -1;--z-base: 0;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;--z-tooltip: 500}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body{font-family:var(--font);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-base);background-image:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(124,58,237,.1) 0%,transparent 60%),radial-gradient(ellipse 50% 40% at 85% 85%,rgba(6,182,212,.07) 0%,transparent 50%),radial-gradient(ellipse 40% 35% at 15% 65%,rgba(59,130,246,.05) 0%,transparent 50%);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{min-height:100vh;display:flex;flex-direction:column}*{scrollbar-width:thin;scrollbar-color:rgba(124,58,237,.35) rgba(255,255,255,.03)}*::-webkit-scrollbar{width:5px;height:5px}*::-webkit-scrollbar-track{background:#ffffff05;border-radius:var(--radius-full)}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#7c3aed73,#3b82f673);border-radius:var(--radius-full)}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#7c3aedbf,#3b82f6bf)}*::-webkit-scrollbar-corner{background:transparent}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes pulseSoft{0%,to{transform:scale(1);box-shadow:var(--shadow-neon)}50%{transform:scale(1.015);box-shadow:var(--shadow-neon),0 0 50px #7c3aed2e}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glow{0%,to{box-shadow:0 0 10px #7c3aed40}50%{box-shadow:0 0 25px #7c3aed8c,0 0 50px #3b82f640}}@keyframes glowRed{0%,to{box-shadow:0 0 8px #ef444440}50%{box-shadow:0 0 18px #ef44448c,0 0 36px #ef44442e}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes borderGlow{0%,to{border-color:#7c3aed40}50%{border-color:#06b6d48c}}@keyframes dotBlink{0%,80%,to{opacity:0;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes progressFill{0%{width:0%}to{width:var(--progress-value, 100%)}}.fade-in{animation:fadeIn var(--transition-slow) ease-out both}.fade-in-down{animation:fadeInDown var(--transition-slow) ease-out both}.slide-up{animation:slideUp .35s ease-out both}.slide-in-left{animation:slideInLeft .35s ease-out both}.slide-in-right{animation:slideInRight .35s ease-out both}.scale-in{animation:scaleIn .28s var(--transition-spring) both}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-glow{animation:glow 2.5s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.glass-card,.glass-card-hover{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.glass-card-hover:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--shadow-xl),var(--shadow-neon);transform:translateY(-2px)}.glass-card--lg{backdrop-filter:blur(var(--glass-blur-lg));-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-radius:var(--radius-2xl)}.glass-card--sm{border-radius:var(--radius-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.glass-card--neon{border-color:#7c3aed33;box-shadow:var(--shadow-lg),inset 0 1px #ffffff0d}.glass-card--violation{border-color:var(--color-violation-border);box-shadow:var(--shadow-md),var(--shadow-violation)}.glass-card--warning{border-color:var(--color-warning-border);box-shadow:var(--shadow-md),var(--shadow-warning)}.glass-card--clean{border-color:var(--color-clean-border);box-shadow:var(--shadow-md),var(--shadow-clean)}.gradient-text{background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text--animated{background:linear-gradient(135deg,#7c3aed,#3b82f6,#06b6d4,#7c3aed);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s linear infinite}.gradient-text--reverse{background:var(--grad-primary-r);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text--violation{background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text--clean{background:linear-gradient(135deg,#22c55e,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.badge-clean,.badge-warning,.badge-violation,.badge-info,.badge-neutral{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:var(--weight-bold);font-family:var(--font);letter-spacing:.02em;line-height:1;border:1px solid transparent;white-space:nowrap;vertical-align:middle}.badge-clean:before,.badge-warning:before,.badge-violation:before,.badge-info:before,.badge-neutral:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge-clean{color:var(--color-clean);background:var(--color-clean-bg);border-color:var(--color-clean-border)}.badge-clean:before{background:var(--color-clean);box-shadow:0 0 5px var(--color-clean)}.badge-warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-border)}.badge-warning:before{background:var(--color-warning);box-shadow:0 0 5px var(--color-warning)}.badge-violation{color:var(--color-violation);background:var(--color-violation-bg);border-color:var(--color-violation-border);animation:glowRed 2.5s ease-in-out infinite}.badge-violation:before{background:var(--color-violation);box-shadow:0 0 5px var(--color-violation)}.badge-info{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-border)}.badge-info:before{background:var(--color-info);box-shadow:0 0 5px var(--color-info)}.badge-neutral{color:var(--text-secondary);background:#ffffff0d;border-color:var(--border-default)}.badge-neutral:before{background:var(--text-muted)}.btn,.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font);font-weight:var(--weight-semibold);line-height:1;border-radius:var(--radius-lg);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast),color var(--transition-base),opacity var(--transition-base);user-select:none;-webkit-user-select:none;position:relative;overflow:hidden}.btn,.btn-primary,.btn-secondary,.btn-danger{padding:12px 24px;font-size:var(--text-sm);border:1px solid transparent}.btn:active,.btn-primary:active,.btn-secondary:active,.btn-danger:active{transform:scale(.97)}.btn:disabled,.btn[disabled],.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--grad-primary);color:#fff;border-color:transparent;box-shadow:0 4px 16px #7c3aed59,inset 0 1px #ffffff1f}.btn-primary:hover{box-shadow:0 6px 24px #7c3aed80,0 0 36px #3b82f62e;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0) scale(.97)}.btn-primary:disabled{background:#ffffff0f;color:var(--text-disabled);box-shadow:none}.btn-secondary{background:var(--glass-bg);color:var(--text-secondary);border-color:var(--glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:10px 20px;font-size:13px}.btn-secondary:hover{background:var(--glass-bg-hover);color:var(--text-primary);border-color:#ffffff24;box-shadow:0 0 16px #7c3aed1f}.btn-danger{background:var(--color-violation-bg);color:var(--color-violation);border-color:var(--color-violation-border)}.btn-danger:hover{background:#ef44442e;border-color:var(--color-violation);box-shadow:var(--shadow-violation)}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--weight-medium);background:transparent;color:var(--text-secondary);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),color var(--transition-base),border-color var(--transition-base)}.btn-ghost:hover{background:#ffffff0d;color:var(--text-primary);border-color:var(--border-default)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base)}.btn-icon:hover{background:var(--glass-bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.btn-sm{padding:var(--space-2) var(--space-3)!important;font-size:var(--text-xs)!important;border-radius:var(--radius-md)!important}.btn-lg{padding:var(--space-4) var(--space-8)!important;font-size:var(--text-base)!important;border-radius:var(--radius-xl)!important}.btn--loading{pointer-events:none;color:transparent}.btn--loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.input-field{display:block;width:100%;padding:14px 18px;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--text-primary);background:#ffffff0a;border:1.5px solid var(--glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color var(--transition-base),box-shadow var(--transition-base),background var(--transition-base);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-field::placeholder{color:var(--text-muted)}.input-field:hover{border-color:var(--border-strong);background:#ffffff0e}.input-field:focus,textarea:focus,input:focus{outline:none;border-color:#7c3aed8c;background:#7c3aed0d;box-shadow:0 0 0 3px #7c3aed1f,0 0 18px #7c3aed14}.input-field:disabled{opacity:.45;cursor:not-allowed}.input-field--error{border-color:var(--color-violation-border)}.input-field--error:focus{border-color:var(--color-violation);box-shadow:0 0 0 3px var(--color-violation-bg),var(--shadow-violation)}.input-field--success{border-color:var(--color-clean-border)}textarea.input-field{resize:vertical;min-height:120px}.input-wrapper{position:relative;display:flex;flex-direction:column;gap:var(--space-2)}.input-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);letter-spacing:.01em}.input-hint{font-size:var(--text-xs);color:var(--text-muted)}.input-error-msg{font-size:var(--text-xs);color:var(--color-violation)}.input-with-icon{position:relative}.input-with-icon .input-field{padding-left:var(--space-10)}.input-with-icon .input-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;display:flex;align-items:center}.segment-control,.tab-nav{display:flex;background:#ffffff0a;border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:4px;gap:2px}.tab-nav--underline{background:transparent;border:none;border-bottom:1px solid var(--border-default);border-radius:0;padding:0;gap:var(--space-2)}.segment-btn,.tab-item{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;font-family:var(--font);font-size:13px;font-weight:var(--weight-semibold);color:var(--text-muted);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;background:transparent;transition:color var(--transition-base),background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base);white-space:nowrap;-webkit-user-select:none;user-select:none}.segment-btn:not(.active):hover,.tab-item:not(.active):hover{background:var(--glass-bg-hover);color:var(--text-secondary)}.segment-btn.active,.tab-item.active,.tab-item[data-active=true]{background:var(--grad-primary);color:#fff;box-shadow:0 2px 12px #7c3aed59;border-color:transparent}.tab-item .tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-1);font-size:10px;font-weight:var(--weight-bold);border-radius:var(--radius-full);background:#ffffff1f;color:#ffffffb3;line-height:1}.tab-nav--underline .segment-btn,.tab-nav--underline .tab-item{flex:none;border-radius:0;border:none;border-bottom:2px solid transparent;padding-bottom:var(--space-3);margin-bottom:-1px;box-shadow:none;background:transparent;color:var(--text-muted)}.tab-nav--underline .tab-item:hover{border-bottom-color:var(--border-strong);color:var(--text-primary);background:transparent}.tab-nav--underline .tab-item.active{border-bottom-color:var(--neon-purple);color:var(--text-accent);background:transparent;box-shadow:none}.tab-panel{display:none}.tab-panel.active,.tab-panel[data-active=true]{display:block;animation:slideUp .28s ease-out}.progress-bar-track,.progress-track{width:100%;height:6px;background:#ffffff0f;border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-track--lg{height:10px}.progress-track--sm{height:4px}.progress-bar-fill,.progress-fill{height:100%;border-radius:var(--radius-full);background:var(--grad-primary);transition:width .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.progress-bar-fill:after,.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 2s linear infinite}.progress-fill--violation{background:linear-gradient(90deg,var(--color-violation),#f97316)}.progress-fill--warning{background:linear-gradient(90deg,var(--color-warning),#fbbf24)}.progress-fill--clean{background:linear-gradient(90deg,var(--color-clean),var(--neon-cyan))}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.08);border-top-color:var(--accent-purple);border-right-color:var(--accent-blue);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;display:inline-block}.spinner--sm{width:14px;height:14px;border-width:1.5px}.spinner--lg{width:36px;height:36px;border-width:3px}.spinner--violation{border-color:#ef44441f;border-top-color:var(--color-violation);border-right-color:#f97316}.spinner-dots{display:inline-flex;align-items:center;gap:var(--space-1)}.spinner-dots span{width:7px;height:7px;border-radius:50%;background:var(--neon-purple);animation:dotBlink 1.4s ease-in-out infinite}.spinner-dots span:nth-child(2){animation-delay:.2s}.spinner-dots span:nth-child(3){animation-delay:.4s}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0a0fa6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:inherit;z-index:var(--z-raised);animation:fadeIn var(--transition-base)}.shimmer{background:linear-gradient(90deg,#ffffff0a,#ffffff17,#ffffff0a 80%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--radius-md)}.shimmer-line{height:13px;border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.shimmer-line--sm{height:9px}.shimmer-line--lg{height:18px}.shimmer-line--xl{height:26px}.shimmer-circle{border-radius:50%;flex-shrink:0}.shimmer-card{background:var(--glass-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);overflow:hidden}.stat-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-primary);opacity:0;transition:opacity var(--transition-base)}.stat-card:hover{background:var(--glass-bg-hover);border-color:#7c3aed47;box-shadow:var(--shadow-xl),var(--shadow-neon);transform:translateY(-3px)}.stat-card:hover:before{opacity:1}.stat-card__icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--radius-lg);background:var(--grad-primary-soft);border:1px solid rgba(124,58,237,.18);color:var(--text-accent);margin:0 auto var(--space-4);font-size:var(--text-xl);flex-shrink:0}.stat-card__value{font-size:var(--text-3xl);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--text-primary)}.stat-card__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);margin-top:var(--space-1)}.stat-card__change{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);margin-top:var(--space-3);padding:3px var(--space-2);border-radius:var(--radius-full)}.stat-card__change--up{color:var(--color-violation);background:var(--color-violation-bg)}.stat-card__change--down{color:var(--color-clean);background:var(--color-clean-bg)}.stat-card__change--neutral{color:var(--text-secondary);background:#ffffff0d}.stat-card--violation{border-color:var(--color-violation-border)}.stat-card--violation:before{background:linear-gradient(90deg,var(--color-violation),#f97316)}.stat-card--violation:hover{border-color:var(--color-violation);box-shadow:var(--shadow-xl),var(--shadow-violation)}.stat-card--violation .stat-card__icon{background:var(--color-violation-bg);border-color:var(--color-violation-border);color:var(--color-violation)}.stat-card--warning{border-color:var(--color-warning-border)}.stat-card--warning:before{background:linear-gradient(90deg,var(--color-warning),#fbbf24)}.stat-card--warning:hover{border-color:var(--color-warning);box-shadow:var(--shadow-xl),var(--shadow-warning)}.stat-card--warning .stat-card__icon{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.stat-card--clean{border-color:var(--color-clean-border)}.stat-card--clean:before{background:linear-gradient(90deg,var(--color-clean),var(--neon-cyan))}.stat-card--clean:hover{border-color:var(--color-clean);box-shadow:var(--shadow-xl),var(--shadow-clean)}.stat-card--clean .stat-card__icon{background:var(--color-clean-bg);border-color:var(--color-clean-border);color:var(--color-clean)}[data-tooltip]{position:relative;cursor:default}[data-tooltip]:before,[data-tooltip]:after{position:absolute;z-index:var(--z-tooltip);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base)}[data-tooltip]:before{content:attr(data-tooltip);bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(5px);padding:var(--space-2) var(--space-3);background:var(--bg-overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-xs);font-weight:var(--weight-medium);box-shadow:var(--shadow-lg);max-width:220px;white-space:normal;text-align:center;font-family:var(--font)}[data-tooltip]:after{content:"";bottom:calc(100% + 3px);left:50%;transform:translate(-50%) translateY(5px);border:5px solid transparent;border-top-color:var(--border-strong)}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}[data-tooltip-pos=bottom]:before{top:calc(100% + 10px);bottom:auto;transform:translate(-50%) translateY(-5px)}[data-tooltip-pos=bottom]:after{top:calc(100% + 3px);bottom:auto;border-top-color:transparent;border-bottom-color:var(--border-strong);transform:translate(-50%) translateY(-5px)}[data-tooltip-pos=bottom]:hover:before,[data-tooltip-pos=bottom]:hover:after{transform:translate(-50%) translateY(0)}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.bento-1{grid-column:span 1}.bento-2{grid-column:span 2}.bento-3{grid-column:span 3}.bento-4{grid-column:span 4}.bento-5{grid-column:span 5}.bento-6{grid-column:span 6}.bento-7{grid-column:span 7}.bento-8{grid-column:span 8}.bento-9{grid-column:span 9}.bento-10{grid-column:span 10}.bento-11{grid-column:span 11}.bento-12{grid-column:span 12}.bento-row-2{grid-row:span 2}.bento-row-3{grid-row:span 3}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-4)}.app-layout{display:flex;min-height:100vh}.main-wrapper{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;min-width:0}.content-area{flex:1;padding:28px 32px;max-width:900px;width:100%;margin:0 auto}.sidebar{width:var(--sidebar-width);height:100vh;position:fixed;left:0;top:0;background:#0a0a0ff2;border-right:1px solid var(--glass-border);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;flex-direction:column;z-index:var(--z-sticky);flex-shrink:0}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-lg);cursor:pointer;color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font);border:1px solid transparent;background:transparent;text-align:left;width:100%;transition:all var(--transition-base);position:relative;overflow:hidden}.sidebar-nav-item:hover{background:var(--glass-bg-hover);color:var(--text-secondary)}.sidebar-nav-item.active{background:var(--grad-primary-soft);color:var(--text-primary);border-color:#7c3aed40}.sidebar-nav-item.active .nav-icon{background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.top-header{height:64px;background:#0a0a0fcc;border-bottom:1px solid var(--glass-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;padding:0 32px;gap:12px;position:sticky;top:0;z-index:var(--z-dropdown)}.divider{height:1px;background:var(--glass-border);margin:16px 0}.divider--gradient{background:linear-gradient(90deg,transparent 0%,var(--border-strong) 30%,rgba(124,58,237,.28) 50%,var(--border-strong) 70%,transparent 100%);margin:0}.table-wrapper{overflow-x:auto;border-radius:var(--radius-xl);border:1px solid var(--border-default);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table thead tr{border-bottom:1px solid var(--border-default)}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.data-table td{padding:var(--space-4);color:var(--text-primary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:#ffffff06}.data-table tbody tr:last-child td{border-bottom:none}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:1px solid;font-size:var(--text-sm);line-height:var(--leading-relaxed)}.alert-violation{background:var(--color-violation-bg);border-color:var(--color-violation-border);color:#fca5a5}.alert-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:#fcd34d}.alert-clean{background:var(--color-clean-bg);border-color:var(--color-clean-border);color:#86efac}.alert-info{background:var(--color-info-bg);border-color:var(--color-info-border);color:#93c5fd}.scan-progress-card{background:linear-gradient(135deg,#7c3aed14,#3b82f614);border:1px solid rgba(124,58,237,.2);border-radius:var(--radius-xl);padding:var(--space-5);animation:borderGlow 3s ease-in-out infinite}.pro-banner{background:linear-gradient(135deg,#7c3aed2e,#3b82f62e);border:1px solid rgba(124,58,237,.25);border-radius:var(--radius-lg);padding:var(--space-4);position:relative;overflow:hidden}.pro-banner:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.03) 50%,transparent 70%);background-size:200% 200%;animation:shimmer 3s ease infinite}.search-result-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-md);background:#ffffff05;border:1px solid transparent;transition:all var(--transition-fast);cursor:pointer}.search-result-item:hover{background:#ffffff0a;border-color:var(--glass-border)}.search-result-item.selected{background:var(--grad-primary-soft);border-color:#7c3aed47}.history-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-md);background:#ffffff05;border:1px solid var(--glass-border);transition:all var(--transition-fast);margin-bottom:8px}.history-item:hover{background:#ffffff0a}.keyword-chip{display:inline-flex;align-items:center;padding:6px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:var(--weight-semibold);font-family:var(--font);cursor:pointer;background:#ffffff0a;border:1px solid var(--glass-border);color:var(--text-secondary);transition:all var(--transition-base);white-space:nowrap}.keyword-chip:hover{background:var(--grad-primary-soft);border-color:#7c3aed59;color:var(--text-primary)}.custom-checkbox{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--glass-border);background:transparent;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.custom-checkbox:checked{background:var(--grad-primary);border-color:transparent;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:12px 10px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center}.empty-icon-wrap{width:80px;height:80px;border-radius:24px;background:var(--grad-primary-soft);border:1px solid rgba(124,58,237,.18);display:flex;align-items:center;justify-content:center;font-size:36px;margin-bottom:20px}.bg-glow{position:fixed;pointer-events:none;z-index:0}.bg-glow-1{top:-200px;left:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(124,58,237,.06) 0%,transparent 70%)}.bg-glow-2{bottom:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(6,182,212,.05) 0%,transparent 70%)}code,kbd{font-family:var(--font-mono);font-size:.875em;padding:2px var(--space-2);background:#ffffff0f;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-accent)}pre{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-5);background:#00000059;border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow-x:auto;line-height:var(--leading-relaxed);color:var(--text-secondary)}pre code{background:none;border:none;padding:0;color:inherit}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-primary-c{color:var(--text-primary)}.text-secondary-c{color:var(--text-secondary)}.text-muted-c{color:var(--text-muted)}.text-accent-c{color:var(--text-accent)}.text-violation-c{color:var(--color-violation)}.text-warning-c{color:var(--color-warning)}.text-clean-c{color:var(--color-clean)}.font-normal{font-weight:var(--weight-normal)}.font-medium{font-weight:var(--weight-medium)}.font-semibold{font-weight:var(--weight-semibold)}.font-bold{font-weight:var(--weight-bold)}.font-mono{font-family:var(--font-mono)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hidden{display:none}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid-util{display:grid}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.min-w-0{min-width:0}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.cursor-pointer{cursor:pointer}.select-none{user-select:none;-webkit-user-select:none}.opacity-50{opacity:.5}.opacity-70{opacity:.7}:focus-visible{outline:2px solid var(--neon-purple);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mobile-tabbar{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background:#0a0a0ff2;border-top:1px solid var(--glass-border);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:var(--z-modal);padding:0 8px;align-items:center;justify-content:space-around}.mobile-tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:none;background:transparent;cursor:pointer;font-family:var(--font);color:var(--text-muted);font-size:10px;font-weight:var(--weight-semibold);transition:all var(--transition-base);border-radius:var(--radius-md)}.mobile-tab-btn.active{color:var(--accent-blue)}.mobile-tab-btn .tab-icon{font-size:20px;line-height:1}@media(max-width:768px){.sidebar{display:none}.mobile-tabbar{display:flex}.main-wrapper{margin-left:0;padding-bottom:64px}.content-area{padding:20px 16px}.top-header{padding:0 16px}:root{--text-4xl: 1.875rem;--text-3xl: 1.5rem;--text-2xl: 1.25rem}.bento-grid{grid-template-columns:repeat(6,1fr);gap:var(--space-3)}.bento-4,.bento-5,.bento-6,.bento-7,.bento-8,.bento-9,.bento-10,.bento-11,.bento-12{grid-column:span 6}.stats-grid{grid-template-columns:repeat(2,1fr)}.segment-control,.tab-nav{overflow-x:auto;flex-wrap:nowrap}}@media(max-width:640px){.bento-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.bento-3,.bento-4,.bento-5,.bento-6,.bento-7,.bento-8,.bento-9,.bento-10,.bento-11,.bento-12{grid-column:span 4}.stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.segment-btn,.tab-item{font-size:var(--text-xs);padding:8px 12px}}@media(min-width:1280px){.bento-grid{gap:var(--space-5)}.content-area{max-width:1080px}}@media print{body{background:#fff;color:#000}.glass-card,.glass-card-hover,.stat-card{background:#f8f8f8;border:1px solid #ddd;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.gradient-text{-webkit-text-fill-color:#333;background:none}.sidebar,.mobile-tabbar,.bg-glow{display:none}.main-wrapper{margin-left:0}}
