:root{--bg:#f6f8f3;--surface:#fff;--surface-soft:#eef5e7;--ink:#122018;--muted:#647263;--primary:#0f7a4f;--primary-dark:#075b3b;--secondary:#f4b73f;--accent:#2f6fe4;--border:#1220181f;--shadow:0 24px 70px #16362729;--radius-lg:28px;--radius-md:20px;--radius-sm:14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #f4b73f47, transparent 30rem), radial-gradient(circle at top right, #0f7a4f2e, transparent 34rem), var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.site-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f6f8f3d1;border-bottom:1px solid #ffffffb3;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem clamp(1rem,4vw,4rem);display:flex;position:sticky;top:0}.brand{align-items:center;gap:.8rem;min-height:44px;display:inline-flex}.brand-mark{background:linear-gradient(135deg, var(--primary), var(--accent));color:#fff;letter-spacing:-.06em;border-radius:16px;place-items:center;width:46px;height:46px;font-weight:900;display:grid;box-shadow:0 12px 30px #0f7a4f42}.brand strong,.brand small{display:block}.brand strong{font-size:1rem;line-height:1.1}.brand small{color:var(--muted);margin-top:.15rem;font-size:.76rem}.header-nav{align-items:center;gap:.35rem;display:flex}.header-nav a{color:#33443a;border-radius:999px;align-items:center;min-height:44px;padding:0 1rem;font-size:.92rem;font-weight:700;display:inline-flex}.header-nav a:hover,.header-nav a:focus-visible{background:#0f7a4f1a;outline:none}.header-nav .nav-login{background:var(--ink);color:#fff}.header-nav .nav-button{font:inherit;cursor:pointer;border:0}.hero{background:linear-gradient(90deg,#f7f7f1f5 0%,#f7f7f1e0 44%,#f7f7f15c 100%),url(/cmj-hero-background.jpg) 50%/cover no-repeat;grid-template-columns:minmax(0,1.06fr) minmax(20rem,.94fr);align-items:center;gap:clamp(2rem,5vw,5rem);min-height:calc(100vh - 78px);padding:clamp(3rem,7vw,7rem) clamp(1rem,5vw,5rem);display:grid}.hero-content{max-width:760px}.eyebrow,.section-kicker{color:var(--primary-dark);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.8rem;font-weight:900;display:inline-flex}.eyebrow{background:#ffffffad;border:1px solid #0f7a4f2e;border-radius:999px;padding:.55rem .85rem}.eyebrow-icon{width:18px;height:18px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.08em;margin-bottom:1.2rem;font-size:clamp(3rem,8vw,6.7rem);line-height:.92}h2{letter-spacing:-.055em;margin-bottom:1rem;font-size:clamp(2rem,4vw,3.6rem);line-height:1}h3{margin-bottom:.65rem;font-size:1.12rem}.hero p,.section-lead,.cta-section p,.auth-visual p,.auth-card p,.dashboard-header p{color:var(--muted);font-size:clamp(1rem,2vw,1.18rem);line-height:1.7}.hero-actions{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.button{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;min-height:48px;padding:0 1.25rem;font-weight:900;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.button:hover,.button:focus-visible{outline:none;transform:translateY(-2px)}.button-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 16px 36px #0f7a4f47}.button-secondary{border:1px solid var(--border);color:var(--ink);background:#ffffffd1}.button-icon{width:18px;height:18px}.full-width{width:100%}.trust-row{flex-wrap:wrap;gap:.65rem;margin-top:2rem;display:flex}.trust-row span,.module-grid span{color:#405045;background:#ffffffb3;border:1px solid #0f7a4f29;border-radius:999px;padding:.55rem .8rem;font-size:.88rem;font-weight:800}.hero-panel{justify-content:center;display:flex}.phone-card{background:linear-gradient(155deg, #fffffff0, #eef5e7db), var(--surface);width:min(100%,410px);box-shadow:var(--shadow);border:1px solid #ffffffbd;border-radius:32px;padding:.85rem}.phone-top{gap:.45rem;padding:.45rem .35rem .9rem;display:flex}.phone-top span{background:#12201833;border-radius:999px;width:10px;height:10px}.phone-section{background:var(--ink);color:#fff;border-radius:24px;padding:1.15rem}.phone-section small,.mini-dashboard small,.stat-card span,.stat-card small,.project-row span,.project-row small{color:#ffffffad}.phone-section strong{letter-spacing:-.04em;margin-top:.35rem;font-size:1.4rem;line-height:1.1;display:block}.progress-list{gap:.5rem;margin-top:1.2rem;display:grid}.progress-list>div:not(.progress-bar){justify-content:space-between;gap:1rem;display:flex}.progress-list .progress-item{gap:.55rem;display:grid}.progress-list .progress-item>div:first-child,.progress-list .progress-empty{justify-content:space-between;gap:1rem;display:flex}.progress-bar,.project-progress{background:#ffffff26;border-radius:999px;height:9px;overflow:hidden}.progress-bar span,.project-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--secondary), #7ee2aa);height:100%;display:block}.mini-dashboard{grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:.7rem;display:grid}.mini-dashboard div{background:#fff;border-radius:18px;padding:.85rem}.mini-dashboard small{color:var(--muted)}.mini-dashboard strong{margin-top:.2rem;font-size:1.7rem;display:block}.section{padding:clamp(3rem,6vw,6rem) clamp(1rem,5vw,5rem)}.split{grid-template-columns:minmax(0,.72fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.feature-grid,.event-grid,.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.feature-card,.event-card,.info-card,.auth-card,.dashboard-card,.stat-card{border-radius:var(--radius-md);background:#ffffffc7;border:1px solid #ffffffc2;padding:1.25rem;box-shadow:0 14px 40px #16362714}.feature-card p,.event-card p,.info-card p,.donut-wrap p{color:var(--muted);line-height:1.65}.card-icon,.info-icon,.dashboard-icon,.role-icon{width:28px;height:28px;color:var(--primary)}.section-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.text-link{min-height:44px;color:var(--primary-dark);align-items:center;font-weight:900;display:inline-flex}.event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.event-card time{color:#725010;background:#f4b73f38;border-radius:999px;padding:.42rem .7rem;font-weight:900;display:inline-flex}.event-card h3{margin-top:1.2rem}.platform-section{background:linear-gradient(135deg,#0f7a4f1a,#2f6fe414),#ffffff59;border-block:1px solid #12201814;overflow:hidden}.module-grid{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.dark-card{background:var(--ink);color:#fff}.dark-card p{color:#ffffffbd}.dark-card .info-icon{color:var(--secondary)}.metric-list{gap:.75rem;display:grid}.metric-list div{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding-top:.75rem;display:flex}.metric-list strong{letter-spacing:-.05em;font-size:2rem}.metric-list span{color:var(--muted);text-align:right}.cta-section{background:linear-gradient(135deg, #0f7a4ff2, #075b3bf2), var(--primary);color:#fff;text-align:center;border-radius:36px;margin:clamp(1rem,5vw,5rem);padding:clamp(2rem,6vw,5rem)}.cta-section p{color:#ffffffc7;max-width:680px;margin-inline:auto}.cta-section .hero-actions{justify-content:center}.cta-section .button-secondary{color:#fff;background:#ffffff1f}.cta-icon{width:44px;height:44px;margin-bottom:1rem}.auth-page{grid-template-columns:minmax(0,1fr) minmax(22rem,.72fr);min-height:100vh;display:grid}.auth-visual{background:linear-gradient(135deg, #122018eb, #075b3be6), var(--ink);color:#fff;flex-direction:column;justify-content:space-between;gap:3rem;padding:clamp(1.2rem,5vw,4rem);display:flex}.auth-visual .brand small,.auth-visual p{color:#ffffffbd}.auth-visual h1{max-width:780px;font-size:clamp(2.5rem,6vw,5.8rem)}.auth-brand .brand-mark{color:var(--primary-dark);background:#fff}.auth-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.auth-stats div{border-radius:var(--radius-md);background:#ffffff14;border:1px solid #ffffff2e;padding:1.1rem}.auth-stats strong{font-size:2.2rem;display:block}.auth-stats span{color:#ffffffb8}.auth-card{align-self:center;width:min(100% - 2rem,520px);margin:1rem auto;padding:clamp(1.2rem,4vw,2rem)}.auth-card h2{font-size:clamp(2rem,5vw,3.1rem)}.demo-credentials{border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink);border:1px solid #0f7a4f29;gap:.45rem;margin-top:1rem;padding:1rem;display:grid}.demo-credentials span{color:var(--primary-dark);font-weight:900}.demo-credentials code{color:#244236;background:#fff;border-radius:999px;width:fit-content;padding:.35rem .65rem;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-weight:800}.demo-role-grid{gap:.75rem;max-height:360px;margin-top:1rem;padding-right:.2rem;display:grid;overflow-y:auto}.demo-role-card{color:var(--ink);cursor:pointer;text-align:left;background:#eef5e79e;border:1px solid #0f7a4f29;border-radius:18px;gap:.4rem;padding:.9rem;display:grid}.demo-role-card:hover,.demo-role-card:focus-visible{background:#eef5e7eb;border-color:#0f7a4f52;outline:none}.demo-role-card strong,.demo-role-card span,.demo-role-card code{display:block}.demo-role-card span{color:var(--muted);font-size:.84rem;line-height:1.45}.demo-role-card code{color:#244236;background:#fff;border-radius:999px;width:fit-content;padding:.28rem .55rem;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.78rem;font-weight:800}.login-form{gap:1rem;margin-top:1.5rem;display:grid}.login-form label{color:#2b3c32;gap:.5rem;font-weight:900;display:grid}.login-form input{border:1px solid var(--border);min-height:52px;color:var(--ink);background:#fff;border-radius:16px;padding:0 1rem}.login-form input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px #0f7a4f1f}.form-error{border-radius:var(--radius-sm);color:#9f1d1d;background:#bb1f1f14;margin:0;padding:.8rem 1rem;font-weight:800}.auth-links{color:var(--primary-dark);flex-wrap:wrap;justify-content:space-between;gap:.8rem;margin-top:1.2rem;font-weight:800;display:flex}.register-page{grid-template-columns:minmax(0,.9fr) minmax(24rem,.82fr)}.register-visual{background:linear-gradient(135deg, #122018e6, #0f7a4fe6), var(--primary-dark)}.register-card{width:min(100% - 2rem,680px)}.register-benefits{gap:.75rem;max-width:620px;display:grid}.register-benefits div{border-radius:var(--radius-sm);color:#ffffffd1;background:#ffffff14;border:1px solid #ffffff2e;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;padding:.9rem;font-weight:800;line-height:1.5;display:grid}.register-benefits .task-icon{color:var(--secondary)}.role-preview{border-radius:var(--radius-sm);background:#eef5e7b8;border:1px solid #0f7a4f29;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.85rem;margin-top:1.2rem;padding:1rem;display:grid}.role-preview span,.role-preview strong,.role-preview small{display:block}.role-preview span{color:var(--primary-dark);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:900}.role-preview strong{margin-top:.15rem;font-size:1.35rem;line-height:1.1}.role-preview small{color:var(--muted);margin-top:.25rem;line-height:1.5}.councillor-register-page{grid-template-columns:minmax(0,.82fr) minmax(26rem,.88fr)}.councillor-register-visual{background:linear-gradient(135deg, #122018f0, #2f6fe4b3), var(--ink)}.councillor-register-card{width:min(100% - 2rem,760px)}.private-register-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.private-register-summary article{border-radius:var(--radius-md);background:#ffffff14;border:1px solid #ffffff2e;padding:1rem}.private-register-summary strong,.private-register-summary span{display:block}.private-register-summary strong{font-size:2rem;line-height:1}.private-register-summary span{color:#ffffffb8;margin-top:.25rem}.private-register-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.private-profile-preview{border-radius:var(--radius-sm);background:#eef5e794;border:1px solid #0f7a4f24;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.9rem;padding:.85rem;display:grid}.private-photo-preview,.councillor-photo{background:linear-gradient(135deg, #0f7a4f24, #2f6fe41f), var(--surface-soft);color:var(--primary-dark);place-items:center;display:grid;overflow:hidden}.private-photo-preview{border-radius:20px;width:92px;height:92px}.private-photo-preview img,.councillor-photo img{object-fit:cover;width:100%;height:100%}.private-profile-preview strong,.private-profile-preview span,.private-profile-preview small{display:block}.private-profile-preview strong{font-size:1.2rem}.private-profile-preview span{color:var(--primary-dark);margin-top:.2rem;font-weight:900}.private-profile-preview small{color:var(--muted);margin-top:.2rem}.private-photo-upload{width:100%;min-height:48px;margin-top:.2rem}.private-register-note{color:var(--muted);grid-template-columns:auto minmax(0,1fr);gap:.55rem;margin-top:1rem;font-weight:800;line-height:1.5;display:grid}.dashboard-shell{background:#eef3eb;grid-template-columns:300px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#fffc;flex-direction:column;gap:1.4rem;height:100vh;padding:1.2rem;display:flex;position:sticky;top:0}.side-nav{gap:.35rem;display:grid}.side-nav a{color:#3d4d42;border-radius:14px;align-items:center;min-height:44px;padding:0 .9rem;font-weight:850;display:flex}.side-nav a:hover,.side-nav a:focus-visible,.side-nav a.active{background:var(--surface-soft);color:var(--primary-dark);outline:none}.dashboard-main{padding:clamp(1rem,4vw,2.5rem)}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.dashboard-header h1{margin-bottom:.7rem;font-size:clamp(2.1rem,5vw,4.2rem)}.role-card{border-radius:var(--radius-md);background:#ffffffd1;border:1px solid #ffffffd1;align-items:center;gap:.8rem;min-width:220px;padding:1rem;display:flex}.role-card strong,.role-card span{display:block}.role-card span{color:var(--muted)}.stats-grid{margin-bottom:1rem}.stat-card{gap:.45rem;display:grid}.stat-card span,.stat-card small{color:var(--muted)}.stat-card strong{letter-spacing:-.06em;font-size:2.5rem;line-height:1}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.wide-card{grid-column:1/-1}.card-heading{justify-content:space-between;gap:1rem;margin-bottom:1rem;display:flex}.card-heading h2{margin-bottom:0;font-size:clamp(1.5rem,3vw,2.2rem)}.project-list{gap:.8rem;display:grid}.project-row{border:1px solid var(--border);background:#ffffffa6;border-radius:18px;grid-template-columns:1.2fr 1fr .45fr;align-items:center;gap:1rem;padding:1rem;display:grid}.project-row strong,.project-row span{display:block}.project-row span,.project-row small{color:var(--muted)}.project-progress{background:#0f7a4f1f}.task-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.task-list li{border:1px solid var(--border);border-radius:16px;align-items:center;gap:.7rem;padding:.85rem;display:flex}.task-icon{width:20px;height:20px;color:var(--primary);flex:none}.donut-wrap{text-align:center;justify-items:center;gap:1rem;display:grid}.donut{background:radial-gradient(circle at center, #fff 0 55%, transparent 56%), conic-gradient(var(--primary) 0 76%, #0f7a4f1f 76% 100%);border-radius:999px;place-items:center;width:172px;height:172px;display:grid}.donut span{letter-spacing:-.06em;font-size:2.2rem;font-weight:950}@media (max-width:1040px){.hero,.split,.two-column,.auth-page,.dashboard-shell{grid-template-columns:1fr}.feature-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{height:auto;position:static}.side-nav{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:760px){.site-header{flex-direction:column;align-items:flex-start}.header-nav{width:100%;padding-bottom:.2rem;overflow-x:auto}.hero{min-height:auto;padding-top:2rem}.hero-actions,.hero-actions .button{width:100%}.feature-grid,.event-grid,.stats-grid,.dashboard-grid,.auth-stats,.private-register-summary,.side-nav{grid-template-columns:1fr}.section-heading,.dashboard-header{flex-direction:column;align-items:stretch}.project-row{grid-template-columns:1fr}.private-register-heading{flex-direction:column;align-items:stretch}.councillor-public-card,.private-profile-preview{grid-template-columns:1fr}.councillor-photo,.private-photo-preview{aspect-ratio:1.25;width:100%;height:auto}}.dashboard-lead{color:var(--muted);margin-bottom:1.5rem;font-size:clamp(1rem,2vw,1.18rem);line-height:1.7}.proyectos-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.toolbar-search{border:1px solid var(--border);background:#fff;border-radius:16px;flex:1;align-items:center;gap:.6rem;min-width:220px;min-height:48px;padding:0 1rem;display:flex}.toolbar-search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;min-height:44px}.toolbar-filter{border:1px solid var(--border);background:#fff;border-radius:16px;align-items:center;gap:.5rem;min-height:48px;padding:0 1rem;display:flex}.toolbar-filter select{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;outline:none;min-height:44px;font-weight:700}.toolbar-icon{width:18px;height:18px;color:var(--muted);flex:none}.proyectos-table-wrap{border-radius:var(--radius-md);background:#ffffffc7;border:1px solid #ffffffc2;overflow-x:auto;box-shadow:0 14px 40px #16362714}.proyectos-table{border-collapse:collapse;width:100%;font-size:.92rem}.proyectos-table thead{background:var(--surface-soft)}.proyectos-table th{text-align:left;color:var(--primary-dark);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:.85rem 1rem;font-size:.8rem;font-weight:900}.proyectos-table td{border-top:1px solid var(--border);vertical-align:middle;padding:.85rem 1rem}.proyectos-table td strong{display:block}.proyectos-table td small{color:var(--muted);font-size:.82rem}.proyectos-table tbody tr:hover{background:#0f7a4f08}.eje-badge{color:var(--primary-dark);white-space:nowrap;background:#eef5e7b3;border:1px solid #0f7a4f24;border-radius:999px;padding:.3rem .65rem;font-size:.78rem;font-weight:800;display:inline-block}.status-badge{white-space:nowrap;border-radius:999px;padding:.3rem .7rem;font-size:.78rem;font-weight:900;display:inline-block}.status-badge-lg{padding:.45rem 1rem;font-size:.88rem}.status-idea{color:#616161;background:#9e9e9e24}.status-formulacion{color:#1a56c4;background:#2f6fe41f}.status-presentado{color:#7b1fa2;background:#9c27b01f}.status-revision{color:#8d6e0b;background:#f4b73f2e}.status-aprobado{color:#00695c;background:#0096881f}.status-ejecucion{color:var(--primary-dark);background:#0f7a4f24}.status-finalizado{color:#2e7d32;background:#388e3c24}.status-suspendido{color:#b71c1c;background:#c628281a}.table-progress{align-items:center;gap:.5rem;display:flex}.table-progress small{color:var(--ink);font-weight:800}.table-progress-bar{background:#0f7a4f1f;border-radius:999px;flex:1;min-width:60px;height:8px;overflow:hidden}.table-progress-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), #3dc97a);height:100%;transition:width .3s;display:block}.large-bar{height:10px}.budget-approved{color:var(--primary-dark);font-size:.88rem;font-weight:800}.action-buttons{gap:.3rem;display:flex}.icon-btn{cursor:pointer;width:36px;height:36px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.icon-btn:hover{background:var(--surface-soft);color:var(--primary-dark);border-color:var(--border)}.icon-btn-danger:hover{color:#c62828;background:#c6282814;border-color:#c6282833}.action-icon{width:17px;height:17px}.empty-state{text-align:center;color:var(--muted);padding:3rem 1rem!important}.empty-icon{color:#0f7a4f40;width:48px;height:48px;margin-bottom:.5rem}.empty-state p{margin:0;font-weight:700}.panel-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#12201859;justify-content:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-panel,.form-panel{background:var(--surface);flex-direction:column;width:min(100%,640px);height:100vh;animation:.25s slideIn;display:flex;overflow:hidden;box-shadow:-20px 0 60px #1636272e}.panel-header{border-bottom:1px solid var(--border);background:#ffffffe6;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.5rem;display:flex}.panel-header h2{letter-spacing:-.03em;margin:0;font-size:1.4rem}.panel-body{flex:1;padding:1.5rem;overflow-y:auto}.panel-footer{border-top:1px solid var(--border);background:#ffffffe6;padding:1rem 1.5rem}.detail-status-row{flex-wrap:wrap;align-items:center;gap:1.2rem;margin-bottom:1.2rem;display:flex}.detail-progress{flex:1;align-items:center;gap:.6rem;min-width:140px;display:flex}.detail-progress strong{letter-spacing:-.03em;font-size:1.1rem}.detail-description{color:var(--muted);margin-bottom:1.5rem;line-height:1.7}.detail-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.detail-field label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.25rem;font-size:.78rem;font-weight:900;display:block}.detail-field span{color:var(--ink);font-weight:700}.detail-section-title{border-top:1px solid var(--border);margin-bottom:.8rem;padding-top:.5rem;font-size:1rem}.budget-grid{grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.2rem;display:grid}.budget-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffffa6;padding:.8rem}.budget-item label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.3rem;font-size:.75rem;font-weight:900;display:block}.budget-item strong{letter-spacing:-.02em;font-size:1.1rem}.budget-approved-text{color:var(--primary-dark)}.budget-executed-text{color:var(--accent)}.budget-execution-bar{margin-bottom:1.5rem}.budget-execution-bar label{color:var(--ink);margin-bottom:.4rem;font-size:.82rem;font-weight:800;display:block}.beneficiados-number{letter-spacing:-.03em;font-size:1.3rem}.detail-observaciones{border-top:1px solid var(--border);padding-top:1rem}.detail-observaciones label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.35rem;font-size:.78rem;font-weight:900;display:block}.detail-observaciones p{color:var(--ink);margin:0;line-height:1.65}.project-form{flex:1;padding:1.2rem 1.5rem 1.5rem;overflow-y:auto}.form-section{margin-bottom:1.5rem}.form-section h3{color:var(--primary-dark);letter-spacing:.02em;border-bottom:1px solid var(--border);padding-bottom:.5rem;font-size:.92rem}.form-grid{grid-template-columns:repeat(2,1fr);gap:.8rem;display:grid}.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-field{gap:.35rem;display:grid}.form-field.span-2{grid-column:1/-1}.form-field>span{color:#2b3c32;font-size:.82rem;font-weight:900}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);min-height:44px;font:inherit;color:var(--ink);background:#fff;border-radius:14px;padding:.5rem .85rem;transition:border-color .15s,box-shadow .15s}.form-field textarea{resize:vertical;min-height:72px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0f7a4f1a}.range-field{align-items:center;gap:.75rem;display:flex}.range-field input[type=range]{appearance:auto;height:8px;min-height:auto;accent-color:var(--primary);background:#0f7a4f1f;border:0;border-radius:999px;flex:1;padding:0}.range-value{text-align:right;min-width:3.5ch;font-size:1rem;font-weight:900}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;padding-top:1rem;display:flex}.participacion-hero{grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr);gap:1rem;margin-bottom:1rem;display:grid}.participation-intro p{color:var(--muted);line-height:1.7}.idea-flow{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.youth-register-card{align-content:start;gap:.8rem;display:grid}.youth-register-card h2{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}.register-preview{gap:.65rem;display:grid}.register-preview div{border:1px solid var(--border);background:#eef5e78c;border-radius:16px;padding:.8rem}.register-preview label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.2rem;font-size:.76rem;font-weight:900;display:block}.register-preview strong{line-height:1.25;display:block}.ideas-table-wrap{margin-bottom:1rem}.participacion-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.participacion-grid .dashboard-card h2{font-size:clamp(1.35rem,2.2vw,1.9rem)}.survey-list,.compact-list,.needs-map{gap:.75rem;display:grid}.survey-row,.compact-list>div,.need-row{border:1px solid var(--border);background:#ffffffa6;border-radius:16px;gap:.6rem;padding:.85rem;display:grid}.survey-row strong,.survey-row small,.compact-list strong,.compact-list small,.need-row strong,.need-row small{display:block}.survey-row small,.compact-list small,.need-row small{color:var(--muted)}.compact-list>div{grid-template-columns:auto minmax(0,1fr);align-items:start}.need-scale{background:#0f7a4f1f;border-radius:999px;height:10px;overflow:hidden}.need-scale span{border-radius:inherit;background:linear-gradient(90deg, var(--secondary), var(--primary));height:100%;display:block}.status-update{gap:.35rem;min-width:220px;display:grid}.status-update span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:900}.status-update select{border:1px solid var(--border);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:14px;padding:.4rem .85rem;font-weight:800}.button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.sesiones-hero{grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);gap:1rem;margin-bottom:1rem;display:grid}.sesiones-intro p,.quorum-card p{color:var(--muted);line-height:1.7}.quorum-card{align-content:start;gap:.8rem;display:grid}.quorum-card h2{margin:0;font-size:clamp(1.7rem,3vw,2.5rem)}.sesiones-table-wrap{margin-bottom:1rem}.session-detail-panel{width:min(100%,780px)}.session-detail-actions{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.attendance-list{gap:.65rem;margin-bottom:1.5rem;display:grid}.attendance-row{border:1px solid var(--border);background:#ffffffa6;border-radius:16px;grid-template-columns:auto minmax(0,1fr) minmax(8rem,auto);align-items:center;gap:.75rem;padding:.8rem;display:grid}.attendance-row strong,.attendance-row small{display:block}.attendance-row small{color:var(--muted)}.attendance-row select{border:1px solid var(--border);min-height:40px;color:var(--ink);font:inherit;background:#fff;border-radius:12px;padding:.35rem .7rem;font-weight:800}.minute-box{margin-bottom:1.5rem}.minute-box textarea{border:1px solid var(--border);width:100%;min-height:260px;color:var(--ink);resize:vertical;background:#fff;border-radius:16px;padding:1rem;font:.9rem/1.6 SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.minute-box textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0f7a4f1a}.minute-file-card{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;margin-bottom:1.5rem;padding:1rem;display:grid}.minute-file-card strong,.minute-file-card span{display:block}.minute-file-card span,.compact-muted{color:var(--muted)}.document-download{text-decoration:none}.documents-box{gap:.8rem;margin-bottom:1.5rem;display:grid}.document-upload,.evidence-upload{width:fit-content;min-height:42px;color:var(--primary-dark);cursor:pointer;background:#eef5e799;border:1px dashed #0f7a4f47;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;padding:0 .9rem;font-weight:900;display:inline-flex}.document-upload input,.evidence-upload input{display:none}.document-list{flex-wrap:wrap;gap:.45rem;display:flex}.commitments-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.commitments-heading .detail-section-title{margin:0}.commitments-list{gap:.85rem;display:grid}.commitment-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffffb8;gap:.8rem;padding:1rem;display:grid}.commitment-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.commitment-card-header strong,.commitment-card-header small{display:block}.commitment-card-header small,.commitment-observations{color:var(--muted)}.commitment-controls{grid-template-columns:minmax(12rem,.55fr) minmax(12rem,.45fr);align-items:end;gap:.75rem;display:grid}.evidence-upload{border-style:solid;border-radius:14px;width:100%}.evidence-upload span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.commitment-observations{margin:0;line-height:1.6}.attached-file{color:var(--primary-dark);font-weight:800}.transparency-hero{grid-template-columns:minmax(0,1fr) minmax(22rem,.48fr);align-items:center;gap:clamp(2rem,5vw,4rem);padding:clamp(3rem,7vw,6rem) clamp(1rem,5vw,5rem);display:grid}.transparency-hero h1{max-width:900px}.transparency-hero p{max-width:780px;color:var(--muted);font-size:clamp(1rem,2vw,1.18rem);line-height:1.7}.transparency-summary{background:linear-gradient(155deg, #ffffffeb, #eef5e7d1), var(--surface);box-shadow:var(--shadow);border:1px solid #ffffffc2;border-radius:32px;padding:1.5rem}.transparency-section{padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(2.5rem,5vw,4rem)}.compact-section{padding-top:clamp(1.5rem,4vw,3rem);padding-bottom:clamp(1.5rem,4vw,3rem)}.transparency-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.transparency-card-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.public-card{border-radius:var(--radius-md);background:#ffffffc7;border:1px solid #ffffffc2;align-content:start;gap:.65rem;padding:1.15rem;display:grid;box-shadow:0 14px 40px #16362714}.public-card h3,.public-card p{margin:0}.public-card p,.public-card small,.public-card span:not(.status-badge){color:var(--muted);line-height:1.55}.public-card>span:not(.status-badge){color:var(--primary-dark);font-weight:900}.councillor-directory-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;display:grid}.councillor-public-card{border-radius:var(--radius-md);background:#ffffffc7;border:1px solid #ffffffc2;grid-template-columns:auto minmax(0,1fr);align-content:start;gap:.9rem;padding:1rem;display:grid;box-shadow:0 14px 40px #16362714}.councillor-photo{border-radius:18px;width:76px;height:76px}.councillor-photo span{color:var(--primary-dark);font-size:1.2rem;font-weight:950}.councillor-card-body{gap:.45rem;min-width:0;display:grid}.councillor-card-body h3,.councillor-card-body p{margin:0}.councillor-card-body p,.councillor-card-body small{color:var(--muted);line-height:1.5}.councillor-card-body>span{width:fit-content;color:var(--primary-dark);background:#eef5e7bd;border:1px solid #0f7a4f29;border-radius:999px;padding:.32rem .58rem;font-size:.78rem;font-weight:900}.councillor-meta{flex-wrap:wrap;gap:.35rem;display:flex}.councillor-meta span,.councillor-meta a{min-width:0;color:var(--muted);overflow-wrap:anywhere;background:#fff;border-radius:999px;padding:.3rem .55rem;font-size:.75rem;font-weight:850}.actionable-public-card{transition:transform .18s,box-shadow .18s,border-color .18s}.actionable-public-card:hover,.actionable-public-card:focus-visible{border-color:#0f7a4f42;outline:none;transform:translateY(-3px);box-shadow:0 18px 44px #16362721}.public-participation-grid{grid-template-columns:minmax(0,1.15fr) minmax(20rem,.85fr);align-items:start;gap:1rem;display:grid}.public-form-card h2{font-size:clamp(1.8rem,3vw,2.8rem)}.public-form-card p{color:var(--muted);line-height:1.7}.public-form{gap:1rem;margin-top:1.2rem;display:grid}.public-consent{color:var(--muted);align-items:flex-start;gap:.6rem;font-weight:800;line-height:1.5;display:flex}.public-consent input{accent-color:var(--primary);margin-top:.2rem}.form-success{border-radius:var(--radius-sm);color:var(--primary-dark);background:#0f7a4f1a;border:1px solid #0f7a4f2e;margin:0;padding:.85rem 1rem;font-weight:900}.public-survey-options{gap:.75rem;display:grid}.survey-option{border:1px solid var(--border);cursor:pointer;background:#ffffffad;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.9rem;display:grid}.survey-option input{accent-color:var(--primary);margin-top:.2rem}.survey-option strong,.survey-option small{display:block}.survey-option small{color:var(--muted);margin:.2rem 0 .55rem}.citizen-dashboard-grid{grid-template-columns:minmax(0,1.1fr) minmax(22rem,.9fr);align-items:start;gap:1rem;display:grid}.citizen-side-column{gap:1rem;display:grid}.public-check-list{gap:.8rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.public-check-list li{color:var(--muted);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;line-height:1.65;display:grid}.norm-list{gap:.75rem;display:grid}.norm-list>div{border:1px solid var(--border);background:#ffffff9e;border-radius:16px;padding:.85rem}.norm-list strong,.norm-list small{display:block}.norm-list small,.norm-list p{color:var(--muted);line-height:1.6}.norm-list p{margin:.45rem 0 0}.public-table-wrap{border-radius:var(--radius-md);background:#ffffffc7;border:1px solid #ffffffc2;overflow-x:auto;box-shadow:0 14px 40px #16362714}.public-table{border-collapse:collapse;width:100%}.public-table thead{background:var(--surface-soft)}.public-table th,.public-table td{border-top:1px solid var(--border);text-align:left;padding:.9rem 1rem}.public-table th{color:var(--primary-dark);letter-spacing:.04em;text-transform:uppercase;border-top:0;font-size:.8rem;font-weight:900}.project-public-card .table-progress{margin:.35rem 0}.project-public-card>strong{color:var(--primary-dark)}.public-dashboard-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem;display:grid}.indicator-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.indicator-grid div{border:1px solid var(--border);background:#eef5e794;border-radius:16px;padding:1rem}.indicator-grid strong,.indicator-grid span,.indicator-grid small{display:block}.indicator-grid strong{color:var(--primary-dark);letter-spacing:-.05em;font-size:2rem;line-height:1}.indicator-grid span{margin-top:.3rem;font-weight:900}.indicator-grid small{color:var(--muted);margin-top:.2rem}.admin-hero{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);gap:1rem;margin-bottom:1rem;display:grid}.admin-intro-card p,.backup-card small{color:var(--muted);line-height:1.7}.security-pill-row{flex-wrap:wrap;gap:.5rem;display:flex}.security-pill-row span{color:var(--primary-dark);background:#eef5e7ad;border:1px solid #0f7a4f24;border-radius:999px;padding:.45rem .7rem;font-size:.78rem;font-weight:900}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.admin-section{margin-bottom:1rem}.role-matrix{gap:1rem;display:grid}.role-card-admin{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffffa3;grid-template-columns:minmax(14rem,.32fr) minmax(0,.68fr);gap:1rem;padding:1rem;display:grid}.role-card-admin h3,.role-card-admin p{margin:0 0 .4rem}.role-card-admin p,.role-card-admin small{color:var(--muted);line-height:1.6}.permission-list{flex-wrap:wrap;gap:.45rem;display:flex}.permission-chip{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:.4rem .7rem;font-size:.78rem;font-weight:900}.permission-chip.active{color:var(--primary-dark);background:#0f7a4f1f;border-color:#0f7a4f42}.permission-chip.locked{opacity:.42;cursor:not-allowed}.access-denied-card{max-width:780px}.access-denied-card p,.permission-summary{color:var(--muted);line-height:1.7}.permission-summary{gap:.75rem;margin-top:1rem;display:grid}.audit-list{gap:.75rem;display:grid}.audit-list>div{border:1px solid var(--border);background:#ffffffa8;border-radius:16px;gap:.35rem;padding:.85rem;display:grid}.audit-list strong,.audit-list small{display:block}.audit-list small{color:var(--muted);line-height:1.55}.councillor-admin-layout{grid-template-columns:minmax(16rem,.38fr) minmax(0,.62fr);align-items:start;gap:1rem;display:grid}.councillor-admin-list{gap:.65rem;max-height:640px;padding-right:.2rem;display:grid;overflow-y:auto}.councillor-admin-row{border:1px solid var(--border);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:#ffffffa8;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;padding:.75rem;display:grid}.councillor-admin-row:hover,.councillor-admin-row:focus-visible,.councillor-admin-row.active{background:#eef5e7d6;border-color:#0f7a4f47;outline:none}.councillor-admin-row strong,.councillor-admin-row small{display:block}.councillor-admin-row small{color:var(--muted);margin-top:.15rem}.councillor-admin-avatar{background:var(--surface-soft);width:54px;height:54px;color:var(--primary-dark);border-radius:14px;place-items:center;font-weight:950;display:grid;overflow:hidden}.councillor-admin-avatar img{object-fit:cover;width:100%;height:100%}.councillor-admin-form{gap:1rem;display:grid}.councillor-active-field{align-self:end;min-height:44px}.inline-admin-form{gap:.65rem;margin-bottom:1rem;display:flex}.inline-admin-form input{border:1px solid var(--border);min-height:48px;color:var(--ink);background:#fff;border-radius:16px;flex:1;padding:0 1rem}.tag-list{flex-wrap:wrap;gap:.45rem;display:flex}.compact-text-link{min-height:auto}.compact-action{width:fit-content;min-height:38px;margin-top:.6rem;padding:0 .8rem;font-size:.82rem}.portal-hero{min-height:calc(100vh - 78px)}.session-quorum-grid,.indicator-module-grid,.budget-source-grid,.report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.quorum-mini-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffffa8;gap:.75rem;padding:1rem;display:grid}.quorum-mini-card h3,.quorum-mini-card p{margin:0}.quorum-mini-card p{color:var(--muted);line-height:1.55}.quorum-mini-card>strong{color:var(--primary-dark);letter-spacing:-.03em;font-size:1.35rem}.table-select{border:1px solid var(--border);width:100%;min-height:38px;color:var(--ink);font:inherit;background:#fff;border-radius:12px;margin-bottom:.4rem;padding:.25rem .55rem;font-weight:800}.table-input,.table-textarea{border:1px solid var(--border);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:12px;padding:.45rem .6rem}.table-textarea{resize:vertical;min-height:76px}.table-input:focus,.table-textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0f7a4f1a}.commitment-observations{align-items:flex-start;gap:.5rem;display:flex}@media (max-width:760px){.proyectos-toolbar{flex-direction:column}.toolbar-search,.toolbar-filter,.proyectos-toolbar .button,.detail-panel,.form-panel{width:100%}.detail-grid,.form-grid,.form-grid-3,.budget-grid,.attendance-row,.commitment-controls,.minute-file-card{grid-template-columns:1fr}.commitments-heading,.commitment-card-header{flex-direction:column;align-items:stretch}.transparency-hero,.transparency-card-grid,.transparency-card-grid.three-columns,.public-participation-grid,.citizen-dashboard-grid,.public-dashboard-grid,.indicator-grid,.admin-hero,.admin-grid,.councillor-admin-layout,.role-card-admin,.session-quorum-grid,.indicator-module-grid,.budget-source-grid,.report-grid{grid-template-columns:1fr}.inline-admin-form{flex-direction:column}}@media (max-width:1040px){.participacion-hero,.participacion-grid,.sesiones-hero,.transparency-hero,.transparency-card-grid,.public-participation-grid,.citizen-dashboard-grid,.public-dashboard-grid,.admin-hero,.admin-grid,.session-quorum-grid,.indicator-module-grid,.budget-source-grid,.report-grid{grid-template-columns:1fr}}@media print{body{background:#fff}.sidebar,.dashboard-header,.dashboard-lead,.stats-grid,.sesiones-hero,.proyectos-toolbar,.sesiones-table-wrap,.panel-header .icon-btn,.session-detail-actions,.document-upload,.commitments-heading .button{display:none!important}.dashboard-shell,.dashboard-main,.panel-overlay,.detail-panel{width:100%;height:auto;min-height:0;box-shadow:none;background:#fff;padding:0;display:block;position:static;overflow:visible}.panel-body{overflow:visible}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
