@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;700;800&family=Public+Sans:wght@400;500;600;700&display=swap');

:root{
  --sidebar-bg: oklch(29% 0.045 215);
  --sidebar-bg-soft: oklch(35% 0.05 215);
  --sidebar-text: oklch(96% 0.01 215);
  --sidebar-text-dim: oklch(78% 0.035 215);
  --sidebar-active-bg: oklch(97% 0.004 240);
  --sidebar-active-text: oklch(29% 0.045 215);
  --page-bg: oklch(93% 0.006 240);
  --panel-bg: oklch(96% 0.005 240);
  --card-bg: oklch(99% 0.002 240);
  --border: oklch(89% 0.007 240);
  --border-soft: oklch(93% 0.005 240);
  --text: oklch(24% 0.02 240);
  --text-dim: oklch(48% 0.02 240);
  --text-faint: oklch(62% 0.015 240);
  --accent: oklch(58% 0.13 200);
  --accent-hover: oklch(52% 0.13 200);
  --accent-soft: oklch(94% 0.03 200);
  --ok: oklch(56% 0.13 155);
  --ok-soft: oklch(94% 0.045 155);
  --warn: oklch(62% 0.14 70);
  --warn-hover: oklch(56% 0.14 70);
  --warn-soft: oklch(94% 0.05 80);
  --bad: oklch(58% 0.17 25);
  --bad-soft: oklch(94% 0.045 25);
}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;}
body{font-family:'Public Sans',system-ui,-apple-system,sans-serif;background:var(--page-bg);color:var(--text);}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-hover);}

.app{display:flex;min-height:100vh;padding:20px;gap:20px;}
.sidebar{width:248px;flex-shrink:0;background:var(--sidebar-bg);border-radius:28px;padding:28px 20px;display:flex;flex-direction:column;gap:30px;position:sticky;top:20px;align-self:flex-start;}
.brand{display:flex;align-items:center;gap:11px;color:var(--sidebar-text);padding:0 4px;}
.brand-mark{width:36px;height:36px;border-radius:11px;background:var(--sidebar-bg-soft);display:flex;align-items:center;justify-content:center;color:var(--sidebar-text);flex-shrink:0;}
.brand-title{font-family:'Manrope',sans-serif;font-weight:700;font-size:14.5px;line-height:1.3;}
.nav{display:flex;flex-direction:column;gap:10px;}
.nav-btn{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:14px;font-family:'Manrope',sans-serif;font-weight:600;font-size:14.5px;background:var(--sidebar-bg-soft);color:var(--sidebar-text-dim);}
.nav-btn.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);}
.nav-btn-disabled{opacity:0.4;cursor:not-allowed;}
.nav-icon{flex-shrink:0;display:flex;}

.sidebar-account{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:14px;border-top:1px solid rgb(255 255 255 / 0.1);}
.account-link{display:block;width:100%;text-align:left;padding:10px 16px;border-radius:12px;border:none;background:none;color:var(--sidebar-text-dim);font-family:'Public Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;}
.account-link:hover{background:var(--sidebar-bg-soft);color:var(--sidebar-text);}
.version-tag{padding:10px 16px;font-size:10.5px;color:currentColor;opacity:0.65;font-family:'Public Sans',sans-serif;letter-spacing:0.02em;}
.sidebar-account .version-tag{color:#fff;opacity:0.55;}

.login-page{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:20px;}
.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px;}

.cargando-overlay{position:fixed;inset:0;background:rgb(0 0 0 / 0.45);display:flex;align-items:center;justify-content:center;z-index:1000;}
.cargando-overlay[hidden]{display:none;}
.cargando-box{background:var(--card-bg);border-radius:20px;padding:32px 44px;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:0 10px 40px rgb(0 0 0 / 0.25);}
.spinner{width:36px;height:36px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:cargando-girar 0.8s linear infinite;}
.cargando-texto{font-family:'Manrope',sans-serif;font-weight:700;font-size:14px;color:var(--text);}
@keyframes cargando-girar{to{transform:rotate(360deg);}}

.panel{flex-grow:1;background:var(--panel-bg);border-radius:32px;padding:36px 40px;display:flex;flex-direction:column;gap:22px;min-width:0;}
.panel-header h1{font-family:'Manrope',sans-serif;font-size:26px;font-weight:800;margin:0 0 6px;}
.panel-header p{margin:0;color:var(--text-dim);font-size:14.5px;}
.back-link{font-size:13px;font-weight:600;}

.card{background:var(--card-bg);border:1px solid var(--border-soft);border-radius:20px;padding:26px;}
.card-title{font-family:'Manrope',sans-serif;font-weight:700;font-size:14px;padding:18px 22px;border-bottom:1px solid var(--border-soft);}

.btn{display:inline-flex;align-items:center;gap:8px;font-family:'Manrope',sans-serif;font-weight:700;font-size:14px;padding:12px 20px;border-radius:12px;border:none;cursor:pointer;}
.btn-primary{background:var(--accent);color:white;}
.btn-primary:hover{background:var(--accent-hover);color:white;}
.btn-secondary{background:var(--card-bg);color:var(--text);border:1.5px solid var(--border);}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent-hover);}
.btn-warn{background:var(--warn);color:white;}
.btn-warn:hover{background:var(--warn-hover);color:white;}
.btn-disabled{opacity:0.5;cursor:not-allowed;pointer-events:none;}
.btn-disabled:hover{border-color:var(--border);color:var(--text);}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;border:1.5px solid var(--border);background:var(--card-bg);color:var(--text-dim);cursor:pointer;}
.btn-icon:hover{border-color:var(--bad);color:var(--bad);background:var(--bad-soft);}

