@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap');
:root{--primary:#1a3a5c;--primary-light:#2b5a8a;--primary-dark:#0e2240;--primary-50:#edf2f7;--primary-100:#d4e0ed;--accent:#2b6cb0;--accent-light:#4299e1;--success:#2f855a;--success-bg:#c6f6d5;--danger:#c53030;--danger-bg:#fed7d7;--warning:#c05621;--warning-bg:#fefcbf;--surface:#f0f4f8;--card:#fff;--card-border:#e2e8f0;--text:#1a202c;--text-secondary:#4a5568;--text-muted:#a0aec0;--radius:14px;--radius-sm:10px;--radius-xs:8px;--shadow-card:0 1px 4px rgba(26,58,92,.06),0 2px 12px rgba(26,58,92,.04);--bottom-nav-h:64px;--topbar-h:56px;--safe-bottom:env(safe-area-inset-bottom,0px);--font:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,.jd-body{font-family:var(--font);background:var(--surface);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100dvh}
a{color:var(--accent);text-decoration:none}input,select,textarea,button{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}

.jd-topbar{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--topbar-h);background:var(--primary);display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.jd-logo{color:#fff!important;font-weight:800;font-size:17px;display:flex;align-items:center;gap:8px}.jd-logo i{font-size:14px;opacity:.7}
.jd-topbar-right{display:flex;align-items:center;gap:4px}
.jd-topbar-link{color:rgba(255,255,255,.85)!important;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:16px;transition:background .2s;background:none;border:none;cursor:pointer}.jd-topbar-link:active{background:rgba(255,255,255,.15)}

.jd-app-wrap{padding:calc(var(--topbar-h) + 12px) 16px calc(var(--bottom-nav-h) + var(--safe-bottom) + 40px);max-width:600px;margin:0 auto;min-height:100dvh}

.jd-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;height:calc(var(--bottom-nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#fff;border-top:1px solid var(--card-border);display:flex;align-items:stretch;box-shadow:0 -2px 12px rgba(0,0,0,.06)}
.jd-bnav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);font-size:10px;font-weight:700;background:none;border:none;cursor:pointer;transition:color .2s;position:relative;-webkit-tap-highlight-color:transparent;padding:6px 0}
.jd-bnav-item i{font-size:20px;transition:transform .2s}.jd-bnav-item.active{color:var(--primary)}.jd-bnav-item.active i{transform:scale(1.1)}
.jd-bnav-item.active::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:32px;height:3px;background:var(--primary);border-radius:0 0 3px 3px}
.jd-bnav-item:active{background:var(--primary-50)}
.jd-bnav-badge{position:absolute;top:4px;right:50%;transform:translateX(16px);background:var(--danger);color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}

.jd-page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.jd-page-title h1{font-size:22px;font-weight:800;line-height:1.2}.jd-page-title p{font-size:13px;color:var(--text-secondary);margin-top:2px}

.jd-tabpanel{display:none !important;animation:jdFadeUp .3s ease}.jd-tabpanel.active{display:block !important}
@keyframes jdFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.jd-stats-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.jd-stat{background:var(--card);border-radius:var(--radius-sm);padding:14px;text-align:center;box-shadow:var(--shadow-card);border:1px solid var(--card-border)}
.jd-stat i{font-size:20px;color:var(--primary-light);margin-bottom:6px;display:block}.jd-stat b{font-size:20px;font-weight:800;display:block;line-height:1.2}
.jd-stat small{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.jd-stat.jd-stat-success b{color:var(--success)}.jd-stat.jd-stat-danger b{color:var(--danger)}

.jd-hero-stat{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border-radius:var(--radius);padding:20px;margin-bottom:16px;text-align:center;box-shadow:0 4px 16px rgba(26,58,92,.25)}
.jd-hero-stat small{opacity:.75;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.jd-hero-stat b{font-size:32px;font-weight:800;display:block;margin:4px 0}.jd-hero-sub{font-size:13px;opacity:.8}

.jd-alert{padding:12px 14px;border-radius:var(--radius-xs);font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px;margin-bottom:12px;line-height:1.4}
.jd-alert i{font-size:16px;flex-shrink:0}
.jd-alert-success{background:var(--success-bg);color:var(--success)}.jd-alert-danger{background:var(--danger-bg);color:var(--danger)}.jd-alert-warning{background:var(--warning-bg);color:var(--warning)}.jd-alert-info{background:var(--primary-100);color:var(--primary)}
.jd-alert-live{background:linear-gradient(135deg,#2f855a,#276749);color:#fff;animation:jdPulse 2s ease infinite}
@keyframes jdPulse{0%,100%{box-shadow:0 0 0 0 rgba(47,133,90,.3)}50%{box-shadow:0 0 0 6px rgba(47,133,90,0)}}

.jd-section{font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px;margin:20px 0 12px}.jd-section i{color:var(--primary-light);font-size:16px}

.jd-card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-card);border:1px solid var(--card-border);transition:transform .15s}
.jd-card:active{transform:scale(.985)}.jd-card h4{font-size:15px;font-weight:700;margin-bottom:6px}.jd-card-body{font-size:14px;color:var(--text-secondary);line-height:1.5}.jd-card-footer{margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.jd-meeting-card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-card);border:1px solid var(--card-border);border-left:4px solid var(--primary-light)}
.jd-meeting-card.jd-mc-live{border-left-color:var(--success)}.jd-meeting-card.jd-mc-done{border-left-color:var(--text-muted);opacity:.8}
.jd-meeting-meta{font-size:12px;color:var(--text-muted);display:flex;gap:12px;margin-top:6px}.jd-meeting-meta i{margin-right:3px}

.jd-board-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px;-webkit-overflow-scrolling:touch}
.jd-board-item{flex:0 0 auto;text-align:center;width:80px}
.jd-avatar-sm{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:#fff;margin:0 auto 6px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.jd-board-item strong{font-size:11px;display:block;line-height:1.2}.jd-board-item small{font-size:10px;font-weight:700;display:block;margin-top:2px}

.jd-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:var(--radius-sm);font-weight:700;font-size:14px;border:none;cursor:pointer;background:var(--primary);color:#fff;transition:background .2s,transform .1s;-webkit-tap-highlight-color:transparent;text-align:center}
.jd-btn:active{transform:scale(.96)}.jd-btn:hover{background:var(--primary-dark)}
.jd-btn-sm{padding:8px 14px;font-size:13px;border-radius:var(--radius-xs)}.jd-btn-xs{padding:6px 10px;font-size:12px;border-radius:6px}.jd-btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius)}.jd-btn-block{width:100%}
.jd-btn-accent{background:var(--accent)}.jd-btn-success{background:var(--success)}.jd-btn-danger{background:var(--danger)}.jd-btn-warning{background:var(--warning)}
.jd-btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary);padding:10px 18px}.jd-btn-outline:hover{background:var(--primary-50)}
.jd-btn-wa{background:#25d366;color:#fff!important}.jd-btn-ghost{background:var(--primary-50);color:var(--primary)}.jd-btn-ghost:hover{background:var(--primary-100)}
.jd-btn-row{display:flex;gap:8px;flex-wrap:wrap}

.jd-form-group{margin-bottom:14px}.jd-form-group label{display:block;font-size:13px;font-weight:700;color:var(--text-secondary);margin-bottom:5px}
.jd-input,.jd-select,.jd-textarea{width:100%;padding:12px 14px;border:2px solid var(--card-border);border-radius:var(--radius-xs);font-size:15px;background:var(--card);color:var(--text);transition:border-color .2s;-webkit-appearance:none;appearance:none}
.jd-input:focus,.jd-select:focus,.jd-textarea:focus{outline:none;border-color:var(--primary-light);box-shadow:0 0 0 3px rgba(43,90,138,.12)}
.jd-textarea{resize:vertical;min-height:80px}
.jd-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234a5568'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:20px;padding-right:36px}
.jd-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.jd-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;visibility:hidden;pointer-events:none}
.jd-modal::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .3s}
.jd-modal.open{visibility:visible;pointer-events:auto}.jd-modal.open::before{opacity:1}
.jd-modal-content{background:var(--card);border-radius:20px 20px 0 0;width:100%;max-width:500px;max-height:90dvh;overflow-y:auto;padding:8px 20px 28px;position:relative;z-index:1;transform:translateY(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);-webkit-overflow-scrolling:touch}
.jd-modal.open .jd-modal-content{transform:translateY(0)}
.jd-modal-handle{width:36px;height:4px;background:var(--text-muted);border-radius:2px;margin:8px auto 16px;opacity:.4}
.jd-modal-title{font-size:18px;font-weight:800;margin-bottom:16px;display:flex;align-items:center;gap:8px}.jd-modal-title i{color:var(--primary-light)}

