:root{--blue:#2563eb;--ink:#17253b;--muted:#5c6879;--line:#dce3ec;--bg:#f0f3f8}*{box-sizing:border-box}body{margin:0;font-family:'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5}a{color:#1d55be;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f7ad26;outline-offset:3px}.topbar{height:78px;background:var(--blue);position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:white;z-index:5;box-shadow:0 2px 9px #15264a21}.marca{color:white;font-size:27px;font-weight:750;letter-spacing:1px}.marca span{font-weight:400;margin-left:6px;font-size:21px}.local{font-size:13px;border:1px solid #ffffff66;padding:5px 12px;border-radius:20px}aside{position:fixed;top:78px;bottom:0;width:240px;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;padding:22px 12px}.nav-label{font-size:11px;letter-spacing:1.4px;font-weight:700;padding:0 14px;color:var(--muted);margin-bottom:18px}nav a{display:block;color:#3e4a5c;padding:12px 14px;margin:4px 0;border-radius:7px;font-weight:500}nav a[aria-current]{color:white;background:var(--blue)}nav a:hover{background:#eaf0ff;color:#214ca2;text-decoration:none}.aside-note{font-size:12px;color:var(--muted);padding:16px 14px 0;border-top:1px solid var(--line)}main{margin-left:240px;padding:114px 36px 24px;max-width:1600px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.7px;color:var(--blue);margin:0 0 6px}h1{font-size:30px;line-height:1.25;margin:0 0 14px;font-weight:650;overflow-wrap:anywhere}h2{font-size:18px;font-weight:650;margin:0 0 16px}.lead{color:var(--muted);margin:0 0 28px}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 22px}.heading h1{margin:0}.card{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 5px #23365005}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stat{display:flex;flex-direction:column;padding:23px;color:var(--ink);gap:8px}.stat:hover{border-color:#91aff5;text-decoration:none}.stat strong{font-size:42px;font-weight:650;color:var(--blue);line-height:1.2}.stat span:last-child{font-size:13px;color:#1d55be}.intro{padding:28px;max-width:1000px}.intro p{color:var(--muted);max-width:800px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:26px}.button,button{display:inline-block;background:var(--blue);color:white;border:1px solid var(--blue);border-radius:6px;padding:10px 17px;font-size:14px;font-family:inherit;font-weight:600;cursor:pointer;white-space:nowrap}.button:hover,button:hover{background:#1d4fc3;color:white;text-decoration:none}.secondary{background:white;color:#2f4c76;border-color:#c7d2e4}.filters{display:flex;gap:15px;align-items:end;padding:20px;margin-bottom:20px;flex-wrap:wrap}.filters label:first-child{flex:1;min-width:200px}label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}input,select{width:100%;padding:10px;border:1px solid #bdc9da;border-radius:6px;font-family:inherit;font-size:15px;background:white;color:var(--ink);margin-top:5px}select:disabled{background:#f0f3f8}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:normal}caption{text-align:left;padding:15px 20px;font-size:13px;color:var(--muted)}th,td{text-align:left;padding:15px 20px;border-top:1px solid var(--line)}th{font-size:12px;color:var(--muted);background:#f8fafd;font-weight:650}td{font-size:14px;overflow-wrap:anywhere}tbody tr:hover{background:#fafcff}.badge{font-size:12px;background:#edf2ff;color:#2b55a0;padding:4px 9px;border-radius:12px;white-space:nowrap}.empty{padding:50px 25px;color:var(--muted);text-align:center}.pagination{display:flex;gap:20px;justify-content:center;margin-top:22px}.back{display:inline-block;margin-bottom:20px;font-size:14px}.detail{padding:25px;margin-bottom:22px}dl{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0}dt{font-size:12px;color:var(--muted);margin-bottom:4px}dd{margin:0;overflow-wrap:anywhere}.related{padding-left:20px}.related li{padding:5px 0}.related+h2{margin-top:28px}.edit-form{max-width:960px;padding:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.wide{grid-column:1/-1}.field ul.errorlist{color:#a92424;padding-left:18px;font-size:13px;margin-bottom:0}.errors{background:#fff0ef;border:1px solid #edbbbb;color:#982323;border-radius:6px;padding:15px;margin-bottom:22px}.notice{background:#e8f6ed;border:1px solid #abd7bc;color:#245b37;padding:14px 18px;border-radius:6px;margin-bottom:22px}.help,.hint{font-size:13px;color:var(--muted)}.hint{max-width:900px}.help{margin:8px 0 0}#id_contratas{padding:10px 16px;border:1px solid var(--line);border-radius:6px;max-height:300px;overflow:auto}#id_contratas label{font-weight:400;margin:8px 0}input[type=checkbox]{width:auto;margin-right:9px}footer{font-size:12px;color:var(--muted);margin-top:36px;padding-top:18px;border-top:1px solid var(--line)}.skip{position:absolute;left:8px;top:-90px;z-index:10;background:white;padding:10px}.skip:focus{top:8px}@media(max-width:1000px){.stats{grid-template-columns:1fr}.stat{padding:18px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.heading{align-items:start}main{padding-left:24px;padding-right:24px}}@media(max-width:700px){.topbar{position:relative;height:66px;padding:0 18px}aside{position:relative;top:auto;width:auto;padding:10px;border-bottom:1px solid var(--line)}nav{display:flex;flex-wrap:wrap;gap:4px}nav a{padding:8px;font-size:13px;margin:0}.nav-label,.aside-note{display:none}main{margin:0;padding:26px 16px}.heading{flex-wrap:wrap;gap:12px}h1{font-size:25px}.local{font-size:11px}dl{grid-template-columns:1fr}.edit-form{padding:20px}.filters{padding:16px}.stats{gap:10px}}

textarea{width:100%;padding:10px;border:1px solid #bdc9da;border-radius:6px;font-family:inherit;font-size:15px;resize:vertical}textarea:focus-visible{outline:3px solid #f7ad26;outline-offset:3px}.budget-total{background:#f5f8ff;border:1px solid var(--line);padding:16px;border-radius:6px}.budget-total output{font-weight:650;font-size:22px;color:var(--blue)}.observaciones{overflow-wrap:anywhere}

/* Inicio y navegación · 0.9 */
:root{--blue:#536e8c}
a{color:#42627f}
.button:hover,button:hover{background:#435d7b;color:white}
.secondary{color:#435d7b;border-color:#c5d1df}
.secondary:hover{background:#edf2f7;color:#36516e;border-color:#b5c5d6}
nav a[aria-current]{background:#e4edf5;color:#36516e;box-shadow:inset 3px 0 0 #839bb4}
nav a:hover{background:#f0f4f8;color:#36516e}
nav a[aria-current]:hover{background:#dce7f1;color:#36516e}
.topbar{background:#fbedf2;color:var(--ink);border-top:3px solid #e8bcca;border-bottom:1px solid #efdae2;box-shadow:0 3px 15px #23365009}
.marca{display:flex;align-items:center;gap:12px;color:var(--ink);letter-spacing:0}
.marca:hover{text-decoration:none}.marca img{display:block;width:184px;height:63px;object-fit:contain}
.marca span{margin:0;font-size:18px;color:#647283;font-weight:400;border-left:1px solid var(--line);padding-left:16px}
.local{color:var(--muted);border-color:#ecd5df;background:#fff9fb}
aside{padding-top:18px}aside nav{min-height:0;overflow-y:auto;padding-right:3px;scrollbar-width:thin}
nav a{padding:9px 14px;border-radius:12px;font-size:14px}
.nav-label{margin:0 0 12px}.nav-section{font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:1.6px;color:#7a8796;margin:15px 14px 7px}
.nav-separator{border:0;border-top:1px solid var(--line);margin:15px 14px 0}
.aside-note{flex-shrink:0;margin:12px 0 0;padding-top:12px}
.stats{gap:22px;margin-top:30px;margin-bottom:32px}
.stat{position:relative;overflow:hidden;border-radius:23px;padding:26px 28px;gap:10px;border-color:#e2e8f0;background:linear-gradient(150deg,#fff 45%,#f7f9fc);box-shadow:0 8px 19px #2336500e,0 2px 4px #23365009,inset 0 1px 0 #fff;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.stat:before{content:'';position:absolute;top:24px;left:0;width:4px;height:34px;background:#b7c5d6;border-radius:0 5px 5px 0}
.stat>span:first-child{font-weight:600;font-size:15px}.stat strong{font-size:43px;letter-spacing:-1.3px;color:#233c56}
.stat>span:last-child{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#61758a;margin-top:3px}
.stat>span:last-child span{font-size:19px;color:#73869b;line-height:1}
.stat-actividad{background:linear-gradient(145deg,#fff 35%,#eaf8fb);border-color:#cbe8ed}.stat-actividad:before{background:#24acc5}.stat-actividad strong{color:#13798c}
.stat:hover{transform:translateY(-4px);border-color:#9bcbd7;box-shadow:0 14px 26px #23365016,0 4px 6px #23365009;text-decoration:none}
.stat:active{transform:translateY(-1px)}.intro{border-radius:22px;box-shadow:0 5px 15px #23365008}
@media(prefers-reduced-motion:reduce){.stat{transition:none}.stat:hover,.stat:active{transform:none}}
@media(max-width:1000px) and (min-width:701px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.topbar{padding:0 14px}.marca{gap:7px}.marca img{width:130px;height:52px}.marca span{font-size:14px;padding-left:9px}.local{padding:4px 7px;font-size:10px}.nav-group{width:100%;display:flex;flex-wrap:wrap;gap:4px}.nav-section{width:100%;margin:9px 8px 3px}.nav-separator{width:100%;margin:6px 4px 0}aside nav{overflow:visible;padding:0}.stats{margin-top:22px;gap:16px}.stat{padding:21px 24px;border-radius:20px}.intro{padding:22px}}

.logo-empresa{display:block;max-width:260px;width:100%;height:90px;object-fit:contain;object-position:left center;margin-bottom:24px}.resumen-empresas .help{margin-bottom:14px}
