html{-webkit-text-size-adjust:100%}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}img,svg{max-width:100%}button,input,select,textarea{font:inherit}:root{--dento-navy:#2b4c6f;--dento-navy-dark:#1e3752;--dento-coral:#e85d3a;--dento-coral-hover:#d44a27;--dento-pink:#f2a7c3;--dento-pink-light:#fdf2f7;--dento-purple:#8b6aae;--dento-blue-light:#d6e8f0;--bg-gradient:linear-gradient(135deg, #f8fafc 0%, #edf4f9 100%);--card-bg:#fff;--card-border:#2b4c6f14;--text-main:#1e293b;--text-muted:#64748b;--text-light:#94a3b8;--shadow-sm:0 1px 3px #2b4c6f0d;--shadow-md:0 4px 12px #2b4c6f14;--shadow-lg:0 10px 25px #2b4c6f1f;--shadow-glow:0 0 20px #e85d3a40;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--transition:all .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-main);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100svh;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app-container{flex-direction:column;min-height:100svh;display:flex}.main-content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:2rem 1.5rem}h1,h2,h3,h4,h5,h6{color:var(--dento-navy);letter-spacing:-.02em;font-weight:700}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}.card{background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--card-border);box-shadow:var(--shadow-sm);transition:var(--transition);padding:1.5rem}.card:hover{box-shadow:var(--shadow-md)}.card-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--dento-navy);color:#fff}.btn-primary:hover{background:var(--dento-navy-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-accent{background:var(--dento-coral);color:#fff}.btn-accent:hover{background:var(--dento-coral-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{background:var(--dento-blue-light);color:var(--dento-navy)}.btn-secondary:hover{background:#c4dce8}.btn-outline{border-color:var(--dento-navy);color:var(--dento-navy);background:0 0}.btn-outline:hover{background:#2b4c6f0d}.btn-danger{color:#fff;background:#ef4444}.btn-danger:hover{background:#dc2626}.btn-sm{padding:.4rem .85rem;font-size:.8rem}.btn-lg{border-radius:var(--radius-md);padding:.85rem 1.75rem;font-size:1rem}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.form-group{margin-bottom:1.25rem}.form-label{color:var(--dento-navy);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.form-control{border-radius:var(--radius-sm);width:100%;color:var(--text-main);transition:var(--transition);background:#fff;border:1.5px solid #cbd5e1;outline:none;padding:.65rem .9rem;font-size:.95rem}.form-control:focus{border-color:var(--dento-coral);box-shadow:0 0 0 3px #e85d3a26}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:.3rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge-coral{color:var(--dento-coral);background:#e85d3a1f}.badge-navy{color:var(--dento-navy);background:#2b4c6f1f}.badge-pink{background:var(--dento-pink);color:#7a2649}.badge-purple{color:var(--dento-purple);background:#8b6aae26}.badge-success{color:#15803d;background:#dcfce7}.badge-warning{color:#a16207;background:#fef9c3}.grid-2{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:1.25rem;display:grid}@media (width<=900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.navbar{background:var(--card-bg);border-bottom:1px solid var(--card-border);padding-top:calc(.85rem + env(safe-area-inset-top,0px));padding-bottom:.85rem;padding-left:calc(1.5rem + env(safe-area-inset-left,0px));padding-right:calc(1.5rem + env(safe-area-inset-right,0px));z-index:100;box-shadow:var(--shadow-sm);position:sticky;top:0}.navbar-container{justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto;display:flex}.navbar-brand{align-items:center;gap:.75rem;text-decoration:none;display:flex}.navbar-logo{width:auto;height:38px}.navbar-user{align-items:center;gap:1rem;display:flex}.stamp-card-container{background:linear-gradient(135deg, #fff 0%, var(--dento-pink-light) 100%);border:2px solid var(--dento-pink);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1.5rem;padding:1.75rem;position:relative;overflow:hidden}.stamp-card-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.stamp-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.25rem 0;display:grid}.stamp-slot{aspect-ratio:1;border-radius:var(--radius-md);text-align:center;transition:var(--transition);background:#fff;border:2px dashed #cbd5e1;flex-direction:column;justify-content:center;align-items:center;padding:.5rem;display:flex;position:relative}.stamp-slot.active{border:2px solid var(--dento-coral);background:radial-gradient(circle,#fff0ec 0%,#fee2e2 100%);animation:.4s cubic-bezier(.175,.885,.32,1.275) pulse-stamp;box-shadow:0 4px 12px #e85d3a33}.stamp-slot.free-reward{border:2.5px solid var(--dento-coral);background:linear-gradient(135deg, #fff0ec 0%, var(--dento-pink) 100%)}.stamp-slot.free-reward.available{animation:1.5s infinite alternate pulse-free}.stamp-number{color:var(--text-muted);font-size:.75rem;font-weight:700;position:absolute;top:.4rem;left:.5rem}.stamp-icon{margin-bottom:.25rem;font-size:1.75rem}.stamp-label{color:var(--dento-navy);font-size:.75rem;font-weight:700}@keyframes pulse-stamp{0%{transform:scale(.8)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes pulse-free{0%{transform:scale(1);box-shadow:0 0 10px #e85d3a66}to{transform:scale(1.03);box-shadow:0 0 25px #e85d3acc}}.membership-virtual-card{aspect-ratio:1.586;border-radius:var(--radius-lg);color:#fff;width:100%;max-width:420px;transition:var(--transition);flex-direction:column;justify-content:space-between;padding:1.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 15px 35px #0003}.membership-virtual-card:hover{transform:translateY(-4px)rotateX(2deg)}.membership-virtual-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#fff3 0%,#0000 60%);width:100%;height:100%;position:absolute;top:-50%;right:-50%;transform:rotate(30deg)}.card-tier-esencial{background:linear-gradient(135deg,#e85d3a 0%,#c44322 100%)}.card-tier-balance{background:linear-gradient(135deg,#8b6aae 0%,#5c417d 100%)}.card-tier-longevidad{background:linear-gradient(135deg,#2b4c6f 0%,#172c42 100%)}.card-logo-row{justify-content:space-between;align-items:center;display:flex}.card-chip{background:linear-gradient(135deg,#ffe082 0%,#ffb300 100%);border-radius:6px;width:42px;height:30px;position:relative}.card-chip:after{content:"";border:1px solid #0003;border-radius:3px;position:absolute;inset:4px}.card-holder-name{letter-spacing:.05em;text-transform:uppercase;margin-top:.5rem;font-size:1.1rem;font-weight:700}.card-family-tag{opacity:.85;font-size:.8rem}.card-footer-row{justify-content:space-between;align-items:flex-end;gap:.75rem;font-size:.8rem;display:flex}.card-footer-label{opacity:.8;font-size:.65rem;display:block}.card-tier-badge{color:#fff;white-space:nowrap;background:#ffffff40;font-size:.7rem}.discount-summary{border-radius:var(--radius-sm);background:#f8fafc;gap:1rem;margin-bottom:1.25rem;padding:.75rem;display:flex}.discount-summary-divider{border-left:1px solid #e2e8f0}.benefits-list{flex-direction:column;gap:.4rem;max-height:200px;display:flex;overflow-y:auto}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-container{border-radius:var(--radius-lg);width:100%;max-width:540px;box-shadow:var(--shadow-lg);background:#fff;max-height:90vh;padding:1.75rem;position:relative;overflow-y:auto}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade{animation:.25s backwards fadeInUp}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.table-responsive{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.data-table th{color:var(--dento-navy);background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:.75rem 1rem;font-weight:700}.data-table td{border-bottom:1px solid #e2e8f0;padding:.85rem 1rem}.data-table tr:hover{background:#f1f5f9}.patient-hero{background:linear-gradient(135deg, var(--dento-navy) 0%, var(--dento-navy-dark) 100%);color:#fff;margin-bottom:1.5rem;padding:1.75rem}.patient-hero h1{color:#fff;overflow-wrap:anywhere;font-size:1.7rem}.patient-hero-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.portal-tabs{border-bottom:2px solid #e2e8f0;gap:.5rem;margin-bottom:1.75rem;display:flex}.portal-tab{color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:.5rem;margin-bottom:-2px;padding:.75rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex}.portal-tab:hover{color:var(--dento-navy)}.portal-tab.active{color:var(--dento-coral);border-bottom-color:var(--dento-coral)}.portal-tab .tab-badge{background:var(--dento-coral);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;display:inline-flex}.account-row{text-align:left;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.account-row:last-child{border-bottom:none}.account-row-label{align-items:center;gap:.75rem;min-width:0;display:flex}.account-row-value{color:var(--text-muted);word-break:break-word;font-size:.9rem}.switch{flex-shrink:0;width:50px;height:28px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch-slider{cursor:pointer;border-radius:var(--radius-full);transition:var(--transition);background:#cbd5e1;position:absolute;inset:0}.switch-slider:before{content:"";width:22px;height:22px;transition:var(--transition);box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;position:absolute;bottom:3px;left:3px}.switch input:checked+.switch-slider{background:var(--dento-coral)}.switch input:checked+.switch-slider:before{transform:translate(22px)}.switch input:focus-visible+.switch-slider{box-shadow:0 0 0 3px #e85d3a4d}.switch input:disabled+.switch-slider{opacity:.6;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.7s linear infinite spin}.btn.has-update{box-shadow:var(--shadow-glow);animation:2s ease-in-out infinite update-pulse;position:relative}.update-dot{background:var(--dento-navy);border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:-3px;right:-3px}@keyframes update-pulse{0%,to{box-shadow:0 0 #e85d3a73}50%{box-shadow:0 0 0 6px #e85d3a00}}@media (prefers-reduced-motion:reduce){.btn.has-update{animation:none}}.scope-options{flex-direction:column;gap:.5rem;display:flex}.scope-option{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:1.5px solid #cbd5e1;align-items:flex-start;gap:.65rem;padding:.75rem .85rem;display:flex}.scope-option:hover{border-color:var(--dento-coral)}.scope-option.checked{border-color:var(--dento-coral);background:var(--dento-pink-light)}.scope-option input{width:18px;height:18px;accent-color:var(--dento-coral);flex-shrink:0;margin-top:.2rem}.scope-option-body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.scope-option-title{color:var(--dento-navy);align-items:center;gap:.4rem;font-size:.88rem;font-weight:600;display:flex}.scope-option-help{color:var(--text-muted);font-size:.78rem}.assign-results{border-radius:var(--radius-sm);background:#fff;border:1px solid #e2e8f0;max-height:200px;margin:.5rem 0 0;padding:.3rem;list-style:none;overflow-y:auto}.assign-result{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.55rem .65rem;font-family:inherit;font-size:.87rem;display:flex}.assign-result:hover{background:var(--dento-pink-light)}.assign-result-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.enrollment-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.enrollment-list li{border-radius:var(--radius-sm);background:#f8fafc;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .7rem;font-size:.85rem;display:flex}.program-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.program-list li{border-radius:var(--radius-sm);background:#f8fafc;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .7rem;display:flex}.program-list li.applies{background:var(--dento-pink-light)}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.period-selector{flex-wrap:wrap;gap:.4rem;display:flex}.stat-card{flex-direction:column;gap:.15rem;display:flex}.stat-label{color:var(--text-muted);font-size:.78rem}.stat-value{font-variant-numeric:tabular-nums;margin:0;font-size:1.8rem}.stat-trend{align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;display:flex}.stat-trend.up{color:#15803d}.stat-trend.down{color:#b91c1c}.stat-trend.muted{color:var(--text-muted);font-weight:400}.product-bars{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.product-bar-head{justify-content:space-between;gap:.75rem;font-size:.85rem;display:flex}.product-bar-name{color:var(--dento-navy);overflow-wrap:anywhere;min-width:0;font-weight:600}.product-bar-value{font-variant-numeric:tabular-nums;white-space:nowrap}.product-bar-track{border-radius:var(--radius-full);background:#e2e8f0;height:8px;margin:.3rem 0 .2rem;overflow:hidden}.product-bar-fill{background:linear-gradient(90deg, var(--dento-coral) 0%, var(--dento-pink) 100%);border-radius:var(--radius-full);height:100%}.product-bar-meta{color:var(--text-muted);font-size:.75rem}.metric-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.metric-list li{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;font-size:.88rem;display:flex}.metric-list li:last-child{border-bottom:none}.metric-list li span{color:var(--text-muted);align-items:center;gap:.5rem;display:flex}.metric-list li strong{font-variant-numeric:tabular-nums;color:var(--dento-navy);font-size:1.05rem}.metric-list li.highlight strong{color:var(--dento-coral)}.admin-subnav{border-radius:var(--radius-md);border:1px solid var(--card-border);background:#fff;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;display:flex}@media (width<=640px){.admin-subnav{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.admin-subnav::-webkit-scrollbar{display:none}.admin-subnav .btn{white-space:nowrap;flex:none}}.attention-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.patient-search{position:relative}.patient-search-icon{color:var(--text-light);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.patient-search-input{padding-left:2.6rem;padding-right:2.6rem;font-size:1rem}.patient-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.patient-search-clear:hover{color:var(--dento-navy);background:#f1f5f9}.patient-results{z-index:50;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);background:#fff;border:1px solid #e2e8f0;max-height:320px;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow-y:auto}.patient-result{text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;min-height:44px;padding:.6rem .7rem;font-family:inherit;display:flex}.patient-result.highlighted{background:var(--dento-pink-light)}.patient-result-name{color:var(--dento-navy);font-size:.9rem;font-weight:600}.patient-result-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.78rem}.patient-results-empty{color:var(--text-muted);padding:.75rem .7rem;font-size:.85rem}.patient-search-hint{color:var(--text-muted);margin-top:.5rem;font-size:.78rem}@media (width<=640px){.attention-header .btn{width:100%}}.stamp-progress-footer{border-radius:var(--radius-sm);background:#fff;border:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.stamp-history{margin-top:1rem}.stamp-history>summary{cursor:pointer;color:var(--dento-navy);align-items:center;gap:.45rem;min-height:44px;padding:.6rem .25rem;font-size:.85rem;font-weight:600;list-style:none;display:flex}.stamp-history>summary::-webkit-details-marker{display:none}.stamp-history>summary:after{content:"▾";color:var(--text-muted);transition:var(--transition);margin-left:auto}.stamp-history[open]>summary:after{transform:rotate(180deg)}.loyalty-card{border-left:4px solid var(--dento-navy);margin-bottom:1.25rem}.tier-hint{color:var(--dento-coral);margin-bottom:.5rem;font-size:.78rem}.tier-hint-muted{color:var(--text-muted)}.treatment-picker{border-radius:var(--radius-sm);background:#fff;border:1.5px solid #cbd5e1;flex-direction:column;gap:.35rem;max-height:240px;padding:.35rem;display:flex;overflow-y:auto}.treatment-option{border-radius:var(--radius-sm);cursor:pointer;min-height:44px;transition:var(--transition);align-items:center;gap:.6rem;padding:.55rem .65rem;font-size:.87rem;display:flex}.treatment-option:hover{background:#f1f5f9}.treatment-option.checked{background:var(--dento-pink-light);box-shadow:inset 0 0 0 1.5px var(--dento-coral)}.treatment-option input{width:18px;height:18px;accent-color:var(--dento-coral);flex-shrink:0}.treatment-option-name{flex-wrap:wrap;flex:1;align-items:center;gap:.45rem;min-width:0;display:flex}.treatment-option-discount{color:var(--dento-coral);border-radius:var(--radius-full);white-space:nowrap;background:#e85d3a1f;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.treatment-option-price{color:var(--dento-navy);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.visit-totals{border-radius:var(--radius-sm);background:#f8fafc;border:1px solid #e2e8f0;margin-bottom:1.25rem;padding:.85rem 1rem;font-size:.87rem}.visit-totals>div{justify-content:space-between;gap:1rem;padding:.25rem 0;display:flex}.visit-totals>div span{color:var(--text-muted)}.visit-totals strong{font-variant-numeric:tabular-nums}.visit-totals .saved{color:var(--dento-coral)}.visit-totals .total{border-top:1.5px dashed #cbd5e1;margin-top:.35rem;padding-top:.5rem;font-size:1rem}.visit-totals .total strong{color:var(--dento-navy);font-size:1.1rem}.visit-totals-note{color:var(--text-muted);border-top:1px solid #e2e8f0;margin-top:.5rem;padding-top:.5rem;font-size:.75rem}.savings-banner{background:linear-gradient(135deg, var(--dento-coral) 0%, #c44322 100%);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1.5rem;padding:1.5rem}.savings-banner-label{text-transform:uppercase;letter-spacing:.06em;opacity:.9;align-items:center;gap:.4rem;font-size:.78rem;display:flex}.savings-banner-amount{font-variant-numeric:tabular-nums;margin:.35rem 0;font-size:2.4rem;font-weight:800;line-height:1.1}.savings-banner-detail{opacity:.92;font-size:.82rem}.savings-breakdown{border-top:1px solid #ffffff40;flex-wrap:wrap;gap:1.25rem;margin-top:.9rem;padding-top:.9rem;font-size:.8rem;display:flex}.savings-breakdown div{flex-direction:column;display:flex}.savings-breakdown strong{font-variant-numeric:tabular-nums;font-size:1.05rem}.visit-item-treatments{color:var(--text-muted);margin-top:.35rem;font-size:.78rem}.visit-item-saved{color:var(--dento-coral);font-weight:700}.visit-history-heading{color:var(--text-muted);border-top:1px solid #e2e8f0;align-items:center;gap:.4rem;margin:1.25rem 0 .6rem;padding-top:1rem;font-size:.85rem;display:flex}.visit-history{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.visit-item{border-radius:var(--radius-sm);border-left:3px solid var(--dento-navy);background:#f8fafc;gap:.75rem;padding:.7rem .85rem;display:flex}.visit-item-free{background:var(--dento-pink-light);border-left-color:var(--dento-coral)}.visit-item-icon{flex-shrink:0;padding-top:1px}.visit-item-body{flex:1;min-width:0}.visit-item-title{color:var(--dento-navy);justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.85rem;display:flex}.visit-item-title time{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.75rem}.visit-item-notes{color:var(--text-main);overflow-wrap:anywhere;margin-top:.2rem;font-size:.82rem}.visit-item-meta{color:var(--text-muted);margin-top:.2rem;font-size:.72rem}.inbox-popover{width:320px;max-width:calc(100vw - 2rem);color:var(--text-main);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;background:#fff;border:1px solid #e2e8f0;padding:1rem;position:absolute;top:115%;right:0}:focus-visible{outline:2px solid var(--dento-coral);outline-offset:2px}@media (width<=640px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1rem}.main-content{padding:1.25rem 1rem;padding-bottom:calc(9rem + env(safe-area-inset-bottom))}.stamp-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.btn{min-height:44px}.modal-container{border-radius:var(--radius-md);padding:1.25rem}.card{padding:1.15rem}.navbar{padding-top:calc(.7rem + env(safe-area-inset-top,0px));padding-bottom:.7rem;padding-left:calc(1rem + env(safe-area-inset-left,0px));padding-right:calc(1rem + env(safe-area-inset-right,0px))}.navbar-logo{height:32px}.navbar-user{gap:.5rem}.navbar-user .navbar-username,.navbar-user .badge,.navbar-user .btn-label{display:none}.navbar-user .btn{padding:.5rem .7rem}.patient-hero{padding:1.25rem}.patient-hero h1{font-size:1.35rem}.stamp-card-container{border-radius:var(--radius-md);padding:1.15rem}.stamp-card-header{flex-direction:column;align-items:flex-start;gap:.85rem}.membership-virtual-card{max-width:100%;padding:1.15rem}.membership-virtual-card:hover{transform:none}.card-holder-name{letter-spacing:.02em;font-size:.95rem}.card-family-tag{font-size:.72rem}.card-footer-row{gap:.5rem;font-size:.7rem}.card-chip{width:34px;height:24px}.benefits-list{max-height:none;overflow-y:visible}.pwa-install-banner{flex-direction:column;align-items:flex-start;gap:.85rem}.pwa-install-banner .btn{width:100%}.portal-tabs{z-index:200;background:var(--card-bg);border-top:1px solid var(--card-border);padding-bottom:env(safe-area-inset-bottom);border-bottom:none;gap:0;margin:0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #2b4c6f14}.portal-tab{border-top:3px solid #0000;border-bottom:none;flex-direction:column;flex:1;gap:.2rem;min-height:56px;margin-bottom:0;padding:.6rem .25rem;font-size:.7rem;position:relative}.portal-tab.active{border-top-color:var(--dento-coral);background:#e85d3a0f}.portal-tab .tab-badge{margin-right:-22px;position:absolute;top:.3rem;right:50%}.account-row{flex-direction:column;align-items:stretch;gap:.75rem}.account-row .btn{width:100%}.account-row.account-row-toggle{flex-direction:row;align-items:center}.account-row.account-row-toggle .btn{width:auto}}.pwa-install-banner{background:linear-gradient(135deg, var(--dento-navy) 0%, var(--dento-navy-dark) 100%);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:1rem 1.25rem;display:flex}