.dropzone{border:2px dashed var(--border);text-align:center;padding:52px 40px;display:flex;flex-direction:column;align-items:center;gap:12px;}
.dropzone-icon{width:56px;height:56px;border-radius:16px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;}
.dropzone-title{font-family:'Manrope',sans-serif;font-weight:700;font-size:16px;}
.dropzone input[type=file]{font-size:13px;}
.dropzone-hint{color:var(--text-faint);font-size:12.5px;max-width:440px;line-height:1.5;}
.upload-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;max-width:480px;text-align:left;margin-bottom:8px;}

table{width:100%;border-collapse:collapse;font-size:13.5px;}
th{text-align:left;padding:11px 16px;color:var(--text-faint);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;border-bottom:1.5px solid var(--border);white-space:nowrap;}
.th-sort{display:inline-flex;align-items:center;gap:4px;color:inherit;cursor:pointer;}
.th-sort:hover{color:var(--text);}
.th-sort.active{color:var(--accent);}
.th-sort .sort-arrow{font-size:15px;opacity:0.65;}
.th-sort:hover .sort-arrow{opacity:1;}
.th-sort.active .sort-arrow{opacity:1;}
td{padding:12px 16px;border-bottom:1px solid var(--border-soft);color:var(--text);white-space:nowrap;}
tr:last-child td{border-bottom:none;}
.table-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--border) var(--border-soft);}
.table-scroll::-webkit-scrollbar{height:11px;}
.table-scroll::-webkit-scrollbar-track{background:var(--border-soft);}
.table-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px;}
.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-faint);}
.row-click{cursor:pointer;}
.row-click:hover{background:var(--accent-soft);}

.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap;}
.badge-ok{background:var(--ok-soft);color:var(--ok);}
.badge-warn{background:var(--warn-soft);color:var(--warn);}
.badge-bad{background:var(--bad-soft);color:var(--bad);}

.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.stat-card{display:flex;flex-direction:column;gap:10px;}
.stat-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;}
.stat-neutral{background:var(--border-soft);color:var(--text);}
.stat-ok{background:var(--ok-soft);color:var(--ok);}
.stat-warn{background:var(--warn-soft);color:var(--warn);}
.stat-bad{background:var(--bad-soft);color:var(--bad);}
.stat-value{font-family:'Manrope',sans-serif;font-weight:800;font-size:23px;}
.stat-value-ok{color:var(--ok);}
.stat-value-warn{color:var(--warn);}
.stat-value-bad{color:var(--bad);}
.stat-label{color:var(--text-dim);font-size:12.5px;font-weight:600;}

.hint-text{color:var(--text-faint);font-size:12.5px;line-height:1.5;margin-top:-12px;}

.field-label{font-size:11.5px;font-weight:700;color:var(--text-dim);margin-bottom:7px;display:block;text-transform:uppercase;letter-spacing:0.03em;}
select, input[type=text], input[type=password], input[type=email], input[type=date]{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--card-bg);font-size:13.5px;color:var(--text);font-family:'Public Sans',sans-serif;}
select:focus, input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, input[type=date]:focus{outline:2px solid var(--accent-soft);border-color:var(--accent);}

.password-field{position:relative;}
.password-field input{padding-right:44px;}
.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-dim);border-radius:8px;}
.password-toggle:hover{color:var(--text);background:var(--border-soft);}
.password-toggle .icon-eye-off{display:none;}
.password-toggle.is-visible .icon-eye{display:none;}
.password-toggle.is-visible .icon-eye-off{display:flex;}

.filters-title{display:flex;align-items:center;gap:9px;color:var(--text-dim);font-family:'Manrope',sans-serif;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.03em;margin-bottom:16px;}
.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.filters-row2{display:flex;align-items:flex-end;gap:14px;margin-top:14px;flex-wrap:wrap;}
.check-pill{display:flex;align-items:center;gap:9px;padding:11px 16px;border:1.5px solid var(--border);border-radius:12px;background:var(--card-bg);font-size:13.5px;font-weight:600;color:var(--text-dim);cursor:pointer;white-space:nowrap;}
.check-pill input{width:16px;height:16px;accent-color:var(--accent);}

.results-header{display:flex;align-items:center;justify-content:space-between;}
.results-count{font-family:'Manrope',sans-serif;font-weight:800;font-size:16px;}

.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:4px;font-size:13px;font-weight:600;color:var(--text-dim);}
.page-nav.disabled{color:var(--text-faint);}
.page-current{font-family:'Manrope',sans-serif;font-weight:700;color:var(--text);}

.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 24px;}

.flash{padding:13px 18px;border-radius:12px;font-size:13.5px;font-weight:600;}
.flash-error{background:var(--bad-soft);color:var(--bad);}
.flash-success{background:var(--ok-soft);color:var(--ok);}
.flash-info{background:var(--accent-soft);color:var(--accent-hover);}

.app-footer{text-align:center;padding:16px 20px 24px;font-size:12.5px;color:var(--text-faint);}
.app-footer a{text-decoration:underline;color:var(--text-faint);}
.app-footer a:hover{color:var(--accent-hover);}

@media (max-width: 900px){
  .app{flex-direction:column;}
  .sidebar{width:100%;position:static;flex-direction:row;flex-wrap:wrap;}
  .filters-grid, .stats-grid, .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .upload-fields{grid-template-columns:1fr;}
}
