:root{--bg:#f2f3f1;--surface:#fff;--border:#c9ccc6;--text:#1c1f1a;--muted:#5d6358;--primary:#1f4d2b;--primary-hover:#173a20;--error-bg:#fbeaea;--error:#8a1c1c;--info-bg:#e8efe9;--warn-bg:#fdf5e1;--warn:#7a5a00;--ok:#1f6b35;--ok-bg:#e4f2e7;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}.auth{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:4px;flex-direction:column;width:100%;max-width:400px;padding:32px 28px 24px;display:flex}.card h1{letter-spacing:.08em;text-align:center;margin:0;font-size:1.5rem}.subtitle{text-align:center;color:var(--muted);margin:4px 0 24px;font-size:.9rem}label{margin-bottom:4px;font-size:.875rem;font-weight:600}input,select,textarea{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:3px;margin-bottom:16px;padding:10px 12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}textarea{resize:vertical}button{font:inherit;background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:10px 12px;font-weight:600}button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}button.link{color:var(--primary);background:0 0;margin-top:12px;padding:4px 0;font-size:.875rem;font-weight:400;text-decoration:underline}button.link:hover:not(:disabled){background:0 0}button.link.inline{font-size:inherit;color:var(--warn);margin:0 0 0 4px;padding:0}button.secondary,a.button.secondary{color:var(--primary);border:1px solid var(--primary);background:0 0;padding:6px 12px}button.secondary:hover:not(:disabled),a.button.secondary:hover{background:var(--info-bg)}a.button{border-radius:3px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.msg{border-radius:3px;margin:0 0 16px;padding:8px 10px;font-size:.875rem}.msg.error{background:var(--error-bg);color:var(--error)}.msg.info{background:var(--info-bg);color:var(--primary)}.msg.warning{background:var(--warn-bg);color:var(--warn);border-left:3px solid var(--warn)}.hint{color:var(--muted);margin:-8px 0 16px;font-size:.8rem}hr{border:none;border-top:1px solid var(--border);width:100%;margin:20px 0 16px}.support{color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:.85rem;display:flex}.support a:not(.button){color:var(--primary)}.footer{color:var(--muted);margin-top:16px;font-size:.8rem}.muted{color:var(--muted)}.small{font-size:.8rem}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.strong{font-weight:700}.nowrap{white-space:nowrap}.row{align-items:center;gap:8px;display:flex}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--primary);color:#fff;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{align-items:baseline;gap:12px;display:flex}.brand strong{letter-spacing:.08em;font-size:1.1rem}.brand span{opacity:.85;font-size:.85rem}.topbar-user{align-items:center;gap:12px;display:flex}.topbar .user{font-size:.85rem}.topbar button.secondary{color:#fff;border-color:#fff}.topbar button.secondary:hover:not(:disabled){background:#ffffff1f}.shell{flex:1;min-height:0;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:210px;padding:16px 0;display:flex}.nav-item{color:var(--text);text-align:left;background:0 0;border-left:3px solid #0000;border-radius:0;padding:10px 20px;font-weight:500}.nav-item:hover:not(:disabled){background:var(--bg)}.nav-item.active{border-left-color:var(--primary);background:var(--info-bg);color:var(--primary);font-weight:700}.nav-item.active:hover:not(:disabled){background:var(--info-bg)}.content{flex:1;min-width:0;max-width:1200px;padding:20px 24px 32px}.content h2{margin:0 0 16px;font-size:1.35rem}.content h3{margin:0 0 12px;font-size:1rem}.content-footer{border-top:1px solid var(--border);margin-top:32px;padding-top:16px}.content-footer .support{flex-flow:wrap;justify-content:space-between}.banner-demo{color:var(--warn);background:var(--warn-bg);border-radius:3px;margin-bottom:16px;padding:4px 10px;font-size:.8rem;display:inline-block}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-head h2,.section-head button.link{margin:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:4px;margin-bottom:16px;padding:16px}.panel-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-head h3,.panel-head button.link{margin:0}.panel input,.panel select,.panel textarea{margin-bottom:0}.kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:4px;flex-direction:column;padding:12px 16px;display:flex}.kpi.alerta{border-left-color:var(--error)}.kpi-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.kpi-value{font-size:1.75rem;font-weight:700}.quick-search label{margin-bottom:6px;display:block}.quick-search .row input{text-transform:uppercase;flex:1;min-width:0;max-width:260px}.quick-search .panel-head{flex-wrap:wrap;gap:4px 12px}.filters{grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;display:flex}.form-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.form-grid .full{grid-column:1/-1}.form-grid .msg{margin:0}.actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.actions p{margin:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:2px solid var(--border);padding:8px 10px;font-size:.75rem}td{vertical-align:top;border-bottom:1px solid #e3e5e0;padding:8px 10px}tbody tr{cursor:pointer}tbody tr:hover,tbody tr:focus{background:var(--bg);outline:none}.badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.bad{background:var(--error-bg);color:var(--error)}.badge.pending{background:var(--warn-bg);color:var(--warn)}.report-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;display:flex}.report-head h2{margin:0}.meta{flex-wrap:wrap;gap:16px 32px;margin:0;display:flex}.meta dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.meta dd{margin:0}.meta.stacked{grid-template-columns:1fr 1fr;gap:12px;display:grid}.plate{border:2px solid var(--text);border-radius:3px;padding:0 6px;font-size:1.1rem;display:inline-block}.strong-alert{border-left:4px solid var(--error);padding:12px;font-weight:700}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.checks{flex-direction:column;gap:10px;display:flex}.check{align-items:flex-start;gap:10px;display:flex}.check-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.8rem;font-weight:700;display:inline-flex}.check.ok .check-icon{background:var(--ok-bg);color:var(--ok)}.check.bad .check-icon{background:var(--error-bg);color:var(--error)}.check.bad strong{color:var(--error)}.auth-grid{justify-content:center;align-items:stretch;gap:16px;width:100%;max-width:760px;display:flex}.auth-grid .card{flex:0 400px}.support-aside{background:var(--surface);border:1px solid var(--border);border-radius:4px;flex-direction:column;flex:0 300px;gap:4px;padding:24px;font-size:.9rem;display:flex}.support-aside h2{margin:0 0 8px;font-size:1rem}.support-aside p{color:var(--muted);margin:0 0 12px}.support-aside .support-mail a{color:var(--primary);font-size:1rem;font-weight:700}.support-aside .button{align-self:flex-start}.topbar .user{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.topbar .user small{opacity:.8;font-size:.75rem}.nav-item{justify-content:space-between;align-items:center;gap:8px;display:flex}.nav-badge{background:var(--error);color:#fff;border-radius:10px;padding:0 7px;font-size:.7rem;font-weight:700}.kpis.three{grid-template-columns:repeat(3,1fr)}.progress{background:var(--bg);border:1px solid var(--border);border-radius:7px;height:14px;margin:8px 0;overflow:hidden}.progress-bar{background:var(--primary);height:100%}.months{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.month{border:1px solid var(--border);border-radius:3px;flex-direction:column;align-items:center;min-width:56px;padding:4px 12px;display:flex}table.static tbody tr{cursor:default}table.static tbody tr:hover{background:0 0}tr.inactive td{opacity:.55}tr.total td{border-top:2px solid var(--border);font-weight:700}.dot{background:var(--border);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.dot.on{background:#2e9e4f}.bar-cell{align-items:center;gap:8px;min-width:140px;display:flex}.mini-bar{background:var(--bg);border-radius:4px;flex:1;height:8px;overflow:hidden}.mini-bar div{background:var(--primary);height:100%}td button.link{margin:0;padding:0}button.danger{background:var(--error)}button.danger:hover:not(:disabled){background:#6e1414}.confirm p{margin:0 0 10px}.row.wrap{flex-wrap:wrap}.right{text-align:right}.bad{color:var(--error)}.stepper{gap:0;margin:12px 0 0;padding:0;list-style:none;display:flex}.stepper li{text-align:center;color:var(--muted);flex-direction:column;flex:1;align-items:center;font-size:.75rem;display:flex;position:relative}.stepper li:before{content:"";background:var(--border);z-index:0;width:100%;height:2px;position:absolute;top:11px;left:-50%}.stepper li:first-child:before{display:none}.stepper li.done:before,.stepper li.current:before{background:var(--primary)}.step-dot{background:var(--surface);border:2px solid var(--border);z-index:1;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;display:inline-flex;position:relative}.stepper li.done .step-dot{background:var(--primary);border-color:var(--primary);color:#fff}.stepper li.current .step-dot{border-color:var(--primary);color:var(--primary)}.stepper li.current{color:var(--text);font-weight:600}.step-label{margin-top:4px}.requests{margin:0;padding:0;list-style:none}.requests>li{border-bottom:1px solid #e3e5e0;grid-template-columns:180px 1fr 130px;align-items:center;gap:16px;padding:12px 0;display:grid}.requests>li:last-child{border-bottom:none}.requests>li.ready{background:var(--ok-bg);margin:0 -16px;padding:12px 16px}.requests .stepper{margin:0}.req-main{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.req-actions{text-align:right}.req-actions button.link{margin:0}.quick-search .msg{margin:12px 0 0}.report-section h3{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report-section.alerta{border-left:3px solid var(--error)}.sec-n{background:var(--primary);color:#fff;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;display:inline-flex}.ok-line{color:var(--ok);margin:0}ul.plain{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.dropzone{border:2px dashed var(--border);cursor:pointer;text-align:center;border-radius:4px;flex-direction:column;align-items:center;gap:4px;margin-bottom:12px;padding:24px 16px;display:flex}.dropzone:hover,.dropzone.over,.dropzone:focus{border-color:var(--primary);background:var(--info-bg);outline:none}.files{margin:0;padding:0;list-style:none}.files li{border-bottom:1px solid #e3e5e0;align-items:center;gap:10px;padding:8px 0;display:flex}.files li button.link{margin:0 0 0 auto}.file-ext{background:var(--bg);border:1px solid var(--border);border-radius:2px;padding:1px 4px;font-size:.65rem;font-weight:700}.file-name{word-break:break-all}@media (width<=900px){.kpis,.kpis.three{grid-template-columns:repeat(2,1fr)}.grid-2,.filters,.form-grid{grid-template-columns:1fr}.requests>li{grid-template-columns:1fr;gap:8px}.req-actions{text-align:left}}@media (width<=760px){.auth-grid{flex-direction:column;align-items:center}.auth-grid .card,.support-aside{flex:none;width:100%;max-width:400px}}@media (width<=700px){.brand span,.topbar .user{display:none}.shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;width:auto;padding:0;overflow-x:auto}.nav-item{white-space:nowrap;border-bottom:3px solid #0000;border-left:none;padding:10px 14px}.nav-item.active{border-bottom-color:var(--primary)}.content{padding:16px}.meta.stacked{grid-template-columns:1fr}}@media print{.topbar,.sidebar,.content-footer,.section-head,.banner-demo,.no-print{display:none!important}body,.content{background:#fff;padding:0}}.demo-bar{color:#fff;background:#222;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 16px;font-size:.8rem;display:flex}.demo-bar button{padding:4px 10px;font-size:.8rem}.demo-bar button.secondary{color:#fff;border-color:#888}.pdf-frame{border:1px solid var(--border);background:#fff;border-radius:3px;width:100%;height:80vh;min-height:480px}.processing{background:var(--info-bg);color:var(--primary);border-radius:4px;align-items:center;gap:10px;margin-bottom:12px;padding:20px;font-weight:600;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.check-line{align-items:center;gap:8px;margin:0 0 12px;font-weight:400;display:flex}.check-line input{margin:0}.radio-group{border:1px solid var(--border);border-radius:3px;flex-wrap:wrap;gap:20px;margin:12px 0;padding:8px 12px;display:flex}.radio-group legend{padding:0 4px;font-size:.875rem;font-weight:600}.radio-group label{align-items:center;gap:6px;margin:0;font-weight:400;display:flex}.radio-group input{margin:0}form.panel .field{margin-bottom:12px}.small-table{margin-bottom:8px;font-size:.8rem}.small-table td,.small-table th{padding:4px 6px}.content h4{margin:12px 0 6px;font-size:.9rem}tr.nuevo td{background:var(--ok-bg)}td.row{display:table-cell}td.row button.link{margin-right:12px}
