body:has(.purlin-page):before{display:none!important}body:has(.purlin-page):after{display:none!important}:is(body:has(.purlin-page)>header,body:has(.purlin-page)>footer){display:none!important}.purlin-page{--p-bg-primary:#0f172a;--p-bg-secondary:#1e293b;--p-bg-card:#1e293bbf;--p-bg-card-hover:#1e293be6;--p-bg-input:#0f172a99;--p-bg-input-focus:#0f172ae6;--p-border-subtle:#94a3b826;--p-border-focus:#3b82f6;--p-border-card:#94a3b81a;--p-accent:#3b82f6;--p-accent-hover:#2563eb;--p-accent-glow:#3b82f640;--p-accent-light:#3b82f61a;--p-success:#22c55e;--p-success-bg:#22c55e1a;--p-warning:#f59e0b;--p-warning-bg:#f59e0b1a;--p-danger:#ef4444;--p-danger-bg:#ef44441a;--p-text-primary:#e2e8f0;--p-text-secondary:#94a3b8;--p-text-muted:#64748b;--p-text-accent:#60a5fa;--p-space-xs:4px;--p-space-sm:8px;--p-space-md:16px;--p-space-lg:24px;--p-space-xl:32px;--p-space-2xl:48px;--p-radius-sm:6px;--p-radius-md:10px;--p-radius-lg:16px;--p-radius-xl:20px;--p-shadow-card:0 4px 24px #0000004d;--p-shadow-glow:0 0 20px var(--p-accent-glow);--p-shadow-input:0 2px 8px #0003;--p-transition-fast:.15s ease;--p-transition-normal:.25s ease;--p-transition-slow:.4s ease;--p-font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--p-font-mono:"JetBrains Mono", "Fira Code", monospace;--p-text-xs:.75rem;--p-text-sm:.8125rem;--p-text-base:.9375rem;--p-text-lg:1.125rem;--p-text-xl:1.25rem;--p-text-2xl:1.5rem;--p-text-3xl:2rem;background:var(--p-bg-primary);color:var(--p-text-primary);font-family:var(--p-font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6;position:relative;overflow-x:hidden}.purlin-page *,.purlin-page :before,.purlin-page :after{box-sizing:border-box}.purlin-page:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(at 20% 20%,#3b82f614 0%,#0000 50%),radial-gradient(at 80% 80%,#6366f10f 0%,#0000 50%);position:fixed;inset:0}.purlin-page .back-link{color:#94a3b8;font-size:var(--p-text-base);transition:all var(--p-transition-fast);z-index:10;border-radius:var(--p-radius-sm);background:#1e293b80;border:1px solid #94a3b81a;align-items:center;gap:8px;margin-bottom:8px;padding:10px 16px;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.purlin-page .back-link:hover{color:var(--p-accent)}.purlin-page .back-link .logo-icon-mini{color:#fff;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:flex}.purlin-page .app-container{z-index:1;max-width:1280px;padding:var(--p-space-lg);min-height:100vh;margin:0 auto;position:relative}.purlin-page .app-header{text-align:center;margin-bottom:var(--p-space-2xl);padding:var(--p-space-xl) 0}.purlin-page .app-header h1{font-size:var(--p-text-3xl);background:linear-gradient(135deg,#60a5fa,#818cf8);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:700}.purlin-page .app-header p{color:var(--p-text-secondary);font-size:var(--p-text-base);margin-top:var(--p-space-sm)}.purlin-page .wizard-container{gap:var(--p-space-xl);grid-template-columns:260px 1fr;align-items:start;display:grid}@media (max-width:900px){.purlin-page .wizard-container{grid-template-columns:1fr}}.purlin-page .wizard-sidebar{background:var(--p-bg-card);border:1px solid var(--p-border-card);border-radius:var(--p-radius-lg);padding:var(--p-space-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);top:var(--p-space-lg);position:sticky}.purlin-page .wizard-step-item{align-items:center;gap:var(--p-space-md);padding:var(--p-space-md);border-radius:var(--p-radius-md);cursor:pointer;transition:all var(--p-transition-normal);-webkit-user-select:none;user-select:none;border:1px solid #0000;display:flex}.purlin-page .wizard-step-item:hover{background:var(--p-accent-light)}.purlin-page .wizard-step-item.active{background:var(--p-accent-light);border-color:var(--p-accent)}.purlin-page .wizard-step-item.completed{opacity:.85}.purlin-page .wizard-step-item.completed:hover{opacity:1}.purlin-page .step-number{width:32px;height:32px;font-size:var(--p-text-sm);background:var(--p-bg-input);border:1.5px solid var(--p-border-subtle);transition:all var(--p-transition-normal);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.purlin-page .wizard-step-item.active .step-number{background:var(--p-accent);border-color:var(--p-accent);color:#fff;box-shadow:var(--p-shadow-glow)}.purlin-page .wizard-step-item.completed .step-number{background:var(--p-success);border-color:var(--p-success);color:#fff}.purlin-page .step-label{font-size:var(--p-text-sm);color:var(--p-text-secondary);transition:color var(--p-transition-normal)}.purlin-page .wizard-step-item.active .step-label{color:var(--p-text-primary);font-weight:500}.purlin-page .wizard-content{background:var(--p-bg-card);border:1px solid var(--p-border-card);border-radius:var(--p-radius-lg);padding:var(--p-space-xl);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);min-height:500px;animation:.3s purlinFadeIn}@keyframes purlinFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.purlin-page .step-title{font-size:var(--p-text-xl);margin-bottom:var(--p-space-lg);color:var(--p-text-primary);align-items:center;gap:var(--p-space-sm);font-weight:600;display:flex}.purlin-page .step-title svg{color:var(--p-accent)}.purlin-page .card{background:var(--p-bg-card);border:1px solid var(--p-border-card);border-radius:var(--p-radius-md);padding:var(--p-space-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--p-transition-normal)}.purlin-page .card:hover{border-color:var(--p-border-subtle)}.purlin-page .card-selected{border-color:var(--p-accent);background:var(--p-accent-light);box-shadow:var(--p-shadow-glow)}.purlin-page .form-group{margin-bottom:var(--p-space-lg)}.purlin-page .form-label{font-size:var(--p-text-sm);color:var(--p-text-secondary);margin-bottom:var(--p-space-sm);font-weight:500;display:block}.purlin-page .form-input{background:var(--p-bg-input);border:1.5px solid var(--p-border-subtle);border-radius:var(--p-radius-sm);width:100%;color:var(--p-text-primary);font-family:var(--p-font-sans);font-size:var(--p-text-base);transition:all var(--p-transition-fast);outline:none;padding:10px 14px}.purlin-page .form-input:focus{border-color:var(--p-accent);background:var(--p-bg-input-focus);box-shadow:0 0 0 3px var(--p-accent-glow)}.purlin-page .form-input::placeholder{color:var(--p-text-muted)}.purlin-page .input-with-unit{position:relative}.purlin-page .input-with-unit .form-input{padding-right:54px}.purlin-page .input-unit{color:var(--p-text-muted);font-size:var(--p-text-sm);pointer-events:none;font-weight:500;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.purlin-page .form-row{gap:var(--p-space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.purlin-page .form-hint{font-size:var(--p-text-xs);color:var(--p-text-muted);margin-top:var(--p-space-xs)}.purlin-page .form-select{background:var(--p-bg-input);border:1.5px solid var(--p-border-subtle);border-radius:var(--p-radius-sm);width:100%;color:var(--p-text-primary);font-family:var(--p-font-sans);font-size:var(--p-text-base);cursor:pointer;transition:all var(--p-transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;outline:none;padding:10px 14px}.purlin-page .form-select:focus{border-color:var(--p-accent);box-shadow:0 0 0 3px var(--p-accent-glow)}.purlin-page .form-select option{background:var(--p-bg-secondary);color:var(--p-text-primary)}.purlin-page .radio-group{gap:var(--p-space-md);flex-wrap:wrap;display:flex}.purlin-page .radio-card{min-width:140px;padding:var(--p-space-lg);background:var(--p-bg-input);border:1.5px solid var(--p-border-subtle);border-radius:var(--p-radius-md);cursor:pointer;transition:all var(--p-transition-normal);text-align:center;-webkit-user-select:none;user-select:none;flex:1}.purlin-page .radio-card:hover{border-color:var(--p-text-muted);background:var(--p-bg-card-hover)}.purlin-page .radio-card.selected{border-color:var(--p-accent);background:var(--p-accent-light);box-shadow:var(--p-shadow-glow)}.purlin-page .radio-card-icon{margin-bottom:var(--p-space-sm);font-size:1.75rem}.purlin-page .radio-card-title{font-size:var(--p-text-base);color:var(--p-text-primary);font-weight:600}.purlin-page .radio-card-desc{font-size:var(--p-text-xs);color:var(--p-text-secondary);margin-top:var(--p-space-xs)}.purlin-page .checkbox-group{align-items:center;gap:var(--p-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.purlin-page .checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--p-accent);cursor:pointer}.purlin-page .checkbox-label{font-size:var(--p-text-sm);color:var(--p-text-secondary)}.purlin-page .btn{justify-content:center;align-items:center;gap:var(--p-space-sm);border-radius:var(--p-radius-sm);font-family:var(--p-font-sans);font-size:var(--p-text-base);cursor:pointer;transition:all var(--p-transition-fast);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;outline:none;padding:10px 24px;font-weight:500;text-decoration:none;display:inline-flex;position:relative;overflow:visible;transform:none}.purlin-page .btn:after{content:none!important;display:none!important}.purlin-page .btn:hover{transform:none}.purlin-page .btn:disabled{opacity:.5;cursor:not-allowed}.purlin-page .btn-primary{background:var(--p-accent);color:#fff;box-shadow:none}.purlin-page .btn-primary:hover:not(:disabled){background:var(--p-accent-hover);box-shadow:var(--p-shadow-glow);transform:none}.purlin-page .btn-secondary{background:var(--p-bg-input);color:var(--p-text-secondary);border:1.5px solid var(--p-border-subtle);-webkit-backdrop-filter:none;backdrop-filter:none}.purlin-page .btn-secondary:hover:not(:disabled){background:var(--p-bg-card-hover);color:var(--p-text-primary);transform:none}.purlin-page .btn-success{background:var(--p-success);color:#fff}.purlin-page .btn-success:hover:not(:disabled){background:#16a34a}.purlin-page .btn-danger{background:var(--p-danger);color:#fff}.purlin-page .btn-danger:hover:not(:disabled){background:#dc2626}.purlin-page .btn-lg{font-size:var(--p-text-lg);padding:14px 32px}.purlin-page .btn-sm{font-size:var(--p-text-sm);padding:6px 16px}.purlin-page .btn-outline{color:var(--p-text-secondary);border:1.5px solid var(--p-border-subtle);background:0 0}.purlin-page .btn-outline:hover:not(:disabled){border-color:var(--p-accent);color:var(--p-accent)}.purlin-page .btn-group{gap:var(--p-space-md);margin-top:var(--p-space-xl);display:flex}.purlin-page .wizard-nav{margin-top:var(--p-space-xl);padding-top:var(--p-space-lg);border-top:1px solid var(--p-border-subtle);justify-content:space-between;display:flex}.purlin-page .alert{padding:var(--p-space-md);border-radius:var(--p-radius-sm);font-size:var(--p-text-sm);align-items:flex-start;gap:var(--p-space-sm);margin-bottom:var(--p-space-md);display:flex}.purlin-page .alert-warning{background:var(--p-warning-bg);color:var(--p-warning);border:1px solid #f59e0b4d}.purlin-page .alert-danger{background:var(--p-danger-bg);color:var(--p-danger);border:1px solid #ef44444d}.purlin-page .alert-info{background:var(--p-accent-light);color:var(--p-text-accent);border:1px solid #3b82f64d}.purlin-page .alert-success{background:var(--p-success-bg);color:var(--p-success);border:1px solid #22c55e4d}.purlin-page .utilization-bar-container{margin-bottom:var(--p-space-md)}.purlin-page .utilization-bar-header{margin-bottom:var(--p-space-xs);justify-content:space-between;align-items:center;display:flex}.purlin-page .utilization-bar-label{font-size:var(--p-text-sm);color:var(--p-text-secondary)}.purlin-page .utilization-bar-value{font-size:var(--p-text-sm);font-weight:600}.purlin-page .utilization-bar-value.pass{color:var(--p-success)}.purlin-page .utilization-bar-value.warning{color:var(--p-warning)}.purlin-page .utilization-bar-value.fail{color:var(--p-danger)}.purlin-page .utilization-bar-track{background:var(--p-bg-input);border-radius:999px;height:8px;overflow:hidden}.purlin-page .utilization-bar-fill{border-radius:999px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.purlin-page .utilization-bar-fill.pass{background:linear-gradient(90deg,#22c55e,#4ade80)}.purlin-page .utilization-bar-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.purlin-page .utilization-bar-fill.fail{background:linear-gradient(90deg,#ef4444,#f87171)}.purlin-page .accordion{border:1px solid var(--p-border-card);border-radius:var(--p-radius-md);margin-bottom:var(--p-space-md);overflow:hidden}.purlin-page .accordion-header{padding:var(--p-space-md) var(--p-space-lg);background:var(--p-bg-input);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--p-transition-fast);justify-content:space-between;align-items:center;display:flex}.purlin-page .accordion-header:hover{background:var(--p-bg-card-hover)}.purlin-page .accordion-title{font-size:var(--p-text-sm);color:var(--p-text-primary);font-weight:500}.purlin-page .accordion-body{padding:var(--p-space-lg);background:var(--p-bg-card);font-size:var(--p-text-sm);color:var(--p-text-secondary);line-height:1.8}.purlin-page .calc-table{border-collapse:collapse;width:100%;font-size:var(--p-text-sm);margin:var(--p-space-md) 0}.purlin-page .calc-table th{text-align:left;padding:var(--p-space-sm) var(--p-space-md);background:var(--p-bg-input);color:var(--p-text-secondary);border-bottom:1px solid var(--p-border-subtle);font-weight:500}.purlin-page .calc-table td{padding:var(--p-space-sm) var(--p-space-md);border-bottom:1px solid var(--p-border-card);color:var(--p-text-primary)}.purlin-page .calc-table tr:hover td{background:var(--p-accent-light)}.purlin-page .calc-table .critical{color:var(--p-accent);font-weight:600}.purlin-page .svg-container{border:1px solid var(--p-border-card);border-radius:var(--p-radius-md);padding:var(--p-space-lg);margin:var(--p-space-md) 0;background:#0f172a80;justify-content:center;align-items:center;display:flex}.purlin-page .svg-container svg{max-width:100%;height:auto}.purlin-page .divider{background:var(--p-border-subtle);height:1px;margin:var(--p-space-lg) 0}.purlin-page .section-subtitle{font-size:var(--p-text-sm);color:var(--p-text-secondary);margin-bottom:var(--p-space-sm);font-weight:500}.purlin-page .span-input-row{gap:var(--p-space-md);margin-top:var(--p-space-md);flex-wrap:wrap;display:flex}.purlin-page .span-input-item{gap:var(--p-space-xs);flex-direction:column;display:flex}.purlin-page .span-input-item label{font-size:var(--p-text-xs);color:var(--p-text-muted)}.purlin-page .span-input-item input{background:var(--p-bg-input);border:1.5px solid var(--p-border-subtle);border-radius:var(--p-radius-sm);width:100px;color:var(--p-text-primary);font-family:var(--p-font-sans);font-size:var(--p-text-sm);transition:all var(--p-transition-fast);outline:none;padding:8px 10px}.purlin-page .span-input-item input:focus{border-color:var(--p-accent);box-shadow:0 0 0 3px var(--p-accent-glow)}.purlin-page .spinner{border:3px solid var(--p-border-subtle);border-top-color:var(--p-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite purlinSpin}@keyframes purlinSpin{to{transform:rotate(360deg)}}.purlin-page .summary-overall{text-align:center;padding:var(--p-space-xl);border-radius:var(--p-radius-lg);margin-bottom:var(--p-space-xl)}.purlin-page .summary-overall.pass{background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border:1px solid #22c55e4d}.purlin-page .summary-overall.fail{background:linear-gradient(135deg,#ef44441a,#ef44440d);border:1px solid #ef44444d}.purlin-page .summary-overall-icon{margin-bottom:var(--p-space-sm);font-size:3rem}.purlin-page .summary-overall-text{font-size:var(--p-text-xl);font-weight:600}.purlin-page .summary-overall.pass .summary-overall-text{color:var(--p-success)}.purlin-page .summary-overall.fail .summary-overall-text{color:var(--p-danger)}.purlin-page .tooltip{cursor:help;position:relative}.purlin-page .tooltip:after{content:attr(data-tooltip);background:var(--p-bg-secondary);border:1px solid var(--p-border-subtle);border-radius:var(--p-radius-sm);font-size:var(--p-text-xs);color:var(--p-text-primary);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--p-transition-fast);z-index:10;padding:6px 10px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.purlin-page .tooltip:hover:after{opacity:1}
