/* Colores extraídos de Investment Dashboard.sketch. */
:root{--principal:#1679f3;--secundario:#0f3f62;--fresco:#62d2ff;--acento:#559bed;--texto:#27343b;--muted:#818488;--fondo:#f8f9fb;--linea:#e8ecf2;--sombra:0 8px 26px #0f3f6207;--sombra-suave:0 4px 18px #0f3f6205}
body{background:#f8f9fb;color:#27343b}.topbar{background:#0d1720;border:0;box-shadow:none;backdrop-filter:none}.brand strong,.brand small,.brand{color:#fff}.brand span{color:#b8c2cb}.tabs .tab{color:#a9b7c2}.tabs .tab:hover{background:#172c3b;color:#fff}.tabs .tab.active{color:#fff;background:#1679f3;box-shadow:none}.config-button{background:#1a2e3d;color:#62d2ff}
.offline-notice{background:#eaf3fe;color:#0f3f62;border-bottom:1px solid #dae8f8;font-weight:500}
.stat,.hero-card,.year-panel,.monthly-total-panel,.ranking-card,.zone-detail,.monthly-stage-card,.entry-panel,.admin-panel{background:#fff;border:1px solid #e8ecf2;border-radius:14px;box-shadow:var(--sombra-suave)}
.stat.fresh{background:#fff}.stat.accent{background:linear-gradient(125deg,#0f3f62,#1679f3);color:#fff}.stat.accent .label,.stat.accent .value,.stat.accent .note{color:#fff}.stat.gold{background:#fff}.stat .value{color:#0f3f62;letter-spacing:-.04em}.stat .label{color:#82889f;font-weight:600;letter-spacing:.06em}.stat .note{font-weight:400;color:#818488}
.goal-button{background:#fff;border:1px solid #edf0f5;border-radius:12px;box-shadow:none}.goal-button strong{color:#0f3f62}.goal-button span{font-weight:500;color:#818488}.goal-button.primary{background:linear-gradient(125deg,#0f3f62,#1679f3);border:0}.goal-button.primary span,.goal-button.primary strong{color:white}
.goal-meta,.goal-progress-pill{background:#eff6ff}.pill{background:#f0f6fe;border-color:#e0ebfa;color:#1679f3;font-weight:500}.label{font-weight:600;color:#818488}.zone-detail-header h3,.monthly-total-header h3,.ranking-card h3{color:#0f3f62}
.zone-table .district-separator td{background:linear-gradient(110deg,#0f3f62,#1679f3);border-radius:9px}.zone-table .district-total td{background:#edf5ff;color:#0f3f62}.zone-table .district-stage-guide .stage-heading{background:#f1f7ff;color:#0f3f62}.zone-table .stage-end{border-color:#d5e6f8}.stage-progress-line{color:#82889f}.stage-progress-bar{background:#dceafa}.stage-progress-bar i{background:linear-gradient(90deg,#62d2ff,#559bed)}.stage-progress-bar strong{color:#0f3f62;text-shadow:none}
.zone-table td{font-weight:500;border-color:#e8ecf2}.zone-table .church-cell,.zone-table .district-total td{font-weight:650}.district-pastor-name{font-weight:600}.pastor-district-stats strong{font-weight:650}.pastor-portrait{background:#dff1fb}
.ranking-toggle button.active{background:#1679f3;color:#fff}.ranking-table th{color:#82889f}.rank-value{color:#1679f3}.new-badge{background:#eaf5ff;color:#1679f3;border-color:#cbe6ff}
.investment-charts{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:20px;margin:24px 0}.investment-chart{background:#fff;border:1px solid #e8ecf2;border-radius:14px;padding:24px;min-width:0}.investment-chart-title{display:flex;align-items:center;justify-content:space-between;gap:14px}.investment-chart-title h3{font-size:18px;font-weight:600;letter-spacing:-.025em;margin:6px 0 20px;color:#0f3f62}.investment-chart-title .label{font-size:10px;letter-spacing:.08em}.chart-legend{font-size:11px;color:#818488;white-space:nowrap;display:flex;gap:6px;align-items:center}.chart-legend i{width:7px;height:7px;background:#62d2ff;border-radius:50%}.monthly-chart svg{display:block;width:100%;height:auto;max-height:260px}.goal-chart-content{display:flex;align-items:center;justify-content:center;gap:28px}.investment-donut{width:164px;height:164px;flex:0 0 164px;border-radius:50%;background:conic-gradient(#559bed 0%,#62d2ff var(--chart-progress),#edf2f8 var(--chart-progress),#edf2f8 100%);display:grid;place-items:center}.investment-donut>div{width:128px;height:128px;border-radius:50%;background:white;display:flex;flex-direction:column;justify-content:center;align-items:center}.investment-donut strong{color:#0f3f62;font-size:30px;font-weight:600}.investment-donut span{font-size:11px;color:#818488;margin-top:4px}.goal-chart-legend{display:flex;flex-direction:column;gap:16px}.goal-chart-legend>div{display:flex;gap:9px;align-items:flex-start}.goal-chart-legend i{width:7px;height:7px;border-radius:50%;margin-top:5px}.legend-achieved{background:#559bed}.legend-pending{background:#d6d8df}.legend-target{background:#0f3f62}.goal-chart-legend span{font-size:11px;color:#818488}.goal-chart-legend strong{display:block;color:#0f3f62;font-size:18px;font-weight:600;margin-top:3px}
@media(max-width:1100px){.investment-charts{grid-template-columns:1fr}.goal-chart-content{justify-content:flex-start}.goal-chart-legend{flex-direction:row;gap:32px}.investment-chart{padding:18px}}
@media(max-width:600px){.investment-chart-title{flex-wrap:wrap}.goal-chart-content{gap:18px}.investment-donut{width:120px;height:120px;flex-basis:120px}.investment-donut>div{width:92px;height:92px}.investment-donut strong{font-size:24px}.goal-chart-legend{flex-direction:column;gap:8px}.chart-legend{margin-bottom:10px}}
input,select,textarea{background:#fff;border-color:#dfe6ef;color:#27343b}input:focus,select:focus,textarea:focus{outline-color:#559bed;border-color:#559bed}.primary-button,.submit-button,.action-button{background:#1679f3;color:#fff}.modal-card,.auth-card{background:#fff;border-color:#e8ecf2;box-shadow:0 18px 70px #0f3f6220}
/* Azul luminoso y tarjetas con profundidad, sin alterar las cifras. */
.topbar{background:linear-gradient(105deg,#2374ca 0%,#79bdec 54%,#e4f4ff 100%);border-bottom:1px solid #ffffff80;box-shadow:0 5px 24px #2374ca19}
.brand,.brand strong,.brand small,.brand span{color:#fff}.tabs .tab{color:#153e67;font-weight:600}.tabs .tab:hover{background:#ffffff65;color:#123f6d}.tabs .tab.active{background:#ffffffd9;color:#185da3;box-shadow:0 3px 12px #155f9c15}.config-button{background:#ffffff9c;color:#185da3}.logo img{filter:brightness(0) invert(1)}
body{background:radial-gradient(ellipse at 5% 4%,#e0effe 0,transparent 42%),radial-gradient(ellipse at 100% 35%,#ebf7fc 0,transparent 40%),#f3f7fc}
.stat,.goal-button{position:relative;isolation:isolate;overflow:hidden;box-shadow:0 6px 18px #1b5d9b0a,inset 0 1px 0 #ffffffd9;border-color:#dbe9f6;transition:transform .18s ease,box-shadow .18s ease}
.stat:hover,.goal-button:hover{transform:translateY(-2px);box-shadow:0 10px 26px #1b5d9b15}
.hero-stats .stat:first-child{background:radial-gradient(circle at 100% 0,#b4ddff80,transparent 62%),linear-gradient(135deg,#fff,#e7f2fe)}
.hero-stats .stat:last-child{background:radial-gradient(circle at 90% 100%,#c2ecff90,transparent 65%),linear-gradient(135deg,#fafdff,#edf8ff)}
.stats .stat:nth-child(4n+1){background:linear-gradient(125deg,#fff 10%,#e9f4ff 100%);border-top:3px solid #81baf0}
.stats .stat:nth-child(4n+2){background:linear-gradient(140deg,#edf4ff 0%,#fff 72%);border-top:3px solid #b2c9f0}
.stats .stat:nth-child(4n+3){background:radial-gradient(ellipse at 100% 100%,#d7f2ff 0,transparent 70%),#fff;border-top:3px solid #84d5ec}
.stats .stat:nth-child(4n+4){background:linear-gradient(135deg,#eef8fc,#e8f1fc);border-top:3px solid #9dbde5}
.stats .stat.accent{background:radial-gradient(circle at 110% -20%,#8adfff88,transparent 60%),linear-gradient(125deg,#226bb4,#389be5);border-top:3px solid #a6e3ff}
.stat::after{content:"";display:block;position:absolute;width:125px;height:125px;right:-44px;bottom:-65px;border:16px solid #78b8ed15;border-radius:50%;z-index:-1;pointer-events:none}
.goal-button:nth-child(2){background:linear-gradient(130deg,#fafdff,#dceeff)}.goal-button:nth-child(3){background:radial-gradient(circle at 100% 0,#bbe8fa88,transparent 70%),#f4fbff}.goal-button:nth-child(4){background:linear-gradient(140deg,#e9f1ff,#fff)}
.goal-button.primary{background:radial-gradient(circle at 100% 0,#82d9ff77,transparent 70%),linear-gradient(115deg,#2069b2,#3c9de8)}
.investment-chart{background:linear-gradient(145deg,#fff 70%,#f0f8ff);box-shadow:0 6px 20px #1b5d9b07}.goal-chart{background:radial-gradient(ellipse at 100% 0,#ddf1ff99,transparent 65%),#fff}
.monthly-stage-card:nth-child(1){background:linear-gradient(145deg,#fff,#edf5ff)}.monthly-stage-card:nth-child(2){background:linear-gradient(145deg,#fff,#edfaff)}.monthly-stage-card:nth-child(3){background:linear-gradient(145deg,#f0f5ff,#fff)}
@media(prefers-reduced-motion:reduce){.stat,.goal-button{transition:none}.stat:hover,.goal-button:hover{transform:none}}
/* Paleta final indicada por el usuario. */
:root{--principal:#0F3F62;--secundario:#0B2545;--fresco:#175A91;--acento:#DFB15B;--texto:#27343B;--muted:#677580;--fondo:#F8F9F9;--linea:#dce3e8}
body{background:#F8F9F9;color:#27343B}
.topbar{background:linear-gradient(110deg,#0B2545 0%,#0F3F62 55%,#175A91 100%);border-bottom:1px solid #175A91;box-shadow:0 5px 20px #0B25451a}
.tabs .tab{color:#FFFFFF}.tabs .tab:hover{color:#FFFFFF;background:#ffffff18}.tabs .tab.active{background:#DFB15B;color:#0B2545;box-shadow:none}.config-button{background:#ffffff18;color:#DFB15B}
.brand,.brand strong,.brand small,.brand span{color:#FFFFFF}
.offline-notice{background:#edf0f3;color:#0F3F62;border-color:#dce3e8}
.stat,.hero-card,.year-panel,.monthly-total-panel,.ranking-card,.zone-detail,.investment-chart,.monthly-stage-card{border-color:#dde4e9;box-shadow:0 5px 18px #0B254508}
.hero-stats .stat:first-child{background:linear-gradient(125deg,#FFFFFF,#e1e9ef)}.hero-stats .stat:last-child{background:linear-gradient(125deg,#FFFFFF,#e7edf1)}
.stats .stat:nth-child(4n+1){background:linear-gradient(125deg,#FFFFFF,#e0e9f0);border-top-color:#175A91}.stats .stat:nth-child(4n+2){background:linear-gradient(140deg,#e4ebf0,#FFFFFF);border-top-color:#DFB15B}.stats .stat:nth-child(4n+3){background:linear-gradient(140deg,#FFFFFF,#e5ebef);border-top-color:#0F3F62}.stats .stat:nth-child(4n+4){background:linear-gradient(135deg,#e7edf2,#FFFFFF);border-top-color:#175A91}
.stats .stat.accent,.goal-button.primary{background:linear-gradient(120deg,#0B2545,#0F3F62 55%,#175A91);border-color:#175A91}
.stat .value,.goal-button strong,.investment-chart-title h3,.ranking-card h3,.zone-detail-header h3,.monthly-total-header h3{color:#0F3F62}.stat.accent .value,.stat.accent .label,.stat.accent .note,.goal-button.primary span,.goal-button.primary strong{color:#FFFFFF}
.stat::after{border-color:#175A9114}.stat.accent::after{border-color:#DFB15B24}
.goal-button:nth-child(2){background:linear-gradient(130deg,#FFFFFF,#e0e8ef)}.goal-button:nth-child(3){background:linear-gradient(135deg,#e7edf2,#FFFFFF)}.goal-button:nth-child(4){background:linear-gradient(135deg,#FFFFFF,#ebe7de)}
.investment-chart{background:linear-gradient(145deg,#FFFFFF 65%,#edf1f4)}.goal-chart{background:linear-gradient(130deg,#FFFFFF,#e9eef2)}
.zone-table .district-separator td{background:linear-gradient(110deg,#0B2545,#0F3F62 55%,#175A91)}.zone-table .district-total td{background:#e8eef3;color:#0F3F62}.zone-table .district-stage-guide .stage-heading{background:linear-gradient(115deg,#edf1f4,#e3eaf0);color:#0F3F62}
.stage-progress-bar{background:#d6dfe7}.stage-progress-bar i{background:linear-gradient(90deg,#DFB15B,#175A91)}.stage-progress-bar strong{color:#0B2545}.stage-progress-line{color:#677580}
.pill{background:#edf1f4;color:#0F3F62;border-color:#dae3ea}.new-badge{background:#f6eedf;color:#0F3F62;border-color:#DFB15B}.ranking-toggle button.active{background:#175A91;color:#FFFFFF}
.monthly-stage-card:nth-child(1){background:linear-gradient(145deg,#FFFFFF,#e7eef3)}.monthly-stage-card:nth-child(2){background:linear-gradient(145deg,#e9eff3,#FFFFFF)}.monthly-stage-card:nth-child(3){background:linear-gradient(145deg,#FFFFFF,#f3eee4)}
input:focus,select:focus,textarea:focus{outline-color:#175A91;border-color:#175A91}.primary-button,.submit-button,.action-button{background:#175A91;color:#FFFFFF}
.chart-legend i,.legend-achieved{background:#175A91}.legend-pending{background:#DFB15B}.legend-target{background:#0B2545}.investment-donut{background:conic-gradient(#0F3F62 0%,#175A91 var(--chart-progress),#DFB15B var(--chart-progress),#DFB15B 100%)}.investment-donut strong,.goal-chart-legend strong{color:#0F3F62}

/* Contraste del porcentaje sobre el relleno. */
.stage-progress-bar strong.progress-covered{color:#FFFFFF;text-shadow:none}

/* Títulos legibles en los encabezados oscuros de rankings. */
.ranking-card .ranking-card-header h3{color:#FFFFFF}

/* Configuración: tuerca blanca sin fondo circular. */
.config-button,.config-button:hover,.config-button:active{background:transparent;color:#FFFFFF;border:0;box-shadow:none;border-radius:0}
