.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.spinner{border:3px solid #f3f3f3;border-top:3px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner.small .spinner{width:20px;height:20px;border-width:2px}.loading-spinner.medium .spinner{width:40px;height:40px;border-width:3px}.loading-spinner.large .spinner{width:60px;height:60px;border-width:4px}.loading-text{margin-top:1rem;color:#666;font-size:.9rem;text-align:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skeleton-card{background:#f8f9fa;border-radius:8px;padding:1rem;margin-bottom:1rem;animation:pulse 1.5s ease-in-out infinite}.skeleton-line{height:1rem;background:#e9ecef;border-radius:4px;margin-bottom:.5rem;animation:pulse 1.5s ease-in-out infinite}.skeleton-line.short{width:60%}.skeleton-line.medium{width:80%}.skeleton-line.long{width:100%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #ea580c;--primary-hover: #c2410c;--primary-light: #fed7aa;--primary-dark: #9a3412;--secondary-color: #f97316;--secondary-light: #ffedd5;--accent-color: #fb923c;--accent-light: #fff7ed;--success-color: #16a34a;--success-light: #dcfce7;--warning-color: #eab308;--warning-light: #fef9c3;--danger-color: #dc2626;--danger-light: #fee2e2;--info-color: #0284c7;--info-light: #e0f2fe;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--text-inverse: #ffffff;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-overlay: rgba(15, 23, 42, .5);--border-color: #e2e8f0;--border-light: #f1f5f9;--divider: #cbd5e1;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--section-gap: 2.5rem;--card-padding: 1.75rem;--container-padding: 2rem;--element-gap: 1.25rem;--content-gap: 1.5rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background-color:var(--bg-secondary);line-height:1.6;font-size:16px}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--text-primary);margin:0}h1{font-size:2.25rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.875rem;font-weight:600;letter-spacing:-.01em}h3{font-size:1.5rem;font-weight:600}h4{font-size:1.25rem;font-weight:600}p{margin:0;color:var(--text-secondary)}.loading{display:flex;justify-content:center;align-items:center;min-height:300px;font-size:1.125rem;color:var(--text-secondary)}.error-message{background-color:var(--danger-light);border-left:4px solid var(--danger-color);color:#991b1b;padding:var(--spacing-lg) var(--spacing-xl);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm)}.success-message{background-color:var(--success-light);border-left:4px solid var(--success-color);color:#065f46;padding:var(--spacing-lg) var(--spacing-xl);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm)}.warning-box{background-color:var(--warning-light);border:1px solid var(--warning-color);border-radius:var(--radius-md);padding:var(--spacing-lg) var(--spacing-xl);margin:var(--spacing-lg) 0;color:#92400e;font-weight:500}.btn-primary,.btn-secondary,.btn-danger,.btn-small,.btn-link,.btn-back,.btn-logout{padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-base);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:44px;line-height:1.5}.btn-primary{background-color:var(--primary-color);color:var(--text-inverse);font-weight:500;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);font-weight:500}.btn-secondary:hover{background-color:var(--bg-secondary);border-color:var(--primary-color);color:var(--primary-color)}.btn-danger{background-color:var(--danger-color);color:var(--text-inverse);font-weight:500;box-shadow:var(--shadow-sm)}.btn-danger:hover{background-color:#dc2626;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-danger:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-small{padding:.375rem .75rem;font-size:.875rem}.btn-large{padding:var(--spacing-lg) var(--spacing-2xl);font-size:1.125rem;font-weight:600;min-height:52px}.btn-link{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-link:hover{background-color:var(--primary-color);color:#fff}.btn-back{background-color:transparent;color:var(--text-secondary);padding:.5rem 1rem;margin-bottom:1rem}.btn-back:hover{background-color:var(--bg-secondary)}.btn-logout{background-color:transparent;color:var(--text-secondary);padding:.5rem 1rem;border:1px solid var(--border-color)}.btn-logout:hover{background-color:var(--danger-color);color:#fff;border-color:var(--danger-color)}.tech-stack{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.tech-tag{background-color:#dbeafe;color:#1e40af;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;text-transform:capitalize}.status-completed,.status-badge.status-completed{background-color:#d1fae5;color:#065f46}.status-in-progress,.status-badge.status-in-progress{background-color:#fef3c7;color:#92400e}.status-abandoned,.status-badge.status-abandoned{background-color:#fee2e2;color:#991b1b}.card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--card-padding);box-shadow:var(--shadow);transition:all var(--transition-base)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--primary-light)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.card h3{color:var(--text-primary);margin-bottom:var(--spacing-md);margin-top:0}.card p{color:var(--text-secondary);margin-bottom:var(--spacing-md);line-height:1.6}.empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--text-secondary);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.empty-state p{font-size:1.125rem;margin-bottom:var(--spacing-xl)}.empty-state .btn-primary,.empty-state .btn-secondary{margin:0 auto;display:inline-flex}.table-container{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:.5rem;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead{background-color:var(--bg-secondary)}.data-table th,.data-table td{padding:var(--spacing-lg) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{font-weight:600;color:var(--text-primary)}.data-table td{color:var(--text-secondary)}.data-table tbody tr:hover{background-color:var(--bg-secondary)}.data-table tbody tr:last-child td{border-bottom:none}.modal-overlay{position:fixed;inset:0;background-color:#000000bf;backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal,.modal-content{background-color:var(--bg-primary);border-radius:var(--radius-xl);padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);position:relative;z-index:1001;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal h2,.modal-content h2{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.5rem;font-weight:600;border-bottom:2px solid var(--primary-color);padding-bottom:.75rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--primary-color)}.modal-header h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0;border-bottom:none;padding-bottom:0}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-base)}.modal-close:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.form-group{margin-bottom:var(--spacing-xl)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--text-primary)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ea580c1a}.modal .form-group,.modal-content .form-group{margin-bottom:1.5rem}.modal .form-group label,.modal-content .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary);font-size:.875rem}.modal .form-group select,.modal-content .form-group select{padding:.75rem;font-size:1rem;background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.modal .form-group select:focus,.modal-content .form-group select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #ea580c1a}.modal .form-group textarea,.modal-content .form-group textarea{min-height:100px;resize:vertical}.modal .form-actions,.modal-content .form-actions{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.modal .form-actions .btn-primary,.modal .form-actions .btn-secondary,.modal-content .form-actions .btn-primary,.modal-content .form-actions .btn-secondary{min-width:140px;flex:0 0 auto}.form-group small{display:block;margin-top:.25rem;color:var(--text-secondary);font-size:.875rem}.form-actions{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.form-actions .btn-primary,.form-actions .btn-secondary{min-width:140px}.help-text{color:var(--text-secondary);font-size:.875rem;margin-top:.5rem}.badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-easy{background-color:#d1fae5;color:#065f46}.badge-medium{background-color:#fef3c7;color:#92400e}.badge-hard{background-color:#fee2e2;color:#991b1b}.badge-technical{background-color:#dbeafe;color:#1e40af}.badge-behavioral{background-color:#e0e7ff;color:#3730a3}.badge-project-based{background-color:#fce7f3;color:#831843}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.page-header h1{margin:0;font-size:2rem;font-weight:700;color:var(--text-primary)}.page-header-actions{display:flex;gap:1rem;align-items:center}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md)}.section-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.section-header-actions{display:flex;gap:.75rem}.card-elevated{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.card-elevated:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--primary-light)}.card-simple{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.info-box{background-color:var(--info-light);border-left:4px solid var(--info-color);padding:1rem 1.25rem;border-radius:var(--radius-md);margin:1rem 0;color:#075985;font-weight:500}.info-box p{margin:0;color:#075985}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}@media (max-width: 1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.flex-column{display:flex;flex-direction:column}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}.mb-5{margin-bottom:var(--spacing-2xl)}.mb-6{margin-bottom:var(--spacing-3xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mt-5{margin-top:var(--spacing-2xl)}.mt-6{margin-top:var(--spacing-3xl)}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.mx-2{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.mx-3{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.my-2{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.my-3{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.my-4{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.p-0{padding:0}.p-1{padding:var(--spacing-sm)}.p-2{padding:var(--spacing-md)}.p-3{padding:var(--spacing-lg)}.p-4{padding:var(--spacing-xl)}.p-5{padding:var(--spacing-2xl)}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-2{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-3{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-4{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-2{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-3{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-4{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.tech-tag{background:linear-gradient(135deg,var(--primary-light) 0%,var(--secondary-light) 100%);color:var(--primary-dark);padding:.375rem .875rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;border:1px solid var(--primary-light);transition:all var(--transition-base)}.tech-tag:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--text-inverse);transform:scale(1.05)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:var(--radius-sm)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-hover);text-decoration:underline}.divider{height:1px;background-color:var(--divider);margin:var(--spacing-lg) 0;border:none}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}
