:root{--bg:#f5f8f7;--surface:#ffffff;--ink:#17343b;--muted:#6f7e82;--teal:#0f5c67;--teal-2:#2d7c83;--orange:#f3a52b;--green:#a7c934;--border:#dfe8e6;--danger:#b42318;--warning:#9a6700;--success:#18794e;--shadow:0 12px 30px rgba(24,63,67,.08)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{max-width:1280px;margin:0 auto;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:20px}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:18px;border-radius:16px;border:1px solid var(--border);background:#fff}.stat strong{font-size:28px;display:block;margin-top:8px}.muted{color:var(--muted)}.btn{border:0;border-radius:10px;padding:10px 15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--teal);color:#fff}.btn-secondary{background:#edf4f3;color:var(--teal)}.btn-danger{background:#feeceb;color:var(--danger)}.input,select,textarea{width:100%;border:1px solid #cfdad8;border-radius:10px;padding:10px 12px;background:white;color:var(--ink);outline:none}.input:focus,select:focus,textarea:focus{border-color:var(--teal-2);box-shadow:0 0 0 3px rgba(45,124,131,.12)}.label{display:grid;gap:6px;font-size:14px;font-weight:650}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.badge,th{font-size:12px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-weight:700;background:#edf4f3;color:var(--teal)}.badge.warn{background:#fff4d8;color:var(--warning)}.badge.danger{background:#feeceb;color:var(--danger)}.badge.ok{background:#e8f7ef;color:var(--success)}.page-title{margin:0 0 4px;font-size:28px}.page-subtitle{margin:0 0 20px;color:var(--muted)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr}.login-brand{background:linear-gradient(145deg,#0f5c67,#31848a);color:white;display:flex;align-items:center;justify-content:center;padding:40px;position:relative;overflow:hidden}.login-brand:after,.login-brand:before{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.07)}.login-brand:before{width:420px;height:420px;top:-120px;right:-160px}.login-brand:after{width:300px;height:300px;bottom:-120px;left:-90px}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-card{width:min(440px,100%)}.brand-logo{width:260px;max-width:72%;height:auto;display:block;margin:0 auto 20px;border-radius:24px}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#103f47;color:white;padding:20px 16px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar img{width:180px;max-width:100%;display:block;margin:0 auto 18px;border-radius:18px}.nav{display:grid;gap:5px;margin-top:18px}.nav a{padding:11px 12px;border-radius:10px;color:#deebea;font-weight:600}.nav a:hover{background:rgba(255,255,255,.08);color:#fff}.sidebar-footer{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);font-size:13px;color:#c8d7d5}.main{min-width:0}.topbar{background:white;border-bottom:1px solid var(--border);min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;position:sticky;top:0;z-index:10}.topbar .user{text-align:right}.logo-inline{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--teal)}.alert{border-radius:12px;padding:12px 14px;margin:12px 0;border:1px solid}.alert.error{background:#fff0ef;border-color:#f0c5c1;color:#8c2d25}.alert.success{background:#eaf7ef;border-color:#bfe6cf;color:#1b6545}.empty{padding:36px;text-align:center;color:var(--muted);border:1px dashed #cbd8d5;border-radius:14px}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}.toolbar form{display:flex;gap:8px;flex:1 1;min-width:250px}@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.nav{grid-template-columns:repeat(3,minmax(0,1fr))}.login-shell{grid-template-columns:1fr}.login-brand{min-height:280px}}@media (max-width:640px){.form-grid,.grid-2,.grid-4{grid-template-columns:1fr}.nav{grid-template-columns:1fr 1fr}.container{padding:16px}}[data-role]:not([data-role=ADMIN_TI]) a[href="/auditoria"]{display:none!important}