:root{--ink:#24103f;--purple:#4b005f;--purple-dark:#2c0039;--orange:#ff6b00;--orange-soft:#fff2e8;--page:#f7f3f8;--line:#e7ddea;--muted:#756984;--success:#0f7b55;--warning:#b76a00;--danger:#b42318;--white:#fff}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0;overflow-x:hidden}body{background:var(--page);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,select:disabled,input:disabled{cursor:not-allowed;opacity:.62}.login-shell{background:var(--purple-dark);place-items:center;min-height:100vh;padding:20px;display:grid}.login-panel{gap:14px;width:min(100%,520px);display:grid}.login-logo{object-fit:cover;border-radius:8px;justify-self:center;width:180px;height:180px}.login-copy{text-align:center}.login-copy h1,.topbar-copy h1,.surface h2{margin:0}.login-copy h1{color:var(--white);font-size:32px;font-weight:900}.login-copy p{color:#eadff0;margin:8px 0 0;font-weight:700}.language-switch{background:var(--white);border-radius:8px;justify-self:center;gap:4px;padding:3px;display:flex}.language-switch button{min-width:48px;min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-weight:900}.language-switch .active{background:var(--orange);color:var(--white)}.search-box{background:var(--white);border-radius:8px;align-items:center;gap:10px;min-height:50px;padding:0 14px;display:flex}.search-box input{width:100%;min-width:0;color:var(--ink);border:0;outline:0;font-weight:800}.password-toggle{color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:-4px -4px -4px 0;padding:4px;display:inline-flex}.password-toggle:hover{color:var(--ink)}.login-error{color:var(--white);text-align:center;margin:0;font-weight:900}.version-notice{z-index:20;border:1px solid var(--line);background:var(--white);width:min(100% - 32px,420px);color:var(--ink);border-radius:8px;gap:12px;padding:14px;display:grid;position:fixed;bottom:16px;right:16px;box-shadow:0 18px 36px #20002b38}.version-notice strong{font-weight:900}.version-notice p{color:var(--muted);margin:4px 0 0;font-weight:800}.version-actions{flex-wrap:wrap;gap:8px;display:flex}.primary-action,.secondary-action{white-space:normal;overflow-wrap:anywhere;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-width:0;max-width:100%;min-height:46px;padding:0 16px;font-weight:900;line-height:1.15;display:inline-flex}.primary-action{background:var(--orange);color:var(--white)}.secondary-action{border:1px solid var(--line);background:var(--white);color:var(--ink)}.officers-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:46px;padding-bottom:8px;display:flex}.officers-info{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.officers-info>span{width:150px;color:var(--muted);text-transform:uppercase;flex:none;font-size:12px;font-weight:900}.officers-info strong{flex:1;min-width:0;font-weight:900}.officers-list{display:block}.officer-chip{white-space:nowrap}.estatutos-actions{flex-direction:column;flex:none;align-items:stretch;gap:8px;display:flex}.estatutos-button{white-space:nowrap;text-decoration:none}.vote-autoclose{align-items:center;gap:12px;display:flex}.toggle-switch{background:var(--line);cursor:pointer;border:none;border-radius:999px;flex:none;width:46px;height:26px;padding:0;transition:background .18s;position:relative}.toggle-switch.on{background:var(--orange)}.toggle-knob{background:var(--white);border-radius:50%;width:20px;height:20px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #14082440}.toggle-switch.on .toggle-knob{transform:translate(20px)}.toggle-label{color:var(--ink);font-weight:800}.push-controls{gap:12px;display:grid}.push-status{color:var(--success);margin:0;font-weight:800}.vote-closes{color:var(--warning);margin:4px 0 0;font-size:13px;font-weight:800}.member-picker{gap:8px;max-height:300px;padding-right:4px;display:grid;overflow:auto}.member-login{text-align:left;min-height:56px;color:var(--white);background:#ffffff1a;border:1px solid #fff3;border-radius:8px;padding:9px 14px}.member-login span,.member-login small{display:block}.member-login span{font-weight:900}.member-login small{color:#dfcfe7;margin-top:3px;font-weight:700}.app-shell{background:var(--page);min-height:100vh}.topbar{background:var(--purple-dark);color:var(--white);align-items:center;gap:12px;padding:12px 16px;display:flex}.topbar-logo{object-fit:cover;border-radius:8px;width:58px;height:58px}.topbar-copy{flex:1;min-width:0}.topbar-copy h1{font-size:21px;font-weight:900}.topbar-copy p{color:#dfcfe7;margin:3px 0 0;font-size:13px;font-weight:700}.tabs{background:var(--purple-dark);grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:8px;display:grid}.tab{min-width:0;min-height:50px;color:var(--white);background:0 0;border:0;border-radius:8px;place-items:center;gap:2px;font-size:12px;font-weight:900;display:grid}.tab.active{color:var(--orange);background:#ffffff1f}.content{width:min(1180px,100%);margin:0 auto;padding:16px}.status-layout,.payment-grid,.manager-layout,.settings-grid,.financial-layout,.voting-layout{gap:14px;display:grid}.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.skeleton-card{gap:12px;display:grid}.skeleton-line,.skeleton-box{background:linear-gradient(90deg,#efe6f2 25%,#fff 37%,#efe6f2 63%) 0 0/400% 100%;border-radius:8px;animation:1.2s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-line{height:18px}.skeleton-line.title{width:65%;height:24px}.skeleton-line.short{width:38%}.skeleton-box{height:180px}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.status-layout,.payment-grid,.financial-layout,.voting-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.manager-layout{grid-template-columns:1fr}.surface{background:var(--white);border-radius:8px;min-width:0;padding:16px;box-shadow:0 10px 24px #20002b1c}.collapsible{display:block}.collapsible summary,.term-detail summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-width:0;list-style:none;display:flex}.collapsible summary::-webkit-details-marker{display:none}.term-detail summary::-webkit-details-marker{display:none}.collapsible summary svg,.term-detail summary svg{color:var(--orange);flex:none;transition:transform .16s}.collapsible summary h2,.term-detail summary strong{overflow-wrap:anywhere;min-width:0}.collapsible[open] summary svg,.term-detail[open] summary svg{transform:rotate(180deg)}.collapsible-body{margin-top:14px}.section-heading,.payment-head{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.section-heading h2,.payment-head h2,.surface h2{color:var(--ink);font-size:20px;font-weight:900}.section-heading strong,.payment-head strong{color:var(--ink);font-size:24px}.compact-heading{justify-content:flex-start}.payment-head p{color:var(--muted);margin:4px 0 0;font-weight:800}.status-list,.review-list,.manager-qr-list{gap:8px;margin-top:14px;display:grid}.manager-review-layout{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.status-row,.review-row,.manager-qr-row,.info-row{border-bottom:1px solid var(--line);align-items:center;gap:16px;min-width:0;min-height:46px;padding-bottom:8px;display:flex}.status-row span,.review-row strong,.manager-qr-row strong,.info-row strong{font-weight:900}.status-row span,.review-row>div:first-child,.manager-qr-row>div,.info-row strong{flex:1;min-width:0}.status-pill{background:var(--white);text-align:center;white-space:normal;border:1px solid;border-radius:999px;align-items:center;max-width:100%;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.status-pill.paid{color:var(--success)}.status-pill.pending{color:var(--warning)}.status-pill.rejected{color:var(--danger)}.status-pill.not_submitted{color:var(--muted)}.status-pill.vote-status.voted{color:var(--success)}.status-pill.vote-status.not-voted{color:var(--danger)}.payment-panel{gap:14px;display:grid}.payment-type-grid>.month-controls{order:-2}.payment-panel.compact-record{gap:10px}.qr-image{object-fit:contain;background:var(--white);border-radius:8px;width:100%;max-height:460px}.qr-placeholder{border:1px dashed var(--line);min-height:220px;color:var(--muted);background:#fffaf5;border-radius:8px;place-items:center;font-weight:900;display:grid}.empty-action{justify-items:start;gap:10px;display:grid}.payment-review-panel{border-top:1px solid var(--line);gap:12px;padding-top:10px;display:grid}.month-controls{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.month-review-banner{border-radius:10px;grid-column:1/-1;align-items:center;gap:8px;padding:10px 14px;display:flex}.month-review-banner span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.month-review-banner strong{color:var(--ink);text-transform:capitalize;font-size:15px}.history-table{gap:0;width:100%;display:grid}.history-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 104px;align-items:center;gap:8px;min-width:0;padding:8px 4px;display:grid}.history-row span{overflow-wrap:anywhere;min-width:0}.history-row>span:last-child{justify-self:end}.history-row.history-head span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.qr-pdf-link{color:var(--purple);align-items:center;gap:6px;font-weight:900;text-decoration:none;display:inline-flex}.qr-status-ok{color:var(--success);margin-top:4px;font-size:12px;font-weight:800;display:inline-block}.history-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.history-filters select,.history-filters .history-search{border:1px solid var(--line);background:var(--white);min-width:0;height:38px;color:var(--ink);border-radius:8px;padding:0 10px;font-weight:700}.history-filters .history-search{flex:160px}.history-filters .secondary-action{height:38px;margin-left:auto}.birthday-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.birthday-picker select{border:1px solid var(--line);background:var(--white);min-width:0;height:40px;color:var(--ink);border-radius:8px;padding:0 8px;font-weight:700}.proof-preview-link{display:block}.proof-pdf-card{border:1px solid var(--line);color:var(--purple);overflow-wrap:anywhere;border-radius:8px;align-items:center;gap:10px;padding:14px;font-weight:800;text-decoration:none;display:flex}.month-controls label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.month-controls select{border:1px solid var(--line);background:var(--white);min-width:0;height:42px;color:var(--ink);border-radius:8px;padding:0 12px;font-weight:800}.proof-line{border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;min-width:0;min-height:44px;padding:0 12px;font-weight:800;display:flex}.proof-line span{overflow-wrap:anywhere;word-break:break-word;flex:1;min-width:0}.proof-line a{color:var(--purple);font-weight:900}.proof-preview{border:1px solid var(--line);background:var(--white);border-radius:8px;width:100%}.proof-list{gap:10px;display:grid}.proof-list-item{gap:8px;display:grid}.proof-actions-line{justify-content:space-between;align-items:center;gap:12px}.proof-link-copy{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.proof-link-copy span{flex:1}.proof-inline-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.proof-action-link,.proof-delete-button{white-space:nowrap;min-height:38px;padding:0 12px}.proof-action-link{text-decoration:none}.proof-delete-button{color:var(--danger)}.proof-link{color:var(--purple);text-decoration:none}.proof-count{color:var(--muted);text-transform:uppercase;margin:-4px 0 0;font-size:12px;font-weight:900}.proof-image{object-fit:contain;max-height:360px}.proof-pdf{height:420px}.file-action,.icon-action,.role-action-button{position:relative}.file-action input,.icon-action input,.role-action-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.manager-qr-row img,.manager-qr-placeholder{border:1px solid var(--line);border-radius:8px;width:68px;height:84px}.manager-qr-row img{object-fit:contain;background:var(--white)}.manager-qr-placeholder{color:var(--muted);background:#fffaf5;place-items:center;display:grid}.manager-qr-row p,.review-row p,.review-row small,.role-row p{color:var(--muted);margin:3px 0 0;font-weight:700}.review-row{align-items:flex-start;padding-top:6px}.review-member{flex-direction:column;gap:4px;min-width:0;line-height:1.35;display:flex}.review-member strong,.review-member small{overflow-wrap:anywhere}.review-status-col{flex-direction:column;flex:none;align-items:flex-start;gap:6px;width:150px;display:flex}.review-view-link{color:var(--purple);white-space:nowrap;align-items:center;gap:4px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.review-proof-links{gap:4px;display:grid}.movement-register{margin-top:0}.movement-register-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.movement-register-head h3{color:var(--ink);margin:0;font-size:15px}.movement-register-head .secondary-action{margin-left:auto}.icon-action{border:1px solid var(--line);background:var(--white);width:42px;height:42px;color:var(--success);border-radius:8px;place-items:center;display:inline-grid}.icon-action.danger{color:var(--danger)}.role-action-button{border:1px solid var(--line);background:var(--white);min-width:0;height:42px;color:var(--success);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.role-action-button span{white-space:nowrap}.qr-upload-row{margin-top:0}.review-actions{gap:8px;display:flex}.add-member-form,.form-grid,.vote-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin-top:12px}.add-member-form input,.form-grid input,.form-grid select,.role-row select,.role-row input,.settings-form input,.settings-form select,.history-month-select select,.vote-form input{border:1px solid var(--line);width:100%;min-width:0;min-height:44px;color:var(--ink);background:var(--white);border-radius:8px;padding:0 12px;font-size:16px;font-weight:800}.form-grid label,.birthday-field,.birthday-static,.settings-form label,.vote-form label{min-width:0;color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.vote-options-editor{gap:8px;display:grid}.vote-options-head{color:var(--muted);text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:900;display:flex}.link-action{color:var(--purple);cursor:pointer;text-transform:uppercase;background:0 0;border:none;padding:0;font-size:12px;font-weight:900}.vote-option-row{align-items:center;gap:8px;min-width:0;display:flex}.vote-option-row input{flex:1;min-width:0}.vote-option-actions{flex-wrap:wrap}.role-list{gap:8px;display:grid}.role-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 170px 170px 94px;align-items:center;gap:10px;min-height:52px;padding-bottom:8px;display:grid}.role-row>div:first-child,.member-identity{min-width:0}.role-row p{overflow-wrap:anywhere}.role-static,.birthday-static strong{color:var(--ink);font-size:15px;font-weight:900}.member-identity{gap:6px;display:grid}.member-email-edit{grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:8px;display:grid}.member-email-edit input{width:100%}.role-actions{justify-content:flex-end;gap:8px;min-width:0;display:flex}.vote-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.vote-panel{gap:14px;display:grid}.vote-question{gap:4px;display:grid}.vote-question strong{color:var(--ink);font-size:20px;font-weight:900}.vote-question p{color:var(--muted);margin:0;font-weight:800}.vote-results{grid-template-columns:150px minmax(0,1fr);align-items:center;gap:18px;display:grid}.vote-pie{aspect-ratio:1;border-radius:50%;place-items:center;width:150px;display:grid;box-shadow:inset 0 0 0 12px #ffffffb8}.vote-pie span{aspect-ratio:1;background:var(--white);width:58px;color:var(--ink);border-radius:999px;place-items:center;font-weight:900;display:grid}.vote-legend{gap:8px;display:grid}.vote-legend-item{min-width:0;color:var(--ink);grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.vote-legend-item p{color:var(--muted);margin:0;font-weight:900}.vote-dot{aspect-ratio:1;border-radius:999px;width:12px}.vote-dot.yes{background:var(--success)}.vote-dot.no{background:var(--danger)}.vote-dot.abstain{background:#6f5b7d}.settings-form{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;min-width:0;padding:12px 0;display:grid}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.currency-summary-grid{gap:12px;display:grid}.currency-summary{gap:10px;display:grid}.currency-summary h3{color:var(--ink);margin:0;font-size:16px;font-weight:900}.metric-grid.compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metric-card{border:1px solid var(--line);background:var(--orange-soft);border-radius:8px;align-content:center;gap:6px;min-width:0;min-height:88px;padding:12px;display:grid}.metric-card span,.empty-text,.transaction-row p,.transaction-row time{color:var(--muted);font-weight:800}.metric-card strong{color:var(--ink);overflow-wrap:anywhere;font-size:22px;font-weight:900}.inline-actions{flex-wrap:wrap;gap:10px;display:flex}.financial-lock{margin-bottom:14px}.term-list,.transaction-list,.term-summary,.action-log-list{gap:8px;display:grid}.transaction-list{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.history-month-select{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:900;display:grid}.currency-term-group{gap:8px;padding-top:4px;display:grid}.currency-term-group h4{color:var(--orange);text-transform:uppercase;margin:0;font-size:13px;font-weight:900}.term-detail{border:1px solid var(--line);background:#fffaf5;border-radius:8px;padding:12px}.term-detail-body{gap:12px;margin-top:12px;display:grid}.transaction-row{border-bottom:1px solid var(--line);grid-template-columns:92px minmax(0,1fr) 96px;align-items:center;gap:10px;min-height:48px;padding:9px 0;display:grid}.action-log-row{border-bottom:1px solid var(--line);grid-template-columns:132px minmax(0,1fr);align-items:start;gap:12px;min-height:48px;padding:10px 0;display:grid}.transaction-row strong{color:var(--ink);font-weight:900}.transaction-row p,.action-log-row p{margin:3px 0 0}.transaction-row time,.action-log-row time{text-align:right}.action-log-row time{color:var(--muted);font-size:12px;font-weight:900}.action-log-row strong{color:var(--ink);font-weight:900}.action-log-row p{color:var(--muted);font-weight:800}.transaction-type{border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.transaction-type.income{color:var(--success);background:#e9f8f0}.transaction-type.expense{color:var(--danger);background:#fff0ee}.info-row{align-items:flex-start;padding:12px 0}.info-row span{width:150px;color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}@media (max-width:840px){.topbar{align-items:flex-start}.topbar-copy h1{font-size:18px}.tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.status-layout,.payment-grid,.manager-layout,.financial-layout,.voting-layout,.manager-review-layout,.skeleton-grid{grid-template-columns:1fr}.section-heading,.payment-head{flex-direction:column;align-items:stretch}.review-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.review-member{grid-column:1}.review-status-col{grid-column:2;align-items:flex-end;width:auto}.review-actions{grid-column:1/-1;justify-content:flex-end}.add-member-form,.form-grid,.metric-grid,.month-controls,.vote-results,.vote-form{grid-template-columns:1fr}.vote-pie{justify-self:center}.role-row{grid-template-columns:1fr}.role-actions{justify-content:flex-start}.settings-form{grid-template-columns:1fr}.settings-form .primary-action,.add-member-form .primary-action,.vote-form .primary-action,.form-grid+.inline-actions .primary-action,.form-grid+.inline-actions .secondary-action{width:100%}.transaction-row,.action-log-row{grid-template-columns:1fr}.transaction-row time,.action-log-row time{text-align:left}.qr-image{max-height:340px}}@media (max-width:520px){.topbar{flex-wrap:wrap}.topbar .language-switch{justify-self:start;margin-left:0}.content,.surface{padding:12px}.payment-panel{gap:10px}.payment-head{gap:8px}.payment-head h2,.section-heading h2,.surface h2{font-size:17px}.payment-head strong,.section-heading strong{font-size:20px}.qr-image{max-height:280px}.tabs{gap:4px;padding:6px}.tab{min-height:44px;font-size:10px}.manager-qr-row,.info-row{flex-direction:column;align-items:stretch}.status-row{flex-direction:row;align-items:center}.status-row span:first-child{flex:1}.status-pill{white-space:nowrap;align-self:center}.role-actions,.inline-actions,.version-actions{grid-template-columns:1fr;display:grid}.review-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;display:grid}.proof-actions-line{flex-direction:column;align-items:stretch}.proof-inline-actions{justify-content:stretch;width:100%}.proof-action-link,.proof-delete-button{justify-content:center;width:100%}.review-actions .icon-action,.role-actions .icon-action,.role-actions .role-action-button{width:100%}.review-actions .icon-action{height:38px}.info-row{gap:4px;display:grid}.info-row span{width:auto}.officers-row{flex-direction:column;align-items:stretch}.officers-info{flex-direction:column;align-items:flex-start;gap:4px}.officers-info>span{width:auto}}.modal-overlay{z-index:1000;background:#1408248c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--white);border:1px solid var(--line);border-radius:16px;width:100%;max-width:460px;padding:22px;box-shadow:0 24px 60px #1408244d}.modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-head h2{color:var(--ink);margin:0;font-size:18px}.modal-subtext{color:var(--muted);margin:6px 0 14px;font-size:13px}.icon-button{border:1px solid var(--line);background:var(--white);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--page)}.forgot-link{color:var(--white);align-self:center;margin-top:4px;text-decoration:underline}.forgot-box{flex-direction:column;gap:10px;margin-top:6px;display:flex}.maintenance-banner{color:#fff;text-align:center;background:#b45309;padding:10px 16px;font-size:.9rem;font-weight:600}
