:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}*{scrollbar-width:thin;scrollbar-color:#e0e0e0 #f5f5f5}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#f5f5f5;border-radius:4px}*::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#d0d0d0}*::-webkit-scrollbar-corner{background:#f5f5f5}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;padding:1rem;box-sizing:border-box}.login-card{background:#fff;border-radius:16px;padding:2.5rem;width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:2rem}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;background:#f5f5f5;border-radius:16px;margin-bottom:1.25rem;color:#424242}.login-header h1{font-size:1.75rem;font-weight:700;color:#212121;margin:0 0 .5rem;letter-spacing:-.02em}.login-header p{font-size:.95rem;color:#525252;margin:0}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-form-group{display:flex;flex-direction:column;gap:.5rem}.login-form-group label{font-size:.875rem;font-weight:600;color:#424242}.login-form-group input{width:100%;padding:.875rem 1rem;border:1px solid #e0e0e0;border-radius:12px;font-size:1rem;background:#fff;color:#212121;transition:border-color .2s;box-sizing:border-box}.login-form-group input:focus{outline:none;border-color:#757575;background:#fff}.login-form-group input::placeholder{color:#737373}.login-form-group input:disabled{background:#f3f4f6;cursor:not-allowed;opacity:.7}.login-forgot-link{background:none;border:none;color:#424242;font-size:.875rem;cursor:pointer;padding:0;text-align:left;text-decoration:underline;transition:color .2s}.login-forgot-link:hover:not(:disabled){color:#616161}.login-forgot-link:disabled{cursor:not-allowed;opacity:.6}.login-error{background:#fef2f2;color:#dc2626;padding:.875rem 1rem;border-radius:12px;font-size:.9rem;border:none}.login-success-message{background:#f0fdf4;color:#15803d;padding:.875rem 1rem;border-radius:12px;font-size:.9rem;border:none;margin-bottom:1rem}.login-button{background:#424242;color:#fff;border:none;padding:.875rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:.25rem}.login-button:hover:not(:disabled){background:#616161}.login-button:active:not(:disabled){background:#424242}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-back-link{background:none;border:none;color:#525252;font-size:.875rem;cursor:pointer;padding:.5rem 0;text-align:center;transition:color .2s}.login-back-link:hover:not(:disabled){color:#212121}.login-back-link:disabled{cursor:not-allowed;opacity:.6}.login-register-text{text-align:center;font-size:.95rem;color:#525252;margin:.5rem 0 0}.login-register-link{color:#424242;font-weight:600;text-decoration:none;transition:color .2s}.login-register-link:hover{color:#616161}@media(max-width:480px){.login-container{padding:2rem .75rem 1rem;align-items:flex-start}.login-card{padding:1.75rem 1.5rem;border-radius:12px}.login-logo{width:60px;height:60px;margin-bottom:1rem}.login-logo svg{width:36px;height:36px}.login-header h1{font-size:1.5rem}.login-header p{font-size:.875rem}.login-form-group input{padding:.75rem 1rem;font-size:16px}.login-button{padding:.875rem 1rem;font-size:1rem}}@media(min-width:481px)and (max-width:768px){.login-card{padding:2rem}}:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--text-primary: #212529;--text-secondary: #6c757d;--border-color: #dee2e6;--input-bg: #ffffff;--input-border: #ced4da;--button-bg: #000000;--button-text: #ffffff;--button-hover: #333333;--shadow: rgba(0, 0, 0, .1);--progress-bg: #e9ecef;--progress-fill: #000000}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--text-primary: #ffffff;--text-secondary: #adb5bd;--border-color: #495057;--input-bg: #2d2d2d;--input-border: #495057;--button-bg: #ffffff;--button-text: #000000;--button-hover: #e9ecef;--shadow: rgba(255, 255, 255, .1);--progress-bg: #495057;--progress-fill: #ffffff}*{margin:0;padding:0;box-sizing:border-box}html{width:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;margin:0;padding:0;width:100%;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column;width:100%;margin:0;padding:0}.form-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100;width:100%;box-sizing:border-box}.form-header-content{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box}.form-header h1{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.form-theme-toggle{background:none;border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;transition:all .2s ease;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.form-theme-toggle-text{display:inline}.form-theme-toggle:hover{background-color:var(--bg-primary)}.form-container{flex:1;max-width:800px;min-width:600px;margin:0 auto;padding:2rem 2rem 120px;width:100%;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 80px);box-sizing:border-box}@media(min-width:1200px){.form-container{max-width:900px}}@media(min-width:1400px){.form-container{max-width:1000px}}.progress-info{margin-bottom:1rem}.progress-text{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-direction:row}.progress-step{font-weight:600;color:var(--text-primary);font-size:1rem}.progress-percentage{font-size:.875rem;color:var(--text-secondary);background-color:var(--bg-secondary);padding:.25rem .75rem;border-radius:1rem;border:1px solid var(--border-color)}.progress-bar{background-color:var(--progress-bg);height:6px;border-radius:3px;margin-bottom:2rem;overflow:hidden;box-shadow:inset 0 1px 2px var(--shadow)}.progress-fill{background-color:var(--progress-fill);height:100%;transition:width .3s ease;border-radius:3px}.step{background-color:var(--bg-primary);border-radius:.5rem;padding:2rem;box-shadow:0 1px 3px var(--shadow);border:1px solid var(--border-color);min-height:400px;min-width:100%;max-width:100%;margin:0 auto;margin-bottom:2rem;width:100%;box-sizing:border-box}.step-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--text-primary)}.step-subtitle{font-size:1rem;color:var(--text-secondary);margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1.5rem}.form-label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--text-primary)}.form-input,.form-select{width:100%;padding:.75rem;border:1px solid var(--input-border);border-radius:.375rem;background-color:var(--input-bg);color:var(--text-primary);font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--text-primary);box-shadow:0 0 0 3px #0000001a}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-select:focus{box-shadow:0 0 0 3px #ffffff1a}.form-input.error{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.form-input.disabled{background-color:var(--bg-secondary);color:var(--text-secondary);cursor:not-allowed;opacity:.6}[data-theme=dark] .form-input.error{border-color:#dc3545;box-shadow:0 0 0 3px #dc354533}.radio-group{display:flex;gap:1rem;flex-wrap:wrap}.radio-item{display:flex;align-items:center;gap:.5rem}.radio-input{width:1rem;height:1rem;accent-color:#6c757d}.table-container{overflow-x:auto;margin-bottom:1.5rem}.table{width:100%;border-collapse:collapse;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:.375rem;overflow:hidden}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.table th{background-color:var(--bg-secondary);font-weight:600;color:var(--text-primary)}.table td{color:var(--text-primary)}.table input{width:100%;padding:.5rem;border:1px solid var(--input-border);border-radius:.25rem;background-color:var(--input-bg);color:var(--text-primary)}.button-group{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding:1.5rem 2rem;border-top:1px solid var(--border-color);background-color:var(--bg-primary);position:fixed;bottom:0;left:0;right:0;z-index:50;box-shadow:0 -1px 4px var(--shadow);max-width:100%;box-sizing:border-box}.button-group:has(.btn-secondary){justify-content:space-between}.btn{padding:.75rem 1.5rem;border:none;border-radius:.375rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background-color:var(--button-bg);color:var(--button-text)}.btn-primary:hover{background-color:var(--button-hover)}.btn-continue{background-color:#28a745;color:#fff}.btn-continue:hover{background-color:#218838}.btn-secondary{background-color:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--bg-secondary)}.btn-add{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);padding:.5rem 1rem;font-size:.875rem}.btn-add:hover{background-color:var(--bg-primary)}.btn-remove{background-color:#dc3545;color:#fff;border:none;padding:.5rem;border-radius:.25rem;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.btn-remove:hover{background-color:#c82333}.info-section{background-color:var(--bg-secondary);padding:1.5rem;border-radius:.375rem;border:1px solid var(--border-color);margin-bottom:1.5rem}.info-text{color:var(--text-secondary);line-height:1.6}.residents-container{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.resident-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:1.5rem;position:relative}.resident-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.resident-card-title{font-weight:600;color:var(--text-primary);margin:0}.resident-card-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.resident-card-field{display:flex;flex-direction:column}.resident-card-field label{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.25rem}.resident-card-field input,.resident-card-field select{padding:.5rem;border:1px solid var(--input-border);border-radius:.25rem;background-color:var(--input-bg);color:var(--text-primary);font-size:.875rem}.resident-card-field input:focus,.resident-card-field select:focus{outline:none;border-color:var(--text-primary);box-shadow:0 0 0 2px #0000001a}[data-theme=dark] .resident-card-field input:focus,[data-theme=dark] .resident-card-field select:focus{box-shadow:0 0 0 2px #ffffff1a}.resident-card-radio-group{display:flex;gap:1rem;align-items:center}.resident-card-radio-item{display:flex;align-items:center;gap:.5rem}.resident-card-radio-item input[type=radio]{width:1rem;height:1rem;accent-color:#6c757d}.resident-card-radio-item label{font-size:.875rem;margin:0;color:var(--text-primary)}.animate-spin{animation:spin 1s linear infinite}@media(max-width:768px){.form-header-content{padding:1rem}.form-header h1{font-size:1.25rem}.form-theme-toggle{padding:.5rem}.form-theme-toggle-text{display:none}.form-container{padding:1rem 1rem 100px;min-height:calc(100vh - 60px);min-width:auto}.progress-text{flex-direction:row;justify-content:space-between;align-items:center}.step{padding:1rem;min-height:300px;border-radius:0;box-shadow:none;border:none}.form-row,.form-row-3{grid-template-columns:1fr;gap:0;margin-bottom:.5rem}.form-group{margin-bottom:.5rem}.radio-group{flex-direction:column;gap:.75rem}.resident-card-fields{grid-template-columns:1fr;gap:.75rem}.resident-card-radio-group{flex-direction:column;gap:.5rem;align-items:flex-start}.button-group{flex-direction:row;padding:1rem;gap:.75rem}.table-container{font-size:.875rem}.table th,.table td{padding:.5rem}}@media(min-width:769px)and (max-width:1199px){.form-container{max-width:700px;min-width:600px}}@media(max-width:480px){.form-container{padding:.5rem .5rem 100px;min-width:auto}.step{padding:.75rem;border-radius:0;box-shadow:none;border:none}.step-title{font-size:1.25rem}.button-group{padding:1rem}.form-group{margin-bottom:.5rem}}.btn:disabled{opacity:.6;cursor:not-allowed;background-color:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-color)}.btn:disabled:hover{background-color:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-color)}.dashboard{min-height:100vh;display:flex;background:#f5f5f5}.dashboard input,.dashboard select,.dashboard textarea{color:#212121}.dashboard-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5;font-size:1rem;color:#666}.dashboard-sidebar{width:240px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;flex-shrink:0;border-radius:0 16px 16px 0;transition:width .2s ease}.dashboard-sidebar--collapsed{width:72px;min-width:72px}.dashboard-sidebar--collapsed .dashboard-apt,.dashboard-sidebar--collapsed .dashboard-nav-item span,.dashboard-sidebar--collapsed .dashboard-logout span{display:none}.dashboard-sidebar--collapsed .dashboard-nav-item,.dashboard-sidebar--collapsed .dashboard-logout{justify-content:center}.dashboard-sidebar-header{padding:.75rem .5rem;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-shrink:0}.dashboard-sidebar-header-inner{min-width:0;flex:1}.dashboard-sidebar-header h1{font-size:1.25rem;font-weight:600;color:#212121;margin:0 0 .25rem;white-space:nowrap}.dashboard-sidebar--collapsed .dashboard-sidebar-header{flex-direction:column;align-items:center;gap:.5rem}.dashboard-sidebar--collapsed .dashboard-sidebar-header-inner{display:flex;justify-content:center}.dashboard-sidebar--collapsed .dashboard-sidebar-header h1{font-size:.9rem;text-align:center}.dashboard-sidebar--collapsed .dashboard-sidebar-toggle{margin:0;flex-shrink:0;visibility:visible;opacity:1}.dashboard-sidebar-toggle{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #e0e0e0;border-radius:8px;background:#fff;color:#1976d2;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;box-shadow:0 1px 2px #0000000f}.dashboard-sidebar-toggle:hover{background:#eef4ff;color:#1565c0;border-color:#1976d2}.dashboard-sidebar-toggle:focus-visible{outline:2px solid #1976d2;outline-offset:2px}.dashboard-sidebar-toggle svg{font-size:1.25rem;width:1.25rem;height:1.25rem;flex-shrink:0}.dashboard-apt{font-size:.875rem;color:#757575;margin:0}.dashboard-nav{flex:1;padding:1rem 0}.dashboard-nav-item{display:flex;align-items:center;gap:.75rem;width:calc(100% - 1rem);margin:0 .5rem;padding:.75rem 1rem;border:none;background:transparent;font-size:.95rem;color:#424242;cursor:pointer;text-align:left;border-radius:12px;border-left:2px solid transparent;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.dashboard-nav-item:hover{background:#f7f9fb}.dashboard-nav-item.active{background:#eef4ff;color:#1976d2;border-left-color:#1976d2}.nav-icon{font-size:1.2rem}.dashboard-sidebar-footer{padding:1rem;border-top:1px solid #e0e0e0}.dashboard-logout{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:none;border-radius:12px;background:#f5f5f5;font-size:.875rem;color:#757575;cursor:pointer}.dashboard-logout:hover{background:#f5f5f5;color:#424242}.dashboard-nav-install-wrap{padding:0 .5rem;margin-top:auto;border-top:1px solid #e8e8e8}.dashboard-nav-item-install{color:#1976d2}.dashboard-nav-item-install:hover{background:#e3f2fd;color:#1565c0}.dashboard-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding:.75rem;background:#fff;border-radius:8px;border:1px solid #e0e0e0}.dashboard-pagination-info{font-size:.875rem;color:#616161}.dashboard-pagination-btns{display:flex;gap:.5rem}.dashboard-pagination-btn{padding:.5rem 1rem;font-size:.875rem;border:1px solid #e0e0e0;background:#fff;border-radius:6px;color:#424242;cursor:pointer}.dashboard-pagination-btn:hover:not(:disabled){background:#f5f5f5;border-color:#bdbdbd}.dashboard-pagination-btn:disabled{opacity:.6;cursor:not-allowed}.dashboard-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e0e0e0;padding:.5rem;z-index:100;justify-content:space-around;border-radius:20px 20px 0 0}.dashboard-bottom-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem 1rem;border:none;border-radius:12px;background:transparent;font-size:.75rem;color:#757575;cursor:pointer;transition:background-color .2s ease,color .2s ease}.dashboard-bottom-item.active{color:#1976d2;font-weight:600;background:#eef4ff}.dashboard-bottom-item .nav-icon{font-size:1.25rem}.dashboard-main{flex:1;padding:1.5rem;padding-bottom:80px;overflow-y:auto}.dashboard-content{max-width:600px;margin:0 auto}.dashboard-content:has(.porteria-apartamentos){max-width:min(920px,100%)}.dashboard-topbar{display:none}.dashboard-topbar{padding:.75rem .25rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;background:#f5f5f5}.dashboard-topbar-info{display:flex;flex-direction:column;gap:.1rem}.dashboard-topbar-title{font-size:1rem;font-weight:600;color:#212121}.dashboard-topbar-apt{font-size:.8rem;color:#757575}.dashboard-topbar-menu-btn{border:none;border-radius:999px;background:#fff;padding:.4rem .6rem;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001f;cursor:pointer;color:#424242}.dashboard-topbar-menu-btn svg{font-size:1.25rem}.dashboard-mobile-menu-overlay{position:fixed;inset:0;background:#0006;display:flex;justify-content:flex-end;z-index:1000}.dashboard-mobile-menu{width:80%;max-width:320px;background:#fff;height:100%;display:flex;flex-direction:column;padding:1rem .75rem 1.25rem;box-shadow:-2px 0 8px #00000026}.dashboard-mobile-menu-header{display:flex;align-items:center;justify-content:space-between;padding:0 .25rem .75rem;border-bottom:1px solid #e0e0e0}.dashboard-mobile-nav{flex:1;padding:1rem .25rem}.dashboard-mobile-menu-footer{padding:.5rem .25rem 0;border-top:1px solid #e0e0e0}.invitation-form-wrap h2{font-size:1.5rem;font-weight:600;color:#212121;margin:0 0 .5rem}.dashboard-home{display:flex;flex-direction:column;gap:1rem}.dashboard-home-loading{font-size:.9rem;color:#757575}.dashboard-admin-notifs{border-radius:16px;background:#fff;padding:1.25rem;box-shadow:0 1px 3px #0000000f;margin-bottom:1rem}.dashboard-admin-notifs-title{margin:0 0 .75rem;font-size:.95rem;color:#424242}.dashboard-admin-notifs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.dashboard-admin-notif{padding:.75rem 1rem;border-radius:12px;border-left:4px solid #1976d2;background:#f8f9fa}.dashboard-admin-notif-message{display:block;font-weight:600;font-size:.9rem;color:#1a1a1a}.dashboard-admin-notif-detail{display:block;font-size:.8rem;color:#616161;margin-top:.25rem}.dashboard-admin-notif--reminder{border-left-color:#1976d2;background:#e3f2fd}.dashboard-admin-notif--due_passed{border-left-color:#ed6c02;background:#fff3e0}.dashboard-admin-notif--mora_applied{border-left-color:#d32f2f;background:#ffebee}.dashboard-home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.dashboard-home-stat{border:none;border-radius:16px;background:#fff;padding:1rem;font-size:.85rem;box-shadow:0 1px 3px #0000000f}.stat-label{display:block;color:#757575;margin-bottom:.25rem}.stat-value{font-size:1rem;color:#212121}.dashboard-home-chart{border:none;border-radius:16px;background:#fff;padding:1.25rem;font-size:.85rem;box-shadow:0 1px 3px #0000000f}.dashboard-home-chart h3{margin:0 0 .75rem;font-size:.95rem;color:#424242}.chart-rows{display:flex;flex-direction:column;gap:.4rem}.chart-row{display:flex;align-items:center;gap:.5rem}.chart-row-label{width:3rem;font-size:.75rem;color:#757575}.chart-row-bar-wrapper{flex:1;height:8px;border:none;border-radius:4px;background:#f0f0f0}.chart-row-bar{height:100%;border-radius:4px;background:#1976d2}.chart-row-count{width:2rem;font-size:.75rem;color:#424242;text-align:right}.dashboard-home-reminders{border:none;border-radius:16px;background:#fff;padding:1.25rem;font-size:.85rem;box-shadow:0 1px 3px #0000000f}.dashboard-home-reminders h3{margin:0 0 .75rem;font-size:.95rem;color:#424242}.dashboard-mi-info{display:flex;flex-direction:column;gap:1rem}.dashboard-mi-info h2{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0}.dashboard-mi-info-card{border:none;border-radius:16px;background:#fff;padding:1.25rem;box-shadow:0 1px 3px #0000000f;font-size:.9rem;color:#424242}.dashboard-mi-info-card.porteria-apartment-detail{background:#f5f5f5;padding:1.25rem;box-shadow:0 1px 4px #00000014;display:flex;flex-direction:column;gap:1rem}.dashboard-mi-info-card--empty{background:#fff}.mi-info-note{margin-top:.5rem;padding:.75rem 1rem;background:linear-gradient(180deg,#f8f9fa,#f0f2f5);border:1px solid #e8e8e8;border-radius:12px;font-size:.8rem;color:#616161}.dashboard-home-empty{margin:0;color:#757575}.reminders-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.reminder-item{padding:.75rem;background:#f8f8f8;border-radius:12px;margin-bottom:.5rem}.reminder-item:last-child{margin-bottom:0}.reminder-main{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.25rem}.reminder-name{color:#212121}.reminder-code{color:#9e9e9e;font-size:.75rem}.reminder-dates{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:#616161}.dashboard-no-register{padding:.75rem 1rem;background:#fff3e0;border:none;border-radius:12px;margin-bottom:1rem;font-size:.9rem}.dashboard-no-register a{color:#e65100;font-weight:600}.invitation-subtitle{font-size:.95rem;color:#757575;margin:0 0 1.5rem}.saved-visitors-section{margin-bottom:1.5rem;padding:1.25rem;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000f}.saved-visitors-section h3{font-size:.9rem;font-weight:600;color:#424242;margin:0 0 .75rem}.saved-visitors-grid{display:flex;flex-wrap:wrap;gap:.5rem}.saved-visitor-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f5f5f5;border:none;border-radius:12px;cursor:pointer;font-size:.875rem}.saved-visitor-chip input{margin:0}.invitation-form{background:#fff;border:none;border-radius:16px;padding:1.5rem;box-shadow:0 1px 3px #0000000f}.visitors-list h3{font-size:.9rem;font-weight:600;color:#424242;margin:0 0 .75rem}.visitor-row{display:flex;gap:.5rem;margin-bottom:.5rem}.visitor-row input{flex:1;padding:.75rem 1rem;border:none;border-radius:12px;font-size:1rem;background:#f5f5f5;color:#212121}.visitor-row input::placeholder{color:#9e9e9e}.visitor-row input:focus{outline:none;box-shadow:0 0 0 2px #1976d2}.invitation-optional-section{margin-top:.75rem;border:1px solid #e8e8e8;border-radius:12px;overflow:hidden;background:#fafafa}.invitation-optional-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border:none;background:transparent;font-size:.9rem;font-weight:500;color:#424242;cursor:pointer;text-align:left;transition:background .15s ease}.invitation-optional-toggle:hover{background:#f0f0f0}.invitation-optional-toggle svg{flex-shrink:0;color:#757575}.validity-section--collapsed,.access-options--collapsed,.access-maxscans-wrap--collapsed{padding:1rem;border-top:1px solid #eee;background:#fff}.validity-section-hint{font-size:.8rem;color:#757575;margin:.5rem 0 0}.access-maxscans-wrap .access-maxscans{margin:0}.invitation-main-block{margin-bottom:0}.invite-autocomplete-wrap{position:relative;margin-bottom:.75rem}.invite-autocomplete-row{display:flex;gap:.5rem;align-items:center}.invite-autocomplete-row .invite-autocomplete-input{flex:1;min-width:0}.invite-add-additional-btn{flex-shrink:0;padding:.75rem 1rem;border:1px solid #1976d2;border-radius:12px;background:#1976d2;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s ease,border-color .2s ease}.invite-add-additional-btn:hover{background:#1565c0;border-color:#1565c0}.invite-add-additional-btn:active{background:#0d47a1}.invite-autocomplete-input{width:100%;padding:.75rem 1rem;border:1px solid #e0e0e0;border-radius:12px;font-size:1rem;background:#fff;color:#212121}.invite-autocomplete-input::placeholder{color:#9e9e9e}.invite-autocomplete-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.invite-autocomplete-dropdown{position:absolute;left:0;right:0;top:100%;margin-top:.25rem;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #0000001a;z-index:10}.invite-autocomplete-item{display:block;width:100%;padding:.65rem 1rem;border:none;background:none;font-size:.95rem;color:#212121;text-align:left;cursor:pointer;transition:background .15s ease}.invite-autocomplete-item:hover{background:#f0f4f8}.invite-autocomplete-item:not(:last-child){border-bottom:1px solid #f0f0f0}.invite-autocomplete-empty{padding:.75rem 1rem;font-size:.85rem;color:#757575}.visitors-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.visitor-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .6rem .4rem .75rem;background:#e3f2fd;color:#1565c0;border-radius:999px;font-size:.9rem}.visitor-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;border:none;border-radius:50%;background:#1565c033;color:#1565c0;font-size:1.1rem;line-height:1;cursor:pointer}.visitor-chip-remove:hover{background:#1565c059}.validity-section{margin-top:0}.validity-section h3{font-size:.9rem;font-weight:600;color:#424242;margin:0 0 .5rem}.validity-row{display:flex;gap:.75rem}.validity-row label{flex:1;display:flex;flex-direction:column;font-size:.8rem;color:#424242}.validity-row input{margin-top:.25rem;padding:.5rem .75rem;border:none;border-radius:12px;background:#f5f5f5;font-size:.9rem;color:#212121}.validity-row input:focus{outline:none;box-shadow:0 0 0 2px #1976d2}.validity-datetime-input{color-scheme:light}.access-options{margin-top:1.25rem;padding-top:.75rem;border-top:1px solid #eeeeee}.access-options h3{font-size:.9rem;font-weight:600;color:#424242;margin:0 0 .4rem}.access-options-help{font-size:.8rem;color:#757575;margin:0 0 .6rem}.access-days{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.day-toggle{min-width:2.5rem;padding:.35rem .6rem;border-radius:999px;border:1px solid #e0e0e0;background:#fafafa;font-size:.8rem;color:#616161;cursor:pointer}.day-toggle.active{background:#1976d2;border-color:#1976d2;color:#fff}.access-maxscans label{display:flex;flex-direction:column;font-size:.8rem;color:#424242}.access-maxscans input{margin-top:.25rem;padding:.5rem .75rem;border-radius:12px;border:none;background:#f5f5f5;font-size:.9rem;color:#212121}.access-maxscans input:focus{outline:none;box-shadow:0 0 0 2px #1976d2}.btn-remove-visitor{width:40px;padding:0;border:none;border-radius:12px;background:#f5f5f5;font-size:1.25rem;color:#757575;cursor:pointer}.btn-remove-visitor:disabled{opacity:.4;cursor:not-allowed}.btn-add-more{margin-top:.5rem;padding:.5rem 0;border:none;border-radius:12px;background:#f5f5f5;font-size:.9rem;color:#757575;cursor:pointer;width:100%}.btn-add-more:hover{background:#f5f5f5;color:#424242}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin:1rem 0;font-size:.9rem;color:#424242;cursor:pointer}.checkbox-row input{margin:0}.invitation-error{padding:.75rem 1rem;border-radius:12px;background:#ffebee;color:#c62828;font-size:.9rem;margin-bottom:1rem}.btn-create-invitation{width:100%;padding:.875rem;border:none;border-radius:12px;background:#1976d2;color:#fff;font-size:1rem;font-weight:500;cursor:pointer}.btn-create-invitation:hover:not(:disabled){background:#1565c0}.btn-create-invitation:disabled{opacity:.7;cursor:not-allowed}.invitation-edit-badge{font-size:.9rem;color:#1976d2;margin:-.25rem 0 1rem}.invitation-form-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}.invitation-form-actions .btn-create-invitation{flex:1;min-width:140px}.btn-cancel-edit-invitation{padding:.75rem 1.25rem;border:1px solid #e0e0e0;border-radius:12px;background:#fff;font-size:.95rem;color:#616161;cursor:pointer}.btn-cancel-edit-invitation:hover:not(:disabled){background:#f5f5f5}.invitation-error-below{margin-top:.75rem}.invitation-history{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.invitation-history h3{font-size:1.1rem;font-weight:600;color:#212121;margin:0 0 1rem}.invitation-history-empty{font-size:.9rem;color:#757575;margin:0}.invitation-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.invitation-history-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:#f8f9fa;border-radius:12px;border:1px solid #eee}.invitation-history-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0}.invitation-history-name{font-weight:600;color:#212121}.invitation-history-ac{font-size:.85rem;color:#757575}.invitation-history-date{font-size:.85rem;color:#9e9e9e}.invitation-history-actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn-history-info,.btn-history-qr,.btn-history-edit,.btn-history-delete{padding:.4rem .65rem;font-size:.8rem;border-radius:8px;cursor:pointer;border:none;font-weight:500}.btn-history-info{background:#eceff1;color:#455a64}.btn-history-info:hover{background:#cfd8dc}.btn-history-qr{background:#1976d2;color:#fff}.btn-history-qr:hover{background:#1565c0}.btn-history-edit{background:#5c6bc0;color:#fff}.btn-history-edit:hover{background:#3f51b5}.btn-history-delete{background:#fff;color:#c62828;border:1px solid #ef5350}.btn-history-delete:hover:not(:disabled){background:#ffebee}.btn-history-delete:disabled{opacity:.7;cursor:not-allowed}.edit-invitation-modal-overlay{z-index:1001}.edit-invitation-modal{background:#fff;border-radius:20px;padding:1.5rem;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000001f}.edit-invitation-modal h3{font-size:1.25rem;font-weight:600;color:#212121;margin:0 0 1rem}.edit-invitation-form label{display:block;font-size:.9rem;font-weight:500;color:#424242;margin-bottom:.25rem}.edit-invitation-form label span{display:block}.edit-invitation-form input[type=text],.edit-invitation-form input[type=number],.edit-invitation-form input[type=datetime-local]{width:100%;padding:.5rem .75rem;border:1px solid #e0e0e0;border-radius:8px;font-size:1rem;margin-bottom:1rem}.edit-invitation-acompanantes{margin-bottom:1rem}.edit-invitation-acompanantes>span{display:block;font-size:.9rem;font-weight:500;color:#424242;margin-bottom:.5rem}.edit-invitation-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.edit-invitation-add-row{display:flex;gap:.5rem;align-items:center}.edit-invitation-add-row input{flex:1;min-width:0;margin-bottom:0}.edit-invitation-validity{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.edit-invitation-validity label{margin-bottom:0}.edit-invitation-days{margin-bottom:1rem}.edit-invitation-days>span{display:block;font-size:.9rem;font-weight:500;color:#424242;margin-bottom:.5rem}.edit-invitation-maxscans{margin-bottom:1rem}.edit-invitation-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.btn-edit-invitation-cancel{padding:.5rem 1rem;border:1px solid #e0e0e0;background:#fff;color:#424242;border-radius:8px;cursor:pointer;font-size:.95rem}.btn-edit-invitation-cancel:hover{background:#f5f5f5}.btn-edit-invitation-save{padding:.5rem 1rem;border:none;background:#1976d2;color:#fff;border-radius:8px;cursor:pointer;font-size:.95rem}.btn-edit-invitation-save:hover:not(:disabled){background:#1565c0}.btn-edit-invitation-save:disabled{opacity:.7;cursor:not-allowed}.qr-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.qr-modal-overlay--fullscreen{padding:0;align-items:stretch}.qr-modal{background:#fff;border:none;border-radius:20px;padding:1.5rem;max-width:400px;width:100%;text-align:center;box-shadow:0 4px 20px #00000014}.qr-modal--fullscreen{max-width:none;width:100%;height:100%;border-radius:0;display:flex;flex-direction:column;text-align:left;overflow:hidden}.qr-modal h3{font-size:1.25rem;font-weight:600;color:#212121;margin:0 0 .5rem}.qr-modal p{font-size:.9rem;color:#757575;margin:0 0 1rem}.qr-modal-image{max-width:256px;width:100%;height:auto;margin:0 auto 1rem;display:block}.qr-modal-url{font-size:.75rem;word-break:break-all;word-wrap:break-word}.qr-modal-hint{font-size:.85rem;color:#757575;margin:.5rem 0 0}.qr-modal-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;margin-top:1rem;justify-content:center}.btn-download-qr{padding:.5rem .75rem;border:none;background:#1976d2;color:#fff;font-size:.875rem;cursor:pointer;border-radius:8px}.btn-download-qr:hover{background:#1565c0}.btn-share-whatsapp{padding:.5rem .75rem;border:none;background:#25d366;color:#fff;font-size:.875rem;cursor:pointer;border-radius:8px}.btn-share-whatsapp:hover{background:#20bd5a}.btn-copy-link{padding:.5rem .75rem;border:none;background:#5c6bc0;color:#fff;font-size:.875rem;cursor:pointer;border-radius:8px}.btn-copy-link:hover{background:#3f51b5}.btn-close-qr{padding:.5rem .75rem;border:none;background:none;font-size:.875rem;color:#757575;cursor:pointer}.btn-close-qr:hover{color:#212121}.logout-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.logout-modal{background:#fff;border:none;border-radius:20px;padding:1.5rem 1.75rem;max-width:360px;width:100%;text-align:center;box-shadow:0 4px 20px #0000001f}.logout-modal h3{font-size:1.25rem;font-weight:600;color:#212121;margin:0 0 .5rem}.logout-modal p{font-size:.95rem;color:#757575;margin:0 0 1.5rem}.logout-modal-actions{display:flex;gap:.75rem;justify-content:center}.logout-modal-cancel{padding:.75rem 1.25rem;border:none;border-radius:12px;background:#f5f5f5;font-size:.95rem;color:#424242;cursor:pointer}.logout-modal-cancel:hover{background:#eee}.logout-modal-confirm{padding:.75rem 1.25rem;border:none;border-radius:12px;background:#d32f2f;font-size:.95rem;color:#fff;cursor:pointer}.logout-modal-confirm:hover{background:#b71c1c}.delete-invitation-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.delete-invitation-modal{background:#fff;border:none;border-radius:20px;padding:1.5rem 1.75rem;max-width:360px;width:100%;text-align:center;box-shadow:0 4px 20px #0000001f}.delete-invitation-modal h3{font-size:1.25rem;font-weight:600;color:#212121;margin:0 0 .5rem}.delete-invitation-modal p{font-size:.95rem;color:#757575;margin:0 0 1.5rem}.delete-invitation-modal-actions{display:flex;gap:.75rem;justify-content:center}.delete-invitation-modal-cancel{padding:.75rem 1.25rem;border:none;border-radius:12px;background:#f5f5f5;font-size:.95rem;color:#424242;cursor:pointer}.delete-invitation-modal-cancel:hover{background:#eee}.delete-invitation-modal-confirm{padding:.75rem 1.25rem;border:none;border-radius:12px;background:#d32f2f;font-size:.95rem;color:#fff;cursor:pointer}.delete-invitation-modal-confirm:hover:not(:disabled){background:#b71c1c}.delete-invitation-modal-confirm:disabled{opacity:.7;cursor:not-allowed}.view-info-invitation-modal-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;box-sizing:border-box}.view-info-invitation-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001f;max-width:440px;width:100%;max-height:calc(100vh - 2rem);display:flex;flex-direction:column}.view-info-invitation-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.25rem .75rem;border-bottom:1px solid #eeeeee;flex-shrink:0}.view-info-invitation-modal-header h3{margin:0;font-size:1.2rem;font-weight:600;color:#212121}.view-info-invitation-modal-close{width:40px;height:40px;min-width:40px;min-height:40px;border:none;border-radius:50%;background:#f0f0f0;color:#424242;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;line-height:0;transition:background .2s,color .2s}.view-info-invitation-modal-close svg{flex-shrink:0;stroke:currentColor}.view-info-invitation-modal-close:hover{background:#e0e0e0;color:#212121}.view-info-invitation-modal-body{padding:1.25rem;overflow-y:auto;flex:1;min-height:0}.view-info-invitation-row{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.view-info-invitation-row:last-child{margin-bottom:0}.view-info-invitation-label{font-size:.8rem;font-weight:500;color:#757575;text-transform:uppercase;letter-spacing:.02em}.view-info-invitation-value{font-size:.95rem;color:#212121;line-height:1.4;word-break:break-word}.view-info-invitation-modal-footer{padding:.75rem 1.25rem 1.25rem;border-top:1px solid #eeeeee;flex-shrink:0}.view-info-invitation-modal-btn-close{width:100%;padding:.75rem 1.25rem;border:none;border-radius:12px;background:#1976d2;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer}.view-info-invitation-modal-btn-close:hover{background:#1565c0}@media(max-width:480px){.view-info-invitation-modal-overlay{padding:.75rem;align-items:flex-end}.view-info-invitation-modal{max-height:85vh;border-radius:20px 20px 0 0}.view-info-invitation-modal-header{padding:1rem 1rem .5rem}.view-info-invitation-modal-header h3{font-size:1.1rem}.view-info-invitation-modal-body{padding:1rem}.view-info-invitation-modal-footer{padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}}.dashboard-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%) translateY(0);background:#1b5e20;color:#fff;padding:.75rem 1.25rem;border-radius:12px;font-size:.95rem;font-weight:500;box-shadow:0 4px 12px #0003;z-index:1001;animation:dashboard-toast-in .35s ease-out}@keyframes dashboard-toast-in{0%{opacity:0;transform:translate(-50%) translateY(1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.registrations-table-container{background:#fff;border-radius:12px;border:1px solid #e0e0e0;box-shadow:0 1px 3px #0000000f}.registrations-table-container--overflow-visible{overflow:visible}.registrations-table th{background:#f8f9fa;padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.875rem;color:#424242;border-bottom:1px solid #e0e0e0}.registrations-table td{padding:.75rem 1rem;border-bottom:1px solid #eeeeee;vertical-align:middle;font-size:.9rem;color:#212121}.registrations-table tr:hover{background:#fafafa}.registrations-table-actions-col{width:52px;text-align:center;padding-left:.5rem;padding-right:.5rem}.admin-row-menu-trigger{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e0e0e0;border-radius:8px;background:#f5f5f5;color:#424242;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.admin-row-menu-trigger:hover{background:#eee;color:#212121;border-color:#bdbdbd}.admin-row-menu-trigger svg{font-size:1.25rem;width:20px;height:20px;flex-shrink:0;stroke:currentColor}.admin-row-menu-floating{min-width:200px;padding:.35rem 0;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001f;border:1px solid #e0e0e0}.admin-row-menu-item{display:block;width:100%;padding:.6rem 1rem;border:none;background:none;font-size:.9rem;color:#424242;text-align:left;cursor:pointer;transition:background .2s ease}.admin-row-menu-item:hover:not(:disabled){background:#f5f5f5}.admin-row-menu-item:disabled{opacity:.7;cursor:not-allowed}.admin-userinfo-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1061;padding:1rem;box-sizing:border-box}.admin-userinfo-modal{background:#f5f5f5;border-radius:16px;box-shadow:0 12px 40px #00000026;max-width:600px;width:100%;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden}.admin-userinfo-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(180deg,#f8f9fa,#f0f2f5);border-bottom:1px solid #e8e8e8;flex-shrink:0}.admin-userinfo-modal-header h2{margin:0;font-size:1.15rem;font-weight:600;color:#1a1a1a}.admin-userinfo-modal-close{width:40px;height:40px;min-width:40px;min-height:40px;border:none;border-radius:50%;background:#fff;color:#616161;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:0;transition:background .2s,color .2s;border:1px solid #e8e8e8}.admin-userinfo-modal-close:hover{background:#e8e8e8;color:#212121}.admin-userinfo-modal-body{padding:1.25rem;overflow-y:auto;flex:1;min-height:0}.admin-userinfo-detail{max-width:100%}.admin-userinfo-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding:1rem;background:linear-gradient(180deg,#f8f9fa,#f0f2f5);border-radius:12px;border:1px solid #e8e8e8}.admin-userinfo-header-text{min-width:0;flex:1}.admin-userinfo-name{margin:0 0 .25rem;font-size:1.15rem;font-weight:600;color:#1a1a1a}.admin-userinfo-apt{margin:.25rem 0 0;font-size:.9rem;color:#424242}.admin-userinfo-email{margin:.25rem 0 0;font-size:.9rem;color:#616161}.admin-userinfo-photo-wrap{flex-shrink:0}.admin-userinfo-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid #e8e8e8;box-shadow:0 2px 8px #00000014}.status-badge{padding:.35rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600}.status-completed{background:#e8f5e9;color:#2e7d32}.status-progress{background:#fff3e0;color:#e65100}.admin-payment-form{margin-top:1rem;padding:.75rem 0;border-top:1px solid #eeeeee}.admin-payment-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.admin-payment-row label{flex:1;display:flex;flex-direction:column;font-size:.8rem;color:#424242}.admin-payment-row input,.admin-payment-row select{margin-top:.25rem;padding:.5rem .75rem;border-radius:12px;border:none;background:#f5f5f5;font-size:.9rem;color:#212121}.admin-payment-row input:focus,.admin-payment-row select:focus{outline:none;box-shadow:0 0 0 2px #1976d2}.admin-payments-list{margin-top:1rem;text-align:left}.admin-payments-list h4{margin:0 0 .5rem;font-size:.95rem;color:#424242}.admin-payments-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.admin-payment-item{padding:.6rem .75rem;border-radius:12px;background:#f8f8f8;font-size:.85rem}.admin-payment-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.admin-payment-period{font-weight:500;color:#212121}.admin-payment-status{padding:.15rem .5rem;border-radius:999px;font-size:.75rem}.admin-payment-status.status-paid{background:#e8f5e9;color:#2e7d32}.admin-payment-status.status-pending{background:#fff3e0;color:#ef6c00}.admin-payment-meta{font-size:.8rem;color:#616161}.admin-payment-modal-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.25rem 1.5rem;border-bottom:1px solid #e8e8e8;flex-shrink:0;background:#fafafa}.admin-payment-modal-header h3,.admin-payment-modal-title{margin:0;font-size:1.2rem;font-weight:600;color:#1a1a1a;letter-spacing:-.02em}.admin-payment-modal-user{margin:.35rem 0 0;font-size:.875rem;color:#616161;line-height:1.4}.admin-payment-modal-email{color:#757575;font-size:.85rem}.admin-payment-modal-header-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;flex:1;min-width:0}.admin-payment-estado-resumen{display:inline-block;padding:.3rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.admin-payment-estado-al-dia{background:#e8f5e9;color:#2e7d32}.admin-payment-estado-atrasado{background:#ffebee;color:#c62828}.admin-payment-modal-close{margin-left:auto;padding:.5rem;border:1px solid #e5e5e5;background:#fff;color:#616161;cursor:pointer;border-radius:10px;transition:background .2s,color .2s,border-color .2s}.admin-payment-modal-close:hover{background:#fff;color:#212121;border-color:#bdbdbd}.admin-payment-modal-header-v2{position:relative;flex-shrink:0;padding:1.5rem 1.5rem 1.25rem;background:linear-gradient(135deg,#1a237e,#283593);color:#fff;border-bottom:none}.admin-payment-modal-close-v2{position:absolute;top:1rem;right:1rem;padding:.5rem;border:none;background:#ffffff26;color:#fff;cursor:pointer;border-radius:10px;transition:background .2s,color .2s}.admin-payment-modal-close-v2:hover{background:#ffffff40;color:#fff}.admin-payment-modal-header-v2-content{max-width:32rem;padding-right:2.5rem}.admin-payment-modal-header-v2-badge{margin-bottom:.5rem}.admin-payment-modal-header-v2 .admin-payment-estado-resumen{font-size:.7rem;padding:.25rem .5rem;opacity:.95}.admin-payment-modal-header-v2-title{margin:0 0 .35rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:#fff;line-height:1.2}.admin-payment-modal-header-v2-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.875rem;color:#ffffffd9;margin-bottom:.25rem}.admin-payment-modal-header-v2-meta-item{display:inline}.admin-payment-modal-header-v2-subtitle{margin:0;font-size:.8rem;color:#ffffffb3;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.admin-payment-owed-section{background:#fff8e1;border:1px solid #ffecb3;border-radius:12px;padding:1rem!important;margin-bottom:1rem}.admin-payment-owed-tags{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.admin-payment-owed-tag{padding:.45rem .75rem;border-radius:10px;border:1px solid #ffb74d;background:#fff;color:#e65100;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.admin-payment-owed-tag:hover{background:#ffe0b2;border-color:#ff9800;color:#bf360c}.admin-payment-owed-tag.selected{background:#e65100;border-color:#e65100;color:#fff}.admin-payment-period-select-row{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.admin-payment-field--inline{flex:1;min-width:120px}.admin-payment-segment-switch--three .admin-payment-segment-option{min-width:0;flex:1}.admin-payment-modal-body{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem;overflow:hidden;min-height:0}.admin-payment-modal-col{display:flex;flex-direction:column;min-height:0;overflow:hidden}.admin-payment-modal-col h4{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#424242}.admin-payment-list-card,.admin-payment-form-card{background:#fff;border-radius:16px;border:1px solid #e8e8e8;padding:1.25rem;height:100%;display:flex;flex-direction:column;min-height:0;box-shadow:0 1px 3px #0000000f}.admin-payment-list-card-title,.admin-payment-form-card-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:600;color:#1a1a1a;letter-spacing:-.02em}.admin-payment-form-card-desc{margin:0 0 1rem;font-size:.85rem;color:#616161;line-height:1.4}.admin-payment-config-summary{margin-bottom:1.25rem;padding:.85rem 1rem;background:#f0f7ff;border:1px solid #bbdefb;border-radius:12px;font-size:.8rem;color:#1565c0}.admin-payment-config-summary-title{display:block;font-weight:600;margin-bottom:.35rem;color:#0d47a1}.admin-payment-config-summary-list{margin:0;padding-left:1.2rem;line-height:1.5}.admin-payment-config-summary-list li{margin-bottom:.15rem}.admin-payment-config-summary-list li:last-child{margin-bottom:0}.admin-payment-meses-hint{margin-bottom:.5rem!important}.admin-payment-loading,.admin-payment-empty{margin:0;padding:1rem;text-align:center;color:#757575;font-size:.9rem;background:#fafafa;border-radius:12px}.admin-payment-modal-col--list{overflow:auto}.admin-payment-table-wrap{overflow:auto;border:1px solid #e8e8e8;border-radius:12px;background:#fafafa}.admin-payment-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-payment-table th,.admin-payment-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid #eee}.admin-payment-table th{background:#f5f5f5;font-weight:600;color:#424242}.admin-payment-table tbody tr:last-child td{border-bottom:none}.admin-payment-modal-col--form{overflow:auto}.admin-payment-form--stacked label{display:flex;flex-direction:column;margin-bottom:.75rem;font-size:.85rem;color:#424242}.admin-payment-form--stacked input[type=month],.admin-payment-form--stacked input[type=number],.admin-payment-form--stacked select{margin-top:.25rem;padding:.5rem .75rem;border-radius:12px;border:1px solid #e0e0e0;background:#fff;font-size:.9rem;color:#212121}.admin-payment-form--stacked input::placeholder{color:#9e9e9e}.admin-payment-form-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid #eee}.admin-payment-form-section:last-of-type{border-bottom:none;padding-bottom:0;margin-bottom:1rem}.admin-payment-form-section-title{margin:0 0 .75rem;font-size:.8rem;font-weight:600;color:#616161;text-transform:uppercase;letter-spacing:.04em}.admin-payment-field{display:flex;flex-direction:column;margin-bottom:.75rem}.admin-payment-field:last-child{margin-bottom:0}.admin-payment-field-label{font-size:.85rem;color:#424242;margin-bottom:.35rem;font-weight:500}.admin-payment-field-hint{display:block;font-size:.75rem;color:#757575;margin-top:.3rem}.admin-payment-input{padding:.6rem .85rem;border-radius:10px;border:1px solid #e0e0e0;background:#fff;font-size:.95rem;color:#212121;transition:border-color .2s,box-shadow .2s}.admin-payment-input:hover{border-color:#bdbdbd}.admin-payment-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d226}.admin-payment-segment-switch{display:inline-flex;background:#f0f0f0;border-radius:10px;padding:4px;gap:0;border:1px solid #e5e5e5}.admin-payment-segment-option{padding:.5rem 1.1rem;border:none;background:transparent;font-size:.9rem;font-weight:500;color:#616161;cursor:pointer;border-radius:8px;transition:background .2s,color .2s,box-shadow .2s;min-width:100px}.admin-payment-segment-option:hover{color:#424242;background:#fff9}.admin-payment-segment-option.active{background:#fff;color:#1976d2;box-shadow:0 1px 3px #0000001a}.admin-payment-segment-option.active.admin-payment-segment-option--success{color:#2e7d32}.admin-payment-segment-option.active.admin-payment-segment-option--warning{color:#ed6c02}.admin-payment-method-group{margin-bottom:.75rem}.admin-payment-label{display:block;font-size:.85rem;color:#424242;margin-bottom:.35rem}.admin-payment-radio{display:inline-flex;align-items:center;gap:.5rem;margin-right:1rem;font-size:.9rem;cursor:pointer}.admin-payment-add-month{margin-bottom:.75rem}.admin-payment-btn-secondary{width:100%;padding:.6rem 1rem;border-radius:10px;border:1px solid #e0e0e0;background:#f5f5f5;color:#424242;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.admin-payment-btn-secondary:hover:not(:disabled){background:#eee;border-color:#bdbdbd;color:#212121}.admin-payment-btn-secondary:disabled{opacity:.6;cursor:not-allowed}.admin-payment-months-list{margin-top:.75rem;margin-bottom:0;padding:.75rem;background:#f8f9fa;border-radius:12px;border:1px solid #eee}.admin-payment-note{font-size:.8rem;color:#616161;margin:0 0 .5rem}.admin-payment-months-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.admin-payment-month-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .6rem;background:#fff;border-radius:8px;border:1px solid #e0e0e0;font-size:.85rem;color:#424242}.admin-payment-remove-month{padding:.2rem;border:none;background:none;color:#757575;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.admin-payment-remove-month:hover{background:#ffebee;color:#c62828}.admin-payment-form-error{margin-bottom:1rem;padding:.6rem .85rem;background:#ffebee;color:#c62828;border-radius:10px;font-size:.875rem}.admin-payment-btn-submit{width:100%;padding:.75rem 1.25rem;border-radius:10px;border:none;background:#1976d2;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.admin-payment-btn-submit:hover:not(:disabled){background:#1565c0}.admin-payment-btn-submit:disabled{opacity:.6;cursor:not-allowed}.admin-payment-months-list ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.admin-payment-months-list li{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .5rem;background:#fff;border-radius:8px;border:1px solid #e0e0e0;font-size:.85rem}.btn-create-invitation--secondary{background:#f5f5f5;color:#424242;border:1px solid #e0e0e0}.btn-create-invitation--secondary:hover:not(:disabled){background:#eee;color:#212121}.admin-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.admin-filter-input{flex:1;min-width:120px;max-width:200px;padding:.5rem .75rem;border:1px solid #e0e0e0;border-radius:12px;font-size:.9rem;background:#fff;color:#212121}.admin-filter-input::placeholder{color:#9e9e9e}.admin-filter-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}@media(max-width:768px){.admin-payment-modal-body{grid-template-columns:1fr}.admin-filters{flex-direction:column}.admin-filter-input{max-width:none}}.admin-pagos-view{max-width:640px}.admin-pagos-user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.admin-pagos-user-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#fff;border-radius:16px;border:1px solid #e0e0e0;box-shadow:0 1px 3px #0000000f;flex-wrap:wrap}.admin-pagos-user-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.admin-pagos-user-name{font-weight:600;font-size:1rem;color:#212121}.admin-pagos-user-apt,.admin-pagos-user-email{font-size:.875rem;color:#757575}.admin-pagos-btn-gestionar{flex-shrink:0;width:auto;padding:.6rem 1.25rem}.admin-config-view{max-width:560px}.admin-config-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem}.admin-config-card{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.admin-config-card-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1a1a1a;letter-spacing:-.02em}.admin-config-field{display:flex;flex-direction:column}.admin-config-label{font-size:.9rem;font-weight:500;color:#424242;margin-bottom:.4rem}.admin-config-radio-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.25rem}.admin-config-radio{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:#424242}.admin-config-radio input{width:1rem;height:1rem;accent-color:#1976d2}.admin-config-input{padding:.6rem .85rem;border-radius:10px;border:1px solid #e0e0e0;background:#fff;font-size:.95rem;color:#212121;transition:border-color .2s,box-shadow .2s}.admin-config-input:hover{border-color:#bdbdbd}.admin-config-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d226}.admin-config-hint{font-size:.8rem;color:#757575;margin-top:.35rem}.admin-config-error{padding:.6rem .85rem;background:#ffebee;color:#c62828;border-radius:10px;font-size:.875rem}.admin-config-success{padding:.6rem .85rem;background:#e8f5e9;color:#2e7d32;border-radius:10px;font-size:.875rem}.admin-config-submit{padding:.75rem 1.25rem;border-radius:10px;border:none;background:#1976d2;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s;align-self:flex-start}.admin-config-submit:hover{background:#1565c0}.admin-historial-filtros{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;align-items:flex-end}.admin-historial-filtro{display:flex;flex-direction:column;gap:.25rem;min-width:140px}.admin-historial-filtro-label{font-size:.85rem;font-weight:500;color:#424242}.admin-historial-filtro .admin-config-input{min-width:0}.admin-rfid-table-wrap{overflow-x:auto;margin-top:1rem;border-radius:12px;border:1px solid #e8e8e8;background:#fff;box-shadow:0 1px 3px #0000000f}.admin-rfid-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-rfid-table th,.admin-rfid-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #eee}.admin-rfid-table th{background:#f5f5f5;font-weight:600;color:#424242}.admin-rfid-table tbody tr:last-child td{border-bottom:none}.admin-rfid-table tbody tr:hover{background:#fafafa}.admin-rfid-table code{font-size:.85em;background:#f0f0f0;padding:.2em .5em;border-radius:6px}.admin-rfid-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1061;padding:1rem;box-sizing:border-box}.admin-rfid-modal{background:#f5f5f5;border-radius:16px;box-shadow:0 12px 40px #00000026;max-width:520px;width:100%;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden}.admin-rfid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(180deg,#f8f9fa,#f0f2f5);border-bottom:1px solid #e8e8e8;flex-shrink:0}.admin-rfid-modal-header h2{margin:0;font-size:1.15rem;font-weight:600;color:#1a1a1a}.admin-rfid-modal-body{padding:1.25rem;overflow-y:auto;flex:1;min-height:0}.admin-rfid-btn-open-modal{padding:.6rem 1.25rem;background:#1976d2;color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;margin-bottom:1.5rem;transition:background .2s}.admin-rfid-btn-open-modal:hover{background:#1565c0}.admin-rfid-resident-dropdown{position:absolute;left:0;right:0;top:100%;margin-top:2px;background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 4px 12px #0000001a;z-index:10;max-height:240px;overflow:hidden;display:flex;flex-direction:column}.admin-rfid-resident-list{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:220px}.admin-rfid-resident-item{padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;gap:.15rem}.admin-rfid-resident-item:hover{background:#f5f5f5}.admin-rfid-resident-item-name{font-weight:500;color:#1a1a1a}.admin-rfid-resident-item-meta{font-size:.8rem;color:#757575}.admin-rfid-resident-dropdown-empty{padding:.75rem 1rem;color:#757575;font-size:.9rem}.admin-rfid-resident-more{padding:.4rem .75rem;font-size:.8rem;color:#757575;background:#fafafa;border-top:1px solid #eee;flex-shrink:0}.admin-rfid-resident-clear{margin-top:.35rem;padding:.35rem .6rem;font-size:.8rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;color:#616161;cursor:pointer}.admin-rfid-resident-clear:hover{background:#eee}.admin-rfid-resident-wrap{position:relative}.admin-rfid-add-card{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000f}.admin-rfid-add-form{display:flex;flex-direction:column;gap:1rem}.admin-rfid-add-form textarea.admin-config-input{resize:vertical;min-height:60px}.admin-rfid-nota-textarea{font-family:inherit}.admin-rfid-waiting{padding:.5rem 0}.admin-rfid-waiting-msg{font-size:1rem;color:#1976d2;font-weight:600;margin:0 0 .5rem}.admin-rfid-waiting-nombre{margin:0 0 1rem;font-size:.95rem;color:#424242}.admin-rfid-btn-cancel{padding:.5rem 1rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:10px;font-size:.9rem;cursor:pointer;color:#616161}.admin-rfid-btn-cancel:hover{background:#eee}.admin-rfid-resultado{margin-top:1rem;padding:.75rem 1rem;background:#e8f5e9;border-radius:10px;font-size:.9rem;color:#2e7d32}.admin-rfid-resultado code{background:#00000014;padding:.15em .4em;border-radius:4px}.admin-rfid-success-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1062;padding:1rem;box-sizing:border-box}.admin-rfid-success-modal{background:#fff;border-radius:16px;box-shadow:0 12px 40px #0003;max-width:420px;width:100%;overflow:hidden}.admin-rfid-success-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(180deg,#e8f5e9,#c8e6c9);border-bottom:1px solid #a5d6a7}.admin-rfid-success-modal-header h3{margin:0;font-size:1.2rem;font-weight:600;color:#1b5e20}.admin-rfid-success-modal-body{padding:1.25rem}.admin-rfid-success-modal-msg{margin:0 0 .5rem;font-size:1rem;color:#212121;line-height:1.5}.admin-rfid-success-modal-msg code{background:#f0f0f0;padding:.2em .5em;border-radius:6px;font-size:.9em}.admin-rfid-success-modal-meta{margin:0 0 1.25rem;font-size:.9rem;color:#616161}.dashboard-asociados{display:flex;flex-direction:column;gap:1rem}.dashboard-asociados h2{font-size:1.5rem;font-weight:600;color:#212121;margin:0}.dashboard-asociados-subtitle{font-size:.95rem;color:#757575;margin:0 0 .5rem}.dashboard-asociados-empty{padding:2rem;background:#fff;border-radius:16px;text-align:center;color:#757575}.dashboard-asociados-empty-hint{font-size:.85rem;margin-top:.5rem;color:#9e9e9e}.dashboard-asociados-stats,.dashboard-asociados-chart{margin-top:.5rem}.dashboard-asociados-list{border:none;border-radius:16px;background:#fff;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.dashboard-asociados-list h3{margin:0 0 1rem;font-size:.95rem;color:#424242}.asociados-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.asociado-item{padding:.75rem 1rem;background:#f8f8f8;border-radius:12px}.asociado-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.asociado-name{font-weight:500;color:#212121}.asociado-visits{font-size:.85rem;color:#1976d2}.asociado-id{font-size:.75rem;color:#9e9e9e}.asociado-access{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem;font-size:.8rem}.asociado-access-label{display:block;margin-bottom:.25rem;color:#616161}.asociado-access-maxscans label{display:flex;flex-direction:column;font-size:.8rem;color:#424242}.asociado-access-maxscans input{margin-top:.25rem;padding:.4rem .6rem;border-radius:10px;border:none;background:#fff;font-size:.85rem;color:#212121}.asociado-access-maxscans input:focus{outline:none;box-shadow:0 0 0 2px #1976d2}.dashboard-familia{display:flex;flex-direction:column;gap:1rem}.dashboard-familia h2{font-size:1.5rem;font-weight:600;margin:0 0 .25rem;color:#212121}.dashboard-familia-subtitle{font-size:.95rem;color:#757575;margin:0 0 1rem}.familia-form{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 1px 3px #00000014;border:1px solid #e0e0e0}.familia-form h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#424242}.familia-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.familia-form-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:#424242}.familia-form-grid input,.familia-form-grid select{padding:.5rem .75rem;border:1px solid #e0e0e0;border-radius:10px;font-size:.9rem;background:#fff}.familia-form-grid input:focus,.familia-form-grid select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.familia-form-full{grid-column:1 / -1}.familia-form-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.btn-familia-save{padding:.5rem 1.25rem;background:#1976d2;color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s ease}.btn-familia-save:hover:not(:disabled){background:#1565c0}.btn-familia-save:disabled{opacity:.7;cursor:not-allowed}.btn-familia-cancel{padding:.5rem 1rem;background:#f5f5f5;color:#424242;border:1px solid #e0e0e0;border-radius:10px;font-size:.9rem;cursor:pointer;transition:background .2s ease}.btn-familia-cancel:hover{background:#eee}.familia-error{padding:.75rem 1rem;background:#ffebee;color:#c62828;border-radius:10px;font-size:.9rem}.familia-list-section{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 1px 3px #00000014;border:1px solid #e0e0e0}.familia-list-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#424242}.familia-empty{color:#757575;font-size:.95rem;margin:0}.familia-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.familia-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:#fafafa;border-radius:12px;border:1px solid #eeeeee}.familia-item-main{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;min-width:0;flex:1}.familia-item-name{font-weight:600;color:#212121;font-size:.95rem}.familia-item-parentesco{font-size:.85rem;color:#616161;padding:.15rem .5rem;background:#e8e8e8;border-radius:8px}.familia-item-celular,.familia-item-fecha{font-size:.85rem;color:#757575}.familia-item-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-familia-edit{padding:.35rem .75rem;font-size:.85rem;background:#e3f2fd;color:#1976d2;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease}.btn-familia-edit:hover{background:#bbdefb}.btn-familia-remove{padding:.35rem .75rem;font-size:.85rem;background:#ffebee;color:#c62828;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease}.btn-familia-remove:hover:not(:disabled){background:#ffcdd2}.btn-familia-remove:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.dashboard-sidebar{display:none}.dashboard-bottom-nav{display:flex}.dashboard-main{padding:.5rem 1rem;padding-bottom:80px}.invitation-form{padding:1rem}.dashboard-home-stats{grid-template-columns:1fr}.validity-row{flex-direction:column}}@media(max-width:768px){.dashboard-topbar{display:flex}}@media(min-width:769px){.dashboard-topbar,.dashboard-mobile-menu-overlay{display:none}}.porteria-inicio h2,.porteria-apartamentos h2,.porteria-acceso h2{margin:0 0 1rem;font-size:1.25rem;color:#212121}.porteria-notif-pendientes-wrap{margin-bottom:1.5rem;padding:1.25rem;background:#fff8e1;border:1px solid #ffc107;border-radius:12px;box-shadow:0 1px 3px #00000014}.porteria-notif-pendientes-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:600;color:#e65100;display:flex;align-items:center;gap:.5rem}.porteria-notif-icon{flex-shrink:0}.porteria-notif-pendientes-empty{margin:0;font-size:.95rem;color:#666}.porteria-notif-pendientes-list{list-style:none;padding:0;margin:0}.porteria-notif-pendientes-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.75rem;background:#fff;border-radius:8px;margin-bottom:.5rem;border:1px solid #ffe082}.porteria-notif-pendientes-item:last-child{margin-bottom:0}.porteria-notif-pendientes-placa{font-weight:700;color:#1976d2;min-width:80px}.porteria-notif-pendientes-fecha{font-size:.9rem;color:#666;flex:1}.porteria-acceso-pendientes-wrap{margin-top:1.5rem;padding:1.25rem;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 1px 3px #0000000f}.porteria-pendientes-list-inline .porteria-pendiente-item{margin-bottom:.5rem}.porteria-pendientes-list-inline .porteria-pendiente-item:last-child{margin-bottom:0}.porteria-filters{margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.porteria-filters select{padding:.5rem .75rem;border-radius:8px;border:1px solid #e0e0e0;font-size:1rem;background:#fff}.porteria-buscador-general{margin-bottom:1.5rem;padding:1.25rem;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 1px 3px #0000000f}.porteria-buscador-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600;color:#212121}.porteria-buscador-desc{margin:0 0 1rem;font-size:.9rem;color:#666}.porteria-buscador-row{display:flex;flex-direction:column;gap:.5rem}.porteria-buscador-input{width:100%;padding:.6rem .85rem;border:1px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#fff;color:#000}.porteria-buscador-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.porteria-buscador-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.6rem 1rem;background:#1976d2;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer}.porteria-buscador-btn:hover:not(:disabled){background:#1565c0}.porteria-buscador-btn:disabled{opacity:.7;cursor:not-allowed}.porteria-buscador-result{margin-top:1rem;padding:1rem;border-radius:8px;border:1px solid #e0e0e0}.porteria-buscador-result--found{background:#e8f5e9;border-color:#a5d6a7}.porteria-buscador-result--not-found{background:#ffebee;border-color:#ef9a9a}.porteria-buscador-msg{margin:0 0 .5rem;font-size:1rem;font-weight:500}.porteria-buscador-msg--success{color:#2e7d32}.porteria-buscador-list{margin:.5rem 0 0;padding-left:1.25rem;list-style:disc}.porteria-buscador-item{margin-bottom:.35rem;font-size:.9rem;color:#212121}.porteria-buscador-item-type{display:inline-block;min-width:4.5rem;padding:.15rem .4rem;margin-right:.5rem;background:#0000000f;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:capitalize}.porteria-buscador-more{margin:.5rem 0 0;font-size:.9rem;color:#666}.porteria-loading,.porteria-no-data{color:#666;margin:1rem 0}.porteria-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.porteria-stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;text-align:center;box-shadow:0 1px 3px #0000000f}.porteria-stat-value{display:block;font-size:1.75rem;font-weight:700;color:#1976d2}.porteria-stat-total .porteria-stat-value{color:#2e7d32}.porteria-stat-vehicles .porteria-stat-value{color:#ed6c02}.porteria-stat-label{font-size:.85rem;color:#666;margin-top:.25rem;display:block}.porteria-apartamentos{width:100%;max-width:100%;min-width:0}.porteria-torres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;width:100%}.porteria-torre-card{padding:1rem;border:1px solid #e0e0e0;border-radius:12px;background:#fff;font-weight:600;font-size:1rem;color:#1976d2;cursor:pointer;transition:background .2s ease,border-color .2s ease;min-height:48px}.porteria-torre-card:hover{background:#e3f2fd;border-color:#1976d2}.porteria-aptos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:.5rem;width:100%;max-width:100%}.porteria-apto-card{padding:.75rem;border:1px solid #e0e0e0;border-radius:8px;background:#fff;font-weight:600;font-size:.95rem;color:#333;cursor:pointer;transition:background .2s ease;min-height:44px}.porteria-apto-card:hover{background:#f5f5f5}.porteria-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.75rem;padding:.35rem 0;background:none;border:none;color:#1976d2;cursor:pointer;font-size:.95rem}.porteria-back:hover{text-decoration:underline}.porteria-back-second{margin-left:1rem}.porteria-torre-title{font-size:1.1rem;font-weight:600;margin:0 0 1rem;color:#212121}.porteria-apartment-detail{max-width:560px;width:100%;display:flex;flex-direction:column;gap:1rem}.porteria-detail-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.porteria-detail-card-header{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;background:linear-gradient(180deg,#f8f9fa,#f0f2f5);border-bottom:1px solid #e8e8e8}.porteria-detail-icon{width:1.25rem;height:1.25rem;color:#1976d2;flex-shrink:0}.porteria-detail-card-header h4{margin:0;font-size:.95rem;font-weight:600;color:#1a1a1a;letter-spacing:.02em}.porteria-detail-rows{padding:.5rem 0}.porteria-detail-row{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:.5rem .75rem;padding:.5rem 1rem;min-height:2.5rem;border-bottom:1px solid #f0f0f0}.porteria-detail-row:last-child{border-bottom:none}.porteria-detail-row-owner{border-top:1px solid #e8e8e8;margin-top:.25rem;padding-top:.65rem}.porteria-detail-row-owner .porteria-detail-label{color:#5d4037;font-weight:600}.porteria-detail-row:first-of-type{grid-template-columns:auto 1fr}.porteria-detail-row:first-of-type .porteria-detail-value{font-weight:600;color:#1a1a1a}.porteria-detail-row-icon{width:1rem;height:1rem;color:#757575;margin-top:.15rem}.porteria-detail-label{font-size:.8rem;color:#757575;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.porteria-detail-value{font-size:.95rem;color:#333;word-break:break-word}.porteria-detail-list{list-style:none;margin:0;padding:.75rem 1rem}.porteria-detail-list-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-radius:8px;background:#f8f9fa;margin-bottom:.4rem;font-size:.9rem}.porteria-detail-list-item:last-child{margin-bottom:0}.porteria-detail-placa{font-weight:700;color:#1a1a1a;font-family:ui-monospace,monospace;letter-spacing:.05em}.porteria-detail-marca{color:#616161;font-size:.85rem}.porteria-detail-pet-item{flex-wrap:wrap}.porteria-detail-pet-type{font-weight:600;color:#1976d2;text-transform:capitalize}.porteria-detail-pet-name{color:#424242}.porteria-detail-residente .porteria-detail-rows{padding:0}.porteria-detail-vehiculos .porteria-detail-card-header{background:linear-gradient(180deg,#e8f4fd,#e3f2fd)}.porteria-detail-vehiculos .porteria-detail-icon{color:#1565c0}.porteria-detail-mascotas .porteria-detail-card-header{background:linear-gradient(180deg,#f3e8fd,#ede7f6)}.porteria-detail-mascotas .porteria-detail-icon{color:#7b1fa2}.porteria-detail-row-actions .porteria-detail-value{margin-right:0}.porteria-detail-value-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.porteria-detail-contact-actions{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0}.porteria-btn-call,.porteria-btn-whatsapp{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:8px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .2s ease,color .2s ease;white-space:nowrap}.porteria-btn-call{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.porteria-btn-call:hover{background:#bbdefb;color:#0d47a1}.porteria-btn-whatsapp{background:#e8f5e9;color:#2e7d32;border:1px solid #81c784}.porteria-btn-whatsapp:hover{background:#c8e6c9;color:#1b5e20}.porteria-detail-familia{border:1px solid #e8e8e8}.porteria-detail-familia-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.85rem 1rem;background:linear-gradient(180deg,#fff8e1,#ffecb3);border:none;border-bottom:1px solid #e8e8e8;cursor:pointer;text-align:left;font:inherit;color:inherit}.porteria-detail-familia-header:hover{background:linear-gradient(180deg,#ffecb3,#ffe082)}.porteria-detail-familia-header .porteria-detail-icon{color:#f57c00;flex-shrink:0}.porteria-detail-familia-header h4{margin:0;font-size:.95rem;font-weight:600;color:#1a1a1a;flex:1}.porteria-detail-familia-count{font-size:.8rem;color:#666;font-weight:500}.porteria-detail-familia-header svg:last-child{width:1.1rem;height:1.1rem;color:#666}.porteria-detail-familia-body{padding:.75rem 1rem;background:#fff}.porteria-detail-familia-list{list-style:none;margin:0;padding:0}.porteria-detail-familia-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem;padding:.65rem .85rem;border-radius:10px;background:#fafafa;border:1px solid #eee;margin-bottom:.5rem}.porteria-detail-familia-item:last-child{margin-bottom:0}.porteria-detail-familia-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.porteria-detail-familia-name{font-weight:600;color:#1a1a1a;font-size:.95rem}.porteria-detail-familia-parentesco{font-size:.85rem;color:#616161}.porteria-detail-familia-celular{font-size:.85rem;color:#424242;font-family:ui-monospace,monospace}.porteria-detail-familia-actions{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.porteria-btn-call-sm,.porteria-btn-whatsapp-sm{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .5rem;border-radius:6px;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .2s ease,color .2s ease;white-space:nowrap}.porteria-btn-call-sm{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.porteria-btn-call-sm:hover{background:#bbdefb;color:#0d47a1}.porteria-btn-whatsapp-sm{background:#e8f5e9;color:#2e7d32;border:1px solid #81c784}.porteria-btn-whatsapp-sm:hover{background:#c8e6c9;color:#1b5e20}.porteria-acceso-text{color:#666;max-width:520px}.porteria-acceso-actions{margin-top:1.25rem}.porteria-ultima-lectura-wrap{margin-top:2rem;padding:1.25rem;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 1px 3px #0000000f}.porteria-ultima-lectura-wrap code{font-size:.85em;background:#f0f0f0;padding:.15rem .4rem;border-radius:4px}.porteria-ultima-lectura-card{display:grid;gap:.5rem;padding:1rem;background:#f8f9fa;border:1px solid #e8e8e8;border-radius:8px;margin-top:.5rem}.porteria-ultima-lectura-row{display:flex;align-items:baseline;gap:.75rem;font-size:.95rem}.porteria-ultima-lectura-label{font-weight:600;color:#555;min-width:120px}.porteria-ultima-lectura-value{color:#212121}.porteria-historial-wrap{margin-top:2rem;padding:1.25rem;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 1px 3px #0000000f}.porteria-historial-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600;color:#212121}.porteria-historial-desc{margin:0 0 1rem;font-size:.9rem;color:#666}.porteria-historial-table-wrap{overflow-x:auto;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa}.porteria-historial-table{width:100%;border-collapse:collapse;font-size:.9rem}.porteria-historial-table th,.porteria-historial-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid #eee}.porteria-historial-table th{background:#f0f0f0;font-weight:600;color:#424242}.porteria-historial-table tbody tr:hover{background:#f5f5f5}.porteria-historial-table tbody tr:last-child td{border-bottom:none}.porteria-historial-tipo{display:inline-block;padding:.2rem .5rem;border-radius:6px;background:#e3f2fd;color:#1565c0;font-size:.8rem;font-weight:500}.porteria-btn-ingreso-manual{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#1976d2;color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease}.porteria-btn-ingreso-manual:hover{background:#1565c0}.porteria-btn-icon{font-size:1.2rem}.porteria-manual-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.porteria-manual-modal{background:#fff;border-radius:16px;max-width:480px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 8px 32px #0003}.porteria-manual-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e0e0e0}.porteria-manual-modal-header h3{margin:0;font-size:1.25rem;color:#212121}.porteria-manual-modal-close{padding:.5rem;background:none;border:none;color:#666;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center}.porteria-manual-modal-close:hover{background:#f5f5f5;color:#212121}.porteria-manual-modal-body{padding:1.5rem}.porteria-manual-opciones{display:flex;flex-direction:column;gap:1rem}.porteria-manual-subtitle{margin:0 0 .5rem;color:#666;font-size:.95rem}.porteria-manual-opcion{padding:1rem 1.25rem;border:2px solid #e0e0e0;border-radius:12px;background:#fff;font-size:1.1rem;font-weight:600;color:#1976d2;cursor:pointer;transition:background .2s ease,border-color .2s ease}.porteria-manual-opcion:hover{background:#e3f2fd;border-color:#1976d2}.porteria-manual-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.porteria-manual-form label{font-weight:600;color:#424242;font-size:.95rem}.porteria-manual-input{padding:.65rem .75rem;border:1px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#fff;color:#212121}.porteria-manual-input::placeholder{color:#757575}.porteria-manual-btn-submit{padding:.75rem 1rem;background:#1976d2;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;margin-top:.25rem}.porteria-manual-btn-submit:hover:not(:disabled){background:#1565c0}.porteria-manual-btn-submit:disabled{opacity:.7;cursor:not-allowed}.porteria-manual-btn-back{background:none;border:none;color:#666;cursor:pointer;font-size:.95rem;padding:.5rem 0}.porteria-manual-btn-back:hover{text-decoration:underline;color:#212121}.porteria-manual-btn-back-block{display:block;margin-top:.5rem}.porteria-manual-vehiculo{display:flex;flex-direction:column}.porteria-vehiculos-pendientes{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #e0e0e0}.porteria-vehiculos-pendientes h4{margin:0 0 .75rem;font-size:1rem;color:#424242}.porteria-pendientes-list{list-style:none;padding:0;margin:0}.porteria-pendiente-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.75rem;background:#f9f9f9;border-radius:8px;margin-bottom:.5rem;border:1px solid #eee}.porteria-pendiente-placa{font-weight:700;color:#1976d2;min-width:80px}.porteria-pendiente-fecha{font-size:.9rem;color:#666;flex:1}.porteria-btn-confirmar-salida{padding:.5rem .75rem;background:#2e7d32;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer}.porteria-btn-confirmar-salida:hover:not(:disabled){background:#1b5e20}.porteria-btn-confirmar-salida:disabled{opacity:.7;cursor:not-allowed}.porteria-manual-error{margin:.75rem 0 0;color:#c62828;font-size:.95rem}.porteria-manual-success{margin:.75rem 0 0;color:#2e7d32;font-size:.95rem}.porteria-confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001;padding:1rem}.porteria-confirm-modal{background:#fff;border-radius:16px;padding:1.5rem;max-width:380px;width:100%;box-shadow:0 8px 32px #0003}.porteria-confirm-modal h3{margin:0 0 .75rem;font-size:1.2rem;color:#212121}.porteria-confirm-modal p{margin:0 0 1.25rem;color:#424242;font-size:1rem}.porteria-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}.porteria-confirm-cancel{padding:.65rem 1.25rem;background:#f5f5f5;color:#424242;border:none;border-radius:8px;font-weight:600;cursor:pointer}.porteria-confirm-cancel:hover:not(:disabled){background:#eee}.porteria-confirm-ok{padding:.65rem 1.25rem;background:#2e7d32;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.porteria-confirm-ok:hover:not(:disabled){background:#1b5e20}@media(max-width:768px){.porteria-torres-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.6rem}.porteria-aptos-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:.5rem}.porteria-apartment-detail{gap:.85rem}.porteria-detail-card-header{padding:.75rem .85rem}.porteria-detail-row{padding:.45rem .85rem}.porteria-detail-list{padding:.6rem .85rem}.porteria-btn-call,.porteria-btn-whatsapp{padding:.35rem .55rem;font-size:.8rem}.porteria-detail-familia-item{flex-direction:column;align-items:flex-start}.porteria-detail-familia-actions{width:100%;justify-content:flex-start}.porteria-torre-title{font-size:1rem}}@media(max-width:480px){.porteria-stats-grid{grid-template-columns:repeat(2,1fr)}.porteria-torres-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.porteria-torre-card{padding:.85rem;font-size:.95rem}.porteria-aptos-grid{grid-template-columns:repeat(4,1fr);gap:.4rem}.porteria-apto-card{padding:.6rem;font-size:.9rem;min-height:40px}.porteria-apartment-detail{gap:.75rem}.porteria-detail-card-header{padding:.65rem .75rem}.porteria-detail-card-header h4{font-size:.9rem}.porteria-detail-row{padding:.4rem .75rem;min-height:2.25rem}.porteria-detail-label{font-size:.75rem}.porteria-detail-value{font-size:.9rem}.porteria-detail-list-item{padding:.45rem .6rem;font-size:.85rem}.porteria-detail-value-wrap{flex-direction:column;align-items:flex-start}.porteria-btn-call,.porteria-btn-whatsapp{padding:.3rem .5rem;font-size:.8rem}.porteria-btn-call-sm,.porteria-btn-whatsapp-sm{padding:.3rem .45rem;font-size:.75rem}.porteria-detail-familia-header{padding:.65rem .75rem}.porteria-detail-familia-header h4{font-size:.9rem}.porteria-detail-familia-body{padding:.5rem .75rem}.porteria-detail-familia-item{padding:.5rem .65rem}}.qr-invitado-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5;padding:1rem}.qr-invitado-loading,.qr-invitado-error{font-size:1rem;color:#757575}.qr-invitado-error{color:#c62828}.qr-invitado-card{background:#fff;border:1px solid #e0e0e0;padding:2rem;text-align:center;max-width:400px;width:100%}.qr-invitado-card h1{font-size:1.5rem;font-weight:600;color:#212121;margin:0 0 1rem}.qr-invitado-instruction{font-size:1.1rem;color:#424242;margin:0 0 1.5rem}.qr-invitado-image-wrap{background:#fff;border:1px solid #e0e0e0;padding:1rem;margin-bottom:1rem}.qr-invitado-image{max-width:280px;width:100%;height:auto;display:block;margin:0 auto}.qr-invitado-visitor{font-size:.9rem;color:#757575;margin:0}.admin-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#fff;padding:20px}.admin-login-card{background:#fff;border-radius:8px;border:1px solid #dee2e6;box-shadow:0 1px 3px #0000001a;padding:40px;width:100%;max-width:400px;text-align:center}.admin-login-header h1{color:#212529;margin-bottom:10px;font-size:1.5rem;font-weight:600}.admin-login-header p{color:#6c757d;margin-bottom:30px;font-size:1rem}.admin-login-form{display:flex;flex-direction:column;gap:20px}.form-group{text-align:left}.form-group label{display:block;margin-bottom:8px;color:#212529;font-weight:500;font-size:.9rem}.form-group input{width:100%;padding:12px;border:1px solid #ced4da;border-radius:6px;font-size:1rem;background-color:#fff;color:#212529;transition:all .2s ease;box-sizing:border-box}.form-group input::placeholder{color:#6c757d}.form-group input:focus{outline:none;border-color:#212529;box-shadow:0 0 0 3px #0000001a}.form-group input:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.error-message{background-color:#fee;color:#c33;padding:12px;border-radius:8px;border:1px solid #fcc;font-size:.9rem;text-align:center}.login-button{background:#212529;color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:10px}.login-button:hover:not(:disabled){background:#495057}.login-button:disabled{opacity:.7;cursor:not-allowed;background:#6c757d}@media(max-width:480px){.admin-login-container{padding:10px}.admin-login-card{padding:30px 20px}.admin-login-header h1{font-size:1.5rem}}.admin-dashboard{min-height:100vh;background-color:#fff}.dashboard-header{background-color:#f8f9fa;border-bottom:1px solid #dee2e6;color:#212529;padding:20px 0;box-shadow:0 1px 3px #0000001a}.header-content{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.header-content h1{margin:0;font-size:1.5rem;font-weight:600;color:#212529}.logout-button{background:transparent;color:#212529;border:1px solid #dee2e6;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s ease}.logout-button:hover{background:#f8f9fa;border-color:#adb5bd}.dashboard-content{max-width:1200px;margin:0 auto;padding:30px 20px}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;padding:25px;border-radius:8px;border:1px solid #dee2e6;box-shadow:0 1px 3px #0000001a;text-align:center;transition:all .2s ease}.stat-card:hover{box-shadow:0 2px 8px #00000026}.stat-card h3{margin:0 0 10px;color:#6c757d;font-size:.9rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-number{margin:0;font-size:2.5rem;font-weight:600;color:#212529}.filters-section{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap}.search-box{flex:1;min-width:300px}.search-input{width:100%;padding:12px;border:1px solid #ced4da;border-radius:6px;font-size:1rem;transition:all .2s ease;box-sizing:border-box;background-color:#fff}.search-input:focus{outline:none;border-color:#212529;box-shadow:0 0 0 3px #0000001a}.filter-select{min-width:200px}.status-filter{width:100%;padding:12px 40px 12px 12px;border:1px solid #ced4da;border-radius:6px;font-size:1rem;background:#fff;color:#212529;cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}.status-filter:focus{outline:none;border-color:#212529;box-shadow:0 0 0 3px #0000001a}.status-filter option{color:#212529;background:#fff}.registrations-table-container{background:#fff;border-radius:8px;border:1px solid #dee2e6;box-shadow:0 1px 3px #0000001a;overflow:hidden}.registrations-table{width:100%;border-collapse:collapse}.registrations-table th{background:#f8f9fa;padding:15px;text-align:left;font-weight:600;color:#212529;border-bottom:1px solid #dee2e6}.registrations-table td{padding:15px;border-bottom:1px solid #dee2e6;vertical-align:middle;color:#212529}.registrations-table tr:hover{background-color:#f8f9fa}.status-badge{padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-completed{background-color:#d4edda;color:#155724}.status-progress{background-color:#fff3cd;color:#856404}.status-unknown{background-color:#f8d7da;color:#721c24}.view-button{background:#212529;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.view-button:hover{background:#495057}.no-data{text-align:center;color:#6c757d;font-style:italic;padding:40px!important}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#6c757d}.loading-spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #212529;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:8px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026;border:1px solid #dee2e6}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #dee2e6;background:#f8f9fa;border-radius:8px 8px 0 0}.modal-header h2{margin:0;color:#212529;font-size:1.5rem;font-weight:600}.close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:#6c757d;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.close-button:hover{background:#dee2e6;color:#212529}.modal-body{padding:25px}.detail-section{margin-bottom:30px}.detail-section h3{color:#212529;margin-bottom:20px;font-size:1.2rem;font-weight:600;border-bottom:1px solid #dee2e6;padding-bottom:10px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.detail-item{display:flex;flex-direction:column;gap:5px}.detail-item label{font-weight:500;color:#6c757d;font-size:.9rem}.detail-item span{color:#212529;font-size:1rem}.photo-container{text-align:center;margin-top:15px}.profile-photo{max-width:200px;max-height:200px;border-radius:8px;border:1px solid #dee2e6;box-shadow:0 2px 8px #0000001a;object-fit:cover}.vehicles-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:15px}.vehicle-item{background:#f8f9fa;padding:15px;border-radius:6px;border-left:4px solid #212529;border:1px solid #dee2e6}.vehicle-item p{margin:5px 0;color:#212529}@media(max-width:768px){.header-content{flex-direction:column;gap:15px;text-align:center}.header-content h1{font-size:1.5rem}.filters-section{flex-direction:column}.search-box{min-width:auto}.registrations-table-container{overflow-x:auto}.registrations-table{min-width:600px}.detail-grid,.vehicles-list{grid-template-columns:1fr}.modal-content{margin:10px;max-height:95vh}.modal-header,.modal-body{padding:20px}}@media(max-width:480px){.dashboard-content{padding:20px 10px}.stats-cards{grid-template-columns:1fr}.registrations-table th,.registrations-table td{padding:10px 8px;font-size:.9rem}.view-button{padding:6px 12px;font-size:.8rem}}