.jd-toast{position:fixed;top:calc(var(--topbar-h) + 8px);left:50%;transform:translateX(-50%) translateY(-20px);z-index:300;padding:12px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;color:#fff;opacity:0;transition:all .3s ease;max-width:90vw;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.2)}
.jd-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.jd-toast-ok{background:var(--success)}.jd-toast-err{background:var(--danger)}.jd-toast-warn{background:var(--warning)}

.jd-auth{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(160deg,var(--primary-dark) 0%,var(--primary) 40%,var(--primary-light) 100%)}
.jd-auth-card{background:var(--card);border-radius:20px;padding:32px 24px;width:100%;max-width:400px;box-shadow:0 8px 40px rgba(0,0,0,.2)}
.jd-auth-logo{text-align:center;margin-bottom:24px}.jd-auth-logo i{font-size:36px;color:var(--primary)}.jd-auth-logo h1{font-size:22px;font-weight:800;color:var(--primary);margin-top:8px}.jd-auth-logo p{font-size:13px;color:var(--text-muted);margin-top:4px}
#jd-msg,.jd-msg{padding:10px 14px;border-radius:var(--radius-xs);font-size:13px;font-weight:600;margin-bottom:14px;display:none;text-align:center}
.jd-msg.ok{background:var(--success-bg);color:var(--success);display:block}.jd-msg.err{background:var(--danger-bg);color:var(--danger);display:block}
.jd-auth-footer{text-align:center;margin-top:16px;font-size:13px;color:var(--text-muted)}.jd-auth-footer a{font-weight:700;color:var(--primary)}

.jd-org-card{background:var(--card);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-card);border:1px solid var(--card-border);transition:transform .15s}
.jd-org-card:active{transform:scale(.98)}.jd-org-card-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.jd-org-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;flex-shrink:0}
.jd-org-card-head h3{font-size:16px;font-weight:800;line-height:1.2}.jd-org-role{font-size:12px;font-weight:700}
.jd-org-card-stats{display:flex;gap:16px;font-size:13px;color:var(--text-secondary);font-weight:600;margin-bottom:8px}.jd-org-card-stats i{margin-right:4px;color:var(--primary-light)}
.jd-org-card-debt{background:var(--danger-bg);color:var(--danger);padding:8px 12px;border-radius:var(--radius-xs);font-size:13px;font-weight:700}
.jd-plan-bar{padding:8px 12px;border-radius:var(--radius-xs);font-size:13px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}

