:root{--color-primary: #1a73e8;--color-primary-dark: #1557b0;--color-primary-light: #e8f0fe;--color-success: #0d652d;--color-success-light: #e6f4ea;--color-warning: #b06000;--color-warning-light: #fef7e0;--color-danger: #a50e0e;--color-danger-light: #fce8e6;--color-danger-border: #f5c6c2;--color-danger-text: #c5221f;--color-text-primary: #202124;--color-text-secondary: #3c4043;--color-text-tertiary: #5f6368;--color-text-muted: #80868b;--color-border: #e0e0e0;--color-border-light: #dadce0;--color-border-sep: #bdc1c6;--color-surface: #fff;--color-surface-hover: #f1f3f4;--color-surface-alt: #f8f9fa;--color-whatsapp: #25d366;--color-whatsapp-dark: #1da851;--color-warning-border: #f5d565;--color-orange: #e8710a;--color-orange-dark: #c75f00;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 2px 8px rgba(0, 0, 0, .12);--shadow-hover: 0 4px 12px rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 2px rgba(26, 115, 232, .15);--font-xs: .72rem;--font-sm: .8rem;--font-base: .88rem;--font-md: .95rem;--font-lg: 1.05rem;--font-xl: 1.35rem;--font-3xl: 1.5rem;--transition-fast: .15s ease;--transition-base: .2s ease;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text-primary);background-color:var(--color-surface);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--color-primary: #8ab4f8;--color-primary-dark: #669df6;--color-primary-light: #1e3a5f;--color-success: #81c995;--color-success-light: #1e3a2f;--color-warning: #fdd663;--color-warning-light: #3d3523;--color-danger: #f28b82;--color-danger-light: #3d2323;--color-danger-border: #5c3a3a;--color-danger-text: #f28b82;--color-text-primary: #e8eaed;--color-text-secondary: #bdc1c6;--color-text-tertiary: #9aa0a6;--color-text-muted: #80868b;--color-border: #3c4043;--color-border-light: #5f6368;--color-border-sep: #5f6368;--color-surface: #202124;--color-surface-hover: #3c4043;--color-surface-alt: #292a2d;--color-warning-border: #5c4a1f;--color-orange: #ffa726;--color-orange-dark: #fb8c00}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{border-radius:var(--radius-md);border:1px solid var(--color-border-light);padding:.75em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-surface-alt);cursor:pointer;transition:border-color var(--transition-base),background-color var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base);min-height:44px}button:hover{border-color:var(--color-primary);background-color:var(--color-primary-light)}button:active{transform:scale(.97)}.add-btn:hover,.submit-btn:hover:not(:disabled),.dash-action-primary:hover,.dash-action-wa:hover,.pwa-install-btn:hover,.update-banner-btn:hover{transform:scale(1.02);box-shadow:var(--shadow-hover)}.add-btn:active,.submit-btn:active,.dash-action-primary:active,.dash-action-wa:active{transform:scale(.97);box-shadow:var(--shadow-sm)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:fadeSlideIn .3s ease-out both}.page-enter>*:nth-child(1){animation-delay:0ms}.page-enter>*:nth-child(2){animation-delay:40ms}.page-enter>*:nth-child(3){animation-delay:80ms}.page-enter>*:nth-child(4){animation-delay:.12s}.page-enter>*:nth-child(5){animation-delay:.16s}.page-enter>*:nth-child(n+6){animation-delay:.2s}.page-enter>*{animation:fadeSlideIn .35s ease-out both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}button:hover,button:active{transform:none!important}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;box-shadow:0 0 0 3px var(--color-primary-light)}.form-field{display:flex;flex-direction:column;gap:.3rem}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.form-hint{font-size:var(--font-sm);color:var(--color-text-muted);margin:0}.form-required:after{content:" *";color:var(--color-danger);font-weight:400}.form-row{display:flex;gap:var(--space-lg)}.form-field-half{flex:1;min-width:0}.form-error{background:var(--color-danger-light);color:var(--color-danger-text);padding:.65rem .85rem;border-radius:var(--radius-sm);font-size:.9rem}.form-subtitle{color:var(--color-text-tertiary);font-size:.9rem;margin:-.5rem 0 0}.form-field input[type=text],.form-field input[type=tel],.form-field input[type=email],.form-field input[type=number],.form-field input[type=date],.form-field input[type=color],.form-field input[type=password],.form-field select,.form-field textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-md);font-family:inherit;color:var(--color-text-primary);background-color:var(--color-surface);min-height:44px;transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--color-text-muted)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1a73e826}.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{background-color:var(--color-surface-alt);color:var(--color-text-muted);cursor:not-allowed;opacity:.7}.form-field textarea{resize:vertical;min-height:80px}.form-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}[data-theme=dark] .form-field input[type=text],[data-theme=dark] .form-field input[type=tel],[data-theme=dark] .form-field input[type=email],[data-theme=dark] .form-field input[type=number],[data-theme=dark] .form-field input[type=date],[data-theme=dark] .form-field input[type=color],[data-theme=dark] .form-field input[type=password],[data-theme=dark] .form-field select,[data-theme=dark] .form-field textarea{background-color:var(--color-surface-alt);color:var(--color-text-primary)}[data-theme=dark] .form-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239aa0a6' d='M2 4l4 4 4-4'/%3E%3C/svg%3E")}[data-theme=dark] .form-field input:focus,[data-theme=dark] .form-field select:focus,[data-theme=dark] .form-field textarea:focus{box-shadow:0 0 0 3px #8ab4f833}.field-error{color:var(--color-danger-text);font-size:var(--font-sm);margin-top:.15rem}.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:var(--color-danger-text)}.form-field.has-error input:focus,.form-field.has-error select:focus,.form-field.has-error textarea:focus{border-color:var(--color-danger-text);box-shadow:0 0 0 3px #c5221f26}.submit-btn{padding:.7rem 1.5rem;font-size:1rem;font-weight:600;color:var(--color-surface);background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-sm);transition:background var(--transition-base);margin-top:var(--space-sm);min-height:44px}.submit-btn:hover:not(:disabled){background:var(--color-primary-dark)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.cancel-btn{padding:.55rem 1rem;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base)}.cancel-btn:hover{background:var(--color-surface-hover)}.form-actions{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap}.back-btn{display:inline-flex;align-items:center;align-self:flex-start;gap:4px;background:none;border:none;color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;padding:var(--space-xs) 0;margin-bottom:var(--space-md);min-height:auto;transition:color var(--transition-base)}.back-btn:hover{color:var(--color-primary);background:none;border-color:transparent;text-decoration:none}@media(max-width:480px){:root{--font-3xl: 1.3rem;--font-xl: 1.15rem}.form-row{flex-direction:column;gap:var(--space-xl)}.form-field-half{flex:none;width:100%}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-surface) 100%)}.auth-layout{display:flex;align-items:stretch;width:100%;max-width:820px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.auth-hero{flex:1;background:var(--color-primary);color:#fff;padding:var(--space-3xl);display:flex;align-items:center}.auth-hero-content{width:100%}.auth-hero h1{font-size:1.4rem;margin:0 0 var(--space-md);color:#fff}.auth-hero-tagline{font-size:var(--font-base);margin:0 0 var(--space-2xl);opacity:.9;line-height:1.5}.auth-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-lg)}.auth-feature{display:flex;align-items:flex-start;gap:var(--space-md)}.auth-feature-icon{flex-shrink:0;width:36px;height:36px;background:#ffffff26;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.auth-feature div{display:flex;flex-direction:column;gap:2px}.auth-feature strong{font-size:var(--font-sm);font-weight:600}.auth-feature span{font-size:var(--font-xs);opacity:.8;line-height:1.4}.auth-card{flex:1;max-width:420px;padding:var(--space-2xl)}.auth-header{text-align:center;margin-bottom:var(--space-2xl)}.auth-card-title{font-size:var(--font-lg);color:var(--color-text-primary);font-weight:700}.auth-header h2{font-size:var(--font-lg);color:var(--color-text-primary);margin:0 0 var(--space-sm)}.auth-subtitle{color:var(--color-text-tertiary);font-size:var(--font-base);margin:0}.auth-offline-notice{display:flex;gap:var(--space-md);padding:var(--space-lg);background:var(--color-warning-light);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);color:var(--color-text-primary)}.auth-offline-notice svg{flex-shrink:0;color:var(--color-warning);margin-top:2px}.auth-offline-notice p{margin:0 0 var(--space-sm);font-size:var(--font-sm)}.auth-offline-notice p:last-child{margin-bottom:0}.auth-hint{color:var(--color-text-tertiary);font-size:var(--font-xs)}.auth-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-danger-light);color:var(--color-danger-text);border-radius:var(--radius-sm);font-size:var(--font-sm);margin-bottom:var(--space-lg)}.auth-success{padding:var(--space-md);background:var(--color-success-light);color:var(--color-success);border-radius:var(--radius-sm);font-size:var(--font-sm);margin-bottom:var(--space-lg)}.auth-form{display:flex;flex-direction:column;gap:var(--space-lg)}.auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-label{font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary)}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:var(--space-md);color:var(--color-text-muted);pointer-events:none}.auth-input-wrap input{width:100%;padding:var(--space-md) var(--space-md) var(--space-md) 44px;border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-base);font-family:inherit;transition:border-color var(--transition-base),box-shadow var(--transition-base);min-height:48px}.auth-input-wrap input[type=password],.auth-input-wrap input[type=text]{padding-right:44px}.auth-toggle-pw{position:absolute;right:var(--space-sm);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-xs);min-height:auto;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.auth-toggle-pw:hover{color:var(--color-text-secondary);background:var(--color-surface-alt)}.auth-input-wrap input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.auth-input-wrap input:disabled{background:var(--color-surface-alt);cursor:not-allowed}.auth-field-error{color:var(--color-danger-text);font-size:var(--font-sm);margin-top:.15rem}.auth-field.has-error .auth-input-wrap input{border-color:var(--color-danger-text)}.auth-field.has-error .auth-input-wrap input:focus{border-color:var(--color-danger-text);box-shadow:0 0 0 2px #c5221f26}.auth-submit{width:100%;padding:var(--space-md) var(--space-lg);font-size:var(--font-base);font-weight:600;color:var(--color-surface);background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:background var(--transition-base);min-height:48px;margin-top:var(--space-sm)}.auth-submit:hover:not(:disabled){background:var(--color-primary-dark)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.auth-switch p{margin:0;font-size:var(--font-sm);color:var(--color-text-tertiary)}.auth-switch button{background:none;border:none;color:var(--color-primary);font-weight:600;cursor:pointer;padding:0;font-size:inherit;min-height:auto}.auth-switch button:hover{text-decoration:underline;background:none}.auth-forgot{background:none;border:none;color:var(--color-primary);font-size:var(--font-sm);cursor:pointer;padding:0;text-align:right;min-height:auto;margin-top:calc(-1 * var(--space-sm))}.auth-forgot:hover{text-decoration:underline;background:none}[data-theme=dark] .auth-hero{background:#1557b0}@media(max-width:768px){.auth-layout{flex-direction:column;max-width:440px}.auth-hero{padding:var(--space-2xl)}.auth-hero h1{font-size:1.2rem}.auth-hero-tagline{margin-bottom:var(--space-lg)}.auth-features{gap:var(--space-md)}.auth-card{max-width:none}}@media(max-width:480px){.auth-container{padding:var(--space-sm);align-items:flex-start;padding-top:var(--space-lg)}.auth-hero,.auth-card{padding:var(--space-xl)}.auth-feature-icon{width:30px;height:30px}}.trial-expired-card{text-align:center}.trial-expired-icon{width:64px;height:64px;margin:0 auto var(--space-lg);border-radius:50%;background:var(--color-warning-light);color:var(--color-warning);display:flex;align-items:center;justify-content:center}.trial-expired-card h2{font-size:var(--font-xl);margin:0 0 var(--space-sm);color:var(--color-text-primary)}.trial-expired-message{font-size:var(--font-base);color:var(--color-text-secondary);margin:0 0 var(--space-sm)}.trial-expired-email{font-size:var(--font-sm);color:var(--color-text-tertiary);margin:0 0 var(--space-md);word-break:break-all}.trial-expired-error{font-size:var(--font-sm);color:var(--color-danger-text);background:var(--color-danger-light);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);margin:0 0 var(--space-md)}.trial-expired-success{font-size:var(--font-sm);color:var(--color-success);background:var(--color-success-light);padding:var(--space-md);border-radius:var(--radius-md);margin:0 0 var(--space-xl)}.trial-expired-extension{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-xl)}.trial-expired-textarea{width:100%;padding:var(--space-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-sm);resize:vertical;min-height:48px;transition:border-color var(--transition-base)}.trial-expired-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.trial-expired-request-btn{width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);font-weight:600;color:var(--color-primary);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:40px;transition:background var(--transition-base)}.trial-expired-request-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.trial-expired-request-btn:disabled{opacity:.6;cursor:not-allowed}.trial-expired-actions{display:flex;flex-direction:column;gap:var(--space-md)}.trial-expired-signout{width:100%;padding:var(--space-md);font-size:var(--font-sm);font-weight:600;color:var(--color-text-tertiary);background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:44px;transition:color var(--transition-base),border-color var(--transition-base)}.trial-expired-signout:hover{color:var(--color-danger-text);border-color:var(--color-danger-text);background:var(--color-danger-light)}.access-blocked-icon-error{background:var(--color-danger-light);color:var(--color-danger-text)}.spinning{animation:spin .8s linear infinite}.dashboard{max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-xl)}.dash-hero h2{font-size:var(--font-xl);margin:0}.dash-subtitle{font-size:var(--font-base);color:var(--color-text-tertiary);margin:var(--space-xs) 0 0}.dash-welcome{text-align:center;padding:var(--space-3xl) var(--space-lg)}.dash-welcome h2{font-size:var(--font-xl);margin:0 0 var(--space-sm)}.dash-welcome p{color:var(--color-text-tertiary);margin:0 0 var(--space-xl)}.dash-welcome-features{text-align:left;margin-bottom:var(--space-md)}.dash-welcome-features p{color:var(--color-text-secondary);font-size:var(--font-sm);line-height:1.6;margin:0}.dash-welcome-steps{display:flex;flex-direction:column;gap:var(--space-md);text-align:left;margin-bottom:var(--space-xl)}.dash-welcome-step{display:flex;align-items:flex-start;gap:var(--space-md)}.dash-welcome-step-num{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:var(--font-sm);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-welcome-step div{display:flex;flex-direction:column;gap:2px}.dash-welcome-step strong{font-size:var(--font-base);color:var(--color-text-primary)}.dash-welcome-step span{font-size:var(--font-sm);color:var(--color-text-tertiary)}.dash-welcome-actions{display:flex;gap:var(--space-md);justify-content:center}.dash-setup{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-lg);padding:var(--space-lg)}.dash-setup h3{font-size:var(--font-lg);margin:0 0 var(--space-xs);color:var(--color-text-primary)}.dash-setup-hint{font-size:var(--font-sm);color:var(--color-text-tertiary);margin:0 0 var(--space-lg)}.dash-setup-steps{display:flex;flex-direction:column;gap:var(--space-md)}.dash-setup-step{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-tertiary);font-size:.9rem}.dash-setup-step.dash-setup-done{color:var(--color-success)}.dash-setup-action{padding:0;border:none;background:none;color:var(--color-primary);font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.dash-setup-action:hover{color:var(--color-primary-dark)}.dash-setup-pending{color:var(--color-text-tertiary);font-style:italic}.dash-notif-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg)}.dash-notif-banner-content{display:flex;align-items:center;gap:var(--space-sm);font-size:.85rem;color:var(--color-text-primary)}.dash-notif-banner-actions{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.dash-notif-enable-btn{padding:var(--space-xs) var(--space-md);font-size:.8rem;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-surface);cursor:pointer;transition:background var(--transition-base)}.dash-notif-enable-btn:hover{background:var(--color-primary-dark)}.dash-notif-dismiss-btn{padding:var(--space-xs);border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-base)}.dash-notif-dismiss-btn:hover{color:var(--color-text-primary)}.dash-search-btn{width:100%;padding:.65rem .85rem;font-size:.9rem;color:var(--color-text-tertiary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;display:flex;align-items:center;gap:var(--space-sm);box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.dash-search-btn:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.dash-trial-alert{padding:var(--space-md) var(--space-lg);font-size:.9rem;font-weight:600;color:var(--color-warning);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-lg);display:flex;align-items:center;gap:var(--space-sm)}.dash-reminder-banner{width:100%;padding:var(--space-md) var(--space-lg);font-size:.9rem;font-weight:600;color:var(--color-surface);background:var(--color-orange);border:none;border-radius:var(--radius-lg);cursor:pointer;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:background var(--transition-base)}.dash-reminder-banner:hover{background:var(--color-orange-dark)}.dash-range-toggle{display:flex;align-items:center;gap:.35rem;color:var(--color-text-tertiary)}.dash-range-btn{padding:.3rem .65rem;font-size:var(--font-xs);font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base)}.dash-range-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.dash-range-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dash-range-active:hover{background:var(--color-primary-dark);color:#fff}.dash-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.dash-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.85rem 1rem;display:flex;flex-direction:column;gap:var(--space-xs);box-shadow:var(--shadow-sm);border-top:3px solid transparent;transition:transform var(--transition-fast),box-shadow var(--transition-base)}.dash-stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.dash-stat--leases{border-image:linear-gradient(135deg,#1a73e8,#669df6) 1;border-image-slice:1 0 0 0}.dash-stat--properties{border-image:linear-gradient(135deg,#1a73e8,#8ab4f8) 1;border-image-slice:1 0 0 0}.dash-stat--tenants{border-image:linear-gradient(135deg,#1a73e8,#a8c7fa) 1;border-image-slice:1 0 0 0}.dash-stat--revenue{border-image:linear-gradient(135deg,#0d652d,#81c995) 1;border-image-slice:1 0 0 0}.dash-stat--collection{border-image:linear-gradient(135deg,#7b1fa2,#ce93d8) 1;border-image-slice:1 0 0 0}.dash-stat--occupancy{border-image:linear-gradient(135deg,#e8710a,#ffb74d) 1;border-image-slice:1 0 0 0}.dash-stat--deposits{border-image:linear-gradient(135deg,#1a73e8,#4fc3f7) 1;border-image-slice:1 0 0 0}.dash-stat-value{font-size:var(--font-xl);font-weight:700;color:var(--color-text-primary)}.dash-stat-income{font-size:1.1rem;color:var(--color-success)}.dash-stat-warn{color:var(--color-warning)}.dash-stat-danger{color:var(--color-danger)}.dash-stat-label{font-size:var(--font-sm);color:var(--color-text-tertiary)}.dash-stat-deposit{color:var(--color-primary)}.dash-deposit-icon{color:var(--color-primary);flex-shrink:0}.dash-stat-detail{font-size:var(--font-xs);color:var(--color-text-tertiary);font-weight:400}.dash-stat-trend{display:flex;align-items:center;gap:.35rem}.dash-trend{display:inline-flex;align-items:center;gap:.15rem;font-size:var(--font-xs);font-weight:600}.dash-trend-up{color:var(--color-success)}.dash-trend-down{color:var(--color-danger)}.dash-trend-flat{color:var(--color-text-tertiary)}.dash-section h3{font-size:var(--font-lg);margin:0 0 var(--space-md)}.dash-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.dash-section-header h3{margin:0}.dash-bulk-pay-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .65rem;font-size:var(--font-xs);font-weight:600;color:#fff;background:var(--color-success);border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition-base)}.dash-bulk-pay-btn:hover{background:var(--color-success-dark, #0d652d)}.dash-bulk-pay-btn:disabled{opacity:.6;cursor:not-allowed}.dash-alert-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.dash-alert-item{border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs);transition:transform var(--transition-fast),box-shadow var(--transition-base)}.dash-alert-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.dash-alert-danger{background:var(--color-danger-light);border:1px solid var(--color-danger-border)}.dash-alert-warn{background:var(--color-warning-light);border:1px solid var(--color-warning-border)}.dash-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.02em}.dash-avatar-sm{width:26px;height:26px;font-size:.6rem}.dash-alert-top{display:flex;align-items:center;gap:var(--space-sm)}.dash-alert-name{font-weight:600;font-size:.92rem;color:var(--color-text-primary);flex:1}.dash-alert-badge{font-size:var(--font-xs);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-lg)}.dash-badge-danger{color:var(--color-danger);background:#f8d7d5}.dash-badge-warn{color:var(--color-warning);background:#f5e6b8}.dash-alert-detail{font-size:.82rem;color:var(--color-text-tertiary)}.dash-alert-vacant{background:var(--color-surface);border:1px solid var(--color-border)}.dash-badge-vacant{font-size:var(--font-xs);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-lg);color:var(--color-warning);background:var(--color-warning-light)}.dash-alert-bottom{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.dash-quick-pay-btn{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .5rem;font-size:var(--font-xs);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--transition-base)}.dash-quick-pay-btn:hover{background:var(--color-primary-dark, #1557b0)}.dash-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.dash-action-btn{padding:var(--space-md) var(--space-sm);font-size:.85rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:background var(--transition-base),border-color var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base)}.dash-action-btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-sep);transform:translateY(-1px);box-shadow:var(--shadow-md)}.dash-action-btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.dash-action-primary{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.dash-action-primary:hover{background:var(--color-primary-dark)}.dash-action-wa{background:var(--color-whatsapp);color:var(--color-surface);border-color:var(--color-whatsapp)}.dash-action-wa:hover{background:var(--color-whatsapp-dark)}.dash-recent-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.dash-recent-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.7rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:var(--space-xs);box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast)}.dash-recent-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.dash-recent-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.dash-recent-top{display:flex;align-items:center;gap:var(--space-sm)}.dash-recent-who{font-weight:600;font-size:.9rem;color:var(--color-text-primary);flex:1}.dash-recent-amount{font-weight:700;font-size:.9rem;color:var(--color-success)}.dash-recent-amount.dash-recent-partial{color:var(--color-warning)}.dash-recent-meta{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--color-text-tertiary)}.dash-recent-sep{color:var(--color-border-sep)}.dash-recent-notes{font-size:var(--font-xs);color:var(--color-text-muted, var(--color-text-tertiary));font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-recent-partial-badge{font-size:var(--font-xs);font-weight:500;color:var(--color-warning);background:var(--color-warning-light);padding:.08rem .4rem;border-radius:var(--radius-lg)}.dash-view-all-btn{width:100%;padding:.6rem;margin-top:var(--space-sm);font-size:.85rem;font-weight:600;color:var(--color-primary);background:var(--color-surface);border:1px dashed var(--color-primary);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:background var(--transition-base)}.dash-view-all-btn:hover{background:var(--color-primary-light)}.dash-recent-action{margin-left:auto;font-size:var(--font-xs);font-weight:600;color:var(--color-primary);opacity:0;transition:opacity var(--transition-base)}.dash-recent-item:hover .dash-recent-action{opacity:1}.dash-footer{display:flex;flex-direction:column;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.dash-manage-btn{width:100%;padding:.7rem;font-size:var(--font-base);font-weight:600;border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:background var(--transition-base)}.dash-manage-btn:hover{background:var(--color-primary-light)}.dash-manage-secondary{color:var(--color-text-tertiary);font-weight:500}.dash-manage-secondary:hover{background:var(--color-surface-hover)}.dash-expiring{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg)}.dash-expiring-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.dash-expiring-item:last-child{border-bottom:none}.dash-expiring-name{font-weight:600;font-size:.9rem}.dash-expiring-detail{font-size:.82rem;color:var(--color-text-tertiary)}.dash-expiring-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.dash-badge-info{font-size:var(--font-xs);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-lg);color:var(--color-primary);background:var(--color-primary-light)}.dash-expiring-renew-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:var(--font-xs);font-weight:600;color:var(--color-primary);background:transparent;border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.dash-expiring-renew-btn:hover{background:var(--color-primary);color:#fff}@media(max-width:400px){.dashboard{gap:var(--space-lg)}.dash-stats,.dash-actions{grid-template-columns:1fr}.dash-action-btn{padding:var(--space-md) var(--space-lg);min-height:48px}.dash-welcome-actions{flex-direction:column}.dash-alert-top{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}}.skeleton{background:linear-gradient(110deg,var(--color-surface-alt) 8%,var(--color-surface-hover) 18%,var(--color-surface-alt) 33%);background-size:200% 100%;border-radius:var(--radius-md);position:relative;overflow:hidden;animation:skeleton-shimmer 1.6s ease-in-out infinite}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.12) 20%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.12) 80%,transparent 100%);animation:skeleton-wave 1.6s ease-in-out infinite}[data-theme=dark] .skeleton:after{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.04) 20%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.04) 80%,transparent 100%)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-wave{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-text{height:.85rem;width:60%;margin-bottom:var(--space-sm)}.skeleton-text-short{width:40%}.skeleton-text-long{width:80%}.skeleton-heading{height:1.2rem;width:50%;margin-bottom:var(--space-md)}.skeleton-card{height:80px;border:1px solid var(--color-border);padding:var(--space-md)}.skeleton-stat{height:72px;border:1px solid var(--color-border)}.skeleton-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.skeleton-list{display:flex;flex-direction:column;gap:var(--space-sm)}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}.skeleton:after{animation:none}}.property-list{max-width:480px;margin:0 auto}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.list-header h2{font-size:var(--font-xl);margin:0}.add-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:var(--font-sm);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-base)}.add-btn:hover{background:var(--color-primary-dark)}.list-search{position:relative;margin-bottom:var(--space-md)}.search-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.search-input{width:100%;padding:.55rem 2.2rem;font-size:var(--font-base);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--transition-base);box-sizing:border-box}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:0 .25rem;line-height:1;display:flex;align-items:center}.search-clear:hover{color:var(--color-text-primary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.empty-state svg{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:var(--font-xl);color:var(--color-text);margin-bottom:.5rem}.empty-state p{color:var(--color-text-tertiary);margin-bottom:1.5rem;max-width:320px}.empty-state-cta{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);font-size:var(--font-base);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),transform var(--transition-fast)}.empty-state-cta:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.empty-state-cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.property-cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-md)}.property-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:.9rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.property-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.property-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.property-card-top{display:flex;justify-content:space-between;align-items:center}.property-name{font-weight:600;font-size:var(--font-base);color:var(--color-text-primary)}.property-type-badge{font-size:var(--font-xs);font-weight:500;color:var(--color-primary);background:var(--color-primary-light);padding:.15rem .55rem;border-radius:var(--radius-lg)}.property-address{font-size:var(--font-sm);color:var(--color-text-secondary)}.property-notes{font-size:var(--font-xs);color:var(--color-text-muted);font-style:italic}.property-badges{display:flex;align-items:center;gap:.35rem}.property-occupancy-badge{font-size:var(--font-xs);font-weight:500;padding:.15rem .55rem;border-radius:var(--radius-lg)}.property-occupied{color:var(--color-success);background:var(--color-success-light)}.property-vacant{color:var(--color-warning);background:var(--color-warning-light)}.property-lease-info{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:var(--font-sm);margin-top:.1rem}.property-tenant-name{color:var(--color-text-secondary)}.property-rent{font-weight:600;color:var(--color-success);font-size:var(--font-xs)}.property-revenue{display:flex;align-items:center;gap:.3rem;font-size:var(--font-xs);color:var(--color-text-tertiary);padding:.2rem .5rem;background:var(--color-surface-alt);border-radius:var(--radius-sm);margin-top:.15rem}.property-revenue svg{color:var(--color-success);flex-shrink:0}.property-revenue-sep{color:var(--color-border)}.tenant-list{max-width:480px;margin:0 auto}.tenant-list .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.tenant-list .empty-state svg{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:1rem;opacity:.5}.tenant-list .empty-state h3{font-size:var(--font-xl);color:var(--color-text-primary);margin-bottom:.5rem}.tenant-list .empty-state p{color:var(--color-text-tertiary);margin-bottom:1.5rem;max-width:320px}.tenant-list .empty-state-cta{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);font-size:var(--font-base);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),transform var(--transition-fast)}.tenant-list .empty-state-cta:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.tenant-list .empty-state-cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.tenant-list .list-sort{display:flex;align-items:center;gap:.3rem;color:var(--color-text-tertiary);margin-bottom:var(--space-sm)}.tenant-list .list-sort select{padding:.3rem .5rem;font-size:var(--font-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer}.tenant-cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-md)}.tenant-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:.9rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.tenant-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.tenant-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tenant-card-top{display:flex;align-items:center;gap:var(--space-sm)}.tenant-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.02em}.tenant-name{flex:1;font-weight:600;font-size:var(--font-base);color:var(--color-text-primary)}.tenant-lang-badge{font-size:var(--font-xs);font-weight:500;color:var(--color-success);background:var(--color-success-light);padding:.15rem .55rem;border-radius:var(--radius-lg)}.tenant-meta{display:flex;align-items:center;gap:.35rem;font-size:var(--font-sm);color:var(--color-text-secondary)}.tenant-meta-sep{color:var(--color-border)}.tenant-email{font-size:var(--font-sm);color:var(--color-text-secondary)}.tenant-notes{font-size:var(--font-xs);color:var(--color-text-muted);font-style:italic}.tenant-payment-stats{display:flex;align-items:center;gap:.5rem;font-size:var(--font-xs);color:var(--color-text-tertiary);padding:.2rem .5rem;background:var(--color-surface-alt);border-radius:var(--radius-sm);margin-top:.15rem}.tenant-stat{font-weight:500;color:var(--color-success)}.tenant-stat-last{color:var(--color-text-tertiary)}.tenant-stat-owed{font-weight:600;color:var(--color-danger)}.tenant-sparkline{width:72px;height:20px;flex-shrink:0}.tenant-streak{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-xs);font-weight:600;color:var(--color-orange, #e67e22);padding:.1rem .5rem;background:var(--color-warning-light);border-radius:var(--radius-lg);width:fit-content}.tenant-export-btn{display:inline-flex;align-items:center;gap:.25rem;padding:var(--space-sm) var(--space-md);font-size:var(--font-xs);font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base)}.tenant-export-btn:hover{background:var(--color-surface-hover);border-color:var(--color-primary);color:var(--color-primary)}.tenant-quick-actions{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;flex-wrap:wrap}.tenant-action-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .55rem;font-size:var(--font-xs);font-weight:500;text-decoration:none;border-radius:var(--radius-md);border:1px solid;cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.tenant-action-call{color:var(--color-primary);border-color:var(--color-primary);background:transparent}.tenant-action-call:hover{background:var(--color-primary);color:#fff}.tenant-action-wa{color:#25d366;border-color:#25d366;background:transparent}.tenant-action-wa:hover{background:#25d366;color:#fff}.tenant-action-email{color:var(--color-text-secondary);border-color:var(--color-border);background:transparent}.tenant-action-email:hover{background:var(--color-text-secondary);color:#fff}.rad-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg);animation:rad-fade-in .15s ease-out}@keyframes rad-fade-in{0%{opacity:0}to{opacity:1}}.rad-dialog{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .2));padding:var(--space-2xl);max-width:440px;width:100%;display:flex;flex-direction:column;gap:var(--space-lg);animation:rad-slide-up .2s ease-out;max-height:90vh;overflow-y:auto}@keyframes rad-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rad-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.rad-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary);margin-bottom:var(--space-xs)}.rad-title{font-size:var(--font-lg);color:var(--color-text-primary);margin:0}.rad-subtitle{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0}.rad-current{display:flex;align-items:center;justify-content:space-between;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.rad-current-label{font-size:var(--font-sm);font-weight:500;color:var(--color-primary)}.rad-current-amount{font-size:var(--font-lg);font-weight:700;color:var(--color-primary)}.rad-form{display:flex;flex-direction:column;gap:var(--space-md)}.rad-label-row{display:flex;align-items:center;gap:.3rem}.rad-textarea{resize:vertical;min-height:3rem}.rad-history{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md)}.rad-history-title{font-size:.85rem;font-weight:600;margin:0 0 var(--space-sm);display:flex;align-items:center;gap:var(--space-xs);color:var(--color-primary)}.rad-timeline{position:relative;display:flex;flex-direction:column;gap:0;padding-left:var(--space-md)}.rad-timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--color-border);border-radius:1px}.rad-timeline-item{position:relative;display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-xs) 0}.rad-timeline-dot{position:absolute;left:calc(-1 * var(--space-md) + 1px);top:.6rem;width:10px;height:10px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-surface-alt);flex-shrink:0;z-index:1}.rad-timeline-original .rad-timeline-dot{background:var(--color-text-muted, var(--color-text-tertiary))}.rad-timeline-content{flex:1;min-width:0}.rad-timeline-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.rad-timeline-date{font-size:var(--font-sm);color:var(--color-text-tertiary)}.rad-timeline-amount{font-size:var(--font-sm);font-weight:600;color:var(--color-text-primary);white-space:nowrap}.rad-timeline-original .rad-timeline-amount{opacity:.7}.rad-timeline-note{display:block;font-size:var(--font-xs, .75rem);color:var(--color-text-tertiary);margin-top:.1rem}.rad-actions{display:flex;gap:var(--space-md);width:100%;margin-top:var(--space-xs)}.rad-cancel-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:var(--font-base);font-weight:500;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.rad-cancel-btn:hover:not(:disabled){background:var(--color-surface-alt);color:var(--color-text-primary)}.rad-save-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:var(--font-base);font-weight:600;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;transition:background var(--transition-base),opacity var(--transition-base)}.rad-save-btn:hover:not(:disabled){background:var(--color-primary-dark, var(--color-primary));opacity:.9}.rad-cancel-btn:disabled,.rad-save-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.rad-dialog{padding:var(--space-lg);max-width:100%}.rad-current{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.rad-timeline-row{flex-direction:column;align-items:flex-start;gap:.1rem}}.lease-list{max-width:480px;margin:0 auto}.lease-list .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.lease-list .empty-state svg{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:1rem;opacity:.5}.lease-list .empty-state h3{font-size:var(--font-xl);color:var(--color-text-primary);margin-bottom:.5rem}.lease-list .empty-state p{color:var(--color-text-tertiary);margin-bottom:1.5rem;max-width:320px}.lease-list .empty-state-cta{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);font-size:var(--font-base);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),transform var(--transition-fast)}.lease-list .empty-state-cta:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.lease-list .list-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.lease-list .export-csv-btn{display:inline-flex;align-items:center;gap:.2rem;padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);font-weight:500;color:var(--color-text-tertiary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-base),border-color var(--transition-base)}.lease-list .export-csv-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary)}.lease-cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-md)}.lease-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:.9rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.lease-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.lease-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.lease-card-top{display:flex;justify-content:space-between;align-items:center}.lease-property{font-weight:600;font-size:var(--font-base);color:var(--color-text-primary)}.lease-tenant{font-size:var(--font-sm);color:var(--color-text-secondary)}.lease-meta{display:flex;align-items:center;gap:.35rem;font-size:var(--font-sm);color:var(--color-text-secondary)}.lease-meta-sep{color:var(--color-border)}.lease-term-badge{font-weight:500;color:var(--color-text-tertiary)}.lease-notes{font-size:var(--font-xs);color:var(--color-text-muted);font-style:italic}.lease-badges{display:flex;align-items:center;gap:.3rem}.lease-auto-renew-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary)}.lease-status-badge{font-size:var(--font-xs);font-weight:500;padding:.15rem .55rem;border-radius:var(--radius-lg)}.lease-status-active{color:var(--color-success);background:var(--color-success-light)}.lease-status-ended{color:var(--color-text-secondary);background:var(--color-surface-alt)}.lease-status-suspended{color:var(--color-warning);background:var(--color-warning-light)}.lease-status-expiring{color:var(--color-warning);background:var(--color-warning-light);font-weight:600}.list-sort{display:flex;align-items:center;gap:.3rem;color:var(--color-text-tertiary)}.list-sort select{padding:.3rem .5rem;font-size:var(--font-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer}.lease-progress{display:flex;align-items:center;gap:.4rem;margin-top:.15rem}.lease-progress-bar{flex:1;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.lease-progress-fill{height:100%;background:var(--color-success);border-radius:2px;transition:width .3s ease}.lease-progress-label{font-size:var(--font-xs);color:var(--color-text-tertiary);white-space:nowrap}.lease-rent-change{display:inline-flex;align-items:center;gap:.2rem;font-size:var(--font-xs);color:var(--color-primary);font-weight:500}.lease-action-btns{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;flex-wrap:wrap}.lease-adjust-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:var(--font-xs);font-weight:500;color:var(--color-success);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.lease-adjust-btn:hover{background:var(--color-success);color:#fff}.lease-renew-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:var(--font-xs);font-weight:500;color:var(--color-primary);background:var(--color-primary-light, rgba(26, 115, 232, .08));border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.lease-renew-btn:hover{background:var(--color-primary);color:#fff}.payment-list{max-width:480px;margin:0 auto}.payment-list .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.payment-list .empty-state svg{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:1rem;opacity:.5}.payment-list .empty-state h3{font-size:var(--font-xl);color:var(--color-text-primary);margin-bottom:.5rem}.payment-list .empty-state p{color:var(--color-text-tertiary);margin-bottom:1.5rem;max-width:320px}.payment-list .empty-state-cta{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);font-size:var(--font-base);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),transform var(--transition-fast)}.payment-list .empty-state-cta:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.payment-cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-md)}.payment-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:.9rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.payment-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.payment-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.payment-card-top{display:flex;justify-content:space-between;align-items:center}.payment-receipt{font-weight:600;font-size:var(--font-sm);color:var(--color-text-primary);font-family:monospace}.payment-amount{font-weight:700;font-size:var(--font-base);color:var(--color-success)}.payment-amount.payment-partial{color:var(--color-warning)}.payment-who{font-size:var(--font-sm);color:var(--color-text-secondary)}.payment-meta{display:flex;align-items:center;gap:.35rem;font-size:var(--font-sm);color:var(--color-text-secondary)}.payment-meta-sep{color:var(--color-border)}.payment-partial-badge{font-size:var(--font-xs);font-weight:500;color:var(--color-warning);background:var(--color-warning-light);padding:.1rem .45rem;border-radius:var(--radius-lg)}.payment-period{font-size:var(--font-xs);color:var(--color-text-secondary)}.payment-notes{font-size:var(--font-xs);color:var(--color-text-muted);font-style:italic}.list-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.payment-list .list-sort{display:flex;align-items:center;gap:.3rem;color:var(--color-text-tertiary)}.payment-list .list-sort select{padding:.3rem .5rem;font-size:var(--font-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer}.export-csv-btn{display:inline-flex;align-items:center;gap:.2rem;padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);font-weight:500;color:var(--color-text-tertiary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-base),border-color var(--transition-base)}.export-csv-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary)}.select-mode-btn{padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-tertiary);cursor:pointer;display:flex;align-items:center;transition:color var(--transition-base),border-color var(--transition-base)}.select-mode-btn:hover,.select-mode-btn.select-mode-active{color:var(--color-primary);border-color:var(--color-primary)}.payment-checkbox{accent-color:var(--color-primary);width:16px;height:16px;flex-shrink:0;cursor:pointer}.payment-card-selected{border-color:var(--color-primary)!important;background:var(--color-primary-light)!important}.batch-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.batch-count{font-size:var(--font-sm);font-weight:600;color:var(--color-primary)}.batch-download-btn{display:inline-flex;align-items:center;gap:.3rem;padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base)}.batch-download-btn:hover{background:var(--color-primary-dark, #1557b0)}.batch-download-btn:disabled{opacity:.7;cursor:not-allowed}.date-range-filter{display:flex;align-items:flex-end;gap:var(--space-sm);margin-bottom:var(--space-md)}.date-range-field{display:flex;flex-direction:column;gap:.15rem;flex:1}.date-range-field span{font-size:var(--font-xs);font-weight:500;color:var(--color-text-tertiary)}.date-range-field input[type=date]{padding:.4rem .5rem;font-size:var(--font-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);box-sizing:border-box}.date-range-field input[type=date]:focus{outline:none;border-color:var(--color-primary)}.date-range-clear{display:inline-flex;align-items:center;gap:.2rem;padding:.4rem .6rem;font-size:var(--font-xs);color:var(--color-text-tertiary);background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap}.date-range-clear:hover{color:var(--color-danger-text, #dc2626);border-color:var(--color-danger-text, #dc2626)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -2px 10px #0000000f}[data-theme=dark] .bottom-nav{box-shadow:0 -2px 10px #0000004d}.bottom-nav-inner{display:flex;align-items:stretch;justify-content:space-around;width:100%;max-width:600px;height:56px}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;padding:var(--space-xs) 0;color:var(--color-text-muted);font-size:.65rem;font-weight:500;cursor:pointer;transition:color var(--transition-fast),transform var(--transition-fast);position:relative;min-height:56px;-webkit-tap-highlight-color:transparent;border-radius:0}.bottom-nav-item:hover{color:var(--color-text-secondary);background:none;border-color:transparent;transform:none;box-shadow:none}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:var(--color-primary);border-radius:0 0 3px 3px}.bottom-nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.bottom-nav-label{line-height:1;letter-spacing:.01em}.bottom-nav-item--action{color:var(--color-primary)}.bottom-nav-item--action .bottom-nav-icon{width:40px;height:40px;background:var(--color-primary);color:#fff;border-radius:50%;margin-top:-12px;box-shadow:0 2px 8px #1a73e859;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}[data-theme=dark] .bottom-nav-item--action .bottom-nav-icon{background:var(--color-primary);box-shadow:0 2px 8px #8ab4f84d}.bottom-nav-item--action:hover .bottom-nav-icon{transform:scale(1.08);box-shadow:0 4px 14px #1a73e866}.bottom-nav-item--action:active .bottom-nav-icon{transform:scale(.95)}.bottom-nav-item--action .bottom-nav-label{color:var(--color-primary);font-weight:600;margin-top:-2px}.bottom-nav-item--action.active:before{display:none}.has-bottom-nav #main-content{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px) + var(--space-lg))}@media(min-width:769px){.bottom-nav-inner{max-width:480px}.bottom-nav-item{font-size:.7rem}}@media(prefers-reduced-motion:reduce){.bottom-nav-item,.bottom-nav-item--action .bottom-nav-icon{transition:none!important}.bottom-nav-item:active,.bottom-nav-item--action:hover .bottom-nav-icon,.bottom-nav-item--action:active .bottom-nav-icon{transform:none!important}}.load-more-btn{display:block;width:100%;padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.load-more-btn:hover{background:var(--color-primary);color:#fff}.skip-link{position:absolute;top:-100px;left:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:600;z-index:1000;text-decoration:none;transition:top .15s}.skip-link:focus{top:var(--space-md)}#main-content:focus{outline:none}.app{max-width:600px;margin:var(--space-3xl) auto;padding:0 var(--space-lg);font-family:system-ui,-apple-system,sans-serif}.app-header{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-xl);padding:var(--space-md) var(--space-lg);position:sticky;top:0;z-index:100;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06);margin-left:calc(-1 * var(--space-lg));margin-right:calc(-1 * var(--space-lg));border-radius:0}[data-theme=dark] .app-header{background:#202124cc;border-bottom:1px solid rgba(255,255,255,.06)}.app-header-top{display:flex;align-items:center;justify-content:space-between}.app h1{font-size:var(--font-3xl);margin:0}.app-theme-toggle{padding:var(--space-sm);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:36px;min-width:36px;transition:background var(--transition-base),color var(--transition-base)}.app-theme-toggle:hover{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.app-user-bar{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-sm);color:var(--color-text-tertiary)}.app-sync-status{display:flex;align-items:center;gap:.2rem;color:var(--color-success);position:relative}.app-sync-badge{font-size:.65rem;font-weight:700;line-height:1;padding:.1rem .3rem;border-radius:999px;color:#fff;background:var(--color-warning, #e67e22)}.app-sync-status .syncing{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.app-sync-error{color:var(--color-danger, #e74c3c)}.app-sync-time{font-size:.6rem;opacity:.7}.sync-error-banner{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--color-danger, #e74c3c);color:#fff;font-size:var(--font-sm);text-align:center;justify-content:center}.app-user-email{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-admin-btn{padding:var(--space-xs);background:none;border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:28px;min-width:28px;border-radius:var(--radius-sm);transition:background var(--transition-base)}.app-admin-btn:hover{background:var(--color-primary-light)}.app-logout-btn{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);background:none;border:1px solid var(--color-border-light);color:var(--color-text-tertiary);cursor:pointer;display:flex;align-items:center;min-height:28px}.app-logout-btn:hover{color:var(--color-danger-text);border-color:var(--color-danger-text);background:var(--color-danger-light)}.section-divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-2xl) 0}.manage-tabs{display:flex;gap:2px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:3px;margin:var(--space-lg) 0}.manage-tab{flex:1;padding:.5rem .25rem;font-size:var(--font-xs);font-weight:600;color:var(--color-text-tertiary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.25rem;transition:background var(--transition-base),color var(--transition-base);white-space:nowrap}.manage-tab:hover{color:var(--color-text-primary);background:var(--color-surface-hover)}.manage-tab-active{color:var(--color-primary);background:var(--color-surface);box-shadow:var(--shadow-sm)}.manage-tab-active:hover{color:var(--color-primary);background:var(--color-surface)}@media(max-width:400px){.manage-tab{font-size:.68rem;padding:.45rem .15rem;gap:.15rem}}.offline-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-warning-light);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);font-size:.82rem;font-weight:500;color:var(--color-warning);margin-bottom:var(--space-md)}.update-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:.82rem;font-weight:500;color:var(--color-primary);margin-bottom:var(--space-md)}.update-banner-btn{padding:var(--space-xs) var(--space-md);font-size:.78rem;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;min-height:28px;transition:background var(--transition-base)}.update-banner-btn:hover{background:var(--color-primary-dark)}.limit-banner{display:flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md);background:var(--color-warning-light);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);font-size:.82rem;font-weight:500;color:var(--color-warning);margin-bottom:var(--space-md)}.trial-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-warning-light);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);font-size:.82rem;font-weight:600;color:var(--color-warning);margin-bottom:var(--space-md)}.error-boundary{max-width:480px;margin:var(--space-3xl) auto;padding:var(--space-xl);text-align:center;display:flex;flex-direction:column;gap:var(--space-lg);align-items:center}.error-boundary h2{font-size:var(--font-xl);margin:0;color:var(--color-danger)}.error-boundary p{color:var(--color-text-secondary);margin:0}.error-boundary-tips{text-align:left;font-size:var(--font-sm);color:var(--color-text-secondary);background:var(--color-surface-alt);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);width:100%}.error-boundary-tips p{margin:0 0 var(--space-sm)}.error-boundary-tips ul{margin:0;padding-left:var(--space-xl)}.error-boundary-tips li{margin-bottom:var(--space-xs);line-height:1.5}.error-boundary-toggle{font-size:var(--font-sm);color:var(--color-primary);background:none;border:none;cursor:pointer;padding:var(--space-xs);min-height:auto;text-decoration:underline}.error-boundary-toggle:hover{background:none;color:var(--color-primary-dark)}.error-boundary-detail{font-size:var(--font-sm);color:var(--color-text-tertiary);background:var(--color-surface-alt);padding:var(--space-md);border-radius:var(--radius-md);max-width:100%;overflow-x:auto;text-align:left;white-space:pre-wrap;word-break:break-word}.error-boundary-actions{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center}.pwa-install-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.pwa-install-content{display:flex;align-items:center;gap:var(--space-sm);font-size:.85rem;color:var(--color-text-primary)}.pwa-install-actions{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.pwa-install-btn{padding:var(--space-xs) var(--space-md);font-size:.8rem;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-surface);cursor:pointer;transition:background var(--transition-base)}.pwa-install-btn:hover{background:var(--color-primary-dark)}.pwa-install-dismiss{padding:var(--space-xs);border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-base)}.pwa-install-dismiss:hover{color:var(--color-text-primary)}.scroll-top-btn{position:fixed;bottom:var(--space-xl);right:var(--space-xl);width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);z-index:100;transition:background var(--transition-base),transform var(--transition-fast)}.scroll-top-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}.has-bottom-nav .scroll-top-btn,.has-bottom-nav .toast{bottom:calc(56px + env(safe-area-inset-bottom,0px) + var(--space-lg))}.toast{position:fixed;bottom:var(--space-xl);right:var(--space-xl);display:flex;flex-direction:column;min-width:280px;max-width:400px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000002e;z-index:1000;animation:toast-slide-in .35s cubic-bezier(.22,1,.36,1);pointer-events:none;overflow:hidden}.toast-content{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-size:.85rem;font-weight:600;color:#fff}.toast-success{background:var(--color-success)}.toast-error{background:var(--color-danger, #c5221f)}.toast-info{background:var(--color-primary)}.toast-progress{height:3px;background:#fff6;animation:toast-countdown 3s linear forwards}.toast-out{animation:toast-slide-out .3s cubic-bezier(.22,1,.36,1) forwards}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes toast-countdown{0%{width:100%}to{width:0%}}.app-lazy-skeleton{display:flex;flex-direction:column;gap:var(--space-xl);max-width:480px;margin:0 auto;padding:var(--space-md) 0}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-3xl) 0;color:var(--color-text-tertiary);font-size:var(--font-sm)}.app-splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);min-height:60vh;text-align:center}.app-splash h1{font-size:var(--font-xl);color:var(--color-text-primary);margin:0}.app-splash-icon{width:64px;height:64px;border-radius:16px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center}.app-loading-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media print{body{background:#fff!important;color:#000!important;font-size:11pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app{max-width:100%;margin:0;padding:0}.app-header{border-bottom:1px solid #ccc;margin-bottom:.5cm}.app-header h1{font-size:14pt}.app-user-bar,.app-logout-btn,.app-sync-status,.back-link,.back-btn,.submit-btn,.cancel-btn,.delete-btn,.delete-section,.dash-actions,.dash-footer,.dash-notif-banner,.dash-search-btn,.dash-reminder-banner,.dash-expiring-renew-btn,.dash-quick-pay-btn,.dash-bulk-pay-btn,.dash-range-toggle,.receipt-lang-actions,.receipt-pdf-frame,.receipt-similar-btn,.receipt-action-btn,.settings,.form-actions,.scroll-top-btn,.toast,.skip-link,.offline-banner,.pwa-install-banner,.confirm-overlay,.app-loading,.app-splash{display:none!important}.dash-stat,.dash-alert-item,.dash-recent-item,.receipt-summary,.search-result,.settings-section{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid}.dash-stats{gap:8px!important}.receipt-summary{page-break-inside:avoid}.receipt-header{page-break-after:avoid}a{color:#000!important;text-decoration:none!important}*{overflow:visible!important}@page{margin:1.5cm}}
