.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;visibility:hidden;transition:all .2s ease;backdrop-filter:blur(1px)}[data-theme=dark] .modal-overlay{background:rgba(0,0,0,.6)}.modal-overlay.show{opacity:1;visibility:visible}.modal{background:var(--color-background);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.15);width:420px;min-width:380px;max-width:90vw;max-height:90vh;overflow-y:auto;transform:scale(.95);transition:transform .2s ease;border:1px solid var(--color-border)}[data-theme=dark] .modal{box-shadow:0 8px 24px rgba(0,0,0,.4)}.modal-overlay.show .modal{transform:scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.modal-title{font-size:.9rem;font-weight:600;color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;font-size:.9rem;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;border-radius:3px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.modal-close:hover{background:#e53e3e;color:white}.modal-content{padding:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1rem;border-top:1px solid var(--color-border);background:var(--color-surface)}.confirm-modal{width:420px;min-width:380px}.confirm-content-row{display:flex;align-items:flex-start;gap:1.75rem}.confirm-icon{font-size:1.25rem;flex-shrink:0;margin-top:.125rem;display:flex;align-items:center;justify-content:center}.confirm-icon i{font-size:2.25rem}.confirm-icon.text-blue-500{color:#3b82f6}.confirm-icon.text-green-500{color:#10b981}.confirm-icon.text-yellow-500{color:#f59e0b}.confirm-icon.text-red-500{color:#ef4444}[data-theme=dark] .confirm-icon.text-blue-500{color:#60a5fa}[data-theme=dark] .confirm-icon.text-green-500{color:#34d399}[data-theme=dark] .confirm-icon.text-yellow-500{color:#fbbf24}[data-theme=dark] .confirm-icon.text-red-500{color:#f87171}.confirm-message{flex:1}.confirm-message p{font-size:.875rem;line-height:1.4;color:var(--color-text-primary);margin:0}.modal-actions .btn-primary{background:var(--color-primary);color:white;border:none;padding:.5rem 1.25rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:80px}.modal-actions .btn-primary:hover{background:var(--color-primary-hover)}.modal-actions .btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);padding:.5rem 1.25rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:80px}.modal-actions .btn-secondary:hover{background:var(--color-background);border-color:var(--color-border-hover)}.modal-actions .btn-danger{background:#ef4444;border-color:#ef4444}.modal-actions .btn-danger:hover{background:#dc2626;border-color:#dc2626}.error-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:10000;backdrop-filter:blur(1px)}[data-theme=dark] .error-dialog-overlay{background:rgba(0,0,0,.6)}.error-dialog{background:var(--color-background);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.15);width:420px;min-width:380px;max-width:90vw;border:1px solid var(--color-border)}[data-theme=dark] .error-dialog{box-shadow:0 8px 24px rgba(0,0,0,.4)}.error-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.error-dialog-title{font-size:.9rem;font-weight:600;color:var(--color-text-primary);margin:0}.error-dialog-close{background:none;border:none;font-size:.9rem;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;border-radius:3px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.error-dialog-close:hover{background:#e53e3e;color:white}.error-dialog-content{padding:1rem}.error-content-row{display:flex;align-items:flex-start;gap:.75rem}.error-icon{font-size:1.25rem;color:#e53e3e;flex-shrink:0;margin-top:.125rem}[data-theme=dark] .error-icon{color:#fc8181}.error-message{font-size:.875rem;line-height:1.4;color:var(--color-text-primary);margin:0;flex:1}.error-dialog-actions{padding:.75rem 1rem;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:.5rem;background:var(--color-surface)}.error-dialog-actions .btn-primary{background:var(--color-primary);color:white;border:none;padding:.5rem 1.25rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;min-width:80px}.error-dialog-actions .btn-primary:hover{background:var(--color-primary-hover)}@media (max-width:640px){.modal{width:95%;max-width:95%}.modal-actions,.modal-content,.modal-header{padding:1rem}.modal-actions{flex-direction:column-reverse}.modal-actions .btn-primary,.modal-actions .btn-secondary{width:100%;justify-content:center}.confirm-content{padding:.5rem 0}.confirm-icon{margin-bottom:.75rem}.confirm-icon,.confirm-icon i{font-size:2.5rem}}.modal.large{width:600px;max-width:95vw}.downgrade-warning-content{text-align:center}.downgrade-warning-content .warning-icon{font-size:3rem;color:#f59e0b;margin-bottom:1rem}.downgrade-details h4{color:var(--color-text-primary);margin-bottom:.5rem;font-size:1.25rem}.downgrade-details p{color:var(--color-text-secondary);margin-bottom:1.5rem;line-height:1.5}.features-comparison{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem;text-align:left}.keeping-features,.losing-features{background:var(--color-surface);padding:1rem;border-radius:8px;border:1px solid var(--color-border)}.losing-features{border-left:4px solid #ef4444}.keeping-features{border-left:4px solid #10b981}.keeping-features h5,.losing-features h5{font-size:.9rem;font-weight:600;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.losing-features h5 i{color:#ef4444}.keeping-features h5 i{color:#10b981}.keeping-features ul,.losing-features ul{list-style:none;padding:0;margin:0}.keeping-features li,.losing-features li{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary)}.losing-features li i{color:#ef4444;font-size:.75rem}.keeping-features li i{color:#10b981;font-size:.75rem}.retention-offer{margin-bottom:2rem}.offer-box{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:white;padding:1.5rem;border-radius:12px;text-align:center}.offer-box h5{font-size:1.1rem;margin-bottom:.5rem;font-weight:600}.offer-box p{margin-bottom:1rem;opacity:.95;line-height:1.4}.savings-highlight{background:rgba(255,255,255,.2);padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:1.1rem}.downgrade-warning-content .modal-actions{display:flex;flex-direction:column;gap:.75rem;align-items:center}.downgrade-warning-content .modal-actions .button-row{display:flex;gap:.75rem;align-items:center;justify-content:center}.retention-btn{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;color:white;font-weight:600;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem}.retention-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.4)}.downgrade-btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);font-weight:500;padding:.625rem 1.5rem;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.85rem}.downgrade-btn:hover{background:var(--color-hover)}.btn-link{text-decoration:none;color:var(--color-text-secondary);font-size:.8rem;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;transition:color .2s ease}.btn-link:hover{color:var(--color-primary)}@media (max-width:768px){.modal.large{width:calc(100% - 2rem)}.features-comparison{grid-template-columns:1fr;gap:1rem}}