.account{padding:65px 0 100px;min-height:75vh}.account h1{font-size:clamp(38px,6vw,72px);letter-spacing:-.055em;margin:14px 0}.account-lead{max-width:700px;color:#5d6882;line-height:1.7}.account-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.account-tabs button,.account button{cursor:pointer}.account-tabs button{padding:13px 20px;border:1px solid #ccd5e6;background:#fff;border-radius:12px;font:inherit;color:#253254}.account-tabs button[aria-selected=true]{background:#343dff;color:white;border-color:#343dff}.account-panel{background:#f9fbff;border:1px solid #d8dfec;border-radius:25px;padding:32px;margin:20px 0}.account-panel h2{font-size:clamp(26px,4vw,40px)}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.account label{display:block;font-size:14px;line-height:1.5;margin-bottom:16px}.account input:not([type=checkbox]),.account select,.account textarea{display:block;width:100%;font:inherit;color:#172445;background:#fff;border:1px solid #becbde;border-radius:10px;padding:13px;margin-top:7px}.account textarea{min-height:100px;resize:vertical}.account input[type=checkbox]{width:21px;height:21px;accent-color:#343dff}.account fieldset{border:0;padding:0;margin:0}.account legend{font-size:23px;font-weight:700;margin-bottom:18px}.module-choice{display:grid!important;grid-template-columns:24px 1fr;gap:12px;padding:18px;border:1px solid #d8dfec;border-radius:15px;background:white}.module-choice b{font-size:18px}.module-choice small{display:block;color:#5d6882}.account .button{border:0;cursor:pointer}.account-message{padding:15px 20px;background:#fff1d6;border-radius:12px;line-height:1.5}.account-message:empty{display:none}.account-record{border-top:1px solid #d8dfec;padding:22px 0;overflow-wrap:anywhere}.account-record h3{font-size:23px}.account-status{display:inline-block;background:#d8f2e7;color:#245440;border-radius:20px;padding:6px 12px;font-size:13px}.account-summary{background:#172445;color:#fff;border-radius:18px;padding:24px;align-self:start;position:sticky;top:100px}.account-summary h3{font-size:26px}.account-summary .total{font-size:38px}.quote-line{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #ffffff25}.account small,.account .fine{line-height:1.6}.account-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.account [hidden]{display:none!important}.account-panel p{line-height:1.7}.account button:disabled{opacity:.5;cursor:wait}.account-record input{max-width:700px}.account a{overflow-wrap:anywhere}@media(max-width:700px){.account-grid{grid-template-columns:1fr}.account-panel{padding:22px 18px}.account{padding-top:30px}.account-summary{position:static}.account-tabs button{padding:11px 13px}}

/* --- MEJORAS FUNCIONALES 101: AUTH, MODALS, FACTURACIÓN & PRINT --- */
.auth-card{max-width:620px;margin:24px 0 36px;box-shadow:0 10px 30px rgba(0,0,0,0.04)}
.auth-mode-switch{display:flex;gap:8px;background:#eaeff7;padding:5px;border-radius:12px;margin:20px 0}
.auth-mode-btn{flex:1;padding:11px;border:none;border-radius:9px;background:transparent;color:#475569;font-weight:600;cursor:pointer;transition:all .2s ease}
.auth-mode-btn.active{background:#fff;color:#1e293b;box-shadow:0 2px 6px rgba(0,0,0,0.08)}
.auth-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px}
.text-link{background:none;border:none;color:#343dff;text-decoration:underline;cursor:pointer;font-size:13px;padding:0}
.auth-divider{display:flex;align-items:center;text-align:center;margin:22px 0 16px;color:#94a3b8;font-size:12px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;border-bottom:1px solid #e2e8f0}
.auth-divider span{padding:0 12px}
.button-outline{background:#fff!important;color:#1e293b!important;border:1px solid #cbd5e1!important}
.button-outline:hover{background:#f8fafc!important}
.google-auth-btn{width:100%;display:flex;align-items:center;justify-content:center;padding:12px 16px;font-weight:600}
.button-secondary{background:#e2e8f0!important;color:#1e293b!important}
.button-secondary:hover{background:#cbd5e1!important}
.button-large{padding:16px 28px!important;font-size:17px!important;font-weight:700!important}

/* Shop Banners */
.shop-tip-banner{display:flex;align-items:center;gap:12px;background:#eef6ff;border:1px solid #bfdbfe;border-radius:14px;padding:14px 18px;margin-bottom:18px;color:#1e3a8a;font-size:14px}
.tip-badge{background:#2563eb;color:#fff;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.05em}
.warning-box{background:#fffbeb;border:1px solid #fef3c7;border-left:4px solid #f59e0b;padding:12px 16px;border-radius:10px;margin-top:12px;color:#92400e;line-height:1.5}

/* Modules Badges */
.owned-badge{display:inline-block;background:#dcfce7;color:#15803d;font-size:11px;padding:2px 7px;border-radius:6px;margin-left:6px;font-weight:600}
.custom-badge{display:inline-block;background:#f1f5f9;color:#475569;font-size:11px;padding:2px 7px;border-radius:6px;margin-left:6px;font-weight:600}
.module-choice.is-owned{border-color:#86efac;background:#f0fdf4}
.badge-mini-zero{display:inline-block;background:#dcfce7;color:#166534;font-size:11px;padding:1px 6px;border-radius:4px;margin-left:8px}

/* Orders list enhancement */
.order-lines-preview{color:#64748b;font-size:14px;margin:6px 0 10px}
.order-note-box{background:#f8fafc;padding:8px 12px;border-radius:8px;border-left:3px solid #343dff;font-size:13px;margin:8px 0}
.order-card-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:12px}
.order-invoice-actions{display:flex;gap:8px}

/* Modals Overlay & Card */
.portal-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.65);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto}
.portal-modal-card{background:#ffffff;border-radius:20px;padding:32px;max-width:540px;width:100%;box-shadow:0 25px 50px -12px rgba(0,0,0,0.25);position:relative;animation:modalIn .25s ease-out}
.portal-modal-card.modal-large{max-width:820px;padding:36px}
@keyframes modalIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}
.modal-icon-success{width:56px;height:56px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 16px;font-weight:bold}
.modal-actions{display:flex;justify-content:center;margin-top:24px}
.modal-actions-dual{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}
.modal-actions-bar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:20px}
.onboarding-highlight{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:16px;margin:20px 0;color:#1e40af;line-height:1.6}

/* Preorder Summary Table */
.summary-table-wrap{margin:18px 0}
.summary-table{width:100%;border-collapse:collapse;font-size:14px}
.summary-table th{background:#f8fafc;padding:10px 14px;text-align:left;border-bottom:2px solid #e2e8f0;color:#475569}
.summary-table td{padding:10px 14px;border-bottom:1px solid #f1f5f9}
.summary-totals-box{background:#f8fafc;padding:16px 20px;border-radius:12px;margin-top:16px;text-align:right}
.summary-totals-box p{margin:4px 0;color:#475569}
.summary-totals-box .grand-total{font-size:22px;color:#0f172a;margin:10px 0 4px}
.summary-totals-box .monthly-sub{color:#2563eb;font-weight:600}

/* Printable Invoice Sheet */
.invoice-sheet{background:#fff;color:#0f172a;font-family:inherit;line-height:1.5}
.invoice-header{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.invoice-brand .invoice-logo{font-size:26px;font-weight:800;color:#1e293b;letter-spacing:-.03em;margin-bottom:6px}
.invoice-brand p{color:#64748b;font-size:13px;line-height:1.5}
.invoice-meta h2{font-size:24px;margin:0 0 8px;color:#1e293b;letter-spacing:.02em}
.meta-table{font-size:13px;color:#334155}
.meta-table td{padding:3px 6px}
.invoice-divider{border:none;border-top:1px solid #e2e8f0;margin:20px 0}
.invoice-parties{margin:16px 0 24px}
.party-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px 20px}
.party-box h3{margin:4px 0 8px;font-size:18px;color:#0f172a}
.party-box p{margin:0;font-size:13px;color:#475569;line-height:1.6}
.invoice-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}
.invoice-table th{background:#f1f5f9;color:#334155;padding:10px 14px;border-bottom:2px solid #cbd5e1}
.invoice-table td{padding:12px 14px;border-bottom:1px solid #e2e8f0}
.invoice-totals-wrapper{display:flex;justify-content:flex-end;margin-top:14px}
.totals-table{width:320px;font-size:14px}
.totals-table td{padding:6px 10px}
.total-row td{font-size:18px;border-top:2px solid #0f172a;padding-top:10px}
.monthly-row td{color:#2563eb;font-size:13px;padding-top:6px}
.invoice-footer{margin-top:32px;padding-top:16px;border-top:1px solid #e2e8f0;color:#94a3b8;font-size:11px;line-height:1.5;text-align:center}

/* Print CSS Styles */
@media print{
 body *{visibility:hidden}
 header,footer,.no-print,.account-tabs,.account-actions,.shop-tip-banner,.modal-actions-bar{display:none!important}
 .portal-modal-overlay{position:static;background:none;padding:0;overflow:visible}
 .portal-modal-card{box-shadow:none;padding:0;max-width:100%}
 #modal-invoice-viewer,#modal-invoice-viewer *{visibility:visible}
 #modal-invoice-viewer{position:absolute;left:0;top:0;width:100%;padding:0}
 .invoice-sheet{width:100%;max-width:100%}
}


/* Hidden dialogs must stay hidden even when the overlay uses display:flex. */
.portal-modal-overlay[hidden]{display:none!important}
