@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@500;600;700&family=Fira+Sans:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Fira Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"Fira Code", "Segoe UI", monospace;--bg:#0a0a0a;--bg-soft:#141414;--bg-accent:#1a1a1a;--bg-deep:#050505;--panel:#141414e6;--panel-solid:#161616;--panel-soft:#ffffff0a;--panel-hover:#282828e6;--line:#ffffff1a;--line-strong:#fff3;--text:#a3a3a3;--text-strong:#fafafa;--muted:#737373;--primary:#22c55e;--primary-strong:#16a34a;--primary-dark:#15803d;--primary-darker:#166534;--primary-glow:#22c55e1a;--primary-border:#22c55e66;--primary-focus:#22c55e80;--secondary:#a3a3a3;--secondary-strong:#d4d4d4;--secondary-dark:#737373;--secondary-glow:#a3a3a314;--danger:#ef4444;--danger-light:#f87171;--danger-text:#fca5a5;--danger-text-soft:#fecaca;--danger-text-softer:#fee2e2;--danger-bg:#7f1d1d66;--danger-bg-strong:#991b1beb;--danger-border:#f871714d;--danger-border-strong:#ef444480;--warning:#f59e0b;--warning-text:#fbbf24;--node-mikrotik:#fbbf24;--node-sectorial:#22c55e;--node-m5:#60a5fa;--node-offline:#404040;--gradient-main:radial-gradient(ellipse at 20% 0%, #22c55e0f, transparent 50%), linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);--gradient-login:radial-gradient(circle at 50% 0%, #22c55e14, transparent 50%);--gradient-client:linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);--gradient-history:radial-gradient(ellipse at 80% 0%, #22c55e0a, transparent 40%), linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);--shadow-card:0 24px 60px #02061773;--shadow-panel:0 8px 40px #00000073;--shadow-float:0 12px 48px #0006;--shadow-glow-primary:0 0 18px #22c55e33;--shadow-inset:inset 0 1px 0 #f8fafc0a;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1);--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:14px;--radius-2xl:16px;--radius-3xl:18px}[data-theme=light]{--bg:#f8fafc;--bg-soft:#f1f5f9;--bg-accent:#e2e8f0;--bg-deep:#fff;--panel:#ffffffeb;--panel-solid:#fff;--panel-soft:#0f172a0a;--panel-hover:#f1f5f9f2;--line:#0f172a1f;--line-strong:#0f172a3d;--text:#334155;--text-strong:#0f172a;--muted:#64748b;--primary:#16a34a;--primary-strong:#15803d;--primary-dark:#166534;--primary-darker:#14532d;--primary-glow:#16a34a1f;--primary-border:#16a34a59;--primary-focus:#16a34a80;--secondary:#2563eb;--secondary-strong:#1d4ed8;--secondary-dark:#1e40af;--secondary-glow:#2563eb1a;--danger:#dc2626;--danger-light:#ef4444;--danger-text:#b91c1c;--danger-text-soft:#991b1b;--danger-text-softer:#7f1d1d;--danger-bg:#fee2e2cc;--danger-bg-strong:#fecacae6;--danger-border:#f8717166;--danger-border-strong:#ef444480;--warning:#d97706;--warning-text:#c2410c;--node-mikrotik:#eab308;--node-sectorial:#059669;--node-m5:#2563eb;--node-offline:#94a3b8;--gradient-main:radial-gradient(circle at 16% 10%, #16a34a14, transparent 36%), radial-gradient(circle at 86% 8%, #2563eb0f, transparent 30%), linear-gradient(140deg, #f8fafc 0%, #f1f5f9 55%, #f8fafc 100%);--gradient-login:radial-gradient(circle at 20% 16%, #16a34a14, transparent 34%), radial-gradient(circle at 80% 0%, #2563eb0f, transparent 28%);--gradient-client:radial-gradient(circle at 20% 20%, #e0f2fe 0, #f8fafc 38%, #fff 100%);--gradient-history:radial-gradient(circle at 84% 6%, #2563eb0d, transparent 28%), linear-gradient(160deg, #f8fafc 0%, #f1f5f9 65%, #f8fafc 100%);--shadow-card:0 24px 60px #0f172a14;--shadow-panel:0 8px 40px #0f172a0f;--shadow-float:0 12px 48px #0f172a1a;--shadow-glow-primary:0 0 18px #16a34a26;--shadow-inset:inset 0 1px 0 #fffc}[data-theme=midnight]{--bg:#0a0a0f;--bg-soft:#12121a;--primary:#8b5cf6;--primary-strong:#7c3aed;--primary-glow:#8b5cf629;--node-mikrotik:#fbbf24;--node-sectorial:#34d399;--node-m5:#60a5fa}:root{color:var(--text);background:var(--bg);font:16px/1.5 var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--gradient-main);min-width:320px;margin:0}#root{min-height:100vh}::selection{background:var(--primary-glow);color:var(--text-strong)}:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.login-page{background:var(--gradient-login);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);border-radius:var(--radius-3xl);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:min(100%,380px);box-shadow:var(--shadow-card);flex-direction:column;gap:17px;padding:30px 24px;display:flex}.login-brand h1{font-family:var(--font-mono);letter-spacing:.02em;margin:4px 0 0;font-size:27px;line-height:1.1}.login-eyebrow{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.login-field{flex-direction:column;gap:6px;display:flex}.login-field span{color:var(--muted);font-size:12px;font-weight:600}.login-field input{border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--text);font:inherit;transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal);background:#0f172ab8;padding:11px 12px}.login-field input:focus{border-color:var(--primary-focus);background:#0f172aeb;outline:none;box-shadow:0 0 0 2px #22c55e2e}.login-error{color:var(--warning-text);margin:0;font-size:13px}.login-submit{border:1px solid var(--primary-border);border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:var(--text-strong);font:inherit;cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);box-shadow:var(--shadow-glow-primary);margin-top:4px;padding:12px 14px;font-weight:700}.login-submit:hover:not(:disabled){border-color:var(--primary-focus);background:linear-gradient(135deg, var(--primary-strong), var(--primary-dark));box-shadow:0 0 24px #22c55e47}.login-submit:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px}.login-submit:disabled{opacity:.65;cursor:wait}.auth-loading{min-height:100vh;color:var(--muted);place-items:center;display:grid}@media (prefers-reduced-motion:reduce){.login-field input,.login-submit{transition:none}}.shell{position:fixed;inset:0;overflow:hidden}.topbar{z-index:20;pointer-events:none;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:stretch;gap:8px;display:grid;position:absolute;top:16px;left:16px;right:16px}.topbar>*{pointer-events:auto;align-items:center;min-height:44px;display:flex}.topbar-box{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;box-shadow:inset 0 1px #f8fafc0a}.brand{padding:0 14px}.brand img{width:auto;height:22px}[data-theme=light] .brand img,[data-theme=light] .sidepanel-logo{filter:brightness(0)saturate()}[data-theme=dark] .brand img,[data-theme=dark] .sidepanel-logo{filter:brightness(0)saturate()invert()}.search{min-width:120px;position:relative}.searchInput{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:100%;height:100%;color:var(--text);font:inherit;border-radius:12px;outline:none;padding:0 14px;font-size:13px;transition:border-color .2s}.searchInput:focus{border-color:var(--line-strong)}.stats{align-items:stretch;gap:6px;display:flex}.viewSwitch{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;display:flex;overflow:hidden}.viewBtn{color:var(--muted);background:0 0;border:0;border-radius:0;align-items:center;height:100%;padding:0 14px;font-size:12px;font-weight:700;transition:background .15s,color .15s;display:flex}.viewBtn+.viewBtn{border-left:1px solid var(--line)}.viewBtn:hover{background:#ffffff08}.viewBtn.active{color:var(--text-strong);background:#22c55e24}.stats>span{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--text);white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:0 14px;font-size:12px;display:flex}.stats b{color:var(--text-strong);font-weight:700}.stat-err{border-color:var(--danger-border-strong)!important}.stat-err b{color:var(--danger-text)}.stat-time{color:var(--muted)!important;border-style:dashed!important;font-size:11px!important}.actions{align-items:stretch;gap:6px;display:flex}.actions button{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--text);white-space:nowrap;cursor:pointer;transition:border-color var(--transition-normal), background var(--transition-normal);align-items:center;padding:0 14px;font-size:12px;font-weight:700;display:flex}.actions button:hover:not(:disabled){border-color:var(--line-strong);background:var(--panel-hover)}.theme-toggle{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:44px;height:44px;color:var(--text);cursor:pointer;transition:border-color var(--transition-normal), background var(--transition-normal), color var(--transition-normal);justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{border-color:var(--line-strong);background:var(--panel-hover);color:var(--text-strong)}.theme-toggle svg{width:18px;height:18px}.whatsapp-toggle-btn{border:1px solid var(--line);border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.whatsapp-toggle-btn:hover{color:#25d366;background:#25d3661a;border-color:#25d366}.whatsapp-toggle-btn svg{width:18px;height:18px}.sidepanel-btn.whatsapp{color:#fff;background:linear-gradient(135deg,#25d366 0%,#128c7e 100%);border:none;justify-content:center;align-items:center;display:flex}.sidepanel-btn.whatsapp:hover{background:linear-gradient(135deg,#20bd5a 0%,#0f7a6d 100%)}.sidepanel-theme-row{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text);background:#ffffff05;justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 14px;font-size:13px;display:flex}.sidepanel-theme-row .theme-toggle{width:36px;height:36px}.sidepanel-theme-row .theme-toggle svg{width:16px;height:16px}.hamburger{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:44px;height:44px;padding:0;display:none}.hamburger span{background:var(--text);border-radius:2px;width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.hamburger:hover span{background:var(--text-strong)}.sidepanel-overlay{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;background:#0009;transition:opacity .25s,visibility .25s;position:fixed;inset:0}.sidepanel-overlay.open{opacity:1;visibility:visible}.sidepanel{z-index:100;background:var(--panel);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;width:280px;max-width:85vw;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidepanel.open{transform:translate(0)}.sidepanel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px;display:flex}.sidepanel-logo{width:auto;height:22px}.sidepanel-close{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;font-size:16px;transition:color .15s,border-color .15s;display:flex}.sidepanel-close:hover{color:var(--text-strong);border-color:var(--line-strong)}.sidepanel-nav{flex-direction:column;gap:20px;padding:16px;display:flex}.sidepanel-section{flex-direction:column;gap:10px;display:flex}.sidepanel-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.sidepanel-group{gap:8px;display:flex}.sidepanel-btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:10px;flex:1;padding:12px 16px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.sidepanel-btn:hover{border-color:var(--line-strong);background:#ffffff0a}.sidepanel-btn.active{background:var(--primary-glow);color:var(--text-strong);border-color:#22c55e66}.sidepanel-btn.primary{color:var(--primary);background:#22c55e1f;border-color:#22c55e4d}.sidepanel-btn.primary:hover:not(:disabled){background:#22c55e33}.sidepanel-btn.danger{color:var(--danger-light);background:#ef44441a;border-color:#ef44444d}.sidepanel-btn.danger:hover{background:#ef44442e}.sidepanel-stats{flex-direction:column;gap:8px;display:flex}.sidepanel-stats span{border:1px solid var(--line);color:var(--text);background:#ffffff05;border-radius:10px;padding:10px 14px;font-size:13px}.sidepanel-stats b{color:var(--text-strong);font-weight:700}.sidepanel-stats .stat-err{border-color:#ee6c4d66}.sidepanel-stats .stat-time{color:var(--muted);border-style:dashed;font-size:12px}@media (width<=1100px){.topbar{grid-template-columns:auto minmax(140px,1fr) auto auto}.stats{gap:4px}.stats>span,.actions button{padding:0 10px;font-size:11px}}@media (width<=900px){.topbar{grid-template-rows:auto auto;grid-template-columns:auto minmax(120px,1fr) auto}.stats{flex-wrap:nowrap;grid-area:2/1/auto/-1;justify-content:flex-start}.stats>span,.stats .viewSwitch,.viewBtn{height:38px;min-height:38px}.viewBtn{align-items:center;padding:0 12px;display:flex}.actions{grid-area:1/3}}@media (width<=700px){.topbar{align-items:center;gap:8px;flex-flow:row!important;display:flex!important}.brand,.desktop-only{display:none!important}.hamburger{flex-direction:column;flex:none;display:flex!important}.search{flex:1;min-width:0;width:auto!important}}button{cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}button:focus-visible{outline-offset:2px;outline:2px solid #22c55ea3}button:disabled{cursor:wait;opacity:.55}.overlay-state{z-index:20;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-strong);pointer-events:none;background:#0f172aeb;border-radius:12px;padding:14px 18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay-state.error{color:var(--danger-text);border-color:#ee6c4d80}.detailPanel{z-index:20;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:thin;scrollbar-color:var(--line) transparent;border-radius:14px;width:300px;padding:12px;transition:box-shadow .25s;position:absolute;top:66px;bottom:16px;right:16px;overflow-y:auto;box-shadow:0 8px 40px #00000073}.detailPanel.open{box-shadow:0 8px 40px #00000073}.detailHeader{align-items:center;gap:9px;margin-bottom:10px;display:flex}.detailTitle{flex:1;min-width:0}.panelToggle{cursor:pointer;flex-shrink:0;display:none;border:1px solid var(--line)!important;background:var(--panel-soft)!important;color:var(--muted)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-radius:8px!important;padding:4px 9px!important;font-size:12px!important}.dot{border-radius:999px;flex-shrink:0;width:12px;height:12px;box-shadow:0 0 20px}.dot.mikrotik{background:var(--node-mikrotik);color:var(--node-mikrotik)}.dot.sectorial{background:var(--node-sectorial);color:var(--node-sectorial)}.dot.m5{background:var(--node-m5);color:var(--node-m5)}.detailHeader p{color:var(--muted);text-transform:uppercase;margin:0 0 2px;font-size:10px;font-weight:800}.detailHeader h2{color:var(--text);font-family:var(--font-mono);word-break:break-word;margin:0;font-size:16px;line-height:1.15}.fields{gap:4px;display:grid}.field{border:1px solid var(--line);background:var(--panel-soft);border-radius:10px;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:6px;padding:6px 8px;display:grid}.field span{color:var(--muted);font-size:11px}.field strong{color:var(--text-strong);overflow-wrap:anywhere;font-size:12px}.errors{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.errors h3{color:var(--danger-text);margin:0 0 6px;font-size:13px}.errors p{color:var(--muted);margin:0 0 6px;font-size:12px}.history-btn{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;border:1px solid var(--primary-border);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:background-color var(--transition-normal), box-shadow var(--transition-normal);box-shadow:var(--shadow-glow-primary);margin-top:12px;padding:9px 12px;font-size:13px;font-weight:700}.history-btn-label{align-items:center;gap:8px;display:inline-flex}.history-btn-icon{flex-shrink:0;width:14px;height:14px}.history-btn:hover{background:linear-gradient(135deg, var(--primary-strong), var(--primary-dark));box-shadow:0 0 22px #22c55e4d}.history-btn:active{background:linear-gradient(135deg, var(--primary-dark), var(--primary-darker))}.client-data-btn{background:linear-gradient(135deg, var(--secondary), var(--secondary-strong));color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:background-color var(--transition-normal), box-shadow var(--transition-normal);border:1px solid #3b82f673;margin-top:10px;padding:9px 12px;font-size:13px;font-weight:700;box-shadow:0 0 18px #3b82f62e}.client-data-btn-label{align-items:center;gap:8px;display:inline-flex}.client-data-btn-icon{flex-shrink:0;width:14px;height:14px}.client-data-btn:hover{background:linear-gradient(135deg, var(--secondary-strong), var(--secondary-dark));box-shadow:0 0 22px #3b82f64d}.client-data-btn:active{background:linear-gradient(135deg, var(--secondary-dark), #1e40af)}.cred-section{margin-top:12px}.cred-toggle-btn{width:100%;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);background:#94a3b814;align-items:center;gap:8px;padding:9px 12px;font-size:12px;font-weight:600;display:flex}.cred-toggle-btn:hover{color:var(--text);background:#94a3b826}.cred-toggle-btn.has-custom{color:var(--warning);background:#fbbe3b1f;border-color:#fbbe3b59}.cred-toggle-btn.has-custom:hover{background:#fbbe3b33}.cred-icon{flex-shrink:0;width:14px;height:14px}.cred-form{border:1px solid var(--line);border-radius:var(--radius-md);background:#00000040;margin-top:10px;padding:12px}.cred-hint{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.4}.cred-input{background:var(--panel-solid);border:1px solid var(--line);width:100%;color:var(--text);box-sizing:border-box;border-radius:6px;outline:none;margin-bottom:8px;padding:8px 10px;font-size:12px}.cred-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #25c2a026}.cred-input::placeholder{color:var(--muted)}.cred-error{color:var(--danger);background:#dc262626;border-radius:4px;margin:0 0 8px;padding:6px 8px;font-size:11px}.cred-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.cred-btn{cursor:pointer;min-width:70px;transition:all var(--transition-fast);border:none;border-radius:6px;flex:1;padding:7px 10px;font-size:11px;font-weight:600}.cred-btn:disabled{opacity:.5;cursor:not-allowed}.cred-btn.save{background:var(--primary);color:#0f1f1a}.cred-btn.save:hover:not(:disabled){background:var(--primary-strong)}.cred-btn.reset{color:var(--warning);background:#fbbe3b26}.cred-btn.reset:hover:not(:disabled){background:#fbbe3b40}.cred-btn.cancel{color:var(--muted);background:#94a3b81f}.cred-btn.cancel:hover:not(:disabled){color:var(--text);background:#94a3b833}.table-action-btn{color:#60a5fa;cursor:pointer;white-space:nowrap;background:#3b82f626;border:1px solid #3b82f659;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:700;transition:background-color .15s,border-color .15s}.table-action-btn:hover{background:#3b82f640;border-color:#3b82f680}.table-action-btn:active{background:#3b82f659}.table-action-btn.history{color:var(--primary);background:#25c2a026;border-color:#25c2a059}.table-action-btn.history:hover{background:#25c2a040;border-color:#25c2a080}.actions-cell{white-space:nowrap;flex-wrap:nowrap;gap:4px;min-width:160px;display:flex}.topologyTable tbody tr.rowError{background:#dc262614}.topologyTable tbody tr.rowError:hover{background:#dc26261f}.status-indicator-cell{text-align:center;width:32px;padding:0 8px!important}.status-dot{border-radius:50%;width:10px;height:10px;display:inline-block;position:relative}.status-dot.online{background:#22c55e;animation:2s infinite pulse-online;box-shadow:0 0 #22c55eb3}.status-dot.offline{background:#94a3b8}[data-theme=dark] .status-dot.offline{background:#475569}@keyframes pulse-online{0%{box-shadow:0 0 #22c55eb3}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}.topologyTable tbody tr.rowDisconnected td{color:var(--muted);opacity:.7}.topologyTable tbody tr.rowDisconnected .status-dot{opacity:1}.topologyTable tbody tr.rowDisconnected:hover td{opacity:.8}.td-error{color:var(--danger);font-weight:600}.td-offline{color:var(--muted)}.searchInput{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;color:var(--text);font:inherit;box-sizing:border-box;border-radius:12px;outline:none;padding:9px 12px;font-size:13px}.searchInput:focus{border-color:#22c55e9e;box-shadow:0 0 0 2px #22c55e29}.searchInput::placeholder{color:var(--muted)}.searchResults{z-index:50;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;max-height:320px;margin:6px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 30px #00000073}.searchResults li{cursor:pointer;border-radius:9px;align-items:center;gap:8px;padding:8px 9px;transition:background-color .2s;display:flex}.searchResults li:hover{background:var(--panel-soft)}.searchDot{border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 6px}.searchName{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.searchSub{color:var(--muted);flex-shrink:0;font-size:11px}.tableView{z-index:5;position:absolute;inset:72px 16px 16px}.tableView.withPanel{right:328px}.tableCard{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;flex-direction:column;height:100%;padding-bottom:71px;display:flex;overflow:hidden;box-shadow:0 8px 40px #0006}.tableWrapper{flex:1;min-height:0;overflow:auto}.topologyTable{border-collapse:collapse;width:100%;min-width:760px}.topologyTable thead th{z-index:1;background:var(--panel-solid);color:var(--text-strong);letter-spacing:.04em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--line);padding:10px 12px;font-size:11px;position:sticky;top:0}.topologyTable thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s,color .15s}.topologyTable thead th.sortable:hover{background:var(--panel-hover);color:var(--primary)}.topologyTable thead th.sortable.sorted-asc,.topologyTable thead th.sortable.sorted-desc{color:var(--primary);background:#22c55e14}.topologyTable thead th .sortIcon{opacity:.8;margin-left:4px;font-size:9px}.topologyTable tbody td{color:var(--text);white-space:nowrap;border-bottom:1px solid #94a3b826;padding:9px 12px;font-size:12px}.topologyTable tbody tr{cursor:pointer;transition:background-color .15s}.topologyTable tbody tr:hover{background:#25c2a014}.topologyTable tbody tr.isSelected{background:#22c55e26}.tablePagination{border-top:1px solid var(--line);background:var(--panel-solid);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.paginationInfo{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.rowsSelect{background:var(--panel-solid);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:5px 8px;font-size:11px}.rowsSelect:focus{border-color:var(--primary);outline:none}.paginationControls{align-items:center;gap:4px;display:flex}.paginationControls button{border:1px solid var(--line);color:var(--text);cursor:pointer;transition:all var(--transition-fast);background:#94a3b814;border-radius:6px;padding:6px 10px;font-size:11px}.paginationControls button:hover:not(:disabled){border-color:var(--line-strong);background:#94a3b826}.paginationControls button:disabled{opacity:.4;cursor:not-allowed}.pageIndicator{color:var(--text);padding:0 12px;font-size:12px;font-weight:500}@media (width<=820px){.topbar{grid-template-columns:1fr;align-items:stretch;gap:8px;display:grid}.brand,.search,.stats,.actions{width:100%}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.stats>span,.stats>.viewSwitch{box-sizing:border-box;width:100%}.actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.actions>*{text-align:center;text-overflow:ellipsis;overflow:hidden}.viewSwitch{display:flex}.viewBtn{flex:1}.tableView{bottom:8px;left:8px;right:8px}.tableView.withPanel{right:8px}.detailPanel{border-bottom:none;border-radius:14px 14px 0 0;width:100%;max-height:52px;transition:max-height .25s;inset:auto 0 0;overflow:hidden}.detailPanel.open{max-height:50vh;overflow-y:auto}.panelToggle{display:inline-flex}}@media (width<=480px){.topbar{top:8px;left:8px;right:8px}.topbar h1{font-size:18px}.detailPanel{max-height:50vh}.stats span,button,.viewBtn{font-size:11px}.tablePagination{flex-direction:column;gap:10px;padding:10px}.paginationInfo{justify-content:space-between;width:100%}.paginationControls{justify-content:center;width:100%}}@media (prefers-reduced-motion:reduce){.detailPanel,.history-btn,.searchResults li,button{transition:none!important}}.server-down-alert{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ef4444f2,#b91c1cf2);border:2px solid #ff646480;border-radius:16px;align-items:center;gap:16px;max-width:calc(100vw - 32px);padding:16px 24px;animation:2s ease-in-out infinite alertPulse;display:flex;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #ef444466,0 0 60px #ef444433,inset 0 1px #ffffff1a}@keyframes alertPulse{0%,to{box-shadow:0 8px 32px #ef444466,0 0 60px #ef444433}50%{box-shadow:0 8px 40px #ef444499,0 0 80px #ef444459}}.server-down-icon{font-size:32px;line-height:1;animation:.5s ease-in-out infinite iconShake}@keyframes iconShake{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.server-down-text{color:#fff;flex-direction:column;gap:4px;display:flex}.server-down-text strong{letter-spacing:-.02em;font-size:16px;font-weight:700}.server-down-text span{opacity:.9;font-size:13px}.server-down-retry{color:#fff;cursor:pointer;white-space:nowrap;background:#fff3;border:1px solid #ffffff4d;border-radius:8px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .2s}.server-down-retry:hover{background:#ffffff4d;border-color:#ffffff80}.server-down-retry:active{transform:scale(.95)}@media (width<=600px){.server-down-alert{text-align:center;flex-direction:column;gap:12px;padding:14px 18px;top:70px}.server-down-text strong{font-size:14px}.server-down-text span{font-size:12px}}.mikrotik-error-alert{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fb923cf2,#ea580cf2);border:2px solid #ffb46480;border-radius:14px;align-items:center;gap:16px;max-width:calc(100vw - 32px);padding:14px 20px;animation:2s ease-in-out infinite alertPulseOrange;display:flex;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #fb923c59,0 0 40px #fb923c26,inset 0 1px #ffffff1a}@keyframes alertPulseOrange{0%,to{box-shadow:0 6px 24px #fb923c59,0 0 40px #fb923c26}50%{box-shadow:0 6px 32px #fb923c80,0 0 60px #fb923c40}}.mikrotik-error-icon{font-size:28px;line-height:1}.mikrotik-error-text{color:#fff;flex-direction:column;gap:2px;display:flex}.mikrotik-error-text strong{font-size:15px;font-weight:700}.mikrotik-error-text span{opacity:.9;font-size:12px}.mikrotik-error-retry{color:#fff;cursor:pointer;white-space:nowrap;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .2s}.mikrotik-error-retry:hover:not(:disabled){background:#ffffff4d}.mikrotik-error-retry:disabled{opacity:.6;cursor:not-allowed}@media (width<=600px){.mikrotik-error-alert{text-align:center;flex-direction:column;gap:10px;padding:12px 16px;top:70px}}.device-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.action-btn{cursor:pointer;border:1px solid;border-radius:10px;align-items:center;gap:6px;padding:10px 14px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-icon{width:16px;height:16px}.reboot-btn{color:#60a5fa;background:#3b82f61f;border-color:#3b82f64d}.reboot-btn:hover:not(:disabled){background:#3b82f633;border-color:#3b82f680}.delete-btn{color:#f87171;background:#ef44441a;border-color:#ef44444d}.delete-btn:hover:not(:disabled){background:#ef44442e;border-color:#ef444480}.delete-confirm{background:#ef444414;border:1px solid #ef444440;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.delete-confirm-text{color:#f87171;font-size:12px;font-weight:600}.delete-confirm-btn{color:#fff!important;background:#ef4444e6!important;border-color:#ef4444e6!important}.delete-confirm-btn:hover:not(:disabled){background:#ef4444!important}.delete-cancel-btn{color:var(--muted)!important;background:#94a3b81f!important;border-color:#94a3b840!important}.delete-cancel-btn:hover:not(:disabled){color:var(--text)!important;background:#94a3b833!important}.table-action-btn.reboot{color:#60a5fa;background:#3b82f626;border-color:#3b82f659;padding:4px 6px;font-size:14px}.table-action-btn.reboot:hover:not(:disabled){background:#3b82f640;border-color:#3b82f680}.table-action-btn.delete{color:#f87171;background:#ef44441a;border-color:#ef44444d;padding:4px 6px;font-size:12px}.table-action-btn.delete:hover:not(:disabled){background:#ef44442e;border-color:#ef444480}.table-action-btn:disabled{opacity:.5;cursor:not-allowed}.scanning-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ad9;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.scanning-content{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;align-items:center;gap:20px;padding:40px 60px;display:flex;box-shadow:0 20px 60px #00000080}.scanning-spinner{border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scanning-text{color:var(--text-strong);letter-spacing:.02em;font-size:18px;font-weight:600}.scanning-banner{background:#25c2a01f;border:1px solid #25c2a04d;border-radius:10px;justify-content:center;align-items:center;gap:12px;margin-bottom:12px;padding:12px 20px;animation:2s ease-in-out infinite pulse-banner;display:flex}@keyframes pulse-banner{0%,to{opacity:1}50%{opacity:.7}}.scanning-banner span{color:var(--primary);font-size:14px;font-weight:600}.scanning-banner-spinner{border:2px solid #25c2a04d;border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.shell{background-image:radial-gradient(circle, var(--dot-color,#94a3b826) 1px, transparent 1px);background-position:50%;background-size:30px 30px}[data-theme=light] .shell{--dot-color:#64748b33}[data-theme=dark] .shell{--dot-color:#94a3b81f}.mobile-view-toggle{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-shrink:0;gap:2px;margin-left:8px;padding:2px;display:none}.mobile-view-toggle button{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.mobile-view-toggle button:hover{background:var(--hover)}.mobile-view-toggle button.active{background:var(--primary);color:#fff}.mobile-view-toggle button svg{width:18px;height:18px}@media (width<=768px){.mobile-view-toggle{display:flex}}.topologyTable .numero-cliente{color:var(--primary);font-size:13px;font-weight:600}.topologyTable .mac-cell{letter-spacing:.02em;color:var(--muted);text-transform:uppercase;font-family:ui-monospace,SF Mono,Cascadia Code,Roboto Mono,Menlo,monospace;font-size:11px}@media (width<=1100px){.topologyTable th:nth-child(6),.topologyTable td:nth-child(6){display:none}}.history-page{background:var(--gradient-history);color:var(--text);font-family:var(--font-sans);flex-direction:column;display:flex}.history-header{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;justify-content:space-between;align-items:center;margin:1rem 1rem 0;padding:1rem 1.4rem;display:flex;box-shadow:0 10px 26px #02061759}.history-brand{align-items:center;gap:1rem;display:flex}.back-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#94a3b814;border-radius:.65rem;padding:.6rem .8rem;font-size:1.2rem;line-height:1;transition:background-color .2s,border-color .2s,color .2s}.back-btn:hover{border-color:var(--line-strong);color:var(--text);background:#1e293beb}.back-btn:focus-visible{outline-offset:2px;outline:2px solid #22c55ea3}.history-brand>div p:first-child{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0;font-size:.75rem}.history-brand h1{font-family:var(--font-mono);margin:.25rem 0;font-size:1.52rem;font-weight:600}.ip-label{color:var(--muted);margin:0;font-size:.875rem}.history-controls{gap:1rem;display:flex}.history-controls select{background:var(--panel-solid);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:.6rem;padding:.5rem 1rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.history-controls select:hover{border-color:var(--line-strong)}.history-controls select:focus-visible{border-color:#22c55e9e;outline:none;box-shadow:0 0 0 2px #22c55e29}.history-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;padding:.7rem 1rem;display:grid}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:.8rem;flex-direction:column;padding:.8rem;display:flex;box-shadow:inset 0 1px #f8fafc0a}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.35rem;font-size:.7rem}.stat-value{color:var(--text-strong);font-size:1.35rem;font-weight:700}.stat-value.green{color:var(--primary)}.stat-value.red{color:var(--danger)}.history-error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text-soft);border-radius:.8rem;justify-content:space-between;align-items:center;margin:1rem;padding:2rem;display:flex}.history-error p{margin:0}.history-error button{background:var(--danger-bg-strong);color:var(--danger-text-softer);border:1px solid var(--danger-border);cursor:pointer;transition:background-color var(--transition-normal);border-radius:.5rem;padding:.5rem 1rem;font-weight:500}.history-error button:hover{background:var(--danger-bg)}.history-loading,.history-empty{text-align:center;color:var(--muted);padding:3rem 2rem;font-size:1rem}.history-charts{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;padding:0 1rem 1rem;display:grid}.chart-container{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.8rem;min-width:0;padding:.8rem}.chart-connectivity{grid-column:span 2}.chart-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.chart-container h3{color:var(--text);margin:0;font-size:.95rem;font-weight:600}.chart-time-selector{background:var(--panel-solid);border:1px solid var(--line);border-radius:6px;gap:2px;padding:2px;display:flex}.chart-time-selector button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:600;transition:all .15s}.chart-time-selector button:hover{color:var(--text);background:#94a3b81a}.chart-time-selector button.active{background:var(--primary);color:#0f1f1a}.recharts-surface{filter:brightness(.95)}.recharts-cartesian-axis-tick text{fill:var(--muted);font-size:12px}.recharts-tooltip-wrapper{outline:none}.recharts-default-tooltip{border-radius:.375rem;background:var(--panel-solid)!important;border:1px solid var(--line-strong)!important;color:var(--text)!important}.recharts-tooltip-label{color:var(--text)!important}.recharts-tooltip-item{color:var(--muted)!important}@media (width<=768px){.history-header{flex-direction:column;align-items:flex-start;gap:1rem;margin:.8rem .8rem 0;padding:1rem}.history-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.8rem;display:grid}.stat-card{text-align:center;padding:.6rem}.stat-label{font-size:.6rem}.stat-value{font-size:1.1rem}.history-charts{flex-direction:column;flex:none;gap:.8rem;padding:0 .8rem 1.5rem;display:flex}.chart-connectivity{grid-column:auto}.chart-container{flex-shrink:0;min-height:300px;padding:.8rem}.chart-header{flex-direction:row;align-items:center;gap:.4rem}.chart-container h3{font-size:.85rem}.chart-time-selector button{padding:3px 6px;font-size:.65rem}.chart-container.chart-connectivity{min-height:300px}.chart-container h3{margin-bottom:.4rem;font-size:.85rem}.history-brand h1{font-size:1.3rem}.history-controls select{padding:.4rem .8rem;font-size:.8rem}}@media (width<=400px){.history-header{margin:.5rem;padding:.8rem}.back-btn{padding:.5rem .6rem;font-size:1rem}.history-brand h1{font-size:1.1rem}.ip-label{font-size:.75rem}.history-stats{grid-template-columns:repeat(3,1fr);gap:.4rem;padding:.5rem}.stat-card{padding:.5rem .3rem}.stat-label{font-size:.55rem}.stat-value{font-size:.95rem}.history-charts{gap:.6rem;padding:0 .5rem 1rem}.chart-container{min-height:280px;padding:.6rem}.chart-container.chart-connectivity{min-height:300px}.chart-container h3{font-size:.75rem}.chart-time-selector{padding:1px}.chart-time-selector button{padding:2px 5px;font-size:.6rem}}@media (prefers-reduced-motion:reduce){.back-btn,.history-controls select,.history-error button{transition:none}}.client-page{background:var(--bg);min-height:100vh}.client-loading,.client-error{min-height:100vh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:16px;display:flex}.client-error button{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:8px;padding:10px 20px}.client-topbar{border-bottom:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;align-items:center;gap:16px;padding:16px;display:flex;position:sticky;top:0}.client-title{color:var(--text-strong);margin:0;font-size:18px;font-weight:600}.back-btn{border:1px solid var(--line);background:var(--panel-soft);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:border-color .2s,background-color .2s;display:flex}.back-btn svg{width:16px;height:16px}.back-btn:hover{border-color:var(--line-strong);background:#1e293be0}.client-actions button{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:13px;transition:all .2s}.client-actions button:hover{border-color:var(--danger-border);color:var(--danger-light)}.client-content{max-width:1000px;margin:0 auto;padding:20px}.client-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=900px){.client-grid{grid-template-columns:1fr}}.client-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:20px;overflow:hidden}.client-card h2{color:var(--text-strong);border-bottom:1px solid var(--line);margin:0 0 16px;padding-bottom:12px;font-size:16px}.invoices-card{grid-column:1/-1}.info-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.info-row{flex-direction:column;gap:4px;display:flex}.info-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.info-value{color:var(--text);font-size:14px;font-weight:500}.info-value.estado-activo{color:var(--primary)}.info-value.estado-desconectado{color:var(--danger-light)}.info-value.numero-cliente{color:var(--primary);font-size:16px;font-weight:700}.info-value.mac-address{letter-spacing:.02em;color:var(--muted);text-transform:uppercase;font-family:ui-monospace,SF Mono,Cascadia Code,Roboto Mono,Menlo,monospace;font-size:12px}.client-form{flex-direction:column;gap:14px;display:flex}.form-row-group{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=600px){.form-row-group{grid-template-columns:1fr}}.form-row{flex-direction:column;gap:6px;display:flex}.form-row.full{grid-column:1/-1}.form-row label{color:var(--muted);font-size:12px;font-weight:500}.form-row input,.form-row textarea{border:1px solid var(--line);background:var(--panel-soft);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.form-row input:focus,.form-row textarea:focus{border-color:var(--primary)}.form-row input::placeholder,.form-row textarea::placeholder{color:var(--muted);opacity:.6}.form-row textarea{resize:vertical;min-height:80px}.form-actions{flex-wrap:wrap;align-items:center;gap:12px;padding-top:8px;display:flex}.save-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s}.save-btn:hover:not(:disabled){background:#16a34a}.save-btn:disabled{opacity:.6;cursor:not-allowed}.save-success{color:var(--primary);font-size:13px}.save-error{color:var(--danger-light);font-size:13px}.invoice-create{background:var(--panel-soft);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;display:flex}.invoice-create-row{align-items:center;gap:10px;display:flex}.invoice-create-row select,.invoice-create-row input{border:1px solid var(--line);background:var(--panel-soft);color:var(--text);box-sizing:border-box;border-radius:8px;outline:none;padding:10px 12px;font-size:14px}.invoice-create-row select{flex:1;min-width:0}.invoice-create-row>input[type=number]{flex:0 0 90px;width:90px}.invoice-create-row>input[type=text]{flex:1;min-width:0}.invoice-create-row.discount-row>input[type=number]{flex:0 0 140px;width:140px}.invoice-create-row.discount-row>input[type=text]{flex:1;min-width:0}.create-invoice-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px 18px;font-size:14px;font-weight:600;transition:all .2s}.create-invoice-btn:hover:not(:disabled){background:#16a34a}.create-invoice-btn:disabled{opacity:.5;cursor:not-allowed}.invoice-warning{color:var(--warning);margin:0;font-size:12px}.invoice-error{color:var(--danger-light);margin:0;font-size:13px}.invoices-list{overflow-x:auto}.no-invoices{color:var(--muted);text-align:center;padding:24px;font-size:14px}.invoices-table{border-collapse:collapse;width:100%;min-width:600px}.invoices-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 12px;font-size:11px}.invoices-table td{color:var(--text);border-bottom:1px solid #94a3b81a;padding:12px;font-size:14px}.invoices-table tr:hover{background:#ffffff05}.estado-badge{text-transform:capitalize;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.estado-badge.pendiente{color:#eab308;background:#eab30826}.estado-badge.pagada{color:var(--primary);background:#22c55e26}.estado-badge.vencida{color:var(--danger-light);background:#ef444426}.invoice-actions{gap:6px;display:flex}.invoice-actions button{border:1px solid var(--line);background:var(--panel-soft);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .2s;display:flex}.invoice-actions button svg{width:16px;height:16px;stroke:var(--text)}.invoice-actions button:hover{border-color:var(--line-strong);background:var(--panel-hover)}.invoice-actions button.action-pdf:hover{border-color:var(--primary);background:#22c55e1a}.invoice-actions button.action-pdf:hover svg{stroke:var(--primary)}.invoice-actions button.action-pay:hover{border-color:var(--primary);background:#22c55e1a}.invoice-actions button.action-pay:hover svg{stroke:var(--primary)}.invoice-actions button.action-unpay:hover{background:#f59e0b1a;border-color:#f59e0b}.invoice-actions button.action-unpay:hover svg{stroke:#f59e0b}.invoice-actions button.action-delete:hover{border-color:var(--danger);background:#ef44441a}.invoice-actions button.action-delete:hover svg{stroke:var(--danger)}.discount-cell{color:var(--danger-light);font-size:11px}.discount-cell span{cursor:help}.total-cell{color:var(--text-strong);font-weight:600}@media (width<=768px){.client-grid,.client-form{grid-template-columns:1fr}}@media (width<=480px){.invoice-create-row{flex-direction:column;align-items:stretch}.invoice-create-row select,.invoice-create-row>input[type=number],.invoice-create-row>input[type=text],.invoice-create-row.discount-row>input[type=number],.invoice-create-row.discount-row>input[type=text]{flex:none!important;width:100%!important}}
