:root{
    --navy:#06243c;
    --navy-2:#021527;
    --blue:#1677ff;
    --blue-soft:#eaf3ff;
    --line:#d9e3ef;
    --bg:#f4f7fb;
    --text:#0f2037;
    --muted:#66758a;
    --green:#16a34a;
    --green-soft:#dcfce7;
    --red:#dc2626;
    --red-soft:#fee2e2;
    --yellow:#ca8a04;
    --yellow-soft:#fef3c7;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
a{color:#0b5fd3;text-decoration:none}a:hover{text-decoration:underline}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:linear-gradient(180deg,var(--navy),var(--navy-2));padding:28px 18px;color:white;z-index:10;box-shadow:6px 0 18px rgba(0,0,0,.08)}
.brand{text-align:center;margin-bottom:30px}.brand-logo{width:185px;max-width:100%;height:auto;display:block;margin:0 auto 10px}.brand span{display:block;font-size:12px;letter-spacing:1.8px;color:#7ed4ff;font-weight:800}.menu a{display:flex;gap:10px;align-items:center;color:white;text-decoration:none;padding:14px 16px;border-radius:10px;margin:8px 0;font-weight:800}.menu a.active,.menu a:hover{background:var(--blue);text-decoration:none}.app{margin-left:250px;padding:32px 36px;max-width:calc(100vw - 250px)}
.topbar,.project-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.eyebrow{margin:0 0 4px;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:1px}h1{font-size:32px;line-height:1.1;margin:0;color:#071b31}h2{font-size:18px;margin:0}h3{font-size:14px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line);text-transform:uppercase;color:#314057}.user-chip{font-weight:800;background:white;border:1px solid var(--line);border-radius:999px;padding:9px 14px;color:#26384f}.back{display:inline-block;margin-bottom:8px;font-weight:700}.panel,.kpi-card,.info-strip{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 18px rgba(12,35,64,.06)}
.kpi-grid{display:grid;gap:16px;margin:18px 0}.dashboard-grid{grid-template-columns:repeat(5,1fr)}.kpi-card{padding:20px}.kpi-card span{display:block;color:var(--muted);font-weight:800;font-size:13px}.kpi-card strong{display:block;font-size:30px;margin-top:8px;color:#071b31}.info-strip{display:grid;grid-template-columns:1.1fr .8fr 1.2fr 2fr;margin:14px 0 18px;overflow:hidden}.info-strip div{padding:16px 18px;border-right:1px solid var(--line)}.info-strip div:last-child{border-right:0}.info-strip span{display:block;font-size:12px;color:var(--muted);font-weight:800;margin-bottom:6px}.info-strip b{font-size:14px}.project-kpis{display:grid;grid-template-columns:1.05fr 1fr 1fr 1.35fr;gap:16px;margin-bottom:18px}.metric-card{padding:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two-col span{display:block;color:var(--muted);font-size:12px;font-weight:800}.two-col strong{font-size:28px}.two-col small{margin-left:4px;color:var(--muted);font-weight:700}.data-list{display:grid;grid-template-columns:1fr auto;gap:10px 16px;margin:0}.data-list dt{color:var(--muted);font-size:13px;font-weight:800}.data-list dd{margin:0;font-size:13px;font-weight:800;text-align:right}.positive{color:var(--green)}.negative{color:var(--red)}.progress,.process-bar{height:8px;background:#e8eef6;border-radius:999px;overflow:hidden}.progress{margin-top:12px}.progress i,.process-bar i{display:block;height:100%;background:var(--blue);border-radius:999px}.progress.green i{background:var(--green)}.process-row{display:grid;grid-template-columns:1fr 32px 42px 80px;gap:8px;align-items:center;margin:7px 0;font-size:12px}.process-row span{color:#25364b}.process-row b,.process-row em{font-style:normal;text-align:right}.process-bar{height:6px}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;white-space:nowrap}.badge.status{background:#e8f1ff;color:#0b5fd3;margin-left:8px}.a-tiempo,.terminado,.activo{background:var(--green-soft);color:#166534}.tiempo-justo{background:var(--yellow-soft);color:#92400e}.atrasado{background:var(--red-soft);color:#991b1b}.panel{padding:18px;margin:18px 0}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.vanos-form{grid-template-columns:repeat(4,minmax(140px,1fr))}input{height:40px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:white;font-size:14px}.notes-input{min-width:160px}.btn,.btn-blue,.btn-green,button{border:0;border-radius:9px;padding:10px 14px;color:white;font-weight:900;cursor:pointer;text-decoration:none;display:inline-block;text-align:center}.btn-blue,.btn{background:var(--blue)}.btn-green{background:var(--green)}.btn-mini{background:#0b5fd3;padding:7px 10px;font-size:12px}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px;background:white}th,td{border-bottom:1px solid var(--line);padding:12px;text-align:left;font-size:14px;vertical-align:middle}th{font-size:11px;color:#314057;background:#f8fafd;text-transform:uppercase;letter-spacing:.3px}tbody tr:hover{background:#fbfdff}.vanos-table th,.vanos-table td{font-size:12px}.check-cell{text-align:center}.check{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid #cfd8e5;border-radius:50%;padding:0;display:inline-grid;place-content:center;background:white;cursor:pointer}.check:checked{border-color:var(--green);background:var(--green)}.check:checked::after{content:'✓';font-size:12px;line-height:1;color:white;font-weight:900}.mini{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:4px 0;font-size:13px}.mini b{font-size:13px;margin:0}
@media(max-width:1300px){.dashboard-grid{grid-template-columns:repeat(3,1fr)}.project-kpis{grid-template-columns:repeat(2,1fr)}.info-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.sidebar{position:static;width:100%}.app{margin-left:0;max-width:100%;padding:22px}.dashboard-grid,.project-kpis,.info-strip,.form-grid,.vanos-form{grid-template-columns:1fr}.topbar,.project-title{display:block}.user-chip{display:inline-block;margin-top:12px}.brand-logo{width:165px}}

/* V5: botones, formularios y acciones de proyectos */
.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.actions-cell{display:flex;gap:8px;align-items:center;white-space:nowrap}
.btn-light{background:#eef4fb!important;color:#17304a!important;border:1px solid var(--line)!important}
.alert-error{background:var(--red-soft);color:#991b1b;border:1px solid #fecaca;border-radius:12px;padding:12px 14px;font-weight:800;margin:12px 0}
.form-page{max-width:980px}.project-form{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:16px}.project-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:900;color:#304258}.project-form .wide{grid-column:1/-1}.project-form input,.project-form select{height:42px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:white;font-size:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.form-actions .btn,.form-actions button{min-width:150px}
@media(max-width:900px){.topbar-actions{justify-content:flex-start;margin-top:12px}.project-form{grid-template-columns:1fr}.actions-cell{display:block}.actions-cell a{margin:3px 0}.panel-title{gap:12px;flex-wrap:wrap}}

/* V6: filtros, adjuntos, bitácora y mejoras */
select{height:40px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:white;font-size:14px}
.subtitle{margin:8px 0 0;color:var(--muted);font-weight:700}.muted{color:var(--muted);font-weight:800;font-size:13px}.process-summary{grid-template-columns:repeat(4,1fr);margin-top:-4px}.kpi-card.small{padding:16px}.kpi-card.small strong{font-size:24px}.filter-bar{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:0 0 14px}.filter-bar input,.filter-bar select{width:100%}.form-grid select{min-width:140px}.file-list{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;margin-top:14px}.file-list a{display:block;background:#f8fbff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-weight:900;color:#17304a}.file-list small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.timeline{display:grid;gap:10px}.timeline-item{border-left:4px solid var(--blue);background:#f8fbff;border-radius:10px;padding:10px 12px}.timeline-item b{display:block;color:#0f2037}.timeline-item span{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-top:2px}.timeline-item p{margin:6px 0 0;color:#314057;font-size:13px}.vanos-table tbody tr[style*="display: none"]{display:none!important}
@media(max-width:1100px){.filter-bar{grid-template-columns:1fr 1fr}.file-list{grid-template-columns:1fr}.process-summary{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.filter-bar,.process-summary{grid-template-columns:1fr}}

/* V7: Login y seguridad */
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 0,#0b5fd3 0,#06243c 32%,#021527 100%);padding:24px}.login-card{width:min(430px,100%);background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.35);border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.25);padding:30px}.login-logo{display:block;width:190px;margin:0 auto 18px;background:#06243c;border-radius:14px;padding:14px}.login-card h1{text-align:center;margin:0 0 8px}.login-card p{text-align:center;margin:0 0 20px;color:var(--muted);font-weight:700}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:7px;font-weight:900;color:#304258;font-size:13px}.login-form input{width:100%}.login-help{display:block;margin-top:16px;text-align:center;color:var(--muted)}.users-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}.role-pill{display:inline-flex;border-radius:999px;background:#eef4fb;color:#17304a;padding:5px 9px;font-size:12px;font-weight:900}.danger-text{color:var(--red);font-weight:900}@media(max-width:900px){.users-grid{grid-template-columns:1fr}}
.alert-success{background:var(--green-soft);color:#166534;border:1px solid #bbf7d0;border-radius:12px;padding:12px 14px;font-weight:900;margin:12px 0}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input{min-width:160px}


/* V-Track v1.1 branding */
.brand-name{font-size:31px;line-height:1;font-weight:1000;letter-spacing:1.2px;color:#fff;margin:6px 0 8px;text-transform:uppercase}.brand span{text-transform:none;font-size:12px;letter-spacing:1px;color:#7ed4ff}.brand-logo{display:none}.app-footer{margin:26px 0 4px;padding:16px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:800;text-align:center}.app-footer strong{color:#17304a}.login-brand{background:#06243c;color:white;border-radius:18px;padding:18px 16px;margin:0 auto 18px;text-align:center;box-shadow:0 10px 24px rgba(6,36,60,.18)}.login-brand div{font-size:36px;line-height:1;font-weight:1000;letter-spacing:1.4px}.login-brand span{display:block;margin-top:8px;color:#7ed4ff;font-size:13px;font-weight:900;letter-spacing:.7px}.login-footer{text-align:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);font-weight:800}.login-card h1{display:none}
