:root{--nav:#10243e;--accent:#1769e0;--accent-soft:#eaf2ff;--bg:#f3f6fa;--surface:#fff;--line:#dce3ec;--text:#122033;--muted:#64748b;--green:#12824c;--green-bg:#e8f8ef;--red:#c93636;--red-bg:#fff0f0;--amber:#a85a00;--amber-bg:#fff5df;--shadow:0 8px 28px rgba(19,38,64,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--accent);text-decoration:none}button,.button,input,select,textarea{font:inherit}button,.button{border:0;border-radius:12px;background:var(--accent);color:#fff;min-height:46px;padding:12px 16px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button:not(.primary),button.secondary{background:var(--surface);border:1px solid var(--line);color:var(--text)}.wide{width:100%}.app-shell{min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--nav);color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:40}.brand{font-size:25px;font-weight:900;padding:0 10px 22px}.sidebar nav{display:grid;gap:5px;overflow:auto}.sidebar nav a,.logout{color:#dce8f8;padding:12px 13px;border-radius:12px;font-weight:650;display:flex;align-items:center;gap:12px}.sidebar nav a span{width:24px;text-align:center}.sidebar nav a.active{background:#24466e;color:#fff}.logout{margin-top:auto;color:#ffc2c2}.page{margin-left:245px;min-height:100dvh}.page header{height:70px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 28px;position:sticky;top:0;z-index:20}.page header h1{font-size:21px;margin:0}.user-name{margin-left:auto;color:var(--muted);font-size:14px}.icon-btn{display:none;background:transparent;color:var(--text);padding:8px;min-height:42px;font-size:20px}.page main{padding:26px;max-width:1180px;margin:auto}.flash{padding:13px 15px;border-radius:12px;margin-bottom:16px;background:var(--green-bg);color:var(--green);font-weight:700}.flash.error{background:var(--red-bg);color:var(--red)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metrics.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{display:flex;flex-direction:column;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);color:var(--text)}.metric span{font-size:13px;color:var(--muted)}.metric b{font-size:24px}.metric.warn{border-left:4px solid var(--amber)}.metric.danger{border-left:4px solid var(--red)}.quick-actions,.actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.quick-actions a{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 15px;font-weight:750;color:var(--text)}.quick-actions a.primary{background:var(--accent);border-color:var(--accent);color:#fff}.panel,.card,.form-card,.context-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);margin-bottom:18px}.panel{overflow:hidden}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-head h2{margin:0;font-size:16px}.list .row{min-height:68px;padding:13px 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;color:var(--text)}.list .row:last-child{border-bottom:0}.row>div:first-child{min-width:0;flex:1}.row b,.row strong{display:block}.row small{display:block;color:var(--muted);font-size:12px;margin-top:4px;white-space:normal}.amount{text-align:right;flex:0 0 auto}.amount .badge{margin-top:5px}.badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#edf1f5;color:#556375}.badge.green{background:var(--green-bg);color:var(--green)}.badge.red{background:var(--red-bg);color:var(--red)}.empty{text-align:center;padding:28px;color:var(--muted)}.tabs{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:4px;margin-bottom:14px}.tabs a{flex:1;text-align:center;padding:10px;border-radius:10px;font-weight:750;color:var(--muted)}.tabs a.active{background:var(--accent-soft);color:var(--accent)}.search{display:flex;gap:8px;margin-bottom:12px}.search input{flex:1}.search button{min-width:88px}.filter-row{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.filter-row a{border:1px solid var(--line);color:var(--muted);background:var(--surface);padding:8px 12px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.filter-row a.active{background:var(--nav);color:#fff;border-color:var(--nav)}.form-card,.inline-form{padding:18px}.form-card{max-width:720px}.form-card label,.inline-form label{display:grid;gap:7px;font-size:13px;font-weight:750;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{min-width:0}input,select,textarea{width:100%;border:1px solid #cbd5e1;background:#fff;color:var(--text);border-radius:11px;min-height:46px;padding:10px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(23,105,224,.12)}textarea{resize:vertical}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:20px;min-height:20px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{padding:17px;color:var(--text)}.card-top{display:flex;justify-content:space-between;gap:10px;align-items:start}.card>small{color:var(--muted);display:block;margin-top:5px}.card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.card-metrics span{display:grid;gap:4px;font-size:12px;color:var(--muted)}.card-metrics b{color:var(--text);font-size:15px}.text-red{color:var(--red)!important}.text-green{color:var(--green)!important}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px}.detail-head h2{margin:0 0 4px;font-size:22px}.detail-head span{color:var(--muted);font-size:13px}.detail-list{padding:4px 18px}.detail-list>div{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-list>div:last-child{border:0}.detail-list span{color:var(--muted);font-size:13px}.detail-list b{text-align:right}.context-card{padding:17px;display:grid;gap:5px}.context-card span{color:var(--muted);font-size:13px}.context-card strong{font-size:20px;margin-top:5px}.panel details{border-top:1px solid var(--line)}summary{cursor:pointer;padding:15px 18px;font-weight:750;color:var(--accent)}.wallet-strip{display:flex;gap:10px;overflow:auto;padding:2px 0 14px;scrollbar-width:none}.wallet-strip>div{min-width:165px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px}.wallet-strip span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.wallet-strip b{font-size:17px}.mini-form{margin-top:5px}.mini-form button{min-height:32px;padding:5px 9px;font-size:11px}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.more-grid a{min-height:60px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--text);padding:16px;font-weight:750;display:flex;align-items:center;justify-content:space-between}.more-grid span{color:var(--muted);font-size:22px}.bottom-nav{display:none}.overlay{display:none}.auth{min-height:100dvh;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#0e2037,#1e4f84)}.auth-card{width:min(100%,390px);background:#fff;border-radius:22px;padding:26px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.auth-brand{font-size:31px;font-weight:900;margin:0 0 24px;text-align:center;color:var(--nav)}.auth-card label{display:grid;gap:7px;font-size:13px;font-weight:750;margin-bottom:14px}.auth-card button{width:100%}
@media(max-width:800px){body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.sidebar{transform:translateX(-100%);transition:.2s;width:min(82vw,280px);padding-top:calc(22px + env(safe-area-inset-top))}.sidebar.open{transform:none}.overlay.show{display:block;position:fixed;inset:0;background:rgba(3,12,24,.52);z-index:35}.page{margin-left:0}.page header{height:58px;padding:0 14px}.page header h1{font-size:18px}.icon-btn{display:inline-flex}.user-name{display:none}.page main{padding:14px}.bottom-nav{position:fixed;display:flex;z-index:30;inset:auto 0 0 0;height:calc(62px + env(safe-area-inset-bottom));padding:5px 8px env(safe-area-inset-bottom);background:rgba(255,255,255,.96);border-top:1px solid var(--line);backdrop-filter:blur(12px)}.bottom-nav a{flex:1;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:700}.bottom-nav a span{font-size:19px;line-height:1}.bottom-nav a.active{color:var(--accent)}.metrics{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px;border-radius:14px}.metric b{font-size:19px}.quick-actions{display:grid;grid-template-columns:1fr 1fr}.quick-actions a{text-align:center;padding:11px 8px;font-size:13px}.cards{grid-template-columns:1fr}.form-card{padding:15px}.row{font-size:14px}.detail-head h2{font-size:19px}.more-grid{grid-template-columns:1fr}.search input{min-width:0}.search button{min-width:auto;padding-inline:13px}}
@media(max-width:440px){.form-grid{grid-template-columns:1fr}.metrics.two{grid-template-columns:1fr 1fr}.list .row{padding:12px 14px}.row strong{font-size:13px}.card-metrics{gap:6px}.detail-list>div{display:grid;gap:4px}.detail-list b{text-align:left}.quick-actions{grid-template-columns:1fr 1fr}}
.receipt{max-width:520px;margin:0 auto 18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.receipt-brand{text-align:center;font-size:23px;font-weight:900;color:var(--nav)}.receipt-amount{text-align:center;font-size:34px;font-weight:900;color:var(--green);margin-top:20px}.receipt-title{text-align:center;color:var(--muted);margin:3px 0 18px}.receipt .detail-list{box-shadow:none;border:0;margin:0;padding:0}
@media print{.sidebar,.page header,.bottom-nav,.no-print,.overlay{display:none!important}.page{margin:0}.page main{padding:0}.receipt{box-shadow:none;border:0;margin:0 auto}.app-shell{min-height:0}}
.scroll-tabs{overflow-x:auto}.scroll-tabs a{min-width:max-content}.alert-link{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--amber-bg);border:1px solid #efd394;color:var(--text);padding:13px 15px;border-radius:14px;margin-bottom:10px}.alert-link small{display:block;color:var(--muted);margin-top:3px}.alert-link strong{color:var(--amber);text-align:right}.month-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;padding:16px}.month-grid span{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:#edf1f5;color:var(--muted);font-size:11px;font-weight:800}.month-grid span.paid{background:var(--green-bg);color:var(--green)}.progress-line{display:flex;justify-content:space-between;padding:0 16px 8px;color:var(--muted);font-size:13px}.progress{height:8px;background:#edf1f5;border-radius:99px;margin:0 16px 16px;overflow:hidden}.progress i{height:100%;background:var(--green);display:block}.form-section{font-size:14px;border-bottom:1px solid var(--line);padding-bottom:8px;margin:20px 0 14px}.form-section:first-of-type{margin-top:0}.danger-form{max-width:720px;margin:14px 0}.danger-form button,.mini-form button.danger{background:var(--red-bg);color:var(--red);border:1px solid #f1c4c4}.head-actions{display:flex;align-items:center;gap:8px}.border-top{border-top:1px solid var(--line)}.report-table-wrap{overflow:auto}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th,.report-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.report-table th{background:#edf3f9;color:#475569;font-size:11px;text-transform:uppercase}.report-filter{flex-wrap:wrap}.report-filter input{width:auto;flex:1}.inline-form small{font-weight:500;color:var(--muted)}
@media(max-width:800px){.month-grid{grid-template-columns:repeat(6,1fr)}.report-filter input{min-width:135px}.head-actions{align-items:stretch}.detail-head{align-items:flex-start}.alert-link strong{font-size:13px}}
.report-table td.paid-cell{background:var(--green-bg);color:var(--green);font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}

/* Experiencia integral v3.2 */
.brand{display:flex;align-items:center;gap:10px}.brand img{width:36px;height:36px;object-fit:contain}.auth-brand{display:flex;align-items:center;justify-content:center;gap:12px}.auth-brand img{width:70px;height:62px;object-fit:contain}.panel-head>span{font-size:12px;color:var(--muted)}.card-top small{display:block;color:var(--muted);margin-top:4px}.module-tabs{max-width:520px}.row-arrow{display:inline-block;margin-left:8px;color:var(--muted);font-size:20px}.library-cards .book-card{transition:transform .15s ease,box-shadow .15s ease}.library-cards .book-card:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(19,38,64,.13)}
.report-selector{max-width:360px;margin-bottom:12px}.report-selector label,.report-controls label{display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--muted)}.report-controls{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));align-items:end;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:18px}.report-controls .report-search{grid-column:span 2}.report-controls button,.report-controls .button{min-height:44px}.institutional-report{background:#fff;color:#172033;border:1px solid #ced7e2;border-radius:4px;box-shadow:0 16px 48px rgba(21,38,64,.12);padding:28px;min-height:700px}.institutional-report .report-letterhead{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid #1a6fb5;padding:0 0 14px;height:auto;position:static;background:#fff}.report-letterhead p{font-size:11px;letter-spacing:2.5px;color:#8b6b17;font-weight:900;margin:0 0 6px}.report-letterhead h2{font-size:22px;margin:0 0 4px;color:#143a63}.report-letterhead span{color:#5f6c7c;font-size:13px}.report-letterhead img{width:92px;height:78px;object-fit:contain}.report-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:5px 24px;background:#f4f7fb;border:1px solid #dde5ee;border-radius:8px;padding:10px 12px;margin:14px 0;font-size:11px;color:#516071}.report-summary{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 14px}.report-summary div{min-width:125px;border-left:4px solid #1a6fb5;background:#f4f8fc;padding:9px 11px}.report-summary span{display:block;color:#687587;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.report-summary strong{display:block;color:#143a63;font-size:16px;margin-top:3px}.report-sheet{overflow:auto;border:1px solid #d7dfe9}.report-table.professional{font-size:11px}.report-table.professional th{background:#1a6fb5;color:#fff;border:1px solid #0e5b99;padding:9px 8px;text-align:center;white-space:normal}.report-table.professional td{border:1px solid #d8e0e9;padding:8px;white-space:normal;vertical-align:top}.report-table.professional tbody tr:nth-child(even){background:#f7f9fc}.report-table.professional td.number-cell{text-align:right;white-space:nowrap}.report-table.professional tfoot td{background:#e8eff7;font-weight:900;border:1px solid #c8d3df}.report-footer{display:flex;justify-content:space-between;border-top:1px solid #d6dee8;margin-top:18px;padding-top:8px;font-size:9px;color:#718096}.data-actions{padding:18px}.data-actions p{color:var(--muted);font-size:13px;margin:10px 0 0}
@media(max-width:800px){.search select{max-width:135px}.report-controls{grid-template-columns:1fr 1fr}.report-controls .report-search{grid-column:1/-1}.institutional-report{padding:15px;min-height:0}.report-letterhead h2{font-size:18px}.report-letterhead img{width:66px;height:58px}.report-meta{grid-template-columns:1fr}.report-summary{display:grid;grid-template-columns:1fr 1fr}.report-summary div{min-width:0}.report-sheet{margin-inline:-15px;border-inline:0}.report-table.professional{font-size:10px}.report-table.professional th,.report-table.professional td{padding:7px 6px}.data-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.search{flex-wrap:wrap}.search input{flex-basis:calc(100% - 75px)}.search select{order:3;max-width:none}.report-controls{grid-template-columns:1fr}.report-controls .report-search{grid-column:auto}.report-summary{grid-template-columns:1fr 1fr}.institutional-report{padding:12px}.report-letterhead{align-items:flex-start}.report-letterhead img{width:58px;height:52px}.report-meta{font-size:10px}.report-sheet{margin-inline:-12px}}
@media print{html,body{background:#fff!important}.page main{max-width:none!important}.institutional-report{display:block!important;border:0!important;box-shadow:none!important;padding:0!important;min-height:0!important}.report-letterhead{break-inside:avoid}.report-meta,.report-summary{break-inside:avoid}.report-sheet{overflow:visible!important;border:0!important;margin:0!important}.report-table.professional{font-size:8pt;width:100%}.report-table.professional th,.report-table.professional td{padding:4pt 5pt}.report-table.professional thead{display:table-header-group}.report-table.professional tr{break-inside:avoid}.report-footer{position:fixed;bottom:0;left:0;right:0}.report-landscape .report-table.professional{font-size:6.5pt}}
body.dark{--bg:#0e1722;--surface:#162231;--line:#2c3b4d;--text:#eef4fb;--muted:#a6b4c6;--accent-soft:#203b60;--green-bg:#173a2c;--red-bg:#3b2024;--amber-bg:#3a2e18;background:var(--bg);color:var(--text)}body.dark input,body.dark select,body.dark textarea{background:#101c29;border-color:#3a4b60;color:var(--text)}body.dark .bottom-nav{background:rgba(22,34,49,.97)}body.dark .institutional-report{background:#fff;color:#172033}body.dark .institutional-report .report-letterhead{background:#fff}body.dark .auth-card{background:var(--surface)}

/* Portal de afiliados v3.3 */
.portal-profile{display:flex;align-items:center;gap:13px;margin-bottom:15px}.portal-avatar{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--nav),var(--accent));color:#fff;display:grid;place-items:center;font-weight:900;font-size:18px}.portal-profile span{font-size:12px;color:var(--muted)}.portal-profile h2{font-size:20px;margin:3px 0 0}.portal-tabs{max-width:600px}.year-filter{display:flex;align-items:end;gap:8px;max-width:260px;margin:0 0 14px}.year-filter label{font-size:12px;font-weight:800;color:var(--muted)}.year-filter input{min-height:42px}.year-filter button{min-height:42px}.portal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-months{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:16px}.portal-months div{background:#eef2f6;border:1px solid transparent;border-radius:11px;padding:10px 7px;text-align:center}.portal-months div.paid{background:var(--green-bg);border-color:#bce8ce}.portal-months span{display:block;color:var(--muted);font-size:11px;font-weight:800}.portal-months b{display:block;font-size:12px;margin-top:4px}.portal-months .paid b{color:var(--green)}.portal-concept-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:18px}.portal-concept-grid div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow)}.portal-concept-grid span{display:block;color:var(--muted);font-size:12px}.portal-concept-grid b{display:block;margin-top:5px}.portal-activities{grid-template-columns:1fr}.portal-activities details{padding:0;overflow:hidden}.portal-activities summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;padding:16px}.portal-activities summary::-webkit-details-marker{display:none}.portal-activities summary small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.activity-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:13px 16px;border-top:1px solid var(--line)}.activity-detail div{display:grid;gap:3px}.activity-detail span{color:var(--muted);font-size:11px}.portal-payment-list{padding:0 16px 12px}.portal-payment-list div{display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding:9px 0;font-size:12px}.password-card{margin-inline:auto}.portal-heading span{color:var(--accent);font-size:12px;font-weight:900;text-transform:uppercase}.portal-heading h2{margin:5px 0}.portal-heading p{color:var(--muted);font-size:13px;margin:0 0 20px}
.affiliate-access-box{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;background:var(--accent-soft);border-bottom:1px solid var(--line)}.affiliate-access-box small{display:block;color:var(--muted);margin-top:4px}.affiliate-access-box button{flex:0 0 auto}
@media(max-width:800px){.affiliate-shell .page main{max-width:720px}.portal-metrics{grid-template-columns:1fr 1fr}.portal-metrics .metric:first-child{grid-column:1/-1}.portal-concept-grid{grid-template-columns:1fr 1fr}.portal-months{grid-template-columns:repeat(4,1fr)}}
@media(max-width:440px){.portal-profile h2{font-size:17px}.portal-months{grid-template-columns:repeat(3,1fr);padding:12px}.portal-concept-grid{gap:7px}.portal-concept-grid div{padding:11px}.portal-activities summary{padding:13px}.activity-detail{grid-template-columns:1fr 1fr}.affiliate-access-box{align-items:stretch;flex-direction:column}.affiliate-access-box button{width:100%}}
