/* Shared UI contract: one spacing, control and mobile navigation system. */
:root { --ui-primary:#3455dc; --ui-accent:#138c93; --ui-coral:#e96c59; --ui-text:#17244b; --ui-muted:#53617b; --ui-line:#dbe2ef; --ui-radius:16px; --ui-gap:16px; }
.app-workspace { font-size:15px; line-height:1.5; color:var(--ui-text); }
.app-workspace :is(.panel,.home-card,.visit-card,.create-home,.surface,.resident-tile,.module-card) { border-radius:var(--ui-radius); padding:20px; margin-bottom:var(--ui-gap); min-width:0; }
.app-workspace :is(h1,h2,h3,p) { overflow-wrap:anywhere; }
.app-workspace h1 { font-size:clamp(1.5rem,3vw,2rem); line-height:1.2; }
.app-workspace h2 { font-size:1.125rem; line-height:1.35; margin:0 0 12px; }
.app-workspace p { line-height:1.5; }
.app-workspace .page-heading { margin-bottom:20px; }
.app-workspace .page-description { font-size:14px; color:var(--ui-muted); line-height:1.5; }
.app-workspace :is(.announcement-grid,.grid,.resident-grid,.form-grid) { gap:var(--ui-gap); min-width:0; }
.app-workspace :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea),.login-screen :is(input,select),.security-login :is(input,select) { font-size:16px; min-height:48px; border-radius:10px; max-width:100%; }
.app-workspace input[type="checkbox"],.app-workspace input[type="radio"] { width:22px; height:22px; min-height:22px; flex-shrink:0; }
.app-workspace :is(button,.finance-cta,.module-link),.login-screen button,.security-login button { min-height:44px; font-size:14px; line-height:1.4; touch-action:manipulation; }
.app-workspace label { font-size:14px; line-height:1.45; }
.app-workspace :is(.residential-form,.management-form,.home-selector,.filter-bar) { gap:14px; }
.app-workspace summary { min-height:44px; padding:12px 0; font-size:15px; font-weight:700; cursor:pointer; color:var(--ui-primary); }
.app-workspace details[open] > summary { margin-bottom:12px; }
.app-workspace details > form { margin-top:12px; }
.app-workspace :is(.announcement-banner,.resident-hero-compact) { padding:20px; border-radius:var(--ui-radius); min-height:0; margin-bottom:16px; }
.app-workspace .announcement-banner h2 { font-size:1.2rem; margin-bottom:8px; }
.app-workspace .eyebrow { font-size:10px; line-height:1.4; letter-spacing:.1em; }
.app-workspace :is(.notice,.errors) { padding:14px 16px; border-radius:12px; font-size:14px; }
.app-workspace :is(.table-wrap,.table-scroll) { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.app-workspace .staff-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.app-workspace .staff-summary .panel { display:flex; flex-direction:column; gap:6px; margin:0; padding:16px; }
.app-workspace .staff-summary strong { display:block; font-size:1.75rem; }
.app-workspace .staff-summary span:last-child { font-size:13px; }
.app-workspace .staff-create > summary { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.app-workspace .staff-create > summary h2 { margin:0; color:var(--ui-primary); }
.app-workspace .staff-create > summary span { font-size:1.5rem; }
.app-workspace :is(a,button,summary,input,select,textarea):focus-visible { outline:3px solid var(--ui-accent); outline-offset:3px; }
.mobile-shell,.mobile-security-menu { display:none; }
@media(max-width:760px) {
    .app-workspace .sidebar { display:none; }
    .app-workspace .workspace-body { margin-left:0; }
    .mobile-shell { display:flex; align-items:center; gap:12px; justify-content:space-between; position:sticky; top:0; z-index:40; background:#fff; padding:10px 14px; border-bottom:1px solid var(--ui-line); }
    .mobile-brand { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:800; color:var(--ui-text); text-decoration:none; min-height:44px; }
    .mobile-brand > span { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; background:var(--ui-primary); color:#fff; }
    .mobile-module-menu { margin-left:auto; }
    .mobile-module-menu > summary { padding:10px 12px; border-radius:10px; background:#edf1ff; list-style:none; }
    .mobile-module-menu > summary::-webkit-details-marker { display:none; }
    .mobile-module-menu nav { position:absolute; top:100%; left:0; right:0; background:#fff; padding:12px; margin:0; max-height:65dvh; overflow:auto; box-shadow:0 12px 24px #17244b22; border-bottom:1px solid var(--ui-line); }
    .mobile-module-menu nav a { display:flex; align-items:center; gap:12px; min-height:48px; padding:10px 14px; color:var(--ui-text); border-radius:10px; text-decoration:none; font-size:15px; }
    .mobile-module-menu nav a[aria-current] { background:#edf1ff; color:var(--ui-primary); font-weight:750; }
    .mobile-module-menu svg { width:20px; height:20px; }
    .mobile-shell form { margin:0; }
    .mobile-shell .mobile-logout { margin:0; padding:10px; background:#fff; color:var(--ui-primary); border:1px solid var(--ui-line); width:auto; }
    .app-workspace .topbar { min-height:0; padding:12px 16px; }
    .app-workspace .topbar-caption,.app-workspace .workspace-context small { display:none; }
    .app-workspace .workspace-context { font-size:14px; }
    .app-workspace .account-avatar { height:32px; width:32px; }
    .app-workspace main,.app-workspace .security-main { padding:16px 12px 28px; }
    .app-workspace .breadcrumbs { margin-bottom:12px; font-size:12px; }
    .app-workspace .page-heading .eyebrow { display:none; }
    .app-workspace .page-heading { margin-bottom:16px; }
    .app-workspace :is(.panel,.home-card,.visit-card,.create-home,.surface,.module-card) { padding:16px; margin-bottom:14px; }
    .app-workspace :is(.announcement-grid,.grid,.form-grid,.resident-grid,.resident-bottom-grid) { grid-template-columns:minmax(0,1fr); gap:14px; }
    .app-workspace :is(.home-selector,.filter-bar,.management-form) { display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; }
    .app-workspace :is(.home-selector,.filter-bar,.management-form) > * { min-width:0; width:100%; }
    .app-workspace .staff-summary { gap:6px; grid-template-columns:repeat(3,minmax(0,1fr)); }
    .app-workspace .staff-summary .panel { padding:12px 8px; border-radius:12px; }
    .app-workspace .staff-summary .eyebrow { display:none; }
    .app-workspace .staff-summary strong { font-size:1.5rem; }
    .app-workspace .staff-summary span:last-child { font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
    .app-workspace .announcement-banner > .tile-icon { display:none; }
    .app-workspace .announcement-banner { padding:16px; gap:8px; }
    .app-workspace .announcement-banner h2 { font-size:1.1rem; }
    .app-workspace :is(.table-scroll,.table-wrap)::before { content:"Desliza para ver todas las columnas →"; display:block; font-size:12px; color:var(--ui-muted); margin-bottom:8px; }
    .app-workspace .workspace-footer { margin-top:24px; padding:14px 0; }
    .desktop-security-menu { display:none; }
    .mobile-security-menu { display:block; padding:0 16px; background:#fff; border-bottom:1px solid var(--ui-line); }
    .mobile-security-menu .security-navigation { display:grid; grid-template-columns:minmax(0,1fr); padding:0 0 12px; overflow:visible; }
    .mobile-security-menu .security-navigation a { white-space:normal; min-height:48px; font-size:15px; }
    .app-workspace .security-header { gap:8px; padding:12px 16px; }
    .security-header > span { display:none; }
    .app-workspace .security-context { padding:12px 16px; }
    .security-context .eyebrow,.security-context small { display:none; }
    .app-workspace .security-context h2 { margin:0; font-size:1rem; }
    .app-workspace .security-welcome { padding:16px; margin:12px 0; gap:12px; }
    .login-screen .brand-panel { min-height:0; }
}
@media(prefers-reduced-motion:reduce) { .app-workspace * { scroll-behavior:auto; } }
.app-workspace .weekly-planner fieldset label { min-height:44px; }
@media(max-width:760px) {
    .app-workspace :is(.staff-actions a,.home-card > a,.visit-card > a) { display:inline-flex; align-items:center; min-height:44px; }
}
.app-workspace .staff-duty > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.app-workspace .staff-duty > summary h2 { margin:0; color:var(--ui-primary); }
@media print { .mobile-shell,.mobile-security-menu { display:none !important; } }
.app-workspace .staff-access-guide { border:0; margin-top:16px; }
@media(min-width:761px) {
    .app-workspace .staff-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .app-workspace .staff-fields > :is(legend,p,button) { grid-column:1/-1; }
}
.app-workspace .staff-registration-grid { grid-template-columns:minmax(0,1fr); }
/* One explicit movement at a time; hidden panels never rely on CSS alone. */
.access-operation-switch { grid-column:1/-1; min-width:0; }
.access-operation-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; background:#e7edf9; border:1px solid var(--ui-line); padding:6px; border-radius:14px; margin-bottom:16px; }
.access-operation-tabs[hidden],.access-operation-switch [data-operation-panel][hidden] { display:none; }
.app-workspace .access-operation-tabs button { margin:0; min-height:48px; background:transparent; border:0; color:var(--ui-text); font-weight:750; box-shadow:none; }
.app-workspace .access-operation-tabs button[aria-selected="true"] { background:var(--ui-primary); color:#fff; border-radius:10px; box-shadow:0 3px 8px #17244b22; }
.app-workspace .access-operation-tabs button[data-operation-tab="check_out"][aria-selected="true"] { background:#a34d14; }
.app-workspace .access-operation-switch .movement-card { margin-bottom:16px; }
.access-operation-switch { max-width:900px; width:100%; margin-inline:auto; }
.security-statusbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.security-statusbar > span { display:flex; align-items:center; gap:8px; padding:8px 12px; background:#e4f7f4; color:#15594f; border-radius:12px; }
.security-statusbar strong { font-size:1.3rem; }
.skip-link:not(:focus) { clip-path:inset(50%); width:1px; height:1px; padding:0; overflow:hidden; white-space:nowrap; }
.skip-link:focus { clip-path:none; width:auto; height:auto; position:fixed; top:8px; left:8px; z-index:100; overflow:visible; }
/* Resident app shell: touch launchpad and persistent private shortcuts. */
.resident-app-nav { display:none; }
.resident-balance-card { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 16px; padding:18px; border:1px solid #c8e8e2; border-radius:16px; background:#e9f8f4; color:#16594d; text-decoration:none; }
.resident-balance-card strong { display:block; font-size:1.75rem; line-height:1.4; }
.resident-balance-card strong small { font-size:12px; }
.resident-balance-card > small { flex-basis:100%; }
@media(max-width:760px) {
    .resident-app-workspace main { padding-bottom:calc(92px + env(safe-area-inset-bottom,0px)); }
    .resident-app-nav { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:45; gap:4px; margin:0; padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid var(--ui-line); box-shadow:0 -4px 18px #17244b0c; }
    .resident-app-nav a { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:48px; border-radius:12px; color:var(--ui-muted); font-size:12px; font-weight:650; text-decoration:none; }
    .resident-app-nav a[aria-current] { background:#edf1ff; color:var(--ui-primary); }
    .resident-app-nav svg { width:22px; height:22px; }
    .app-workspace .resident-app-launchpad { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .app-workspace .resident-app-launchpad .resident-tile,.app-workspace .resident-app-launchpad .resident-tile button { min-height:112px; padding:14px; margin:0; border-radius:16px; gap:8px; }
    .app-workspace .resident-app-launchpad form.resident-tile { padding:0; }
    .app-workspace .resident-app-launchpad .tile-icon { width:38px; height:38px; padding:8px; }
    .app-workspace .resident-app-launchpad strong { font-size:16px; line-height:1.2; }
    .app-workspace .resident-app-launchpad small { font-size:12px; line-height:1.35; }
    .app-workspace .resident-app-launchpad .tile-arrow { display:none; }
    .resident-app-workspace .resident-hero-compact { padding:16px; margin-bottom:16px; }
    .resident-app-workspace .resident-hero-compact h2 { font-size:1.25rem; }
    .resident-app-workspace .hero-orbit { display:none; }
    .resident-app-workspace .resident-activity > div { flex-wrap:wrap; gap:8px; }
    .resident-app-workspace .resident-activity strong { min-width:0; overflow-wrap:anywhere; }
    .resident-app-workspace .resident-invite form { display:grid; gap:12px; }
    .resident-app-workspace .resident-invite .module-icon { display:none; }
    .resident-app-workspace .finance-owner-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .resident-app-workspace .finance-owner-metrics .finance-metric { padding:14px; min-width:0; }
    .resident-app-workspace .finance-owner-metrics strong { font-size:1.35rem; overflow-wrap:anywhere; }
}
@media print { .resident-app-nav { display:none !important; } }
@media(max-width:760px) {
    .resident-app-workspace .resident-ledger-table::before { display:none; }
    .resident-app-workspace .resident-ledger-table table { display:block; width:100%; min-width:0; }
    .resident-app-workspace .resident-ledger-table thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
    .resident-app-workspace .resident-ledger-table tbody { display:block; }
    .resident-app-workspace .resident-ledger-table tbody tr { display:block; margin:0 0 14px; padding:10px; border:1px solid var(--ui-line); border-radius:12px; }
    .resident-app-workspace .resident-ledger-table td { display:grid; grid-template-columns:minmax(85px,.8fr) minmax(0,1.2fr); gap:8px; padding:10px 4px; min-width:0; overflow-wrap:anywhere; font-size:14px; }
    .resident-app-workspace .resident-ledger-table td::before { content:attr(data-label); color:var(--ui-muted); font-size:12px; }
    .resident-app-workspace .resident-ledger-table td > * { grid-column:2; min-width:0; }
    .resident-app-workspace .resident-ledger-table td[colspan] { display:block; }
    .resident-app-workspace .resident-ledger-table td[colspan]::before { content:none; }
}
.resident-home-switcher { margin-bottom:16px; border:1px solid var(--ui-line); border-radius:12px; padding:0 14px; background:#fff; }
@media(max-width:760px) {
    .resident-home-screen .page-description { display:none; }
    .resident-home-screen .page-heading { margin-bottom:12px; }
    .resident-app-workspace .resident-hero-compact { min-height:0; }
    .resident-app-workspace .resident-hero-compact h2 { margin:10px 0 4px; }
    .resident-app-workspace .resident-hero-compact p { margin:4px 0 0; font-size:13px; }
    .app-workspace .resident-app-launchpad small { display:none; }
}
/* Visual security hub: large colored cards and a compact app header. */
.security-app-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; padding:16px 24px; background:#fff; color:#123a48; border:0; border-bottom:1px solid #e3ebef; }
.security-app-brand { display:flex; flex-direction:column; color:#123a48; text-decoration:none; gap:3px; letter-spacing:0; }
.security-app-brand small { color:#56808b; font-size:10px; letter-spacing:.16em; }
.security-app-brand strong { font-size:1.5rem; font-weight:650; }
.security-app-account { position:relative; }
.security-app-account > summary { display:grid; place-items:center; width:48px; height:48px; padding:0; border-radius:50%; background:#063e50; color:#fff; list-style:none; font-weight:500; }
.security-app-account > summary::-webkit-details-marker { display:none; }
.security-app-account > div { position:absolute; right:0; top:100%; z-index:60; min-width:220px; background:#fff; padding:16px; border:1px solid var(--ui-line); border-radius:16px; box-shadow:0 10px 30px #17244b22; color:var(--ui-text); }
.security-app-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:8px auto 20px; max-width:850px; }
.security-app-tile { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px; min-height:180px; padding:20px 14px; background:#fff; color:#18313c; border:1px solid #e4e9ed; border-radius:24px; box-shadow:0 6px 16px #1d435b0b; text-decoration:none; text-align:center; }
.security-app-tile strong { font-size:19px; line-height:1.3; }
.security-app-icon { display:grid; place-items:center; width:76px; height:76px; border-radius:22px; color:white; background:#3455dc; border:1px solid #0002; }
.security-app-icon svg { width:38px; height:38px; max-height:none; stroke-width:2; }
.security-tone-purple .security-app-icon { background:#8526ae; }
.security-tone-mint .security-app-icon { background:#15966f; }
.security-tone-coral .security-app-icon { background:#df6423; }
.security-tone-teal .security-app-icon { background:#0c8392; }
.security-app-grid > :last-child:nth-child(odd) { grid-column:1/-1; min-height:110px; flex-direction:row; }
.security-app-count { text-align:center; color:#37636e; }
.security-app-count strong { color:#126d67; }
.security-app-help { max-width:850px; margin:0 auto 20px; text-align:center; color:#37636e; }
.security-app-nav { display:none; }
@media(max-width:760px) {
    .security-workspace { background:#f2f8fa; }
    .security-app-header { padding:12px 20px; }
    .security-app-brand strong { font-size:22px; }
    .security-workspace .security-context { background:transparent; padding:10px 20px; }
    .security-workspace .security-context h2 { font-size:14px; color:#42626d; }
    .security-workspace .security-main { padding:12px 16px 24px; }
    .security-workspace .security-main > h1 { font-size:22px; margin:0 0 6px; }
    .security-workspace .security-main > p { font-size:14px; margin:0 0 18px; }
    .security-app-grid { gap:14px; margin-top:6px; }
    .security-app-tile { min-height:155px; padding:18px 10px; gap:14px; border-radius:22px; }
    .security-app-icon { width:64px; height:64px; border-radius:20px; }
    .security-app-icon svg { width:32px; height:32px; }
    .security-app-tile strong { font-size:17px; }
    .security-app-grid > :last-child:nth-child(odd) { min-height:88px; }
    .security-app-grid > :last-child:nth-child(odd) .security-app-icon { width:48px; height:48px; border-radius:16px; }
    .security-app-nav { position:fixed; display:flex; justify-content:space-around; left:0; right:0; bottom:0; z-index:45; margin:0; padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px)); gap:4px; background:#fff; border-top:1px solid #dce7eb; }
    .security-app-nav a { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:48px; padding:4px; font-size:12px; font-weight:600; color:#37616f; border-radius:12px; text-decoration:none; }
    .security-app-nav a[aria-current] { background:#e4f2f8; color:#146883; }
    .security-app-nav svg { width:23px; height:23px; }
    .security-workspace .security-footer { padding-bottom:calc(92px + env(safe-area-inset-bottom,0px)); }
}
@media print { .security-app-nav,.security-app-header { display:none !important; } }
.security-workspace .security-context { border:0; border-radius:0; box-shadow:none; margin:0; }
.security-app-tile:active { transform:scale(.98); }
.security-workspace .security-app-tile { color:#18313c; }
.security-workspace .security-app-brand { color:#123a48; }

/* Caseta: the same visual language on every operational screen. */
.security-workspace main .workspace-intro { display:none; }
.security-workspace main .grid { gap:16px; }
.security-workspace main .grid > section,
.security-workspace main .grid > article,
.security-workspace .movement-card,
.security-workspace .filter-panel,
.security-workspace .filter-bar { border:1px solid #e5ebed; border-radius:22px; background:#fff; box-shadow:0 5px 18px #163b4510; padding:20px; }
.security-workspace .movement-heading { border:0; margin-bottom:16px; padding-bottom:0; }
.security-workspace .movement-heading .eyebrow { display:none; }
.security-workspace .movement-icon { border-radius:18px; background:#e2f5ee; color:#108667; width:54px; height:54px; }
.security-workspace .exit-card .movement-icon { background:#fff0e2; color:#c76625; }
.security-workspace .step-heading { border:0; padding-top:16px; margin-top:16px; font-size:17px; }
.security-workspace .step-heading span { background:#e8efff; color:#3453db; }
.security-workspace .pass-preview { border:0; border-radius:16px; background:#eef7fa; padding:16px; }
.security-workspace [data-qr-start] { width:100%; min-height:64px; border-radius:18px; background:#3655df; color:white; font-size:18px; }
.security-workspace [data-access-form] > button:last-child { width:100%; min-height:54px; border-radius:16px; }
.security-workspace .photo-capture { padding:14px; background:#f4f8fa; border-radius:16px; }
.security-workspace .photo-inputs { display:grid; gap:12px; }
.security-workspace .security-function-link { display:flex; align-items:center; min-height:80px; padding:20px; border-radius:22px; background:#eaf0ff; color:#2949cd; font-weight:700; text-decoration:none; }
.security-workspace .operations-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.security-workspace .operations-summary > div { padding:14px 10px; border-radius:18px; background:#fff; }
.security-workspace .operations-summary small { display:none; }
.security-workspace .operations-summary strong { display:block; font-size:26px; }
@media(max-width:760px) {
 .security-workspace main .grid { grid-template-columns:minmax(0,1fr); }
 .security-workspace .operations-summary p { font-size:12px; }
 .security-workspace main .grid > section,.security-workspace main .grid > article,.security-workspace .movement-card { padding:18px; }
 .security-workspace .movement-heading h2 { font-size:20px; }
 .security-workspace .photo-inputs input { max-width:100%; font-size:14px; }
 .security-workspace main table { display:block; overflow-x:auto; max-width:100%; }
}
.security-workspace .security-readers > .access-operation-switch { padding:0; background:transparent; border:0; box-shadow:none; }
.security-workspace .security-statusbar { padding:10px 14px; margin-bottom:16px; border:0; box-shadow:none; background:transparent; }
.security-workspace .security-statusbar a { font-size:13px; }
.identification-thumbnail { display:block; width:100%; max-height:360px; object-fit:contain; border-radius:16px; background:#f1f6f8; }
.evidence-dialog { width:min(960px,94vw); max-height:94dvh; padding:16px; border:0; border-radius:20px; color:#182d4d; }
.evidence-dialog::backdrop { background:#10243be0; }
.evidence-dialog header,.evidence-dialog footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.evidence-dialog button { min-width:44px; min-height:44px; }
.evidence-dialog-image { overflow:auto; max-height:65dvh; background:#eef3f5; border-radius:12px; }
.evidence-dialog-image img { display:block; max-width:100%; max-height:65dvh; margin:auto; object-fit:contain; }
.evidence-dialog-image img.is-expanded { width:200%; max-width:none; max-height:none; }
@media(max-width:480px) { .evidence-dialog { padding:12px; } .evidence-dialog footer button { padding:10px; font-size:14px; } }
.access-today { margin:20px 0; }
.access-today-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.access-today-card { display:flex; flex-direction:column; gap:8px; padding:20px; border:1px solid #e2e9f0; border-radius:20px; background:white; color:#182c4e; text-decoration:none; box-shadow:0 4px 15px #15304708; }
.access-today-card strong { font-size:36px; line-height:1.1; }
.access-today-card.entry strong { color:#11836b; }
.access-today-card.exit strong { color:#ce6542; }
.access-today-card.inside strong { color:#3454dc; }
.access-today-card small { color:#52677d; }
@media(max-width:600px) { .access-today-grid { gap:8px; } .access-today-card { padding:14px 10px; border-radius:16px; } .access-today-card span { font-size:13px; } .access-today-card strong { font-size:30px; } .access-today-card small { font-size:11px; } }
section.access-today { padding:0; border:0; background:transparent; box-shadow:none; }
.access-today .section-heading > span { font-size:13px; color:#5c7088; }
.access-today-card.entry { border-top:3px solid #22a58d; }
.access-today-card.exit { border-top:3px solid #ef8867; }
.access-today-card.inside { border-top:3px solid #526af0; }
.payment-query-total { padding:16px; background:#eaf2ff; border-radius:16px; color:#243c72; }
.payment-review-dialog { max-width:480px; }
.payment-review-dialog p { overflow-wrap:anywhere; }
.payment-review-dialog .form-actions { display:flex; justify-content:flex-end; gap:12px; }
.payment-review-dialog button { min-height:48px; }
@media(max-width:760px) {
 .collections-mobile-table { overflow:visible; }
 .collections-mobile-table table,.collections-mobile-table tbody { display:block; width:100%; }
 .collections-mobile-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .collections-mobile-table tbody tr { display:block; border:1px solid #dfe7ee; border-radius:18px; padding:14px; margin:12px 0; background:white; }
 .collections-mobile-table tbody td { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border:0; overflow-wrap:anywhere; }
 .collections-mobile-table tbody td::before { content:attr(data-label); font-weight:600; color:#52687c; }
 .collections-mobile-table tbody td:first-child { flex-wrap:wrap; font-weight:700; color:#3051d7; }
 .collections-mobile-table tbody td small { width:100%; }
 .collections-mobile-table tbody td[colspan]::before { content:none; }
 .finance-payment .form-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
 .finance-payment .finance-cta,.finance-payment .proof-download { display:flex; justify-content:center; margin:12px 0; min-height:48px; align-items:center; }
}
@media(max-width:760px) { .collections-mobile-table tbody td.collection-aging.is-zero { display:none; } }
.admin-portfolio-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.admin-portfolio-heading h2 { font-size:clamp(24px,3vw,36px); margin:8px 0; }
.admin-search { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-bottom:24px; }
.admin-search label { width:100%; }
.admin-search input { flex:1; min-width:180px; }
.admin-portfolio-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-bottom:24px; }
.admin-community-card { background:#fff; border:1px solid #e0e8f0; border-radius:24px; padding:24px; box-shadow:0 8px 24px #213c5e08; }
.admin-community-card header { display:flex; align-items:center; gap:14px; }
.admin-community-card header h2 { font-size:22px; margin:6px 0; }
.admin-community-card header small { color:#5a6e86; }
.admin-community-icon { display:grid; place-items:center; width:54px; height:54px; flex-shrink:0; border-radius:18px; color:#3858da; background:#eaf0ff; }
.admin-financial-kpi { display:flex; flex-direction:column; gap:8px; margin:24px 0 16px; padding:18px; border-radius:18px; color:white; background:linear-gradient(120deg,#3055df,#138eab); }
.admin-financial-kpi strong { font-size:30px; }
.admin-card-figures { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.admin-card-figures p,.admin-personnel-kpis p { display:flex; flex-direction:column; gap:6px; }
.admin-card-figures span { color:#65758c; font-size:13px; }
.admin-card-figures strong { color:#27415c; font-size:18px; }
.admin-overdue-meter { width:100%; height:14px; accent-color:#ef8668; }
.admin-personnel-kpis { display:flex; flex-wrap:wrap; gap:20px; margin:18px 0; }
.admin-personnel-kpis strong { font-size:28px; color:#177f85; }
.admin-personnel-kpis span { font-size:13px; color:#5d7088; }
.admin-open-community { display:block; padding:14px 16px; border-radius:14px; background:#edf2ff; color:#3453da; font-weight:700; text-decoration:none; }
.admin-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.admin-module-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.admin-module-grid a { display:flex; justify-content:space-between; align-items:center; min-height:80px; padding:18px; background:#edf5f7; color:#24546c; text-decoration:none; border-radius:18px; font-weight:700; }
.admin-governance-actions { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:24px; }
.governance-modules { border:1px solid #e0e7ee; border-radius:16px; padding:16px; margin:18px 0; }
.governance-modules label { display:flex; gap:12px; align-items:center; padding:10px 0; }
.governance-modules input[type=checkbox] { width:22px; height:22px; min-height:22px; flex-shrink:0; }
@media(max-width:760px) { .admin-portfolio-grid,.admin-detail-grid,.admin-governance-actions { grid-template-columns:1fr; } .admin-community-card { padding:18px; } .admin-module-grid { gap:10px; } .admin-financial-kpi strong { font-size:28px; } }
.admin-portfolio-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; background:linear-gradient(120deg,#2f53da,#148b9c); color:white; border-radius:24px; padding:24px; margin-bottom:24px; }
.admin-portfolio-totals > div { display:flex; flex-direction:column; gap:10px; }
.admin-portfolio-totals strong { font-size:clamp(20px,3vw,30px); }
.admin-portfolio-totals small { grid-column:1/-1; color:#e1efff; }
@media(max-width:600px) { .admin-portfolio-totals { grid-template-columns:1fr; padding:20px; } .admin-portfolio-totals > div { flex-direction:row; align-items:center; justify-content:space-between; gap:10px; } }
.admin-community-card > header { background:transparent; border:0; padding:0; margin:0; color:#182d4d; text-align:left; justify-content:flex-start; min-height:0; }
.admin-community-card > header h2 { color:#182d4d; }
.admin-personnel-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.admin-overdue-meter::-webkit-meter-optimum-value { background:#e98768; }
.admin-overdue-meter::-moz-meter-bar { background:#e98768; }
@media(max-width:480px) { .admin-personnel-kpis span { font-size:12px; } }
@media(max-width:600px) { .admin-portfolio-totals { gap:12px; } .admin-portfolio-totals strong { font-size:22px; } .admin-portfolio-totals small { font-size:11px; } .admin-portfolio-heading h2 { font-size:24px; } }
.admin-operations-panel { margin-top:20px; }
.admin-task-link { display:flex; gap:14px; justify-content:space-between; align-items:center; padding:16px 0; border-bottom:1px solid #e3eaf0; text-decoration:none; color:#294665; }
.admin-task-link small { display:block; color:#64768b; font-size:12px; margin-top:6px; }
.admin-staff-activity { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.admin-staff-activity p { display:flex; flex-direction:column; gap:10px; }
.admin-staff-activity strong { font-size:30px; color:#148b8c; }
.admin-staff-activity span { font-size:13px; color:#52677e; }
.governance-team-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:20px 0; }
.governance-access-summary { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
@media(max-width:600px) { .governance-team-filters { grid-template-columns:1fr; } .admin-staff-activity { gap:10px; } .admin-staff-activity span { font-size:12px; } }
.admin-task-link > span { min-width:0; overflow-wrap:anywhere; }
.admin-task-link > strong { flex-shrink:0; }
.governance-access-summary .badge { white-space:normal; overflow-wrap:anywhere; max-width:100%; }
.resident-agenda-shortcut { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#edf3ff; border:1px solid #dde6fa; padding:18px; border-radius:18px; margin:16px 0; color:#2f51d0; text-decoration:none; font-weight:700; }
.resident-agenda-shortcut span { font-size:13px; font-weight:400; }
.resident-followups a { display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid #e4eaf0; color:#24475d; text-decoration:none; }
.resident-followups strong { display:grid; place-items:center; min-width:38px; min-height:38px; background:#e4f5f1; color:#168570; border-radius:12px; }
.resident-followups a > span:last-child { margin-left:auto; }
.resident-agenda-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 0; text-decoration:none; border-bottom:1px solid #e4eaf0; color:#31516c; }
.resident-agenda-row strong { display:block; margin-top:6px; overflow-wrap:anywhere; }
.resident-agenda-row time { flex-shrink:0; font-size:13px; color:#64758d; }
.resident-agenda-filters { display:grid; grid-template-columns:1fr 1fr auto; gap:14px; align-items:end; margin:20px 0; }
.resident-agenda-list { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:760px) { .resident-agenda-filters,.resident-agenda-list { grid-template-columns:1fr; } .resident-agenda-shortcut { align-items:flex-start; } }
/* Scoped access catalogue: the same large choice cards on web and in both APKs. */
.access-catalog-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px;border-radius:22px;background:linear-gradient(115deg,#3354e8,#079ba1);color:white;margin-bottom:20px}.access-catalog-intro h2{font-size:26px}.access-catalog-intro p{color:#e3f2ff}.access-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.access-type-editor{display:grid;gap:14px;margin-top:16px}.access-type-editor label{display:grid;gap:7px}.access-type-editor input[type=time]{width:100%}.access-weekdays{display:flex;flex-wrap:wrap;gap:8px}.access-type-editor .access-weekdays label,.access-type-editor .access-all-day{display:flex;align-items:center;gap:7px}.access-weekdays label{padding:10px;border:1px solid var(--ui-line);border-radius:12px}.access-type-picker{min-width:0;margin:0 0 16px;padding:0;border:0}.access-type-picker legend{font-weight:750;margin-bottom:12px}.access-type-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.access-type-option{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 10px;border:2px solid #dee6ed;border-radius:20px;background:#fff;text-align:center;cursor:pointer;min-width:0;min-height:160px}.access-type-option:has(input:checked){border-color:#3354e8;background:#f0f4ff}.access-type-option input[type=radio]{position:absolute;top:10px;right:10px;margin:0}.access-type-option small{font-size:12px;color:var(--ui-muted);font-weight:400;overflow-wrap:anywhere;line-height:1.45}.access-type-option strong{overflow-wrap:anywhere}.access-type-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#edf0ff;color:#3354e8}.access-type-icon svg{width:28px;height:28px}.access-category-parcel .access-type-icon{background:#fff0e6;color:#ad4d0e}.access-category-food .access-type-icon{background:#e5f6f2;color:#126d5c}.access-category-service .access-type-icon{background:#f4ebff;color:#7730ae}.access-catalog-card details>summary,#nuevo-tipo>summary{min-height:48px;cursor:pointer;font-weight:700;color:#3354e8}.access-catalog-card p{font-size:14px}@media(max-width:760px){.access-catalog-grid{grid-template-columns:minmax(0,1fr)}.access-catalog-intro{flex-direction:column;align-items:stretch;padding:20px}.access-catalog-intro h2{font-size:23px}.access-type-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-weekdays{gap:6px}.access-weekdays label{padding:8px}}@media(max-width:350px){.access-type-choices{gap:8px}.access-type-option{padding:14px 8px}.access-type-option strong{font-size:14px}}
.app-workspace .access-catalog-intro h2,.app-workspace .access-catalog-intro .eyebrow{color:#fff}
