@import url('./type.css');
:root{--navy:#1e293b;--blue:#2563eb;--ink:#14243f;--muted:#718096;--line:#e5eaf2;--bg:#f5f7fb;--white:#fff;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:14px;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--blue);text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.1px;margin-bottom:5px;line-height:1.2}h2{font-size:20px;letter-spacing:-.45px;margin-bottom:12px}h3{font-size:16px;margin-bottom:10px}p{margin-bottom:14px}label{display:block;color:#23344e;font-weight:600;font-size:13px}input,select,textarea{display:block;width:100%;border:1px solid #d7dfeb;border-radius:8px;background:white;color:var(--ink);padding:11px 12px;margin-top:7px;min-height:43px}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:3px solid #2563eb18}input::placeholder,textarea::placeholder{color:#99a5b7;font-weight:400}textarea{resize:vertical}input[type=file]{font-size:12px}small{font-weight:400;color:var(--muted)}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:19px;font-weight:700;margin-bottom:20px}.primary,.secondary,.quiet,.icon-button{border-radius:7px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;padding:10px 16px;white-space:nowrap;font-size:13px}.primary{background:var(--blue);color:white;box-shadow:0 3px 5px #2563eb16}.primary:hover{background:#1d4ed8}.secondary{background:white;border-color:#d9e1ee;color:#25497f}.secondary:hover{background:#f0f5ff}.quiet{background:transparent;color:#3260a3;padding:6px 9px}.quiet:hover{background:#edf3ff}.icon-button{background:transparent;font-size:24px;padding:0 10px;color:var(--muted)}.danger{color:#b72d39}.wide{width:100%}.muted{color:var(--muted);font-weight:400}.small{font-size:12px}.required{color:#cf4151}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#6886bc;margin-bottom:8px}.logo{font-weight:800;font-size:42px;letter-spacing:-2px;line-height:1.1;color:white;display:block}.logo span{display:block;font-weight:400;font-size:11px;letter-spacing:.2px;margin-top:7px;color:#bac7d9}.login-layout{display:grid;grid-template-columns:46% 54%;min-height:100vh}.login-brand{background:var(--navy);color:#f9fbff;padding:52px 10%;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-brand>div:nth-child(2){padding:55px 0}.login-brand h1{font-size:50px;line-height:1.12;font-weight:650;letter-spacing:-1.8px}.login-brand em{color:#8fb4ff;font-style:normal}.login-brand p{color:#b9c9df;max-width:340px;font-size:16px;line-height:1.8;margin-top:24px}.login-brand .eyebrow{color:#a3bbdf;margin-bottom:18px}.login-brand small{color:#b7c5d9}.community-art{display:flex;gap:18px;margin-top:40px}.community-art span{display:flex;align-items:center;justify-content:center;width:70px;height:80px;border-radius:22px;font-size:40px;background:#a9c7ff;color:#304969;transform:rotate(-9deg)}.community-art span:nth-child(2){background:#dfb7a4;transform:translateY(-18px) rotate(7deg)}.community-art span:nth-child(3){background:#b2d2bf;transform:rotate(-5deg)}.login-main{padding:60px 12%;display:grid;place-content:center}.login-main form{width:min(390px,100%)}.login-main h2{font-size:32px;margin-bottom:6px}.login-main label{margin-top:22px}.login-main .primary{margin-top:18px;justify-content:space-between;font-size:14px;padding:13px 16px}.login-main footer{font-size:11px;color:var(--muted);margin-top:28px;border-top:1px solid var(--line);padding-top:22px}.password-wrap{display:flex;position:relative}.password-wrap input{padding-right:65px}.password-wrap button{position:absolute;right:10px;top:15px;border:0;background:transparent;color:#567196;font-size:12px}.security-note{padding:14px;background:#edf3fc;border:1px solid #e0e9f8;color:#5e779e;font-size:12px;border-radius:8px;margin-top:22px}.login-main #captcha-widget{margin-top:20px}.error{border:1px solid #f5c6ce;background:#fff2f4;color:#a32139;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.65}.workspace{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:225px;background:var(--navy);padding:31px 16px;color:#c8d2e1;display:flex;flex-direction:column;z-index:20}.sidebar .logo{padding:0 12px 32px;border-bottom:1px solid #ffffff14}.nav-caption{font-size:9px;letter-spacing:1.4px;padding:30px 12px 14px;color:#72869e;font-weight:600}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a{display:flex;align-items:center;gap:13px;color:#c9d4e3;font-size:13px;padding:13px;border-radius:8px;transition:background .15s}.sidebar nav a>span{font-size:23px;width:24px;line-height:1;text-align:center}.sidebar nav a.active{color:white;background:#2563eb;box-shadow:0 4px 9px #04152b26}.sidebar nav a:hover:not(.active){background:#ffffff0b}.sidebar-bottom{margin-top:auto;padding:30px 12px 0;font-size:11px;color:#c8d2e1}.sidebar-bottom small{display:block;color:#758aa6;font-size:10px;margin-top:8px}.online-dot{display:inline-block;background:#6ed5ac;width:6px;height:6px;border-radius:50%;margin-right:5px}.sidebar-bottom.offline{color:#f6b37b}.sidebar-bottom.offline .online-dot{background:#f6b37b}.sidebar-bottom.offline:after{content:'Conexión interrumpida';display:block;font-size:10px}.main-wrap{grid-column:2;min-width:0}.topbar{height:70px;border-bottom:1px solid var(--line);background:#ffffffd9;display:flex;justify-content:space-between;align-items:center;padding:0 30px;color:#7a8ca6;font-size:12px;gap:15px}.account{display:flex;align-items:center;gap:10px}.account-avatar{width:31px;height:31px;background:#e3ebf9;border-radius:50%;display:grid;place-items:center;color:#45689d;font-size:9px;font-weight:700}.account .quiet{font-size:11px}#menu-toggle{display:none}#content{padding:30px;min-height:calc(100vh - 120px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading p{color:var(--muted);font-size:13px;margin:0}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:22px;box-shadow:0 3px 9px #152d5303;min-width:0}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.card-heading h2,.card-heading h3{margin-bottom:0}.card-heading p{font-size:12px;margin:6px 0 0}.card-heading a{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);padding:20px 15px;border-radius:11px;display:flex;gap:13px;align-items:center}.stat>div>span{font-size:11px;color:#60718d;display:block}.stat strong{display:block;font-size:30px;line-height:1.2;margin-top:5px;letter-spacing:-.8px}.stat-icon{border-radius:13px;width:46px;height:49px;display:grid;place-items:center;font-size:25px;flex-shrink:0}.blue{background:#e5efff;color:#2563eb}.green{background:#e1f6e9;color:#1d8253}.purple{background:#eee8ff;color:#7850bd}.orange{background:#fff0d8;color:#ac6b17}.red{background:#ffe8ec;color:#be3148}.gray{background:#edf0f5;color:#6e7e94}.badge{display:inline-block;line-height:1.4;font-size:10px;font-weight:600;border-radius:20px;padding:5px 10px;white-space:nowrap}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#f3f6fb;color:#6d7d97;font-weight:600;font-size:10px;letter-spacing:.15px;padding:11px 12px;white-space:nowrap}td{border-bottom:1px solid #edf1f7;padding:14px 12px;max-width:280px;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8faff}td .quiet{font-size:11px}.person-cell{display:flex;align-items:center;gap:9px;min-width:130px}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#e9edfa;color:#6073a6;font-weight:650;font-size:10px}.row-actions{display:flex;gap:3px;align-items:center}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:22px}.event-tile{display:flex;align-items:center;gap:13px;padding:15px 10px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;width:100%;color:var(--ink)}.event-tile:last-child{border-bottom:0}.event-tile:hover,.event-tile.selected{background:#f0f5ff}.event-tile strong{font-size:12px;display:block;margin-bottom:5px}.event-tile small{display:block;margin-bottom:6px;font-size:11px}.event-date{background:#f1f5fc;border-radius:8px;min-width:48px;padding:7px;text-align:center;font-size:21px;font-weight:700;color:#49699d}.event-date small{font-size:10px;text-transform:uppercase;margin:0}.tools{display:flex;align-items:center;gap:13px;margin-bottom:22px}.tools>select{width:180px;margin:0;font-size:12px}.search{flex:1;position:relative;display:flex;align-items:center}.search>span{font-size:23px;color:#8da0bd;position:absolute;left:13px;top:2px}.search input{margin:0;padding-left:40px;font-size:12px}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:24px}.tab{border:0;background:transparent;font-size:13px;padding:12px 18px;color:#7a87a0;border-bottom:2px solid transparent}.tab.active{color:var(--blue);border-color:var(--blue);font-weight:650}.list-count{font-size:11px;color:#8090aa;padding-top:18px}.empty{text-align:center;padding:35px 20px;color:#8a9ab0}.empty>span{font-size:36px;color:#a9bad4}.empty h3{font-size:14px;margin:7px}.empty p{font-size:12px;max-width:340px;margin:0 auto}.events-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px}.event-list{height:fit-content;padding:10px}.events-grid h2{font-size:18px}.events-grid .card-heading .quiet{border:1px solid var(--line)}.drawer-scrim{position:fixed;inset:0;background:#10274940;z-index:30}.drawer{position:fixed;right:0;top:0;height:100dvh;width:min(550px,100%);background:#f8faff;z-index:31;overflow-y:auto;padding:25px;border-left:1px solid #e0e7f2;box-shadow:-12px 0 50px #132a4b20}.drawer-heading{display:flex;justify-content:space-between;gap:15px;padding-bottom:22px}.drawer-heading .avatar{width:50px;height:50px;font-size:16px;float:left;margin-right:13px}.drawer-heading h2{font-size:22px;margin:0 0 5px}.drawer .card{padding:19px;margin-bottom:15px}.drawer dl{margin:0}.drawer dl>div{display:grid;grid-template-columns:43% 57%;gap:8px;margin-top:10px;font-size:12px}.drawer dt{color:#788ba9}.drawer dd{margin:0;overflow-wrap:anywhere}.drawer-actions{display:flex;justify-content:space-between;gap:12px;padding:12px 0}.history-item{border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.history-item p{margin:6px 0;color:#6e7f99}.app-footer{display:flex;justify-content:space-between;color:#9aa6ba;font-size:10px;margin:0 30px;padding:0 0 20px}.loading{padding:80px 20px;text-align:center;color:#7b8ca9}dialog{width:min(850px,calc(100vw - 32px));max-height:90dvh;border:1px solid #dfe6f2;border-radius:15px;padding:27px;color:var(--ink);box-shadow:0 30px 120px #0b1d4740;overflow:auto}dialog::backdrop{background:#182b4d75}#confirm-dialog{width:min(480px,calc(100vw - 32px))}.modal-heading{display:flex;justify-content:space-between;gap:15px;margin-bottom:20px}.modal-heading h2{font-size:25px;margin:0}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}.fields .full{grid-column:1/-1}.modal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:25px;gap:12px}.modal-footer>div{display:flex;gap:10px}.step-tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:22px}.step-tabs span{font-size:11px;color:#8b9bb4;padding:6px}.step-tabs span.active{color:var(--blue);font-weight:650}.help{padding:14px;background:#eef4ff;color:#56739d;border-radius:8px;font-size:12px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(680px,90vw);background:#1d3a56;color:white;box-shadow:0 8px 30px #0e243d30;padding:14px 20px;border-radius:9px;font-size:13px;z-index:100}#toast.toast-error{background:#943147}#preview-banner{background:#fff0b2;color:#75560a;padding:8px 16px;text-align:center;font-weight:600;font-size:12px}
@media(min-width:1500px){#content{padding:38px 45px}.topbar{padding:0 45px}}@media(max-width:1100px){.workspace{grid-template-columns:190px minmax(0,1fr)}.sidebar{width:190px}.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.events-grid{grid-template-columns:245px minmax(0,1fr)}#content{padding:24px}.account-avatar{display:none}.card{padding:17px}.page-heading{gap:12px}}@media(max-width:760px){.login-layout{grid-template-columns:1fr}.login-brand{padding:24px}.login-brand>div:nth-child(2),.login-brand>small{display:none}.login-main{padding:36px 25px;display:block}.login-main form{max-width:430px;margin:auto;width:100%}.login-brand .logo{font-size:30px}.login-brand .logo span{display:inline;font-size:10px;letter-spacing:0;margin-left:15px}.workspace{display:block}.sidebar{transform:translateX(-100%);transition:transform .2s;width:225px}.workspace.menu-open .sidebar{transform:translateX(0)}.workspace.menu-open .main-wrap:before{content:'';position:fixed;inset:70px 0 0;background:#14243f66;z-index:19}#menu-toggle{display:block}.topbar{padding:0 14px;gap:8px;height:64px}#breadcrumb{font-size:11px}.account{margin-left:auto;gap:4px}#account-name{display:none}.account .quiet{font-size:11px}#content{padding:22px 14px}.page-heading{align-items:flex-start;flex-direction:column;gap:15px}h1{font-size:27px}.page-heading .eyebrow{font-size:8px}.page-heading p{font-size:12px}.stats{gap:10px}.stat{padding:14px 10px;gap:10px}.stat-icon{width:35px;height:40px;font-size:21px}.stat>div>span{font-size:10px}.stat strong{font-size:26px}.card{border-radius:9px;margin-bottom:16px;padding:15px}.card-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}.card-heading h2{font-size:17px}.tools{flex-wrap:wrap;gap:10px}.search{flex-basis:100%}.tools>select{flex:1;width:auto}.events-grid{grid-template-columns:1fr}.event-list{display:flex;overflow-x:auto}.event-list .event-tile{min-width:220px;border:0;border-right:1px solid var(--line)}.fields{grid-template-columns:1fr;gap:16px}.fields .full{grid-column:auto}.step-tabs{flex-wrap:wrap;gap:2px}.step-tabs span{font-size:10px}.tabs{gap:0}.tab{padding:10px 12px;font-size:12px}dialog{padding:20px;max-height:94dvh}.modal-footer .primary,.modal-footer .secondary{padding:10px;font-size:12px}.modal-heading h2{font-size:22px}.drawer{padding:20px}.app-footer{margin:0 15px}.row-actions{flex-wrap:wrap}}

.sidebar nav svg{display:block;width:22px;height:22px}@media(max-width:760px){.sidebar{visibility:hidden}.workspace.menu-open .sidebar{visibility:visible}}

/* Identidad en la ficha de persona. */
.drawer-heading{align-items:flex-start}
.profile-identity{display:flex;align-items:center;gap:16px;min-width:0;flex:1}
.profile-avatar{width:72px;height:72px;flex:0 0 72px;border-radius:50%;overflow:hidden;background:#e9eefc;box-shadow:0 0 0 4px #fff,0 3px 12px #14243f12}
.drawer-heading .profile-avatar .avatar{width:100%;height:100%;float:none;margin:0;font-size:23px;font-weight:700;letter-spacing:1px}
.profile-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.profile-name{min-width:0}
.drawer-heading .profile-name h2{font-size:23px;line-height:1.3;overflow-wrap:anywhere;margin:0 0 8px;letter-spacing:-.5px}
.drawer-heading>.icon-button{flex-shrink:0;min-height:36px}
.drawer .card h3{font-weight:700}
@media(max-width:420px){.profile-avatar{width:60px;height:60px;flex-basis:60px}.profile-identity{gap:12px}.drawer-heading .profile-name h2{font-size:20px}}

.follow-detail-row{cursor:pointer}.follow-detail-row:hover{background:#f4f7ff}
#follow-detail{width:min(720px,calc(100% - 24px))}
#follow-detail .modal-heading{align-items:flex-start;gap:16px}
#follow-detail .modal-heading p{margin:6px 0 0}
.follow-person{background:#eff6ff;border:1px solid #cfe0ff;border-radius:10px;padding:18px;margin-bottom:20px}
.follow-person h3{font-size:19px;color:#254d9b;margin:6px 0 2px}.follow-person p{margin:0;color:#60799f;font-size:13px}
.follow-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0 0 20px}
#follow-detail dt{font-size:12px;color:#718096;margin-bottom:6px}#follow-detail dd{margin:0;overflow-wrap:anywhere}
.follow-detail-text{margin:0 0 20px}.follow-meta{padding:18px;background:#f1f5fa;border-radius:10px}
@media(max-width:480px){.follow-detail-grid{grid-template-columns:1fr}#follow-detail .modal-heading{flex-wrap:wrap}}

.daily-events .card-heading p{margin:4px 0 0}.daily-events label{min-width:160px}
.celebration-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.celebration{padding:16px;border:1px solid #fdba74;border-radius:9px;background:#fff7ed}
.celebration>span{color:#b45309;font-size:11px;font-weight:600}.celebration h3{font-size:15px;margin:7px 0 4px;overflow-wrap:anywhere}.celebration p{font-size:13px;color:#718096;margin:0}.celebration.anniversary{background:#fdf2f8;border-color:#f9a8d4}.celebration.anniversary>span{color:#be185d}
/* Panel compacto de Eventos */
.celebration-ribbon{display:flex;align-items:center;gap:22px;padding:18px 22px}
.celebration-ribbon>.card-heading{display:contents}.celebration-ribbon .card-heading>div{flex:0 0 155px}.celebration-ribbon h2{font-size:18px;margin:0}.celebration-ribbon .card-heading p{font-size:11px}.celebration-ribbon label{order:3;flex:0 0 170px;font-size:11px}.celebration-ribbon .celebration-list{flex:1;min-width:0;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.celebration-ribbon .celebration{padding:12px 14px}.celebration-ribbon .celebration h3{margin:4px 0;font-size:14px}.celebration-ribbon .celebration p{font-size:12px}.celebration-ribbon .celebration>span{font-size:9px}
.compact-events{grid-template-columns:minmax(255px,310px) minmax(0,1fr);gap:20px;align-items:start}
.compact-event-list{padding:20px 12px;min-width:0}.compact-event-list>h2{padding:0 8px;font-size:19px}.compact-event-list .tools{padding:0 8px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.compact-event-list .search{flex:1 1 140px;min-width:0}.compact-event-list .search input{font-size:12px;padding-left:32px}.compact-event-list .tools>select{width:100%;flex:1 1 100px;min-width:0;font-size:12px}.compact-event-list .tools>.secondary{font-size:11px;padding:8px}.compact-event-list .event-list{display:block}.compact-event-list .event-tile{width:100%;padding:16px 10px;gap:12px;position:relative;border-radius:8px;align-items:flex-start;text-align:left}.compact-event-list .event-tile.selected{background:#eaf3ff}.compact-event-list .event-tile.selected:before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;background:#2563eb;border-radius:4px}.compact-event-list .event-date{background:white;border:1px solid #e5eaf2;min-width:44px;width:44px;padding:6px;font-size:21px;line-height:1.3;display:flex;flex-direction:column;align-items:center}.compact-event-list .event-date small{text-transform:uppercase;font-size:10px;margin:0}.event-tile-copy{flex:1;min-width:0}.event-tile-copy strong{font-size:13px;overflow-wrap:anywhere}.event-tile-copy small{font-size:11px;display:block;margin:3px 0}.event-tile-copy .badge{margin-top:5px}
.event-workspace{padding:0;overflow:hidden;min-width:0}.event-overview{padding:26px 24px 16px;border-left:4px solid #2563eb}.event-title{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.event-title h2{font-size:27px;margin:0}.event-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0}.event-facts>div{display:flex;gap:10px;min-width:0;border-right:1px solid var(--line);padding-right:10px}.event-facts>div:last-child{border:0}.event-facts strong{font-size:12px;display:block;font-weight:600;overflow-wrap:anywhere}.event-facts small{display:block;margin-top:4px;font-size:11px}.event-fact-icon{font-size:24px;color:#526786;line-height:1}.event-overview>p{font-size:13px;margin-bottom:0}.event-content-tabs{margin:0;border-bottom:1px solid var(--line);padding:0 12px;overflow-x:auto}.event-content-tabs .tab{white-space:nowrap;padding:16px 12px;font-size:13px}.event-panel{padding:24px}.event-panel .card-heading h2{font-size:20px}
@media(max-width:1100px){.celebration-ribbon{flex-wrap:wrap}.celebration-ribbon .celebration-list{flex-basis:55%}.event-facts{grid-template-columns:1fr;gap:12px}.event-facts>div{border:0}.event-title h2{font-size:23px}}
@media(max-width:760px){.compact-events{grid-template-columns:1fr}.celebration-ribbon{padding:16px;gap:14px}.celebration-ribbon .celebration-list{flex-basis:100%;order:4}.celebration-ribbon label{flex:1}.compact-event-list .event-list{display:flex;overflow-x:auto}.compact-event-list .event-tile{min-width:240px;max-width:280px;border-bottom:0}.event-overview{padding:20px 16px}.event-panel{padding:16px}.event-content-tabs .tab{padding:14px 10px;font-size:12px}}
/* Tarjetas independientes de participación */
.participation-section{margin-bottom:26px;padding:24px;border:1px solid #e5eaf2;box-shadow:0 4px 16px #183b6510}.participation-heading{display:flex;gap:16px;align-items:center}.participation-heading h2{font-size:22px;margin:0 0 3px}.participation-heading p{font-size:13px;margin:0}.participation-heading .badge{vertical-align:middle;margin-left:8px}.participation-icon{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;border-radius:50%;color:#2563eb;background:#e4efff}.participation-icon svg{width:29px;height:29px}.ministry-participation .participation-icon{color:#7c3aed;background:#eee5ff}.ministry-participation>.card-heading>.primary{background:#7c3aed}.ministry-participation>.card-heading>.primary:hover{background:#6d28d9}.participation-tools{gap:14px;margin:18px 0}.participation-tools>.search{flex:1 1 260px}.participation-tools>select{flex:0 1 230px;min-width:150px;width:auto}.participation-results td{padding-top:15px;padding-bottom:15px}.participation-results .row-actions .quiet{border:1px solid #dbe3ef;background:#fff;border-radius:6px}.participation-results .person-cell{font-weight:600}.participation-results .row-actions{gap:8px}
@media(max-width:760px){.participation-section{padding:16px}.participation-heading h2{font-size:18px}.participation-icon{width:44px;height:44px;flex-basis:44px}.participation-heading{gap:12px}.participation-tools{flex-wrap:wrap}.participation-tools>select{flex:1 1 150px}}
#participation-history{width:min(1000px,calc(100% - 24px))}.history-person-label{margin:14px 0 22px}.history-person-summary{display:flex;gap:14px;align-items:center;padding:18px;background:#f1f6ff;border-radius:10px;margin:18px 0}.history-person-summary h3{margin:0 0 6px}.history-person-summary .avatar{width:52px;height:52px;font-size:18px}#participation-history-results>.muted{margin-top:22px}#participation-history .table-wrap{margin-top:16px}

.participation-history-button{font-size:14px;padding:14px 22px;min-height:48px}


#person-history{width:min(860px,calc(100% - 24px))}.person-history-filters{margin-bottom:20px}.person-history-entry h3{margin:10px 0 0;font-size:16px}.person-history-entry .follow-detail-grid{margin:0}.person-history-entry dt{font-size:12px;color:var(--muted);margin-bottom:5px}.person-history-entry dd{margin:0}.person-history-entry>.quiet{margin-top:12px}

#visit-detail{width:min(720px,calc(100% - 24px))}#visit-detail dt{font-size:12px;color:var(--muted);margin-bottom:6px}#visit-detail dd{margin:0;overflow-wrap:anywhere}

.follow-filter-tools{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin:0 0 22px}.follow-filter-tools label{flex:0 1 190px;font-size:12px}.follow-filter-tools input,.follow-filter-tools select{margin-top:5px}.follow-filter-tools>.quiet{min-height:43px}@media(max-width:760px){.follow-filter-tools label{flex:1 1 140px}}

.follow-origin{display:block;min-width:155px;max-width:250px;overflow-wrap:anywhere}

/* Módulos nuevos: asistencia, finanzas, inventario, metas, reportes y usuarios. */
#navigation{overflow-y:auto;min-height:0}
.sidebar nav a{padding:10px 13px}
.block{display:block}
.bar{display:block;height:10px;background:#eef2f8;border-radius:6px;overflow:hidden;min-width:60px}
.bar-fill{display:block;height:100%;border-radius:6px;background:var(--blue)}
.bar-fill.blue{background:var(--blue)}.bar-fill.green{background:#2f9e6b}.bar-fill.red{background:#d0564b}
.bar-row{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr minmax(90px,auto);gap:12px;align-items:center;padding:7px 0;font-size:12px;border-bottom:1px solid var(--line)}
.bar-row:last-child{border-bottom:0}.bar-row strong{text-align:right;white-space:nowrap}
.bar-row.two>span:nth-child(2){display:grid;gap:4px}
.amount{font-weight:700;white-space:nowrap}.amount.in{color:#23845a}.amount.out{color:#b72d39}.amount.void{color:#98a3b6;text-decoration:line-through}
.month-picker,.report-range label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}
.report-range{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}.report-range p{margin:0;flex:1;min-width:200px}
.attendance-heading{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
.attendance-heading label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);flex:1;min-width:220px}
.attendance-count{display:flex;align-items:baseline;gap:6px;padding:8px 14px;background:#eef4ff;border-radius:10px;color:#2a4a7a}
.attendance-count strong{font-size:26px}
.attendance-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:14px}
.attendance-person{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:white;font-size:13px}
.attendance-person input{width:20px;height:20px;flex-shrink:0;accent-color:var(--blue)}
.attendance-person small{display:block;color:var(--muted);font-size:11px}
.attendance-person.present{border-color:#8fb4f5;background:#f2f7ff}
.goal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.goal.closed{opacity:.7}.goal h2{margin-bottom:6px}
.progress{height:12px;background:#eef2f8;border-radius:8px;overflow:hidden;margin:14px 0 8px}
.progress span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#2f9e6b);border-radius:8px}
.goal-amounts{margin:0 0 10px;font-size:13px}
.goal-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 14px;font-size:12px;margin-bottom:12px}
.goal-facts dt{color:var(--muted);font-size:11px}.goal-facts dd{margin:0}
.help-card ol{padding-left:20px;line-height:1.8;font-size:13px}
.role-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}
.role-guide div{background:#f6f8fc;border-radius:8px;padding:10px}.role-guide dt{font-weight:700;font-size:12px}.role-guide dd{margin:4px 0 0;font-size:12px;color:var(--muted)}
.inline-check{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}
td input[data-user-field],td select[data-user-field]{min-width:140px}
@media(max-width:760px){.bar-row{grid-template-columns:1fr;gap:4px}.bar-row strong{text-align:left}.attendance-list{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.app-footer,.tools,.report-range input,button,#toast{display:none!important}.main-wrap{margin:0!important;padding:0!important}.card{break-inside:avoid;box-shadow:none}body{background:white}}
.stats.compact strong{font-size:20px;letter-spacing:-.3px;white-space:nowrap}
.inline-check input{width:18px;height:18px;margin:0;accent-color:var(--blue)}
td strong{overflow-wrap:anywhere}
.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 20px}.share-qr{display:flex;gap:18px;align-items:center;border-top:1px solid var(--line);padding-top:18px}.share-qr img{width:150px;height:150px;image-rendering:pixelated;border:1px solid var(--line);border-radius:8px;flex-shrink:0}.share-qr p{font-size:12px;margin:4px 0 10px}#confirm-dialog .help{margin:18px 0 0}#confirm-dialog .modal-heading{align-items:flex-start}@media(max-width:480px){.share-qr{flex-direction:column;align-items:flex-start}}
.login-main #captcha-widget{margin-top:20px}#captcha-status:empty{display:none}