.jd-empty-state{text-align:center;padding:48px 20px}.jd-empty-state i{font-size:48px;color:var(--text-muted);margin-bottom:16px}.jd-empty-state h2{font-size:18px;font-weight:800;margin-bottom:8px}.jd-empty-state p{font-size:14px;color:var(--text-muted);margin-bottom:20px}

.jd-fee-item{background:var(--card);border-radius:var(--radius-sm);padding:14px;margin-bottom:10px;box-shadow:var(--shadow-card);border:1px solid var(--card-border);display:flex;align-items:center;gap:12px}
.jd-fee-icon{width:42px;height:42px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.jd-fee-icon.income{background:var(--success-bg);color:var(--success)}.jd-fee-icon.expense{background:var(--danger-bg);color:var(--danger)}.jd-fee-icon.pending{background:var(--warning-bg);color:var(--warning)}
.jd-fee-info{flex:1;min-width:0}.jd-fee-info strong{font-size:14px;display:block}.jd-fee-info small{font-size:12px;color:var(--text-muted)}
.jd-fee-amount{font-weight:800;font-size:16px;white-space:nowrap}.jd-fee-amount.positive{color:var(--success)}.jd-fee-amount.negative{color:var(--danger)}

.jd-vote-card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-card);border:1px solid var(--card-border)}.jd-vote-card h4{font-size:15px;font-weight:700;margin-bottom:10px}
.jd-vote-opt{background:var(--surface);border-radius:var(--radius-xs);padding:10px 14px;margin-bottom:6px;cursor:pointer;display:flex;align-items:center;gap:10px;border:2px solid transparent;transition:border-color .2s;position:relative;overflow:hidden}
.jd-vote-opt:active{background:var(--primary-50)}.jd-vote-opt.sel{border-color:var(--primary);background:var(--primary-50)}
.jd-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--primary-100);transition:width .5s ease;border-radius:var(--radius-xs)}
.jd-vote-label{position:relative;z-index:1;font-weight:600;flex:1;font-size:14px}.jd-vote-pct{position:relative;z-index:1;font-weight:800;font-size:13px;color:var(--primary)}

