@tailwind base;@tailwind components;@tailwind utilities;@layer base{*{@apply box-border;}body{@apply min-h-screen;background:radial-gradient(900px 500px at 20% 10%,rgba(99,102,241,.18),transparent 55%),radial-gradient(900px 500px at 80% 90%,rgba(34,211,238,.14),transparent 55%),#0b1220;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e5e7eb;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components{.glass-card{@apply bg-slate-900/90 backdrop-blur-lg border border-slate-700/90 rounded-glass shadow-glass;}.status-badge{@apply inline-flex items-center gap-2 px-3 py-1.5 rounded-full text-xs font-bold;}.status-badge:before{content:"";@apply w-2 h-2 rounded-full bg-current opacity-90;}}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--space-6);padding-right:var(--space-6)}.container-sm{max-width:640px}.container-default{max-width:1200px}.container-lg{max-width:1400px}.container-full{max-width:100%}@media(max-width:768px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}}.page-layout{padding-top:var(--space-6);padding-bottom:var(--space-10)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8);gap:var(--space-6)}.page-header-content{flex:1}.page-title{margin:0 0 var(--space-2) 0;font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.page-description{margin:0;font-size:var(--font-size-lg);color:var(--color-text-secondary)}.page-actions{display:flex;gap:var(--space-3);flex-shrink:0}@media(max-width:768px){.page-header{flex-direction:column}.page-title{font-size:var(--font-size-2xl)}.page-actions{width:100%}}.notification-container{position:fixed;top:24px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:var(--space-3);max-width:400px}.notification{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-4);display:flex;align-items:center;gap:var(--space-3);min-width:300px;animation:slideInRight .3s ease-out;border-left:4px solid}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.notification-success{border-left-color:var(--color-success)}.notification-error{border-left-color:var(--color-error)}.notification-warning{border-left-color:var(--color-warning)}.notification-info{border-left-color:var(--color-info)}.notification-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);font-weight:700;flex-shrink:0}.notification-success .notification-icon{background:#d1fae5;color:var(--color-success)}.notification-error .notification-icon{background:#fee2e2;color:var(--color-error)}.notification-warning .notification-icon{background:#fef3c7;color:var(--color-warning)}.notification-info .notification-icon{background:#dbeafe;color:var(--color-info)}.notification-message{flex:1;color:var(--color-text-primary);font-size:var(--font-size-base);line-height:1.5}.notification-close{background:none;border:none;color:var(--color-text-tertiary);font-size:var(--font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--transition-fast);flex-shrink:0}.notification-close:hover{background:var(--color-bg);color:var(--color-text-primary)}@media(max-width:768px){.notification-container{top:16px;right:16px;left:16px;max-width:none}.notification{min-width:auto}}.message-status{display:inline-flex;align-items:center;margin-left:4px;font-size:14px;line-height:1}.status-icon{font-weight:900;font-size:16px;letter-spacing:-2px}.status-sent,.status-delivered{color:#8696a0}.status-read{color:#53bdeb}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:4px}.online-status-indicator{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.online-status-indicator.online .status-dot{background:#10b981;box-shadow:0 0 0 2px #10b98133;animation:pulse 2s infinite}.online-status-indicator.offline .status-dot{background:#9ca3af}.online-status-indicator.online{color:#10b981;font-weight:600}.online-status-indicator.offline{color:#6b7280}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:var(--space-8)}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{margin-top:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:var(--space-8);text-align:center}.empty-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.5}.empty-state h3{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--font-size-xl)}.empty-state p{margin:0 0 var(--space-5) 0;color:var(--color-text-secondary);max-width:400px}.empty-action-btn{padding:var(--space-3) var(--space-6);background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.empty-action-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.skeleton-card{background:#fff;padding:var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{height:24px;width:70%;margin-bottom:var(--space-3)}.skeleton-company{height:16px;width:40%;margin-bottom:var(--space-3)}.skeleton-details{height:14px;width:60%;margin-bottom:var(--space-3)}.skeleton-description{height:14px;width:100%;margin-bottom:var(--space-2)}.skeleton-stat-value{height:32px;width:60px;margin-bottom:var(--space-2)}.skeleton-stat-label{height:14px;width:80px}.skeleton-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-line{height:16px;width:100%}.skeleton-line-short{height:14px;width:60%}.list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4)}.tool-icon{font-size:3rem;text-align:center}.toggle-switch{position:relative;display:inline-block;width:60px;height:34px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-gray-300);transition:var(--transition-base);border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:var(--transition-base);border-radius:50%}.toggle-switch input:checked+.toggle-slider{background:var(--gradient-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(26px)}.advanced-badge{padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center}.tool-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.tool-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.tool-btn:disabled{opacity:.5;cursor:not-allowed}.report-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.report-time{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.report-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);padding:var(--space-4);background:var(--color-gray-50);border-radius:var(--radius-lg)}.stat-item{display:flex;flex-direction:column;gap:var(--space-2)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.similarity-badge{padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.duplicate-lines{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.file-paths{display:flex;flex-direction:column;gap:var(--space-2)}.file-path{font-size:var(--font-size-sm);color:var(--color-text-primary);font-family:Courier New,monospace;background:var(--color-gray-50);padding:var(--space-2);border-radius:var(--radius-md)}.code-snippet{background:var(--color-gray-900);color:#a0aec0;padding:var(--space-3);border-radius:var(--radius-md);overflow-x:auto}.code-snippet code{font-family:Courier New,monospace;font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-all}.no-duplications{text-align:center;padding:var(--space-8);font-size:var(--font-size-lg);color:var(--color-success);font-weight:var(--font-weight-semibold)}.dead-code-type{display:inline-block}.dead-code-line{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:Courier New,monospace}.dead-code-name{font-size:var(--font-size-lg);color:var(--color-text-primary)}.dead-code-reason{font-size:var(--font-size-sm);color:var(--color-warning);padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-md);border-left:3px solid var(--color-warning)}@media(max-width:768px){.report-stats{grid-template-columns:1fr}}.language-switcher{display:flex;gap:var(--space-2);align-items:center}.lang-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:transparent;border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.lang-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.lang-btn.active{background:var(--gradient-primary);border-color:var(--color-primary);color:#fff}.flag-img{width:20px;height:15px;border-radius:2px;object-fit:cover}.lang-code{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}@media(max-width:768px){.lang-btn{padding:var(--space-2)}.lang-code{display:none}}.top-bar{height:64px;background:linear-gradient(90deg,#1a202c,#2d3748);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);position:sticky;top:0;z-index:50;box-shadow:0 4px 12px #0000001a}.top-bar-left{display:flex;align-items:center;gap:var(--space-4)}.page-title-header{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.top-bar-right{display:flex;align-items:center;gap:var(--space-4)}.user-menu{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.user-avatar-small{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);color:#fff;font-size:var(--font-size-sm)}@media(max-width:768px){.top-bar{padding:0 var(--space-4)}.page-title-header{font-size:var(--font-size-lg)}}.offline-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out}.offline-card{background:#fff;padding:var(--space-8);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);text-align:center;max-width:400px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.offline-icon{font-size:4rem;margin-bottom:var(--space-4);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.offline-card h2{margin:0 0 var(--space-3) 0;color:var(--color-text-primary)}.offline-card p{margin:0 0 var(--space-5) 0;color:var(--color-text-secondary)}.retry-btn{padding:var(--space-3) var(--space-6);background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.retry-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.retry-btn:active{transform:translateY(0)}.offline-hint{margin-top:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.layout{display:flex;min-height:100vh;background:var(--color-background)}.main-wrapper{flex:1;margin-left:280px;display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;background:var(--color-background)}@media(max-width:768px){.main-wrapper{margin-left:240px}}.master-layout{min-height:100vh;position:relative}.splash-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-out}.splash-content{text-align:center;color:#fff}.splash-logo{position:relative;width:120px;height:120px;margin:0 auto var(--space-6)}.logo-circle{width:120px;height:120px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:pulse 2s ease-in-out infinite;position:relative;z-index:2}.logo-text{font-size:2.5rem;font-weight:var(--font-weight-bold);color:#fff}.logo-rings{position:absolute;top:0;left:0;width:100%;height:100%}.ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.3);border-radius:50%;animation:ripple 2s ease-out infinite}.ring-1{width:120px;height:120px;animation-delay:0s}.ring-2{width:140px;height:140px;animation-delay:.5s}.ring-3{width:160px;height:160px;animation-delay:1s}.splash-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-2) 0;animation:slideUp .6s ease-out .2s backwards}.splash-tagline{font-size:var(--font-size-lg);margin:0 0 var(--space-8) 0;opacity:.9;animation:slideUp .6s ease-out .4s backwards}.splash-status{animation:slideUp .6s ease-out .6s backwards}.status-dots{display:flex;gap:var(--space-2);justify-content:center;margin-bottom:var(--space-3)}.dot{width:8px;height:8px;background:#fff;border-radius:50%;animation:bounce 1.4s ease-in-out infinite}.dot:nth-child(1){animation-delay:0s}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}.status-text{font-size:var(--font-size-base);margin:0;opacity:.8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #fff6}50%{transform:scale(1.05);box-shadow:0 0 20px 10px #fff3}}@keyframes ripple{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}
