:root{--bg:#0b0b0c;--panel:#151517;--panel2:#1d1d20;--line:#343438;--text:#f4f4f5;--muted:#a2a2aa;--white:#fff;--green:#36c77a;--green-bg:#123824;--red:#ff6666;--red-bg:#3d1719;--amber:#f1bd4a;--amber-bg:#3a2b0d;--gray:#c8c8cd;--gray-bg:#2b2b30;--shadow:0 18px 50px rgba(0,0,0,.32);--radius:18px}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:linear-gradient(180deg,#080809 0,#101012 260px,#0b0b0c 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;padding:10px 22px;background:rgba(8,8,9,.94);backdrop-filter:blur(16px);border-bottom:1px solid #222}.brand{display:flex;align-items:center;gap:11px;min-width:190px}.brand img{width:46px;height:46px;object-fit:cover;border-radius:50%;border:2px solid #fff}.brand span{display:flex;flex-direction:column;letter-spacing:.05em}.brand strong{font-size:15px}.brand small{font-size:10px;color:var(--muted);letter-spacing:.02em}.nav{display:flex;align-items:center;gap:4px;flex:1;overflow:auto}.nav a{padding:9px 10px;border-radius:10px;color:#c8c8ce;font-size:13px;white-space:nowrap}.nav a:hover{background:#202024;color:#fff}.session{display:flex;align-items:center;gap:8px}.role{font-size:11px;color:var(--muted);white-space:nowrap}.page{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:32px 0 70px}footer{text-align:center;color:#67676f;font-size:11px;padding:22px;border-top:1px solid #202024}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:#bdbdc4;margin:0 0 8px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.page-head h1,.hero h1{font-size:clamp(30px,4vw,54px);line-height:1.02;margin:0 0 10px;letter-spacing:-.04em}.page-head p,.hero p{color:var(--muted);margin:0;max-width:760px}.hero{background:radial-gradient(circle at 80% 20%,#38383e 0,transparent 38%),linear-gradient(135deg,#171719,#0d0d0e);border:1px solid #2b2b30;border-radius:26px;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:var(--shadow);margin-bottom:22px;overflow:hidden}.hero.compact img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid #fff;filter:grayscale(1)}.hero h1{max-width:760px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;min-height:132px}.kpi.featured{background:#f2f2f3;color:#0b0b0c;border-color:#fff}.kpi span{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.kpi.featured span,.kpi.featured small{color:#555}.kpi strong{font-size:31px;line-height:1.1;margin:auto 0 5px;letter-spacing:-.04em}.kpi small{color:var(--muted);font-size:11px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.dues-summary{display:grid;grid-template-columns:1.2fr auto auto;align-items:center;gap:24px;background:#171719;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin:14px 0 22px}.dues-summary h2{margin:0 0 10px}.progress,.mini-progress{height:8px;border-radius:999px;background:#333;overflow:hidden}.progress span,.mini-progress span{height:100%;display:block;background:var(--green);border-radius:inherit}.status-pills{display:flex;gap:8px;flex-wrap:wrap}.status-pills.large{margin-bottom:20px}.pill,.badge{border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:800;padding:6px 10px;display:inline-flex;align-items:center;gap:5px}.pill.paid,.badge.active{color:#7df0ad;background:var(--green-bg);border-color:#245b3b}.pill.overdue,.badge.inactive{color:#ff9a9a;background:var(--red-bg);border-color:#662a2d}.pill.pending{color:#ffd977;background:var(--amber-bg);border-color:#5c4317}.pill.exempt,.badge.exempt{color:#dedee2;background:var(--gray-bg);border-color:#45454b}.badge.big{font-size:12px;padding:9px 14px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px}.panel h2{margin-top:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.panel-head h2{margin:0}.panel-head>a{color:#ddd;font-size:12px;border-bottom:1px solid #666}.movement-list{display:flex;flex-direction:column}.movement{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #28282c}.movement:last-child{border-bottom:0}.movement-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900}.movement-icon.in{background:var(--green-bg);color:var(--green)}.movement-icon.out{background:var(--red-bg);color:var(--red)}.movement div{display:flex;flex-direction:column;min-width:0}.movement strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.movement small,.activity-card small{color:var(--muted);font-size:11px}.movement>b{font-size:13px}.activity-card{display:flex;flex-direction:column;border:1px solid #323237;border-radius:13px;padding:13px;margin:9px 0;background:#1b1b1e}.activity-card:hover{border-color:#777;transform:translateY(-1px)}.activity-card span{font-size:9px;letter-spacing:.14em;color:#8f8f97;font-weight:800}.btn{border:1px solid #444;border-radius:11px;padding:10px 14px;background:#232327;color:#fff;font-weight:750;font-size:13px}.btn:hover{filter:brightness(1.15)}.btn.primary{background:#f5f5f5;color:#0a0a0b;border-color:#fff}.btn.ghost{background:transparent}.btn.danger{background:var(--red-bg);color:#ffaaaa;border-color:#6a292d}.btn.small{padding:7px 10px;font-size:11px}.btn.full{width:100%;padding:13px}.back{display:inline-block;color:#aaa;font-size:12px;margin-bottom:16px}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.member-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px}.member-card.inactive{opacity:.55}.avatar{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#eee;color:#111;font-size:19px;font-weight:900}.member-main{min-width:0}.member-main h3{margin:0 0 3px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-main p{margin:0 0 8px;color:var(--muted);font-size:11px}.badges{display:flex;gap:5px;flex-wrap:wrap}.badges .badge{font-size:9px;padding:4px 7px}dialog{border:1px solid #444;background:#111113;color:#fff;border-radius:20px;box-shadow:0 30px 100px #000;padding:0;width:min(680px,calc(100% - 24px))}dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}.form-card{padding:24px}.form-card h2{margin:0 0 20px;font-size:24px}.stack{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-card>label,.stack>label,.form-grid label{display:flex;flex-direction:column;gap:6px;color:#c7c7cd;font-size:12px;font-weight:700}input,select,textarea{width:100%;border:1px solid #3b3b41;border-radius:10px;padding:10px 11px;background:#1c1c20;color:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#aaa;box-shadow:0 0 0 3px rgba(255,255,255,.08)}label.check{flex-direction:row;align-items:center;padding-top:27px}.check input{width:auto}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.actions.split{justify-content:flex-end}.exempt-box{background:#242428;border:1px solid #3a3a40;border-radius:13px;padding:14px;margin-top:14px}.exempt-box .check{padding-top:0;margin-bottom:12px}.delete-row{padding:0 24px 22px}.dues-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.due-card{position:relative;border-radius:18px;padding:18px;min-height:178px;border:1px solid;display:flex;flex-direction:column}.due-card.paid{background:linear-gradient(150deg,#153b27,#10291c);border-color:#347e51}.due-card.overdue{background:linear-gradient(150deg,#40181b,#2a1113);border-color:#8a353a}.due-card.pending{background:linear-gradient(150deg,#392b10,#271e0d);border-color:#71551d}.due-card.exempt{background:linear-gradient(150deg,#29292e,#202024);border-color:#55555d}.due-state{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:900;letter-spacing:.12em}.state-icon{width:25px;height:25px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center}.due-card h3{font-size:16px;margin:22px 0 3px}.due-card p{font-size:12px;color:#c8c8cd;margin:0 0 14px}.quick-check{margin-top:auto;width:100%;display:flex;align-items:center;gap:8px;border:0;border-radius:10px;padding:9px;background:rgba(0,0,0,.25);color:#fff;font-weight:800;font-size:11px}.fake-check{width:20px;height:20px;border-radius:6px;border:2px solid currentColor;display:grid;place-items:center}.month-picker,.filter-row,.inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.month-picker input,.month-picker select{width:auto}.filter-row{margin-bottom:14px}.filter-row input,.filter-row select{width:auto;min-width:130px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--panel);margin-bottom:18px}table{width:100%;border-collapse:collapse;min-width:850px}th{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#96969e;text-align:left;background:#111113;position:sticky;top:0;padding:12px}td{padding:11px 12px;border-top:1px solid #2b2b30;font-size:12px;vertical-align:middle}td strong{display:block}td small{display:block;color:var(--muted);margin-top:3px}.right{text-align:right}.annulled{opacity:.42;text-decoration:line-through}.icon-btn{width:26px;height:26px;border-radius:50%;border:1px solid #633;background:#2c1517;color:#f88}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:16px}.segmented label input{display:none}.segmented span{display:block;padding:11px;text-align:center;border:1px solid #3b3b42;border-radius:10px;background:#1d1d21;font-size:12px}.segmented input:checked+span{background:#f3f3f4;color:#111;border-color:#fff;font-weight:800}.hint{color:var(--muted);font-size:11px}.cards-list{display:flex;flex-direction:column;gap:12px}.wide-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:18px;display:grid;grid-template-columns:1fr auto 22px;align-items:center;gap:20px}.wide-card:hover{border-color:#777;transform:translateY(-1px)}.wide-card h2{margin:8px 0 4px;font-size:20px}.wide-card p{margin:0;color:var(--muted);font-size:12px}.wide-stats{display:flex;gap:26px}.wide-stats span{display:flex;flex-direction:column;text-align:right}.wide-stats small{color:var(--muted);font-size:10px}.wide-stats strong{font-size:15px}.arrow{font-size:30px;color:#777}.benefit-kpis{grid-template-columns:repeat(4,1fr)}.cell-input{min-width:75px;padding:7px}.money-input{min-width:110px}.note{min-width:150px}.mini-progress{width:90px;height:6px;margin-bottom:4px}.finalize-box{background:linear-gradient(135deg,#efeff0,#c8c8cb);color:#111;border-radius:20px;padding:22px;display:flex;justify-content:space-between;align-items:center;gap:20px}.finalize-box h2{margin:0 0 4px}.finalize-box p{color:#555;margin:0}.finalize-box .eyebrow{color:#555}.finalize-box .btn.primary{background:#111;color:#fff;border-color:#111}.inline-form input,.inline-form select{width:auto;flex:1;min-width:130px}.report-cols{grid-template-columns:1.3fr .7fr}.report-bars{display:flex;flex-direction:column;gap:10px}.report-row{display:grid;grid-template-columns:35px 1fr 95px;gap:10px;align-items:center;font-size:11px}.bar-track{height:13px;background:#29292e;border-radius:4px;overflow:hidden;position:relative}.bar-track i{display:block;position:absolute;left:0;height:50%}.bar-income{top:0;background:var(--green)}.bar-expense{bottom:0;background:var(--red)}.report-row strong{text-align:right}.legend{display:flex;gap:18px;color:var(--muted);font-size:10px;margin-top:14px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}.legend-income{background:var(--green)}.legend-expense{background:var(--red)}.category-list>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #29292d;font-size:12px}.member-report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.member-report-grid>div{display:flex;flex-direction:column;background:#1e1e22;border-radius:10px;padding:11px}.member-report-grid span{font-size:12px}.member-report-grid strong{font-size:11px;margin-top:5px}.member-report-grid small{color:var(--muted)}.user-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.user-grid article{display:flex;justify-content:space-between;align-items:center;border:1px solid #333;border-radius:12px;padding:12px;background:#1b1b1e}.user-grid article div{display:flex;flex-direction:column}.user-grid small{color:var(--muted);font-size:10px;margin-top:4px}.audit-list{max-height:380px;overflow:auto}.audit-list>div{display:grid;grid-template-columns:150px 110px 1fr;gap:10px;border-bottom:1px solid #29292d;padding:9px 0;font-size:11px}.audit-list span{color:var(--muted)}.audit-list p{margin:0}.empty{color:#85858d;text-align:center;padding:28px;font-size:12px}.alert{padding:13px;border-radius:11px;background:#29292e;border:1px solid #444;margin-bottom:16px}.alert.danger{background:var(--red-bg);border-color:#633;color:#ffb1b1}.login-body{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at center,#2b2b30 0,#080809 60%)}.login-card{width:min(430px,100%);background:#111113;border:1px solid #3a3a40;border-radius:25px;padding:28px;box-shadow:0 30px 100px #000}.login-logo{display:block;width:170px;height:170px;object-fit:cover;border-radius:50%;border:5px solid #fff;margin:-100px auto 20px;box-shadow:0 12px 40px #000;filter:grayscale(1)}.login-copy{text-align:center;margin-bottom:20px}.login-copy h1{margin:0 0 6px;font-size:30px}.login-copy p{color:var(--muted);margin:0}.login-body .login-card{margin-top:80px}
@media(max-width:1100px){.topbar{flex-wrap:wrap}.nav{order:3;width:100%}.kpi-grid,.benefit-kpis{grid-template-columns:repeat(2,1fr)}.member-grid{grid-template-columns:repeat(2,1fr)}.dues-grid{grid-template-columns:repeat(3,1fr)}.wide-stats{gap:12px}.member-report-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.page{width:min(100% - 20px,1440px);padding-top:20px}.topbar{padding:9px 12px;gap:10px}.brand{min-width:0;flex:1}.session .role{display:none}.nav{gap:2px;padding-bottom:2px}.nav a{font-size:11px;padding:7px}.hero{padding:22px}.hero.compact img{display:none}.page-head{flex-direction:column}.page-head h1,.hero h1{font-size:34px}.kpi-grid,.benefit-kpis{grid-template-columns:1fr 1fr}.kpi{min-height:110px;padding:15px}.kpi strong{font-size:24px}.dues-summary{grid-template-columns:1fr}.two-col,.report-cols{grid-template-columns:1fr}.member-grid{grid-template-columns:1fr}.dues-grid{grid-template-columns:1fr 1fr}.wide-card{grid-template-columns:1fr 18px}.wide-stats{grid-column:1/-1;justify-content:space-between}.wide-stats span{text-align:left}.form-grid{grid-template-columns:1fr}.member-report-grid,.user-grid{grid-template-columns:1fr 1fr}.audit-list>div{grid-template-columns:1fr}.finalize-box{flex-direction:column;align-items:flex-start}.segmented{grid-template-columns:1fr}.inline-form{flex-direction:column;align-items:stretch}.inline-form input,.inline-form select{width:100%}}
@media(max-width:480px){.kpi-grid,.benefit-kpis,.dues-grid,.member-report-grid,.user-grid{grid-template-columns:1fr}.brand small{display:none}.role{display:none}.login-logo{width:140px;height:140px}.page-head .btn{width:100%}.month-picker{width:100%}.month-picker>*{flex:1}.status-pills{gap:5px}.pill{font-size:10px}.wide-stats{display:grid;grid-template-columns:1fr 1fr}.due-card{min-height:160px}}

/* v1.1.0 - navegación desplegable, áreas extensas con scroll y controles de caja */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 22px;background:rgba(8,8,9,.96);backdrop-filter:blur(16px);border-bottom:1px solid #222}
.menu-toggle{display:flex;align-items:center;justify-content:center;gap:10px;min-width:108px;border:1px solid #45454b;border-radius:12px;padding:10px 14px;background:#1d1d21;color:#fff;font-weight:800}
.menu-toggle:hover,.menu-toggle[aria-expanded="true"]{background:#f2f2f3;color:#101011;border-color:#fff}
.menu-toggle b{font-size:18px;line-height:1}.nav-dropdown{position:absolute;top:calc(100% + 8px);right:18px;width:min(720px,calc(100vw - 24px));padding:14px;background:rgba(17,17,19,.98);border:1px solid #44444a;border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.72);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.985);transform-origin:top right;transition:opacity .16s ease,transform .16s ease,visibility .16s;max-height:min(78vh,720px);overflow:auto}
.nav-dropdown.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
.nav-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nav-grid a{display:flex;flex-direction:column;gap:3px;padding:13px 14px;border:1px solid #303035;border-radius:13px;background:#1b1b1e}.nav-grid a:hover,.nav-grid a.active{border-color:#888;background:#28282d}.nav-grid a.active{box-shadow:inset 3px 0 0 #fff}.nav-grid span{font-size:13px;font-weight:850}.nav-grid small{font-size:10px;color:var(--muted)}
.nav-session{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:12px 4px 0;border-top:1px solid #343438}.nav-session>div{display:flex;flex-direction:column}.nav-session strong{font-size:12px}.nav-session small{font-size:10px;color:var(--muted);margin-top:2px}.nav-session form{margin:0}
.head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.head-actions form{margin:0}.balance-panel{background:linear-gradient(145deg,#1a1a1d,#111113)}.balance-current{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:15px;margin:10px 0 14px;border:1px solid #414147;border-radius:13px;background:#202024}.balance-current span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.balance-current strong{font-size:28px;letter-spacing:-.04em}.alert.success{background:var(--green-bg);border-color:#2d6e49;color:#9ff2bf}
.scroll-region,.table-wrap,.cards-list,.member-grid,.dues-grid,.member-report-grid{scrollbar-width:thin;scrollbar-color:#555 #1b1b1e}.scroll-region::-webkit-scrollbar,.table-wrap::-webkit-scrollbar,.cards-list::-webkit-scrollbar,.member-grid::-webkit-scrollbar,.dues-grid::-webkit-scrollbar,.member-report-grid::-webkit-scrollbar{width:9px;height:9px}.scroll-region::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb,.cards-list::-webkit-scrollbar-thumb,.member-grid::-webkit-scrollbar-thumb,.dues-grid::-webkit-scrollbar-thumb,.member-report-grid::-webkit-scrollbar-thumb{background:#555;border-radius:999px;border:2px solid #1b1b1e}
.table-wrap{max-height:min(68vh,760px);overflow:auto}.cards-list{max-height:min(68vh,760px);overflow:auto;padding-right:5px}.member-grid,.dues-grid{max-height:min(68vh,780px);overflow:auto;padding-right:5px}.member-report-grid{max-height:min(58vh,620px);overflow:auto;padding-right:5px}.scroll-region{max-height:min(58vh,620px);overflow:auto;padding-right:5px}.compact-scroll{max-height:min(42vh,440px)}
.table-wrap thead th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 #343438}.cards-list .wide-card:last-child,.member-grid .member-card:last-child,.dues-grid .due-card:last-child{margin-bottom:2px}
@media(max-width:1100px){.topbar{flex-wrap:nowrap}.nav-dropdown{order:initial;width:min(680px,calc(100vw - 24px))}}
@media(max-width:760px){.topbar{padding:8px 10px}.brand img{width:42px;height:42px}.menu-toggle{min-width:92px;padding:9px 12px}.nav-dropdown{position:fixed;top:67px;left:8px;right:8px;width:auto;max-height:calc(100vh - 82px);border-radius:16px}.nav-grid{grid-template-columns:1fr}.nav-grid a{padding:12px}.nav-session{position:sticky;bottom:-14px;margin:12px -14px -14px;padding:12px 14px;background:#111113}.head-actions{width:100%;justify-content:flex-start}.head-actions .btn,.head-actions form{flex:1}.head-actions form .btn{width:100%}.balance-current{align-items:flex-start;flex-direction:column}.balance-current strong{font-size:25px}.table-wrap,.cards-list,.member-grid,.dues-grid,.member-report-grid,.scroll-region{max-height:64vh}}
@media(max-width:480px){.menu-toggle span{font-size:12px}.nav-session{align-items:stretch;flex-direction:column}.nav-session .btn{width:100%}.head-actions{display:grid;grid-template-columns:1fr}.head-actions>*{width:100%}.brand strong{font-size:13px}}
/* v1.1.1 - los 12 meses del resultado anual siempre quedan visibles */
.monthly-results{max-height:none!important;overflow:visible!important;padding-right:0!important;gap:7px}
.monthly-results .report-row{min-height:22px}

/* v1.2.0 - gestión completa de usuarios y niveles de acceso */
.user-admin-panel{margin-top:18px}
.permissions-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}
.permissions-guide article{display:flex;flex-direction:column;gap:5px;padding:13px;border:1px solid #34343a;border-radius:13px;background:#19191c}
.permissions-guide strong{font-size:12px}
.permissions-guide span{color:var(--muted);font-size:10px;line-height:1.45}
.user-access-card{min-height:70px;gap:12px}
.user-access-card.user-disabled{opacity:.58}
.user-access-main{min-width:0}
.user-access-main>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;border:1px solid #4a4a50;font-size:9px;font-weight:850;letter-spacing:.03em}
.role-admin{background:#eee;color:#111;border-color:#fff}
.role-manager{background:#21354b;color:#b9dcff;border-color:#365f89}
.role-viewer{background:#29292e;color:#d3d3d8;border-color:#494950}
.alert.success{background:var(--green-bg);border-color:#28613f;color:#9ff0bc}
@media(max-width:760px){.permissions-guide{grid-template-columns:1fr}.user-admin-panel .panel-head{align-items:stretch;flex-direction:column}.user-admin-panel .panel-head .btn{width:100%}}

/* v1.3.0 - información de emergencia y buscador de miembros */
.member-search-panel{padding:15px 18px}.member-search-form{display:flex;flex-direction:column;gap:7px}.member-search-form>label{font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:#b8b8bf}.member-search-form>div{display:flex;gap:8px;align-items:center}.member-search-form input{flex:1}.member-search-panel .hint{margin:9px 0 0}.member-dialog{width:min(880px,calc(100% - 24px));max-height:92vh;overflow:auto}.member-form-card{display:flex;flex-direction:column;gap:14px}.form-section{padding:15px;border:1px solid #35353b;border-radius:14px;background:#18181b}.form-section>label{display:flex;flex-direction:column;gap:6px;color:#c7c7cd;font-size:12px;font-weight:700;margin-top:13px}.form-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.form-section-head h3{margin:2px 0 0;font-size:17px}.form-section-head>p{max-width:260px;margin:0;color:var(--muted);font-size:10px;text-align:right}.emergency-form-section{border-color:#5b4545;background:linear-gradient(145deg,#21191a,#18181b)}.emergency-member-card{align-items:start}.emergency-member-card .avatar{margin-top:1px}.emergency-details{grid-column:1/-1;border-top:1px solid #34343a;padding-top:10px}.emergency-details summary{cursor:pointer;color:#d7d7dc;font-size:11px;font-weight:800;list-style:none}.emergency-details summary::-webkit-details-marker{display:none}.emergency-details summary::before{content:'＋';display:inline-grid;place-items:center;width:19px;height:19px;margin-right:7px;border:1px solid #4a4a51;border-radius:50%;font-size:12px}.emergency-details[open] summary::before{content:'−'}.emergency-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px}.emergency-info-item{display:flex;flex-direction:column;gap:3px;min-width:0;padding:10px;border-radius:10px;background:#1b1b1f;border:1px solid #303035}.emergency-info-item.wide{grid-column:1/-1}.emergency-info-item span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em}.emergency-info-item strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.emergency-info-item small{color:#c1c1c7;font-size:10px}.emergency-allergies{background:#281b1d;border-color:#5c3238}.badge.blood{background:#4a2025;color:#ffd2d6;border-color:#7b343d}
@media(max-width:760px){.member-search-form>div{align-items:stretch;flex-direction:column}.member-search-form .btn{width:100%}.form-section-head{flex-direction:column;gap:5px}.form-section-head>p{text-align:left;max-width:none}.emergency-info-grid{grid-template-columns:1fr}.emergency-info-item.wide{grid-column:auto}.member-dialog{max-height:95vh}.member-form-card{padding:18px}}

/* Liberados Uruguay v1.3.2 - fotos y ficha visual de miembros */
.member-photo-thumb{width:56px;height:56px;border-radius:15px;overflow:hidden;display:grid;place-items:center;background:#eee;color:#111;font-size:21px;font-weight:900;border:1px solid #4b4b52;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.member-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.member-card-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.member-card-actions .btn{white-space:nowrap}
.member-photo-form-section{border-color:#4b4b56;background:linear-gradient(145deg,#1e1e23,#18181b)}
.photo-upload-row{display:grid;grid-template-columns:118px 1fr;gap:18px;align-items:center}
.photo-current-preview{width:118px;height:118px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:#eee;color:#111;border:2px solid #55555e;font-size:35px;font-weight:900}
.photo-current-preview img{width:100%;height:100%;object-fit:cover;display:block}
.photo-upload-fields{display:flex;flex-direction:column;gap:9px;min-width:0}
.photo-upload-fields>label:not(.check){display:flex;flex-direction:column;gap:7px;color:#c7c7cd;font-size:12px;font-weight:700}
.photo-upload-fields input[type=file]{padding:8px;background:#202024}
.photo-remove-check{padding-top:0!important;color:#ffb4b4!important}
.member-profile-dialog{width:min(920px,calc(100% - 24px));max-height:94vh;overflow:auto}
.member-profile-sheet{padding:24px}
.member-profile-hero{position:relative;display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center;padding:18px;border:1px solid #3a3a42;border-radius:20px;background:linear-gradient(145deg,#232329,#151518)}
.member-profile-photo{width:190px;height:190px;border-radius:22px;overflow:hidden;display:grid;place-items:center;background:#eee;color:#111;border:3px solid #fff;font-size:64px;font-weight:900;box-shadow:0 16px 38px rgba(0,0,0,.35)}
.member-profile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.member-profile-heading{min-width:0;padding-right:34px}
.member-profile-heading h2{font-size:clamp(27px,4vw,43px);line-height:1.05;letter-spacing:-.035em;margin:0 0 8px;overflow-wrap:anywhere}
.member-profile-heading>p:not(.eyebrow){margin:0 0 14px;color:var(--muted)}
.profile-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:1px solid #555;border-radius:50%;background:#151518;color:#fff;font-size:23px;line-height:1}
.profile-section{margin-top:16px;padding:18px;border:1px solid #35353b;border-radius:17px;background:#18181b}
.emergency-profile-section{border-color:#684148;background:linear-gradient(145deg,#24191b,#18181b)}
.member-extra-section{background:#17171a}
.profile-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:13px}
.profile-section-head h3{margin:2px 0 0;font-size:18px}
.profile-emergency-grid{margin-top:0}
.profile-emergency-grid .emergency-info-item{padding:13px}
.profile-emergency-grid .emergency-info-item span{font-size:10px}
.profile-emergency-grid .emergency-info-item strong{font-size:13px}
@media(max-width:760px){.emergency-member-card{grid-template-columns:56px 1fr}.member-card-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.member-card-actions .btn:only-child{grid-column:1/-1}.photo-upload-row{grid-template-columns:90px 1fr}.photo-current-preview{width:90px;height:90px;border-radius:15px}.member-profile-sheet{padding:14px}.member-profile-hero{grid-template-columns:100px 1fr;gap:14px;padding:14px}.member-profile-photo{width:100px;height:100px;border-radius:16px;font-size:39px}.member-profile-heading{padding-right:26px}.member-profile-heading h2{font-size:25px}.profile-close{top:9px;right:9px}.profile-section{padding:14px}}
@media(max-width:480px){.photo-upload-row{grid-template-columns:1fr}.photo-current-preview{width:112px;height:112px}.member-profile-hero{grid-template-columns:1fr;text-align:center}.member-profile-photo{width:140px;height:140px;margin:0 auto}.member-profile-heading{padding:0}.member-profile-heading .badges{justify-content:center}.member-card-actions{grid-template-columns:1fr}.member-card-actions .btn{grid-column:auto!important}}

/* Liberados Uruguay v1.4.0 - Contactos, Inventario y permisos por área */
.permissions-guide-four{grid-template-columns:repeat(4,1fr)}
.role-member{background:#2b2b30;color:#ededf0;border-color:#505058}
.role-logistics{background:#3b2d13;color:#ffe09a;border-color:#70531d}
.filter-panel{padding:15px 18px}
.filter-grid{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:10px;align-items:end}
.filter-grid.inventory-filter{grid-template-columns:2fr 1fr 1fr auto}
.filter-grid label{display:flex;flex-direction:column;gap:6px;color:#c7c7cd;font-size:11px;font-weight:750}
.filter-actions{display:flex;gap:7px;align-items:center}
.entity-dialog{width:min(940px,calc(100% - 24px));max-height:94vh;overflow:auto}
.entity-form{display:flex;flex-direction:column;gap:14px}
.entity-form .form-section>label{display:flex;flex-direction:column;gap:7px;color:#c7c7cd;font-size:12px;font-weight:700;margin-top:10px}
.contact-grid,.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contact-card,.inventory-card{display:grid;grid-template-columns:170px 1fr;min-height:250px;background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.18)}
.entity-cover,.inventory-photo{min-height:250px;background:linear-gradient(145deg,#ececee,#b9b9bf);display:grid;place-items:center;overflow:hidden;color:#111;font-size:64px;font-weight:900}
.entity-cover img,.inventory-photo img{width:100%;height:100%;object-fit:cover;display:block}
.entity-body,.inventory-content{padding:18px;min-width:0}
.entity-title-row,.inventory-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.entity-title-row h2,.inventory-top h2{font-size:22px;line-height:1.08;margin:10px 0 3px;overflow-wrap:anywhere}
.entity-title-row p,.inventory-top p{margin:0;color:var(--muted);font-size:11px}
.entity-meta{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}
.entity-meta span{font-size:10px;color:#d0d0d6;background:#202024;border:1px solid #34343a;border-radius:999px;padding:6px 9px;overflow-wrap:anywhere}
.phone-list{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.phone-list a{display:inline-flex;padding:8px 10px;border:1px solid #356448;background:#163422;color:#91efb6;border-radius:10px;font-size:12px;font-weight:800}
.entity-details{color:#c7c7cd;font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.mini-gallery{display:flex;gap:7px;margin-top:13px}
.mini-gallery img{width:50px;height:50px;object-fit:cover;border-radius:10px;border:1px solid #4a4a50}
.photo-remove-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.photo-remove-grid label{display:flex;flex-direction:column;gap:6px;padding:7px;border:1px solid #3b3b41;border-radius:12px;background:#202024;font-size:10px;color:#ddd}
.photo-remove-grid img{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:8px}
.photo-remove-grid span{display:flex;align-items:center;gap:6px}
.photo-remove-grid input{width:auto}
.empty-state{grid-column:1/-1;text-align:center;padding:45px}
.inventory-kpis{grid-template-columns:repeat(4,1fr)}
.inventory-card{grid-template-columns:190px 1fr;min-height:280px}
.inventory-photo{min-height:280px}
.inventory-card.state-bad,.inventory-card.state-out{border-color:#713438}
.inventory-card.state-repair{border-color:#775d20}
.condition-note{padding:10px 12px;background:#2b2021;border:1px solid #563438;border-radius:11px;color:#f0c6ca;font-size:11px;line-height:1.45}
.hint strong{color:#fff}
@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,1fr)}.filter-grid label:first-child{grid-column:span 2}.filter-actions{align-self:end}.contact-grid,.inventory-grid{grid-template-columns:1fr}.permissions-guide-four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.filter-grid,.filter-grid.inventory-filter{grid-template-columns:1fr}.filter-grid label:first-child{grid-column:auto}.filter-actions .btn{flex:1}.contact-card,.inventory-card{grid-template-columns:110px 1fr;min-height:210px}.entity-cover,.inventory-photo{min-height:210px;font-size:42px}.entity-title-row,.inventory-top{flex-direction:column}.entity-title-row .btn,.inventory-top .btn{width:100%}.photo-remove-grid{grid-template-columns:repeat(2,1fr)}.inventory-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.contact-card,.inventory-card{grid-template-columns:1fr}.entity-cover,.inventory-photo{height:190px;min-height:190px}.permissions-guide-four,.inventory-kpis{grid-template-columns:1fr}.photo-remove-grid{grid-template-columns:1fr 1fr}}


/* Liberados Uruguay v1.4.1 - respaldos automáticos discretos */
.backup-settings{margin-top:26px;border-top:1px solid #242428;color:#a8a8af}
.backup-settings>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 4px;cursor:pointer;user-select:none}
.backup-settings>summary::-webkit-details-marker{display:none}
.backup-settings>summary span:first-child{display:flex;flex-direction:column;gap:3px}
.backup-settings>summary strong{font-size:12px;color:#c7c7cd;font-weight:750}
.backup-settings>summary small{font-size:10px;color:#73737b}
.backup-status-dot{width:7px;height:7px;border-radius:50%;background:#4f4f56;box-shadow:0 0 0 3px rgba(255,255,255,.03)}
.backup-status-dot.ok{background:#3f8d61}
.backup-status-dot.error{background:#b94b52}
.backup-settings-body{padding:4px 4px 18px}
.backup-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.backup-overview>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#121214;border:1px solid #29292d;border-radius:11px}
.backup-overview span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#777780}
.backup-overview strong{font-size:11px;color:#d0d0d5}
.backup-last-success{margin:8px 2px 12px;font-size:10px}
.backup-inline-error{margin:8px 0 12px;padding:10px 12px;border:1px solid #543034;background:#261719;color:#e8b5b8;border-radius:10px;font-size:10px;overflow-wrap:anywhere}
.backup-list{border:1px solid #29292d;border-radius:12px;overflow:hidden;background:#111113}
.backup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #252529}
.backup-row:last-child{border-bottom:0}
.backup-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.backup-row strong{font-size:11px;color:#cacacf}
.backup-row small{font-size:9px;color:#777780}
.backup-row .btn{padding:6px 9px;color:#a9a9b0;border-color:#38383d}
.backup-empty{padding:18px;font-size:10px}
.backup-manual-form{display:flex;justify-content:flex-end;margin-top:10px}
.backup-manual-form .btn{color:#8d8d95;border-color:#303035}
@media(max-width:650px){.backup-overview{grid-template-columns:1fr}.backup-row{align-items:flex-start}.backup-row .btn{flex:none}}


/* v1.4.3 · historial de miembros + recuperación discreta de respaldos */
.member-history-details{margin-top:14px;border-top:1px solid var(--line,#dedede);padding-top:10px}
.member-history-details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted,#6f6f6f);font-size:.9rem}
.member-history-details>summary::-webkit-details-marker{display:none}
.member-history-details>summary span{display:flex;flex-direction:column;gap:2px}
.member-history-details>summary strong{color:inherit;font-size:.92rem}
.member-history-details>summary small{font-size:.76rem;font-weight:400}
.member-history-list{display:grid;gap:8px;margin-top:10px;max-height:260px;overflow:auto;padding-right:3px}
.member-history-row{border:1px solid var(--line,#dedede);border-radius:10px;padding:9px 10px;background:rgba(127,127,127,.035)}
.member-history-row>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.member-history-row>div strong{font-size:.86rem}.member-history-row>div small{color:var(--muted,#777);font-size:.72rem}
.member-history-row p{margin:6px 0 0;font-size:.82rem;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.member-history-row p span{color:var(--muted,#777)}.member-history-row p i{font-style:normal;opacity:.55}
.backup-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.backup-recovery-tools{position:relative;font-size:.78rem;color:var(--muted,#777)}
.backup-recovery-tools>summary{cursor:pointer;list-style:none;padding:6px 8px;opacity:.7}.backup-recovery-tools>summary::-webkit-details-marker{display:none}
.backup-recovery-menu{margin-top:7px;padding:10px;border:1px solid var(--line,#dedede);border-radius:10px;background:var(--panel,#fff);display:grid;gap:9px;min-width:min(330px,75vw)}
.backup-restore-form{border-top:1px solid var(--line,#dedede);padding-top:9px}.backup-restore-form label{font-size:.78rem}.backup-restore-form input{margin-top:5px}
@media(max-width:700px){.backup-row-tools{align-items:flex-start}.backup-row-actions{justify-content:flex-start}.backup-recovery-menu{min-width:0;width:100%}}

.backup-row>.backup-row-actions{flex-direction:row;align-items:center;gap:7px;min-width:auto}
@media(max-width:700px){.backup-row>.backup-row-actions{flex-direction:row;flex-wrap:wrap}}