.jd-member-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--card-border)}.jd-member-item:last-child{border-bottom:none}
.jd-member-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;flex-shrink:0}
.jd-member-info{flex:1;min-width:0}.jd-member-info strong{font-size:14px;display:block}.jd-member-info small{font-size:12px;color:var(--text-muted)}.jd-member-actions{display:flex;gap:6px}

.jd-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700}
.jd-badge-success{background:var(--success-bg);color:var(--success)}.jd-badge-danger{background:var(--danger-bg);color:var(--danger)}.jd-badge-warning{background:var(--warning-bg);color:var(--warning)}.jd-badge-info{background:var(--primary-100);color:var(--primary)}.jd-badge-muted{background:var(--surface);color:var(--text-muted)}

.jd-accordion{margin-bottom:10px}.jd-accordion-head{background:var(--card);border-radius:var(--radius-sm);padding:14px 16px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:10px;cursor:pointer;border:1px solid var(--card-border);box-shadow:var(--shadow-card);-webkit-tap-highlight-color:transparent}
.jd-accordion-head i:first-child{color:var(--primary-light);width:20px}.jd-accordion-arrow{margin-left:auto;transition:transform .3s;color:var(--text-muted)}
.jd-accordion.open .jd-accordion-arrow{transform:rotate(180deg)}.jd-accordion-body{max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0 4px}.jd-accordion.open .jd-accordion-body{max-height:5000px}.jd-accordion-inner{padding:12px 0}

.jd-admin-stat{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border-radius:var(--radius);padding:20px;text-align:center;margin-bottom:16px}.jd-admin-stat b{font-size:28px;font-weight:800;display:block}
.jd-directiva-entry{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;border:1px solid var(--card-border)}
.jd-directiva-entry label{font-size:13px;font-weight:700;color:var(--text-secondary);display:block;margin:8px 0 4px}
.jd-directiva-entry input,.jd-directiva-entry select{width:100%;padding:10px 12px;border:2px solid var(--card-border);border-radius:var(--radius-xs);font-size:14px}
.jd-directiva-entry input:focus,.jd-directiva-entry select:focus{outline:none;border-color:var(--primary-light)}
.jd-directiva-head{display:flex;align-items:center;margin-bottom:8px}.jd-directiva-link{background:var(--success-bg);border-radius:var(--radius-sm);padding:12px;margin-bottom:8px}

.jd-muted{color:var(--text-muted);font-size:13px}.jd-mb{margin-bottom:12px}.jd-mb-sm{margin-bottom:8px}.jd-mt{margin-top:12px}
.jd-flex{display:flex;align-items:center;gap:8px}.jd-flex-between{display:flex;align-items:center;justify-content:space-between}.jd-divider{height:1px;background:var(--card-border);margin:16px 0}
.jd-hidden{display:none!important}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:2px}
@media(min-width:768px){.jd-app-wrap{padding-bottom:calc(var(--bottom-nav-h) + 40px);max-width:640px}.jd-bottom-nav{max-width:640px;left:50%;transform:translateX(-50%);border-radius:16px 16px 0 0}.jd-stats-row{grid-template-columns:repeat(3,1fr)}.jd-modal-content{border-radius:20px;max-width:480px;margin-bottom:20px}.jd-auth-card{padding:40px 32px}}
@media print{.jd-topbar,.jd-bottom-nav{display:none!important}.jd-app-wrap{padding:0}}
