.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:var(--radius-xl);box-shadow:0 20px 60px #0000004d;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s cubic-bezier(.16,1,.3,1);position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid rgba(11,33,93,.1)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--portless-blue)}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.modal-close:hover:not(:disabled){background:#0b215d1a;color:var(--portless-blue)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:2rem}.modal-description{font-size:.9375rem;color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.6}.modal-input-group{display:flex;flex-direction:column;gap:.5rem}.modal-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.modal-input{width:100%;padding:.75rem 1rem;border:2px solid var(--border);border-radius:var(--radius);font-size:.9375rem;transition:all .2s ease;font-family:inherit;box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--portless-blue);box-shadow:0 0 0 3px #0b215d1a}.modal-input:disabled{background:var(--surface);cursor:not-allowed}.modal-footer{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem 2rem;border-top:1px solid rgba(11,33,93,.1)}.modal-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.modal-btn:disabled{opacity:.6;cursor:not-allowed}.modal-btn-primary{background:var(--portless-blue);color:#fff}.modal-btn-primary:hover:not(:disabled){background:var(--portless-blue-light);transform:translateY(-1px);box-shadow:0 4px 12px #0b215d4d}.modal-btn-secondary{background:var(--surface);color:var(--text-primary);border:2px solid var(--border)}.modal-btn-secondary:hover:not(:disabled){background:#0b215d0d;border-color:var(--portless-blue)}.result-card{width:100%;max-width:500px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:slideInRight .6s cubic-bezier(.16,1,.3,1);border:1px solid var(--border-light);transform-origin:center}@keyframes slideInRight{0%{opacity:0;transform:translate(40px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.result-loading,.result-placeholder{padding:4rem 2.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;animation:placeholderFadeIn .6s cubic-bezier(.16,1,.3,1)}@keyframes placeholderFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.loading-spinner-large{width:64px;height:64px;border:4px solid var(--border);border-top-color:var(--accent-color);border-right-color:var(--portless-blue);border-radius:50%;animation:spin .8s linear infinite,pulse 2s ease-in-out infinite;margin-bottom:1.5rem;position:relative}.result-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffb3;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-spinner-overlay{width:48px;height:48px;border:4px solid rgba(0,0,0,.08);border-top-color:var(--portless-blue);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner-large:after{content:"";position:absolute;top:50%;left:50%;width:32px;height:32px;border:3px solid rgba(79,195,247,.2);border-top-color:var(--accent-color);border-radius:50%;transform:translate(-50%,-50%);animation:spin .6s linear infinite reverse}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.result-loading p{color:var(--text-secondary);font-size:1rem;font-weight:500}.placeholder-icon-wrapper{margin-bottom:1.5rem}.placeholder-icon{font-size:5rem;opacity:.6;filter:grayscale(.3);animation:planeFly 4s ease-in-out infinite}@keyframes planeFly{0%{transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(-15px) translate(10px) rotate(5deg)}50%{transform:translateY(-25px) translate(5px) rotate(-3deg)}75%{transform:translateY(-15px) translate(-5px) rotate(3deg)}to{transform:translateY(0) translate(0) rotate(0)}}.result-placeholder h3{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.result-placeholder p{color:var(--text-secondary);line-height:1.6;max-width:320px;font-size:.9375rem}.result-header{background:linear-gradient(135deg,var(--portless-blue) 0%,var(--portless-blue-light) 100%);color:#fff;padding:2rem 2rem 1.5rem;position:relative}.result-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.result-header h2{font-size:1.5rem;font-weight:600;margin:0}.result-badge{background:#fff3;padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:45%;word-wrap:break-word;overflow-wrap:break-word}.result-content{padding:2rem}.cost-breakdown{display:flex;flex-direction:column;gap:1.5rem}.cost-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--border-light);animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both;transition:transform .2s ease}.cost-item:nth-child(1){animation-delay:.1s}.cost-item:nth-child(2){animation-delay:.2s}.cost-item:nth-child(3){animation-delay:.3s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.cost-item:hover{transform:translate(4px)}.cost-item:last-of-type{border-bottom:none}.cost-item-total{padding-top:1.5rem;margin-top:.5rem;border-top:2px solid var(--border);border-bottom:none;background:linear-gradient(135deg,#4fc3f70d,#e8f5e90d);border-radius:var(--radius);padding-left:1rem;padding-right:1rem;margin-left:-1rem;margin-right:-1rem;animation:highlightTotal .6s cubic-bezier(.16,1,.3,1) .4s both;position:relative;overflow:hidden}.cost-item-total:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(79,195,247,.1),transparent);animation:shimmer 2s ease-in-out .6s}@keyframes highlightTotal{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{left:-100%}to{left:100%}}.cost-label{display:flex;align-items:flex-start;gap:1rem;flex:1}.cost-icon{font-size:1.5rem;flex-shrink:0}.cost-label-text{display:flex;flex-direction:column;gap:.25rem}.cost-label-title{font-weight:600;color:var(--text-primary);font-size:.9375rem}.cost-label-subtitle{font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.cost-value{font-size:1.375rem;font-weight:700;color:var(--text-primary);text-align:right;white-space:nowrap}.cost-value-total{font-size:2.25rem;color:var(--portless-blue);font-weight:800;background:linear-gradient(135deg,var(--portless-blue) 0%,var(--accent-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:valuePulse 2s ease-in-out infinite}@keyframes valuePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.cost-divider{height:1px;background:linear-gradient(90deg,transparent 0%,var(--border) 50%,transparent 100%);margin:.5rem 0}.result-details{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:1rem}.detail-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--surface-light);border-radius:var(--radius);border:1px solid var(--border-light);transition:all .3s cubic-bezier(.4,0,.2,1);animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both}.detail-card:nth-child(1){animation-delay:.4s}.detail-card:nth-child(2){animation-delay:.5s}.detail-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4fc3f71a;border-color:var(--accent-color)}.detail-icon{font-size:1.5rem;flex-shrink:0}.detail-content{display:flex;flex-direction:column;gap:.25rem;flex:1}.detail-label{font-size:.8125rem;color:var(--text-secondary);font-weight:500}.detail-value{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.result-notes{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-light)}.notes-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.notes-list{list-style:disc;padding-left:1.25rem;margin:0}.notes-item{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin-bottom:.5rem}.notes-item:last-child{margin-bottom:0}.notes-item strong{color:var(--text-primary)}.result-footer{padding:1.5rem 2rem;background:var(--surface-light);border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:1rem;align-items:center}.download-results-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--portless-blue);color:#fff;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.download-results-btn:hover{background:var(--portless-blue-light);transform:translateY(-1px);box-shadow:0 4px 12px #0b215d4d}.download-results-btn:active{transform:translateY(0)}.download-results-btn span{font-size:1.125rem}.result-note{font-size:.75rem;color:var(--text-secondary);line-height:1.6;text-align:center;margin:0}@media (max-width: 640px){.result-content{padding:1.5rem}.cost-value-total{font-size:1.875rem}.result-header{padding:1.5rem 1.5rem 1.25rem}.result-header-content{flex-direction:column;gap:.75rem}}.calculator-wrapper{width:100%;max-width:1400px;margin:0 auto}.calculator-container{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;width:100%;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1);position:relative;transform-origin:center}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.calculator-header{background-color:#0b215d;color:#fff;padding:3rem 2.5rem;text-align:center;position:relative;overflow:hidden;animation:headerSlideIn .8s cubic-bezier(.16,1,.3,1) .2s both}@keyframes headerSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.calculator-header:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(11,33,93,.15) 0%,transparent 70%);border-radius:50%;animation:float 20s ease-in-out infinite}.calculator-header:after{content:"";position:absolute;bottom:-30%;left:-5%;width:200px;height:200px;background:radial-gradient(circle,rgba(232,245,233,.1) 0%,transparent 70%);border-radius:50%;animation:float 15s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,-20px) scale(1.1)}}.header-content{position:relative;z-index:1;animation:contentFadeIn 1s cubic-bezier(.16,1,.3,1) .4s both}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.calculator-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.75rem;letter-spacing:-.02em;text-shadow:0 2px 10px rgba(0,0,0,.1)}.calculator-header .subtitle{font-size:1.125rem;opacity:.95;font-weight:400;max-width:600px;margin:0 auto;animation:subtitleFadeIn 1s cubic-bezier(.16,1,.3,1) .6s both}@keyframes subtitleFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:.95;transform:translateY(0)}}.calculator-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:0;min-height:600px;position:relative;background-image:url(https://cdn.prod.website-files.com/64ef9362931278add4ce2f0b/64f0924a50590940aed80a7f_portless-map.png);background-size:contain;background-position:center;background-repeat:no-repeat;overflow:hidden}.calculator-grid:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#0b215d26;z-index:0;pointer-events:none}@media (max-width: 1024px){.calculator-grid{grid-template-columns:1fr}.calculator-header{padding:2.5rem 2rem}.calculator-header h1{font-size:2rem}}.calculator-form-section{padding:3rem 2.5rem;background-color:#fffc;position:relative;z-index:1;-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px)}@media (max-width: 1024px){.calculator-form-section{border-right:none;border-bottom:1px solid var(--border-light);padding:2rem 1.5rem}}.calculator-results-section{padding:3rem 2.5rem;background:#fffc;min-height:600px;display:flex;align-items:flex-start;justify-content:center;position:relative;z-index:1;-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px)}@media (max-width: 1024px){.calculator-results-section{padding:2rem 1.5rem;min-height:auto}}.calculator-form{display:flex;flex-direction:column;gap:2.5rem}.form-section{display:flex;flex-direction:column;gap:1.5rem;animation:sectionFadeIn .6s cubic-bezier(.16,1,.3,1) both}.form-section:nth-child(1){animation-delay:.1s}.form-section:nth-child(2){animation-delay:.2s}.form-section:nth-child(3){animation-delay:.3s}.form-section:nth-child(4){animation-delay:.4s}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section-title{font-size:1.375rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;display:flex;align-items:center;gap:.75rem}.section-icon{font-size:1.5rem}.input-group{display:flex;flex-direction:column;gap:.75rem}.input-label{font-size:.9375rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.input-field{width:100%;padding:1rem 1.25rem;border:2px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:inherit;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;color:var(--text-primary)}.input-field:hover{border-color:var(--accent-color);box-shadow:0 2px 8px #0b215d1a}.input-field:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 4px #0b215d26,0 4px 12px #0b215d1a;transform:translateY(-1px)}.input-field::placeholder{color:var(--text-light)}.select-field{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%230a2540' d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:3rem}.product-type-selector{display:flex;flex-direction:column;gap:.75rem}.product-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media (max-width: 640px){.product-type-grid{grid-template-columns:1fr}}.product-type-option{cursor:pointer;position:relative}.product-type-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.product-type-content{padding:1rem;border:2px solid var(--border);border-radius:var(--radius);background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;position:relative;overflow:hidden}.product-type-content:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(11,33,93,.1),transparent);transition:left .5s ease}.product-type-option:hover .product-type-content:before{left:100%}.product-type-option input[type=radio]:checked+.product-type-content,.product-type-option.active .product-type-content{border-color:var(--accent-color);background:linear-gradient(135deg,#0b215d14,#ffffff0d);box-shadow:0 0 0 4px #0b215d26,0 4px 12px #0b215d1a;transform:translateY(-2px) scale(1.02)}.product-type-option:hover .product-type-content{border-color:var(--accent-color);transform:translateY(-3px);box-shadow:0 4px 12px #0b215d26}.product-type-icon{font-size:2rem}.product-type-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.switch-wrapper{display:flex;align-items:center;gap:.75rem;justify-content:center}.switch-label{font-size:.9rem;color:var(--text-primary)}.switch{display:inline-block;position:relative}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:260px;height:38px;background:#0b215d;border:2px solid transparent;border-radius:999px;display:inline-block;position:relative;padding:6px 16px;box-sizing:border-box;overflow:visible}.switch-track:before{content:"";position:absolute;top:6px;bottom:6px;left:8px;width:calc(50% - 16px);background:#fff;border-radius:999px;transition:left .22s cubic-bezier(.2,.8,.2,1),width .22s cubic-bezier(.2,.8,.2,1);z-index:2}.switch-thumb{width:28px;height:28px;background:transparent;border:none;box-shadow:none;position:absolute;top:50%;left:8px;transform:translateY(-50%);transition:left .18s ease,transform .18s ease;z-index:1}.switch-label-inside{position:absolute;top:50%;transform:translateY(-50%);font-size:.9rem;pointer-events:none;transition:color .12s ease,font-weight .12s ease,opacity .12s ease,transform .12s ease;padding:6px 12px;border-radius:999px;z-index:3}.switch-label-inside.left{left:12px;text-align:left;color:#fffffff2;font-weight:700;background:transparent}.switch-label-inside.right{right:12px;text-align:right;color:#ffffffd9;font-weight:400;background:transparent}.switch input:not(:checked)+.switch-track .left{color:#0b215d;font-weight:700}.switch input:not(:checked)+.switch-track .right{color:#ffffffd9}.switch input:checked+.switch-track .right{color:#0b215d;font-weight:700}.switch input:checked+.switch-track .left{color:#ffffffd9}.switch input:checked+.switch-track .switch-thumb{left:calc(100% - 36px)}.switch input:not(:checked)+.switch-track .switch-thumb{left:8px}.switch input:checked+.switch-track:before{left:calc(100% - 8px - (50% - 16px))}@keyframes labelSwitch{0%{transform:translateY(-50%) scale(.96);opacity:.6}50%{transform:translateY(-50%) scale(1.06);opacity:1}to{transform:translateY(-50%) scale(1);opacity:1}}.switch input:checked+.switch-track .right{animation:labelSwitch .22s ease}.switch input:not(:checked)+.switch-track .left{animation:labelSwitch .22s ease}.radio-group{display:flex;gap:.75rem;flex-wrap:wrap}.radio-option{display:inline-flex;align-items:center;gap:.5rem}.switch-wrapper,.switch,.switch-track,.switch-thumb,.switch-label-inside,.radio-group,.radio-option{display:none!important}.service-selector{display:flex;flex-direction:column;gap:.75rem}.service-option{cursor:pointer;position:relative}.service-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.service-option-content{padding:1.25rem 1.5rem;border:2px solid var(--border);border-radius:var(--radius);background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:.5rem;position:relative;overflow:hidden}.service-option-content:after{content:"";position:absolute;left:0;top:0;height:100%;width:4px;background:var(--accent-color);transform:scaleY(0);transition:transform .3s cubic-bezier(.4,0,.2,1);transform-origin:top}.service-option input[type=radio]:checked+.service-option-content:after,.service-option.active .service-option-content:after{transform:scaleY(1)}.service-option input[type=radio]:checked+.service-option-content,.service-option.active .service-option-content{border-color:var(--accent-color);background:linear-gradient(135deg,#0b215d14,#ffffff0d);box-shadow:0 0 0 4px #0b215d26,0 4px 16px #0b215d26;transform:translate(6px)}.service-option:hover .service-option-content{border-color:var(--accent-color);transform:translate(4px);box-shadow:0 2px 8px #0b215d1f}.service-header{display:flex;align-items:center;justify-content:space-between}.service-name{font-weight:600;color:var(--text-primary);font-size:1rem}.service-desc{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.service-placeholder{padding:2rem;text-align:center;background:var(--surface);border-radius:var(--radius);border:2px dashed var(--border)}.service-placeholder p{color:var(--text-secondary);font-size:.9375rem;margin:0}.dimensions-group{display:flex;flex-direction:column;gap:.75rem}.dimensions-label{font-size:.9375rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.weight-input-group{display:flex;gap:.75rem}.weight-input{flex:1}.weight-unit-select{width:100px;flex-shrink:0}.weight-limit-info{margin-left:auto;font-size:.875rem;font-weight:400}.limit-text{color:var(--text-secondary);font-style:italic}.weight-limit-hint{font-size:.8125rem;color:var(--text-secondary);margin-top:.5rem;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius);border-left:3px solid var(--accent-color);border-right:3px solid var(--accent-color)}.zone-field{animation:slideDown .3s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px);max-height:0}to{opacity:1;transform:translateY(0);max-height:200px}}.error-message{padding:1rem 1.25rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);color:#991b1b;display:flex;align-items:center;gap:.75rem;font-size:.875rem}.error-icon{font-size:1.25rem}.form-actions{display:flex;gap:1rem;margin-top:1rem}.btn{flex:1;padding:1rem 1.5rem;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.75rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#0b215d;color:#fff;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-primary:hover:not(:disabled):before{left:100%}.btn-primary:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 25px #0b215d4d;background-color:#0d2a6f}.btn-primary:active:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0b215d40}.btn-secondary{background:#fff;color:var(--text-primary);border:2px solid var(--border);transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-secondary:hover{background:var(--surface);border-color:var(--accent-color);color:var(--portless-blue);transform:translateY(-2px);box-shadow:0 4px 12px #0b215d26}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-right-color:#fff9;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.calculator-form:has(.btn-primary:disabled){animation:formSubmit .3s ease}@keyframes formSubmit{0%{transform:scale(1)}50%{transform:scale(.98)}to{transform:scale(1)}}.pw-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:2000}.pw-modal{background:#fff;padding:20px;border-radius:8px;width:320px;box-shadow:0 6px 24px #0003}.pw-modal h3{margin-top:0}.pw-modal label{display:block;margin-bottom:10px;font-size:13.5px}.pw-modal input{width:100%;padding:6px 8px;margin-top:6px}.pw-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.pw-error{color:#a00;margin-top:6px}.app{width:100%;max-width:1200px;margin:0 auto}*{margin:0;padding:0;box-sizing:border-box}:root{--portless-blue: #0b215d;--portless-blue-light: #1a3a5a;--portless-green: #e8f5e9;--portless-green-dark: #c8e6c9;--portless-teal: #4fc3f7;--portless-teal-dark: #29b6f6;--primary-color: #0b215d;--primary-hover: #0d2a6f;--accent-color: #0b215d;--accent-hover: #0d2a6f;--success-color: #10b981;--background: #ffffff;--surface: #f8fafc;--surface-light: #e8f5e9;--border: #e2e8f0;--border-light: #f0f4f8;--text-primary: #0b215d;--text-secondary: #64748b;--text-light: #94a3b8;--shadow-sm: 0 1px 2px 0 rgb(10 37 64 / .05);--shadow-md: 0 4px 6px -1px rgb(10 37 64 / .1), 0 2px 4px -2px rgb(10 37 64 / .1);--shadow-lg: 0 10px 15px -3px rgb(10 37 64 / .1), 0 4px 6px -4px rgb(10 37 64 / .1);--shadow-xl: 0 20px 25px -5px rgb(10 37 64 / .1), 0 10px 10px -5px rgb(10 37 64 / .04);--radius: 12px;--radius-lg: 16px;--radius-xl: 20px}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;background:linear-gradient(135deg,#e8f5e9,#f0f9ff,#e0f2fe);background-attachment:fixed;min-height:100vh;color:var(--text-primary);line-height:1.6;position:relative}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 50%,rgba(79,195,247,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(10,37,64,.05) 0%,transparent 50%);pointer-events:none;z-index:0;animation:backgroundPulse 20s ease-in-out infinite}@keyframes backgroundPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}#root{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:3rem 1rem;position:relative;z-index:1}@media (max-width: 768px){#root{padding:2rem 1rem}}
