@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root{--bg:#0f1117;--surf:#161b27;--card:#1c2333;--hov:#232d42;--bdr:#2a3550;--acc:#3b82f6;--txt:#e2e8f0;--mut:#94a3b8;--success:#10b981;--danger:#ef4444}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--txt);font-family:'Inter',sans-serif;font-size:.9rem;min-height:100vh}
.login-screen{min-height:100vh;background:radial-gradient(ellipse 60% 50% at 20% 40%,rgba(59,130,246,.12) 0%,transparent 70%),var(--bg)}
.login-card{background:var(--card);border:1px solid var(--bdr);border-radius:16px;padding:2rem;width:100%;max-width:380px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.login-icon{font-size:2.2rem;color:var(--acc);display:block}
.navbar{background:var(--surf);border-bottom:1px solid var(--bdr);padding:.7rem 0}
.navbar-brand{font-size:1.05rem;color:var(--txt)!important}
.text-accent{color:var(--acc)}
.card{background:var(--card);border:1px solid var(--bdr);border-radius:12px;overflow:hidden}
.card-header{background:var(--surf);border-bottom:1px solid var(--bdr);padding:.8rem 1.2rem;font-weight:600;font-size:.88rem;color:#e2e8f0}
.form-label{color:#cbd5e1;font-size:.78rem;font-weight:500;margin-bottom:.3rem}
.form-select,.form-control{background:var(--surf);border:1px solid var(--bdr);color:var(--txt);border-radius:8px;font-size:.875rem;transition:border-color .2s,box-shadow .2s}
.form-select:focus,.form-control:focus{background:var(--surf);border-color:var(--acc);color:var(--txt);box-shadow:0 0 0 3px rgba(59,130,246,.2)}
.form-select option{background:var(--surf)}
.form-select:disabled,.form-control:disabled{opacity:.4;cursor:not-allowed}
.form-control::placeholder{color:var(--mut)}
.input-icon-wrap{position:relative}.input-icon{position:absolute;top:50%;left:.75rem;transform:translateY(-50%);color:var(--mut);pointer-events:none}.ps-icon{padding-left:2.2rem}
.form-check-input{background-color:var(--bdr);border-color:var(--bdr)}.form-check-input:checked{background-color:var(--acc);border-color:var(--acc)}.form-check-label{color:var(--mut);font-size:.85rem}
.drop-zone{border:2px dashed var(--bdr);border-radius:10px;padding:1.4rem 1rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;display:flex;flex-direction:column;align-items:center}
.drop-zone:hover,.drop-zone.dragover{border-color:var(--acc);background:rgba(59,130,246,.1)}.drop-zone.has-file{border-color:var(--success);background:rgba(16,185,129,.07)}
.btn-primary{background:var(--acc);border-color:var(--acc);font-weight:600;border-radius:8px}.btn-primary:hover{opacity:.85;background:var(--acc);border-color:var(--acc)}.btn-primary:disabled{opacity:.45}
.btn-outline-secondary{border-color:var(--bdr);color:var(--mut);border-radius:8px}.btn-outline-secondary:hover{background:var(--hov);color:var(--txt);border-color:var(--bdr)}
.btn-secondary{background:var(--hov);border-color:var(--bdr);color:var(--txt)}.btn-secondary:hover{background:#2c3650;border-color:var(--bdr);color:var(--txt)}
.import-item{padding:.85rem 1.2rem;border-bottom:1px solid var(--bdr);transition:background .12s}.import-item:last-child{border-bottom:none}.import-item:hover{background:var(--hov)}
.import-item .seq{font-size:.7rem;color:var(--mut);font-family:monospace}.import-item .count{font-weight:700;font-size:1.1rem;color:var(--acc)}.import-item .count-label{font-size:.7rem;color:var(--mut)}.import-item .dt{font-size:.78rem;color:var(--mut)}
.btn-details{font-size:.75rem;padding:.3rem .7rem;border-radius:6px;background:var(--hov);border:1px solid var(--bdr);color:var(--mut);cursor:pointer;transition:all .15s}.btn-details:hover{border-color:var(--acc);color:var(--acc)}
.badge-success{background:rgba(16,185,129,.15);color:var(--success)}
#connectionStatus{font-size:.7rem;border-radius:20px}.status-ok{background:rgba(16,185,129,.18)!important;color:var(--success)!important}.status-err{background:rgba(239,68,68,.18)!important;color:var(--danger)!important}
#alertBox,#loginAlert{border-radius:8px;padding:.7rem 1rem;font-size:.84rem;border:none}
.alert-ok{background:rgba(16,185,129,.12);color:#34d399;border-left:3px solid var(--success)}.alert-err{background:rgba(239,68,68,.12);color:#f87171;border-left:3px solid var(--danger)}
.modal-content{background:var(--card);border:1px solid var(--bdr);border-radius:12px;color:var(--txt)}.modal-header{border-bottom:1px solid var(--bdr)}.modal-footer{border-top:1px solid var(--bdr)}.btn-close{filter:invert(1) opacity(.5)}
.tbl{width:100%;border-collapse:collapse;font-size:.82rem}.tbl thead th{background:var(--surf);color:var(--mut);font-size:.73rem;text-transform:uppercase;letter-spacing:.03em;padding:.6rem 1rem;border-bottom:1px solid var(--bdr);font-weight:600;position:sticky;top:0;z-index:1}.tbl tbody tr{border-bottom:1px solid rgba(42,53,80,.5);transition:background .1s}.tbl tbody tr:hover{background:var(--hov)}.tbl tbody td{padding:.55rem 1rem;vertical-align:middle}
.td-c{color:var(--success);font-weight:600}.td-d{color:var(--danger);font-weight:600}
.spinner-sm{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:3px}

#empresaBadge { color: #cbd5e1 !important; }
