:root{--bg-color:#020617;--surface-color:#0f172a;--surface-hover:#1e293b;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-color:#f8fafc;--accent-hover:#e2e8f0;--success-color:#22c55e;--success-bg:#22c55e1a;--warning-color:#eab308;--warning-bg:#eab3081a;--danger-color:#ef4444;--danger-bg:#ef44441a;--border-color:#334155;--border-subtle:#ffffff0d;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:16px;--shadow-subtle:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5}.app-layout{flex-direction:column;min-height:100vh;display:flex}.navbar{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#0f172acc;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.nav-brand{align-items:center;gap:12px;display:flex}.brand-icon{width:24px;height:24px;color:var(--text-primary)}.nav-brand h1{letter-spacing:-.02em;font-size:16px;font-weight:600}.nav-links{gap:24px;display:flex}.nav-links a{color:var(--text-secondary);font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.nav-links a:hover,.nav-links a.active{color:var(--text-primary)}.main-content{grid-template-columns:1fr 1fr;gap:32px;width:100%;max-width:1200px;margin:0 auto;padding:32px;display:grid}@media (width<=900px){.main-content{grid-template-columns:1fr}}.config-panel,.results-panel{flex-direction:column;gap:24px;display:flex}.panel-header h2{letter-spacing:-.02em;margin-bottom:8px;font-size:24px;font-weight:600}.subtitle{color:var(--text-secondary);font-size:14px}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label,.picker-header label{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.header-icon{width:16px;height:16px;color:var(--text-secondary)}.select-wrapper{position:relative}.sleek-input{appearance:none;border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);padding:12px 16px;font-size:14px;transition:border-color .15s,box-shadow .15s}.sleek-input:focus{border-color:var(--text-secondary);box-shadow:0 0 0 1px var(--border-color);outline:none}.picker-section{flex-direction:column;gap:12px;display:flex}.picker-header{justify-content:space-between;align-items:center;display:flex}.required-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:var(--surface-color);border:1px solid var(--border-color);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.card-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.comp-card{text-align:center;border-radius:var(--radius-md);background:var(--surface-color);border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:84px;padding:16px 12px;transition:all .15s;display:flex}.comp-card:hover{background:var(--surface-hover);border-color:var(--text-secondary)}.comp-card.selected{background:var(--success-bg);border-color:var(--success-color)}.comp-card .icon{width:24px;height:24px;color:var(--text-secondary);transition:color .15s}.comp-card.selected .icon{color:var(--success-color)}.comp-card span{color:var(--text-primary);font-size:12px;font-weight:500}.custom-card{color:var(--text-secondary);border-style:dashed}.custom-card:hover{border-style:solid}.custom-initial{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.custom-input-wrapper{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.custom-input{border:none;border-bottom:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);text-align:center;background:0 0;padding:4px 0;font-size:12px}.custom-input:focus{border-color:var(--success-color);outline:none}.btn-primary{background:var(--accent-color);color:var(--bg-color);border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:14px;font-size:14px;font-weight:600;transition:background .15s,transform .1s;display:flex}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.results-panel{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);min-height:600px;padding:32px}.state-container{text-align:center;height:100%;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.state-content h3{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:600}.state-content p{max-width:280px;font-size:14px}.huge-icon{opacity:.5;width:48px;height:48px}.spinner{border:3px solid var(--border-subtle);border-top-color:var(--success-color);border-radius:50%;width:40px;height:40px;margin:0 auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.results-container{flex-direction:column;gap:32px;display:flex}.score-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#ffffff05;align-items:center;gap:24px;padding:24px;display:flex}.score-circle{width:80px;height:80px;position:relative}.circular-chart{max-width:80%;max-height:250px;margin:0 auto;display:block}.circle-bg{fill:none;stroke:var(--border-color);stroke-width:2.5px}.circle{fill:none;stroke-width:2.5px;stroke-linecap:round;transition:stroke-dasharray 1s ease-out}.score-value{font-size:20px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-details h3{margin-bottom:4px;font-size:20px;font-weight:600}.score-details p{color:var(--text-secondary);font-size:14px}.results-section h4{color:var(--text-primary);border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:8px;font-size:14px;font-weight:600}#issues-container{flex-direction:column;gap:12px;display:flex}.issue-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#ffffff05;gap:16px;padding:16px;display:flex}.issue-icon{flex-shrink:0;width:20px;height:20px}.issue-content{flex-direction:column;gap:4px;display:flex}.issue-title{font-size:14px;font-weight:600}.issue-desc{color:var(--text-secondary);font-size:13px}.issue-fix{background:var(--bg-color);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:4px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:12px;display:flex}.issue-card.critical{border-color:var(--danger-color);background:var(--danger-bg)}.issue-card.critical .issue-title,.issue-card.critical .issue-icon{color:var(--danger-color)}.issue-card.warning{border-color:var(--warning-color);background:var(--warning-bg)}.issue-card.warning .issue-title,.issue-card.warning .issue-icon{color:var(--warning-color)}.issue-card.success{border-color:var(--success-color);background:var(--success-bg)}.issue-card.success .issue-title,.issue-card.success .issue-icon{color:var(--success-color)}.table-container{border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border-color);padding:12px 16px}th{background:var(--bg-color);color:var(--text-secondary);font-weight:600}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff05}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.ok{background:var(--success-bg);color:var(--success-color)}.badge.warning{background:var(--warning-bg);color:var(--warning-color)}.badge.critical{background:var(--danger-bg);color:var(--danger-color)}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}
