:root{--bg:#0f172a;--card:#1e293b;--text:#f8fafc;--muted:#94a3b8;--accent:#3b82f6;--accent2:#10b981;--accent3:#f59e0b;--danger:#ef4444;--border:#334155;}
*{box-sizing:border-box;margin:0;padding:0;font-family:'Segoe UI',system-ui,sans-serif;}
body{background:var(--bg);color:var(--text);min-height:100vh;}
.sidebar{width:260px;background:var(--card);height:100vh;position:fixed;left:0;top:0;border-right:1px solid var(--border);padding:20px;display:flex;flex-direction:column;overflow:hidden;z-index:100;}
.sidebar-header{flex-shrink:0;}
.nav-items{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;}
.nav-items::-webkit-scrollbar{width:6px;}
.nav-items::-webkit-scrollbar-thumb{background:#334155;border-radius:3px;}
.sidebar h1{font-size:1.3rem;color:var(--accent);margin-bottom:4px;}
.sidebar .sub{font-size:.75rem;color:var(--muted);margin-bottom:20px;}
.nav-item{padding:12px 14px;border-radius:8px;cursor:pointer;margin-bottom:4px;display:flex;align-items:center;gap:10px;transition:.2s;color:var(--muted);font-size:.9rem;}
.nav-item:hover,.nav-item.active{background:rgba(59,130,246,.15);color:var(--text);}
.nav-item svg{width:18px;height:18px;}
.main{margin-left:260px;padding:24px;}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;}
.card h2{font-size:1.1rem;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px;}
.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;}
.kpi-card .value{font-size:2rem;font-weight:700;color:var(--accent);}
.kpi-card .label{font-size:.85rem;color:var(--muted);margin-top:4px;}
.result-card{background:linear-gradient(135deg,var(--accent),#064e3b);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:24px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.25);margin-top:20px;}
.result-card .result-label{font-size:.9rem;color:rgba(255,255,255,.85);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;}
.result-card .result-value{font-size:2.8rem;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2);}
.result-card-v2{background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(16,185,129,.1));border:1px solid #334155;border-radius:16px;padding:2rem;text-align:center;margin-top:20px;}
.result-v2-title{font-size:.8rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;}
.result-v2-value{font-size:2.5rem;font-weight:700;color:#f1f5f9;margin-bottom:1.5rem;}
.result-v2-breakdown{text-align:left;margin-bottom:1.5rem;}
.result-v2-line{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:#cbd5e1;border-bottom:1px dashed #334155;padding:.45rem 0;}
.result-v2-line:last-child{border-bottom:none;}
.result-v2-line.total{font-weight:700;color:#f1f5f9;border-top:2px solid #334155;border-bottom:none;padding-top:.5rem;margin-top:.5rem;}
.result-v2-pills{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem;}
.result-v2-pill{background:rgba(255,255,255,.05);border-radius:20px;padding:.4rem .8rem;font-size:.8rem;color:#f1f5f9;font-weight:600;}
.result-v2-unit{text-align:left;font-size:1rem;color:#94a3b8;margin-bottom:1.5rem;}
.result-v2-unit span{color:#f1f5f9;font-weight:600;}
.result-v2-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.receipt{margin-top:20px;text-align:left;background:rgba(0,0,0,.18);border-radius:12px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);}
.receipt-title{font-size:.8rem;color:rgba(255,255,255,.7);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;}
.receipt-line{display:flex;align-items:baseline;gap:8px;font-size:.9rem;margin:7px 0;color:rgba(255,255,255,.9);}
.receipt-line .receipt-concept{white-space:nowrap;}
.receipt-line .receipt-dots{flex:1;border-bottom:2px dotted rgba(255,255,255,.35);min-width:24px;margin-bottom:2px;}
.receipt-line .receipt-amount{white-space:nowrap;font-weight:600;color:#fff;text-align:right;}
.receipt-line.total{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.2);font-size:1rem;}
.receipt-line.total .receipt-amount{font-size:1.1rem;}
.fx-ticker{position:sticky;top:0;z-index:90;background:#0b1120;border-bottom:1px solid #1e3a5f;border-radius:0;padding:.75rem 1rem;margin:-24px -24px 20px -24px;box-shadow:0 4px 20px rgba(0,0,0,.4);min-height:80px;}
.fx-ticker-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;}
.fx-ticker-brand{display:flex;align-items:center;gap:.5rem;}
.fx-ticker-label{color:#3b82f6;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;}
.fx-live-dot{width:6px;height:6px;background:#10b981;border-radius:50%;animation:fxPulse 1.5s infinite;}
.fx-live-text{color:#10b981;font-size:.65rem;font-weight:700;}
@keyframes fxPulse{0%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.4);}100%{opacity:1;transform:scale(1);}}
.fx-ticker-controls{display:flex;align-items:center;gap:.75rem;}
.fx-auto-toggle{display:flex;align-items:center;gap:.35rem;font-size:.7rem;color:#94a3b8;cursor:pointer;}
.fx-auto-toggle input{width:auto;}
.fx-ticker-cards{display:flex;gap:1.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;padding-bottom:.5rem;margin-bottom:.5rem;scrollbar-width:none;}
.fx-ticker-cards::-webkit-scrollbar{display:none;}
.fx-card{min-width:180px;padding:.5rem .75rem;border-radius:10px;display:flex;align-items:center;gap:.6rem;flex-shrink:0;}
.fx-card-mxn{border:1px solid rgba(16,185,129,.2);background:rgba(16,185,129,.08);}
.fx-card-usd{border:1px solid rgba(59,130,246,.2);background:rgba(59,130,246,.08);}
.fx-card-rmb{border:1px solid rgba(245,158,11,.2);background:rgba(245,158,11,.08);}
.fx-card-eur{border:1px solid rgba(139,92,246,.2);background:rgba(139,92,246,.08);}
.fx-flag{font-size:1.2rem;}
.fx-info{flex:1;display:flex;flex-direction:column;gap:1px;}
.fx-pair{font-size:.7rem;color:#94a3b8;font-weight:600;}
.fx-value{font-size:1.1rem;color:#f1f5f9;font-weight:700;width:80px;background:transparent;border:none;padding:0;text-align:left;-moz-appearance:textfield;}
.fx-value::-webkit-outer-spin-button,.fx-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.fx-value:disabled{opacity:.9;cursor:not-allowed;}
.fx-change{font-size:.7rem;font-weight:600;}
.fx-change.up{color:#10b981;}
.fx-change.down{color:#ef4444;}
.fx-change.neutral{color:#64748b;}
.fx-mini-chart{display:flex;align-items:flex-end;gap:3px;height:24px;}
.fx-mini-chart span{width:6px;background:currentColor;opacity:.7;border-radius:2px;}
.fx-card-mxn .fx-mini-chart span{color:#10b981;}
.fx-card-usd .fx-mini-chart span{color:#3b82f6;}
.fx-card-rmb .fx-mini-chart span{color:#f59e0b;}
.fx-card-eur .fx-mini-chart span{color:#8b5cf6;}
.fx-ticker-bottom{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;color:#475569;}
.fx-pills{display:flex;gap:.5rem;}
.fx-pills span{padding:.15rem .4rem;background:#0f172a;border-radius:4px;}
@media(max-width:900px){.fx-ticker{margin:-16px -16px 16px -16px;}.fx-card{min-width:150px;}.fx-ticker-top{flex-wrap:wrap;gap:.5rem;}}
.section-title{font-size:1rem;color:var(--text);margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.radio-cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.radio-card{flex:1;min-width:140px;background:var(--card);border:1px solid #334155;border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;justify-content:space-between;gap:12px;}
.radio-card:hover{background:rgba(59,130,246,.05);}
.radio-card.active{border-color:#3b82f6;background:rgba(59,130,246,.1);box-shadow:0 0 0 2px rgba(59,130,246,.3);}
.radio-card-title{font-size:1rem;font-weight:700;color:var(--text);line-height:1.3;}
.radio-card-title span{font-size:.85rem;font-weight:500;color:var(--muted);}
.radio-card-check{display:flex;justify-content:flex-end;}
.radio-dot{width:18px;height:18px;border:2px solid var(--muted);border-radius:50%;position:relative;transition:.2s;}
.radio-card.active .radio-dot{border-color:#3b82f6;}
.radio-dot.checked::after{content:'';position:absolute;inset:3px;background:#3b82f6;border-radius:50%;}
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.compare-col{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;position:relative;}
.compare-col.winner{border:2px solid #10b981;box-shadow:0 0 0 2px rgba(16,185,129,.2);}
.compare-title{font-size:1.1rem;font-weight:700;text-align:center;margin-bottom:8px;color:var(--text);}
.compare-banner{position:absolute;top:0;right:0;background:#10b981;color:#000;font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:0 10px 0 10px;display:none;z-index:5;}
.compare-col.winner .compare-banner{display:block;}
.compare-warning{display:none;text-align:center;margin-top:16px;padding:12px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;color:#f59e0b;font-size:.9rem;}
.compare-warning.show{display:block;}
.compare-arrow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--accent2);color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;z-index:10;box-shadow:0 4px 12px rgba(0,0,0,.3);}
.compare-modal-col{flex:1;}
.compare-modal-col.winner .result-card{border-color:var(--accent2);box-shadow:0 0 0 2px rgba(16,185,129,.3);}
.pills{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px;}
.pill{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:6px 14px;font-size:.85rem;font-weight:600;color:#fff;}
.accordion{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px;}
.accordion-header{padding:.75rem 1rem;background:#0f172a;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:.2s;border-radius:10px;}
.accordion-header:hover{background:#131c2e;}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 16px;background:var(--card);}
.accordion.open .accordion-body{max-height:700px;padding:16px;}
.accordion-icon{transition:.3s;display:inline-block;}
.accordion.open .accordion-icon{transform:rotate(90deg);}
.readonly-field{background:#0a1120 !important;color:var(--accent2) !important;font-weight:700;border-color:var(--border) !important;}
.collapse-field{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease,opacity .3s ease;opacity:0;}
.collapse-field.open{grid-template-rows:1fr;opacity:1;}
.collapse-field > *{overflow:hidden;}
.info-wrap{display:flex;align-items:center;gap:6px;}
.info-icon{cursor:pointer;color:var(--accent);font-size:.9rem;position:relative;}
.money-input{display:flex;gap:8px;align-items:center;}
.money-input input{flex:1;}
.money-input select{width:auto;min-width:70px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px 8px;border-radius:8px;font-size:.85rem;}
.money-converted{display:block;font-size:.75rem;color:var(--accent2);margin-top:4px;font-weight:600;}
.measures-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.costs-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.calc-display-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;}
.calc-display{background:#0f172a;border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:.9rem;color:var(--muted);transition:background .3s ease;}
.calc-display span{color:#10b981;font-family:monospace;font-weight:700;font-size:1rem;}
.calc-display.flash-green{animation:flashGreen .3s ease;}
@keyframes flashGreen{0%{background:rgba(16,185,129,.2);}100%{background:#0f172a;}}
@media(max-width:900px){.measures-grid{grid-template-columns:1fr;}.costs-grid{grid-template-columns:1fr;}.calc-display-grid{grid-template-columns:1fr;}}
.info-icon:hover::after{content:attr(data-tip);position:absolute;left:24px;top:50%;transform:translateY(-50%);background:var(--bg);border:1px solid var(--border);padding:8px 12px;border-radius:8px;font-size:.75rem;color:var(--text);white-space:nowrap;z-index:50;box-shadow:0 4px 12px rgba(0,0,0,.3);}
.action-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
.action-bar .btn{flex:1;min-width:140px;}
.mini-table{width:100%;font-size:.85rem;margin-top:12px;}
.mini-table th,.mini-table td{padding:8px;border-bottom:1px solid var(--border);}
.saved-list{max-height:240px;overflow-y:auto;}
.saved-item{padding:10px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:.2s;display:flex;justify-content:space-between;align-items:center;}
.saved-item:hover{border-color:var(--accent);background:rgba(59,130,246,.08);}
.saved-item .saved-name{font-weight:600;}
.saved-item .saved-date{font-size:.75rem;color:var(--muted);}
@media(max-width:900px){.compare-arrow{display:none;}.fx-item input{width:60px;}}
@media(max-width:768px){.compare-grid{grid-template-columns:1fr;}.radio-cards{flex-direction:column;}.radio-card{min-width:100%;width:100%;}}
.btn{background:var(--accent);color:#fff;border:none;padding:10px 18px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:.2s;}
.btn:hover{opacity:.9;}
.btn-sm{padding:6px 12px;font-size:.8rem;}
.btn-success{background:var(--accent2);}
.btn-warning{background:var(--accent3);color:#000;}
.btn-danger{background:var(--danger);}
.btn-primary{background:var(--accent);}
.btn-secondary{background:#334155;color:#f1f5f9;}
.btn-secondary:hover{background:#475569;}
input.error{border-color:var(--danger);box-shadow:0 0 0 2px rgba(239,68,68,.2);}
.toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:10px;color:#fff;font-size:.9rem;font-weight:600;z-index:400;box-shadow:0 8px 24px rgba(0,0,0,.35);transform:translateY(20px);opacity:0;transition:.3s;}
.toast.show{transform:translateY(0);opacity:1;}
.toast.success{background:var(--accent2);}
.toast.error{background:var(--danger);}
.toast.info{background:#3b82f6;}
input,select,textarea{background:#0f172a;border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:8px;font-size:.9rem;width:100%;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);}
table{width:100%;border-collapse:collapse;font-size:.9rem;}
th,td{padding:12px;text-align:left;border-bottom:1px solid var(--border);}
th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;}
tr:hover{background:rgba(255,255,255,.02);}
.badge{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600;}
.badge-green{background:rgba(16,185,129,.15);color:var(--accent2);}
.badge-yellow{background:rgba(245,158,11,.15);color:var(--accent3);}
.badge-red{background:rgba(239,68,68,.15);color:var(--danger);}
.badge-secondary{background:rgba(148,163,184,.15);color:var(--muted);}
.categoria-select-wrapper{display:flex;gap:0.5rem;align-items:center;}
.categoria-select-wrapper select{flex:1;}
.categoria-select-wrapper .btn{white-space:nowrap;padding:8px 12px;}
.categoria-nueva-wrapper{margin-top:8px;}
.categoria-nueva-row{display:flex;gap:0.5rem;align-items:center;}
.categoria-nueva-row input{flex:1;}
.categoria-nueva-row input#ciNuevoEmoji{max-width:70px;text-align:center;}
.fraccion-input-wrap{display:flex;gap:0.5rem;align-items:center;position:relative;}
.fraccion-input-wrap input[type=search]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:10px;color:#f1f5f9;padding:10px 14px;font-size:.9rem;}
.fraccion-input-wrap input[type=search]:focus{outline:none;border-color:var(--accent);}
.fraccion-input-wrap .btn{white-space:nowrap;}
.fraccion-dropdown{position:absolute;z-index:50;background:#1e293b;border:1px solid #334155;border-radius:10px;max-height:200px;overflow-y:auto;box-shadow:0 10px 25px rgba(0,0,0,.4);margin-top:4px;min-width:320px;}
.fraccion-item{padding:0.6rem 0.8rem;cursor:pointer;font-size:.85rem;border-bottom:1px solid rgba(51,65,85,.5);}
.fraccion-item:last-child{border-bottom:none;}
.fraccion-item:hover,.fraccion-item.active{background:rgba(59,130,246,.1);}
.fraccion-item small{display:block;color:var(--muted);font-size:.75rem;margin-top:2px;}
.fraccion-item.empty{color:var(--muted);cursor:default;}
.fraccion-item.empty:hover{background:transparent;}
.fraccion-badge{display:inline-block;margin-top:6px;padding:0.25rem 0.6rem;background:rgba(59,130,246,.15);color:#60a5fa;border-radius:6px;font-size:.75rem;font-weight:600;}
.hidden{display:none !important;}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:200;}
.modal{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;}
.modal h3{margin-bottom:16px;}
.form-group{margin-bottom:14px;}
.form-group label{display:block;margin-bottom:6px;font-size:.85rem;color:var(--muted);}
.row{display:flex;gap:12px;}
.row > *{flex:1;}
.tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:8px;}
.tab{padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.85rem;color:var(--muted);}
.tab.active{background:rgba(59,130,246,.15);color:var(--accent);}
.slider-container{display:flex;align-items:center;gap:12px;}
.slider-container input[type=range]{flex:1;}
.login-screen{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:300;}
.login-box{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:380px;text-align:center;}
.login-box h2{margin-bottom:8px;}
.login-box p{color:var(--muted);margin-bottom:24px;font-size:.9rem;}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.topbar .user{display:flex;align-items:center;gap:10px;}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;}
.switch{position:relative;display:inline-block;width:44px;height:24px;}
.switch input{opacity:0;width:0;height:0;}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border);border-radius:24px;transition:.3s;}
.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s;}
input:checked + .slider{background:var(--accent2);}
input:checked + .slider:before{transform:translateX(20px);}
.sync-bar{display:flex;align-items:center;gap:16px;padding:14px;background:rgba(59,130,246,.08);border-radius:10px;margin-bottom:12px;}
.sync-bar .channel{font-weight:600;min-width:120px;}
/* ===== FOTOS, QR, LIGHTBOX ===== */
.hidden-file{display:none !important;}
.thumb-square{width:48px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:transform .2s,box-shadow .2s;background:var(--bg);}
.thumb-square:hover{transform:scale(1.08);box-shadow:0 4px 12px rgba(0,0,0,.4);}
.thumb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;}
.thumb-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:transform .2s;}
.thumb-grid img:hover{transform:scale(1.05);}
.photo-preview-wrap{display:flex;align-items:center;gap:12px;margin-top:8px;}
.qr-wrap{background:#fff;padding:8px;border-radius:8px;display:inline-block;line-height:0;box-shadow:0 4px 12px rgba(0,0,0,.25);}
.qr-img{width:120px;height:120px;}
.qr-img-lg{width:200px;height:200px;}
.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;z-index:500;cursor:zoom-out;}
.lightbox-content{position:relative;max-width:90%;max-height:90vh;text-align:center;}
.lightbox-content img{max-width:100%;max-height:80vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close{position:absolute;top:-40px;right:0;color:#fff;font-size:2rem;cursor:pointer;line-height:1;}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;}
.lightbox-nav:hover{background:rgba(255,255,255,.25);}
.lightbox-prev{left:-60px;}
.lightbox-next{right:-60px;}
.cot-card{border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--card);cursor:pointer;transition:border-color .2s;}
.cot-card:hover{border-color:var(--accent);}
.cot-card-header{display:flex;align-items:center;gap:14px;}
.cot-card-thumb{width:56px;height:56px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:var(--bg);flex-shrink:0;}
.cot-card-meta{flex:1;}
.cot-card-title{font-weight:700;font-size:1rem;}
.cot-card-sub{font-size:.8rem;color:var(--muted);}
.cot-card-body{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;}
.cot-card.open .cot-card-body{max-height:900px;padding-top:14px;}
.cot-card-detail{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
/* ===== MERCADO LIBRE INTEGRATION ===== */
.ml-toggle-wrap{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px;background:rgba(59,130,246,.08);border-radius:10px;}
.ml-toggle-wrap label{font-size:.85rem;color:var(--muted);}
.ml-toggle-wrap .switch{flex-shrink:0;}
.ml-toggle-status{font-weight:700;font-size:.9rem;}
.ml-search-wrap{position:relative;}
.ml-search-results{position:absolute;z-index:50;left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:10px;max-height:260px;overflow-y:auto;box-shadow:0 10px 25px rgba(0,0,0,.4);margin-top:4px;}
.ml-search-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .2s;}
.ml-search-item:last-child{border-bottom:none;}
.ml-search-item:hover{background:rgba(59,130,246,.1);}
.ml-search-item img{width:40px;height:40px;object-fit:cover;border-radius:6px;background:var(--bg);}
.ml-search-info{flex:1;min-width:0;}
.ml-search-title{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ml-search-meta{font-size:.75rem;color:var(--muted);}
.ml-info-card{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start;margin-bottom:16px;padding:16px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);border-radius:12px;}
.ml-info-card img{width:120px;height:120px;object-fit:cover;border-radius:10px;background:var(--bg);}
.ml-info-list{font-size:.85rem;color:var(--muted);}
.ml-info-list strong{color:var(--text);}
.ml-info-list div{margin-bottom:4px;}
.ml-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(59,130,246,.15);color:#60a5fa;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600;}
.ml-badge-connected{background:rgba(16,185,129,.15);color:var(--accent2);}
.ml-conn-card{border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--card);}
.ml-conn-card input{margin-bottom:8px;}
.ml-conn-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.ml-conn-status{margin-top:8px;font-size:.85rem;}
.ml-sync-table th,.ml-sync-table td{font-size:.8rem;padding:8px;}
.ml-alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:.85rem;}
.ml-alert-warning{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);color:var(--accent3);}
.ml-alert-info{background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);color:#60a5fa;}
.ml-alert-danger{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--danger);}
.ml-compare-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:12px;}
.ml-compare-table th,.ml-compare-table td{padding:10px 12px;border:1px solid var(--border);text-align:right;}
.ml-compare-table th:first-child,.ml-compare-table td:first-child{text-align:left;}
.ml-compare-table th{background:rgba(15,23,42,.6);font-weight:600;color:var(--text);}
.ml-compare-table tr:nth-child(even){background:rgba(255,255,255,.03);}
.ml-compare-table .diff-positive{color:var(--accent2);font-weight:600;}
.ml-compare-table .diff-negative{color:var(--danger);font-weight:600;}
.ml-compare-table .diff-neutral{color:var(--muted);}
/* ===== CONECTORES DINÁMICOS ===== */
.conn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.conn-card{border:1px solid var(--border);border-radius:12px;padding:16px;background:#161f32;transition:box-shadow .2s,border-color .2s;}
.conn-card:hover{border-color:#3b82f6;box-shadow:0 8px 24px rgba(0,0,0,.35);}
.conn-card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;}
.conn-icon{font-size:2rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(59,130,246,.12);border-radius:10px;}
.conn-title-wrap{flex:1;min-width:0;}
.conn-title-input{background:transparent;border:none;padding:0;font-weight:700;font-size:1rem;color:var(--text);width:100%;border-bottom:1px solid transparent;}
.conn-title-input:focus{outline:none;border-bottom-color:var(--accent);}
.conn-title-input:disabled{opacity:.8;cursor:not-allowed;}
.conn-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.conn-status{font-size:.85rem;margin-top:4px;}
.conn-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.conn-accordion{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;}
.conn-accordion.open{max-height:900px;padding-top:12px;}
.conn-field{margin-bottom:10px;}
.conn-field label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px;}
.conn-field input{width:100%;}
.conn-field input:disabled{opacity:.6;}
.conn-template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.conn-template-item{border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center;cursor:pointer;transition:.2s;background:var(--card);}
.conn-template-item:hover{border-color:var(--accent);background:rgba(59,130,246,.08);}
.conn-template-item .icon{font-size:2rem;margin-bottom:8px;}
.conn-custom-field-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;}
.conn-custom-field-row input{flex:1;}
@media(max-width:900px){.sidebar{width:100%;height:auto;position:relative;}.nav-items{flex:0 0 auto;max-height:calc(100vh - 100px);}.main{margin-left:0;}.grid{grid-template-columns:1fr;}.conn-grid{grid-template-columns:1fr;}.thumb-grid{grid-template-columns:repeat(3,1fr);}.cot-card-detail{grid-template-columns:1fr;}.ml-info-card{grid-template-columns:1fr;}.conn-template-grid{grid-template-columns:1fr;}}
@media print{
  body{background:#fff;color:#000;}
  .sidebar,.topbar,.fx-ticker,.nav-item,.section-title,.action-bar,.result-v2-actions,.accordion-header,.money-converted,.info-icon,.btn{display:none !important;}
  .main{margin-left:0;padding:0;width:100%;}
  .card{border:none;background:#fff;color:#000;padding:0;margin:0;box-shadow:none;}
  #sec-calcImport.hidden{display:block !important;}
  #sec-calcImport ~ div{display:none !important;}
  .result-card-v2{background:#fff;border:1px solid #ccc;color:#000;box-shadow:none;page-break-inside:avoid;}
  .result-v2-title,.result-v2-value,.result-v2-line,.result-v2-pill,.result-v2-unit{color:#000 !important;}
  .result-v2-line{border-bottom-color:#999;}
  .result-v2-line.total{border-top-color:#000;}
  input,select{background:#fff;color:#000;border:1px solid #ccc;}
}

/* ===== SIDEBAR REORDENABLE ===== */
.nav-item{position:relative;touch-action:pan-y;padding-left:10px;}
.nav-item.sortable{cursor:grab;}
.nav-item.sortable:active{cursor:grabbing;}
.nav-item.sortable-active{touch-action:none;}
.nav-item.dragging,.nav-item.sortable-ghost{opacity:0.35;background:rgba(59,130,246,.12);}
.nav-item.drop-above{border-top:2px solid var(--accent);}
.nav-item.drop-below{border-bottom:2px solid var(--accent);}
.nav-item.sortable-clone{position:fixed;z-index:1000;pointer-events:none;transform:rotate(2deg);box-shadow:0 10px 30px rgba(0,0,0,.4);opacity:0.92;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:10px;color:var(--text);}

.drag-handle{color:var(--muted);display:flex;align-items:center;justify-content:center;padding:4px;margin-right:2px;border-radius:4px;cursor:grab;opacity:0.6;transition:opacity .15s;flex-shrink:0;}
.drag-handle:hover,.nav-item:hover .drag-handle{opacity:1;color:var(--text);background:rgba(255,255,255,.06);}
.nav-item.sortable-active .drag-handle{cursor:grabbing;}

.nav-item-acc{display:none;align-items:center;gap:2px;margin-left:auto;padding-left:6px;}
.nav-item:hover .nav-item-acc,.nav-item:focus-within .nav-item-acc{display:flex;}
.nav-move-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:.7rem;padding:4px 5px;border-radius:4px;line-height:1;}
.nav-move-btn:hover,.nav-move-btn:focus{color:var(--text);background:rgba(255,255,255,.08);outline:none;}

.sidebar-footer{padding:10px 14px 0;border-top:1px solid var(--border);margin-top:8px;}
.sidebar-reset-btn{width:100%;justify-content:center;background:transparent;color:var(--muted);border:1px solid var(--border);font-size:.8rem;padding:8px 12px;}
.sidebar-reset-btn:hover{background:rgba(255,255,255,.05);color:var(--text);}

/* ===== INVENTARIO MAESTRO / CANALES ===== */
.inventory-master-notice{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);border-radius:10px;padding:14px 16px;}
.inventory-master-notice strong{color:var(--accent2);display:block;margin-bottom:4px;}
.inventory-master-notice p{margin:0;color:var(--muted);font-size:.85rem;line-height:1.4;}
.connection-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s,box-shadow .2s;}
.connection-card:hover{border-color:var(--accent);box-shadow:0 8px 24px rgba(0,0,0,.25);}
.connection-header{display:flex;align-items:flex-start;gap:12px;}
.connection-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;background:rgba(59,130,246,.12);flex-shrink:0;}
.connection-title{flex:1;min-width:0;}
.connection-title .name{font-weight:700;font-size:1rem;color:var(--text);}
.connection-title .platform{font-size:.78rem;color:var(--muted);}
.connection-meta{font-size:.8rem;color:var(--muted);display:flex;flex-direction:column;gap:4px;}
.connection-actions{display:flex;gap:8px;flex-wrap:wrap;}
.status-badge{display:inline-block;padding:3px 8px;border-radius:12px;font-size:.72rem;font-weight:700;text-transform:uppercase;}
.status-no-config{background:rgba(148,163,184,.12);color:var(--muted);}
.status-disconnected{background:rgba(239,68,68,.12);color:var(--danger);}
.status-connected{background:rgba(16,185,129,.12);color:var(--accent2);}
.status-error{background:rgba(245,158,11,.12);color:var(--accent3);}
.status-paused{background:rgba(139,92,246,.12);color:#a78bfa;}

/* ===== MENÚ LATERAL AGRUPADO ===== */
.nav-group-title{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 14px;font-weight:700;margin-top:10px;}
.nav-group-title:first-child{margin-top:0;}
.nav-item{margin-bottom:3px;}

/* ===== ESTADOS VACÍOS ===== */
.empty-state{text-align:center;padding:48px 20px;background:rgba(15,23,42,.5);border:1px dashed var(--border);border-radius:16px;margin-top:20px;}
.empty-state-icon{font-size:2.5rem;margin-bottom:12px;}
.empty-state-title{font-size:1rem;color:var(--text);margin-bottom:16px;font-weight:600;}
.empty-state-mini{text-align:center;padding:24px 16px;color:var(--muted);font-size:.9rem;background:rgba(15,23,42,.4);border:1px dashed var(--border);border-radius:10px;margin-top:12px;}

/* ===== DROPZONE ===== */
.dropzone{border:2px dashed var(--border);border-radius:12px;padding:32px 20px;text-align:center;cursor:pointer;transition:.2s;background:rgba(15,23,42,.4);margin-top:12px;}
.dropzone:hover,.dropzone.active{border-color:var(--accent);background:rgba(59,130,246,.08);}
.dropzone-icon{font-size:2rem;margin-bottom:8px;}
.dropzone-title{font-size:.95rem;color:var(--text);font-weight:600;margin-bottom:4px;}
.dropzone-hint{font-size:.75rem;color:var(--muted);}

/* ===== MODAL CATÁLOGO MAESTRO ===== */
.modal.modal-wide{max-width:90%;width:980px;}
.catalogo-tab-body{min-height:260px;}
.catalogo-tab-body .tabs{margin-top:4px;}
.import-wizard-steps{display:flex;gap:8px;margin-bottom:20px;}
.import-step{flex:1;text-align:center;padding:10px;border-radius:8px;background:rgba(59,130,246,.08);color:var(--muted);font-size:.8rem;font-weight:600;}
.import-step.active{background:var(--accent);color:#fff;}
.import-step.completed{background:rgba(16,185,129,.15);color:var(--accent2);}
.import-listing-row td{vertical-align:middle;font-size:.85rem;}
.import-listing-row img.thumb-square{width:44px;height:44px;object-fit:cover;}
.import-action-select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:6px;font-size:.8rem;}
.import-confidence-high{color:var(--accent2);font-weight:700;}
.import-confidence-medium{color:var(--accent3);font-weight:700;}
.import-confidence-low{color:var(--danger);font-weight:700;}
.import-review-box{background:rgba(59,130,246,.05);border:1px solid var(--border);border-radius:12px;padding:16px;}
.import-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px;}
.import-summary-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;}
.import-summary-card .value{font-size:1.6rem;font-weight:700;color:var(--accent);}
.import-summary-card .label{font-size:.75rem;color:var(--muted);}
.import-warning{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:12px 14px;color:var(--accent3);font-size:.85rem;margin-bottom:16px;}
.import-draft-bar{display:flex;justify-content:space-between;align-items:center;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.25);border-radius:8px;padding:10px 14px;margin-bottom:16px;}
.import-draft-bar span{font-size:.85rem;color:var(--text);}

/* ===== KITS ===== */
.kit-search-dropdown{position:absolute;top:100%;left:0;right:0;max-height:260px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.4);z-index:50;margin-top:6px;}
.kit-search-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s;}
.kit-search-item:last-child{border-bottom:none;}
.kit-search-item:hover{background:rgba(59,130,246,.12);}
.kit-search-item img{width:36px;height:36px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:var(--bg);}
.kit-search-item-info{flex:1;min-width:0;}
.kit-search-item-title{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kit-search-item-meta{font-size:.75rem;color:var(--muted);}
.kit-search-empty{padding:14px;text-align:center;color:var(--muted);font-size:.85rem;}
.kit-photo-card{position:relative;border-radius:10px;overflow:hidden;border:2px solid var(--border);background:var(--bg);aspect-ratio:1;}
.kit-photo-card img{width:100%;height:100%;object-fit:cover;display:block;}
.kit-photo-card.cover{border-color:var(--accent2);}
.kit-photo-cover{position:absolute;top:6px;left:6px;background:var(--accent2);color:#0f172a;font-size:.7rem;font-weight:700;padding:3px 7px;border-radius:6px;}
.kit-photo-actions{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:rgba(2,6,23,.85);padding:6px 0;}
.kit-photo-actions button{background:transparent;border:none;color:var(--text);font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s;}
.kit-photo-actions button:hover{background:rgba(255,255,255,.15);}
.kit-photo-actions button.danger{color:var(--danger);}

/* ===== DIRECTORIO DE KITS ===== */
.kit-composicion-list{list-style:none;padding:0;margin:0;}
.kit-composicion-list li{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.9rem;}
.kit-composicion-list li:last-child{border-bottom:none;}
.kit-composicion-list .kit-prod-nombre{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:12px;}
.kit-composicion-list .kit-prod-meta{color:var(--muted);font-size:.8rem;white-space:nowrap;}
.kit-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;}
.kit-detail-photos{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;}
.kit-detail-photos img{height:100px;width:auto;border-radius:8px;border:1px solid var(--border);object-fit:cover;cursor:pointer;}
.kit-detail-photos img.cover{border:2px solid var(--accent2);}
.kit-history-list{max-height:220px;overflow-y:auto;}
.kit-history-item{padding:8px 10px;border-bottom:1px solid var(--border);font-size:.85rem;color:var(--muted);}
.kit-history-item strong{color:var(--text);}
.kit-row-pausado td{opacity:.75;background:rgba(100,116,139,.08);}

/* ===== GESTOR DE FOTOGRAFÍAS ===== */
.photo-dropzone{border:2px dashed var(--border);border-radius:12px;padding:28px 20px;text-align:center;cursor:pointer;transition:.2s;background:rgba(15,23,42,.4);margin-top:12px;}
.photo-dropzone:hover,.photo-dropzone.active{border-color:var(--accent);background:rgba(59,130,246,.08);}
.photo-manager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
.photo-manager-item{position:relative;background:var(--card);border:2px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .2s,transform .2s;}
.photo-manager-item:hover{transform:translateY(-2px);}
.photo-manager-item.cover{border-color:var(--accent2);}
.photo-manager-item.drag-over{border-color:var(--accent);background:rgba(59,130,246,.1);}
.photo-manager-item.small{max-width:160px;}
.photo-manager-item[draggable="true"]{cursor:grab;}
.photo-manager-img-wrap{aspect-ratio:1;background:var(--bg);position:relative;}
.photo-manager-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;}
.photo-manager-cover-badge{position:absolute;top:6px;left:6px;background:var(--accent2);color:#0f172a;font-size:.7rem;font-weight:700;padding:3px 7px;border-radius:6px;}
.photo-manager-info{padding:10px;}
.photo-manager-name{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.photo-manager-meta{font-size:.75rem;color:var(--muted);margin-top:2px;}
.photo-manager-warning{font-size:.75rem;color:var(--accent3);margin-top:4px;}
.photo-manager-actions{display:flex;justify-content:space-around;background:rgba(2,6,23,.85);padding:6px 0;}
.photo-manager-actions button{background:transparent;border:none;color:var(--text);font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s;}
.photo-manager-actions button:hover{background:rgba(255,255,255,.15);}
.photo-manager-actions button.danger{color:var(--danger);}
.kit-photo-info{padding:8px;position:absolute;bottom:36px;left:0;right:0;background:linear-gradient(transparent,rgba(2,6,23,.85));}
.kit-photo-meta{font-size:.75rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);}
.kit-photo-warning{font-size:.75rem;color:var(--accent3);text-shadow:0 1px 2px rgba(0,0,0,.5);}
.photo-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.photo-gallery-card{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;}
.photo-gallery-thumb{aspect-ratio:1;background:var(--bg);display:flex;align-items:center;justify-content:center;}
.photo-gallery-thumb img{width:100%;height:100%;object-fit:cover;}
.photo-gallery-info{padding:14px;flex:1;display:flex;flex-direction:column;gap:6px;}
.photo-gallery-title{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.photo-gallery-meta{font-size:.8rem;color:var(--muted);}
.photo-gallery-info button{margin-top:auto;}
@media(max-width:900px){.photo-manager-grid{grid-template-columns:repeat(2,1fr);}.photo-gallery-grid{grid-template-columns:repeat(2,1fr);}}

/* ===== PRECIOS Y UTILIDAD ===== */
#preciosUtilidadTable td{vertical-align:middle;}
#preciosUtilidadTable .money-input input{width:90px;}

/* ===== LECTOR QR / CÓDIGO DE BARRAS ===== */
#lectorContent .btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}
#lectorCamara video{width:100% !important;height:auto !important;display:block;}
#lectorCamara img{width:100% !important;height:auto !important;display:block;}
@media(max-width:600px){#lectorContent{width:95%;padding:16px;}#lectorCamara{max-height:60vh;}}

/* ===== LOGIN ===== */
.login-screen{position:fixed;inset:0;background:linear-gradient(135deg,var(--bg),#0b1120);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;}
.login-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.35);}
.login-header{text-align:center;margin-bottom:28px;}
.login-header h1{font-size:1.6rem;color:var(--accent);margin-bottom:8px;letter-spacing:.05em;}
.login-header p{color:var(--muted);font-size:.9rem;}
.login-card .form-group{margin-bottom:18px;}
.login-card label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:6px;}
.login-card input{width:100%;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.95rem;outline:none;transition:.2s;}
.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.15);}
.login-card .btn{width:100%;justify-content:center;padding:12px;}
.login-error{color:var(--danger);font-size:.85rem;margin-top:12px;text-align:center;min-height:20px;}
.login-loading{opacity:.7;pointer-events:none;}
@media(max-width:480px){.login-card{padding:24px 20px;}.login-header h1{font-size:1.3rem;}}
#preciosUtilidadTable .money-input button{padding:6px 10px;font-size:.75rem;}

/* ===== CENTRO DE INTELIGENCIA LIPI IA (DASHBOARD) ===== */
.ia-header{border-left:4px solid var(--accent);background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(16,185,129,.06));}
.ia-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:12px;}
.ia-header-saludo{font-size:1.05rem;font-weight:600;color:var(--text);margin-top:4px;}
.ia-resumen{font-size:.9rem;color:var(--muted);line-height:1.6;}
.ia-resumen-vacio{font-style:italic;}
.ia-resumen-list{list-style:none;padding:0;margin:0;}
.ia-resumen-list li{padding:6px 0 6px 22px;position:relative;border-bottom:1px dashed rgba(51,65,85,.5);}
.ia-resumen-list li:last-child{border-bottom:none;}
.ia-resumen-list li::before{content:'•';position:absolute;left:6px;color:var(--accent);font-weight:700;}
.ia-resumen-list strong{color:var(--text);}

.ia-exec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;}
.ia-exec-card{background:var(--card);border:1px solid var(--border);border-left-width:4px;border-radius:12px;padding:16px;}
.ia-exec-card.st-green{border-left-color:var(--accent2);background:rgba(16,185,129,.07);}
.ia-exec-card.st-yellow{border-left-color:var(--accent3);background:rgba(245,158,11,.07);}
.ia-exec-card.st-red{border-left-color:var(--danger);background:rgba(239,68,68,.07);}
.ia-exec-card .ia-exec-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.ia-exec-card .ia-exec-value{font-size:1.5rem;font-weight:700;color:var(--text);margin:6px 0 4px;}
.ia-exec-card .ia-exec-note{font-size:.75rem;color:var(--muted);}
.ia-exec-card .ia-exec-state{font-size:.7rem;font-weight:700;text-transform:uppercase;margin-top:8px;}
.ia-exec-card.st-green .ia-exec-state{color:var(--accent2);}
.ia-exec-card.st-yellow .ia-exec-state{color:var(--accent3);}
.ia-exec-card.st-red .ia-exec-state{color:var(--danger);}

.ia-todo-item,.ia-alert-item,.ia-op-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;margin-bottom:10px;background:rgba(15,23,42,.4);flex-wrap:wrap;}
.ia-todo-item .ia-item-main,.ia-alert-item .ia-item-main,.ia-op-item .ia-item-main{flex:1;min-width:200px;}
.ia-item-title{font-weight:600;font-size:.92rem;color:var(--text);}
.ia-item-desc{font-size:.8rem;color:var(--muted);margin-top:2px;}
.ia-item-badges{display:flex;gap:6px;flex-shrink:0;}
.ia-num{width:26px;height:26px;border-radius:50%;background:rgba(59,130,246,.18);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0;}
.ia-alert-item.nivel-alto{border-left:4px solid var(--danger);}
.ia-alert-item.nivel-medio{border-left:4px solid var(--accent3);}
.ia-alert-item.nivel-bajo{border-left:4px solid var(--accent);}
.ia-op-item{border-left:4px solid var(--accent2);}

.ia-pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:14px;flex-wrap:wrap;}
.ia-pagination .ia-pag-info{font-size:.8rem;color:var(--muted);margin-right:auto;}

.ia-acciones{display:flex;gap:10px;flex-wrap:wrap;}
.ia-acciones .btn:disabled{opacity:.45;cursor:not-allowed;}

/* ===== CHAT LATERAL LIPI IA ===== */
.ia-chat-fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:1.5rem;cursor:pointer;z-index:600;box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .2s,opacity .2s;}
.ia-chat-fab:hover{transform:scale(1.08);}
.ia-chat-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:640;}
.ia-chat-panel{position:fixed;top:0;right:0;height:100vh;width:380px;max-width:100vw;background:var(--card);border-left:1px solid var(--border);z-index:650;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;box-shadow:-10px 0 40px rgba(0,0,0,.4);}
.ia-chat-panel.open{transform:translateX(0);}
.ia-chat-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid var(--border);background:rgba(59,130,246,.08);}
.ia-chat-header h3{font-size:1rem;margin-bottom:2px;}
.ia-chat-sub{font-size:.78rem;color:var(--muted);}
.ia-chat-close{background:transparent;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:6px;}
.ia-chat-close:hover{color:var(--text);background:rgba(255,255,255,.08);}
.ia-chat-historial{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.ia-msg{max-width:85%;padding:10px 12px;border-radius:12px;font-size:.85rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;}
.ia-msg-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px;}
.ia-msg-ia{align-self:flex-start;background:rgba(15,23,42,.7);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px;}
.ia-chat-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);}
.ia-chat-input-row input{flex:1;}
.ia-chat-input-row .btn{white-space:nowrap;}
@media(max-width:600px){.ia-chat-panel{width:100vw;}.ia-chat-fab{bottom:16px;right:16px;}}

/* ===== MARKETING Y REDES ===== */
.dsh-conn-click{cursor:pointer;}
.mkt-catalogo-list{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto;margin-top:4px;padding-right:4px;}
.mkt-cat-item{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:10px;padding:12px;background:rgba(15,23,42,.4);}
.mkt-cat-info{flex:1;min-width:0;}
.mkt-cat-name{font-weight:700;font-size:.95rem;color:var(--text);}
.mkt-cat-desc{font-size:.78rem;color:var(--muted);margin:2px 0 6px;}
#mktCatalogoTabs .tab{white-space:nowrap;}
@media(max-width:600px){.mkt-cat-item{flex-wrap:wrap;}.mkt-catalogo-list{max-height:45vh;}}
