:root{--bg: #07101f;--bg-2: #0d1b30;--panel: #12233d;--panel-2: #172b49;--line: #22385c;--text: #e8f1ff;--muted: #8fa6c5;--accent: #37b6ff;--accent-2: #2dd4bf;--danger: #ff5470;--warn: #f5a623;--ok: #4ade80;--local: #37b6ff;--local-soft: rgba(55, 182, 255, .17);--local-line: rgba(55, 182, 255, .5);--radius: 12px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);font-size:15px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 800px at 15% -10%,var(--local-soft) 0%,var(--bg) 55%) fixed;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0 0 .6rem;font-weight:650;letter-spacing:.2px}h1{font-size:1.45rem}h2{font-size:1.1rem}h3{font-size:.95rem;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.shell{display:flex;min-height:100%}.sidebar{width:232px;flex:0 0 232px;background:linear-gradient(180deg,#0c1a2f,#0a1526);border-right:1px solid var(--local-line);padding:14px 12px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:10px;align-items:center;padding:4px 6px 14px;border-bottom:1px solid var(--local-line);margin-bottom:12px}.brand img{width:42px;height:42px;border-radius:50%;box-shadow:0 0 0 2px var(--local-line),0 0 18px var(--local-soft)}.brand b{display:block;font-size:1.05rem;letter-spacing:1px}.brand span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px}nav a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;border-radius:9px;color:var(--muted);font-size:.92rem;margin-bottom:3px}nav a:hover{background:#14263f;color:var(--text)}nav a.active{background:linear-gradient(90deg,var(--local-soft),rgba(45,212,191,.08));color:#fff;box-shadow:inset 3px 0 0 var(--local)}nav .pill{background:#1d3355;color:#cfe6ff;border-radius:999px;padding:1px 8px;font-size:.75rem;font-style:normal}.side-foot{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.main{flex:1;min-width:0;padding:18px 22px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap;border-bottom:1px solid var(--local-line);padding-bottom:10px}.local-tag{display:inline-flex;align-items:center;gap:5px;padding:1px 9px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.local-tag i{width:7px;height:7px;border-radius:50%}.topbar .who{text-align:right;font-size:.82rem;color:var(--muted)}.topbar .who b{color:var(--text)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:15px;box-shadow:var(--shadow)}.card+.card{margin-top:14px}.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stat{background:linear-gradient(150deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px}.stat b{display:block;font-size:1.6rem;line-height:1.2}.stat span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.row>*{flex:1 1 150px}.row>.grow{flex:3 1 320px}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:.82rem}.right{text-align:right}.nowrap{white-space:nowrap}label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.6px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{width:100%;background:#0c1a2e;border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid rgba(55,182,255,.45);border-color:var(--accent)}textarea{min-height:68px;resize:vertical}input[type=checkbox]{width:auto}input[disabled],select[disabled],textarea[disabled]{opacity:.55}.check{display:flex;gap:8px;align-items:center;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--text)}button{background:#1c3457;border:1px solid var(--line);color:var(--text);padding:8px 14px;border-radius:9px;cursor:pointer;white-space:nowrap}button:hover{background:#234168}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#04121f;font-weight:700;border:none}button.primary:hover{filter:brightness(1.1)}button.danger{background:#3a1522;border-color:#5d2334;color:#ffc7d2}button.ghost{background:transparent}button.sm{padding:4px 9px;font-size:.82rem;border-radius:7px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:8px 11px;text-align:left;border-bottom:1px solid #1b2f4e;vertical-align:middle}th{background:#0f2038;color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.8px;position:sticky;top:0;z-index:1}tbody tr:hover{background:#14263f}tbody tr.clickable{cursor:pointer}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.empty{padding:26px;text-align:center;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.badge i{width:7px;height:7px;border-radius:50%;background:currentColor}.tag{display:inline-block;padding:1px 7px;border-radius:6px;background:#1d3355;color:#cfe6ff;font-size:.75rem}.alert{padding:10px 13px;border-radius:10px;margin-bottom:12px;font-size:.9rem}.alert.err{background:#3a1522;border:1px solid #5d2334;color:#ffc7d2}.alert.ok{background:#103026;border:1px solid #1c5a45;color:#b8f2d9}.alert.info{background:#10263f;border:1px solid #1d4368;color:#c6e6ff}.avisos{position:relative;display:inline-block}.bell{display:inline-flex;align-items:center;gap:6px}.bell.on{border-color:#37b6ff88;color:#bfe8ff}.bell .dot{background:var(--accent);color:#04121f;border-radius:999px;padding:0 6px;font-size:.72rem;font-weight:700}.avisos-panel{position:absolute;right:0;top:calc(100% + 8px);width:320px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 18px 40px #0000008c;z-index:70;text-align:left;font-size:.85rem}.avisos-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px dashed var(--line)}.avisos-row select{padding:2px 6px;font-size:.8rem}.avisos-pend{max-height:170px;overflow:auto}.avisos-item{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:8px;cursor:pointer}.avisos-item:hover{background:#14263f}.toasts{position:fixed;right:16px;top:66px;z-index:90;display:grid;gap:10px;width:min(360px,calc(100vw - 32px))}.toast{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:10px 12px;box-shadow:0 16px 36px #0009;animation:toastIn .18s ease-out}.toast.listo{border-left-color:var(--ok)}.toast.recordar{border-left-color:var(--warn)}.toast b{display:block;font-size:.9rem}.toast .det{color:var(--muted);font-size:.8rem;margin-top:2px}.toast .acc{display:flex;gap:8px;margin-top:8px}@keyframes toastIn{0%{transform:translateY(-6px);opacity:0}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#040a14c7;display:grid;place-items:center;padding:20px;z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;width:min(760px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow)}.modal.wide{width:min(1000px,100%)}.modal footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(390px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:var(--shadow);text-align:center}.login-card img{width:108px;filter:drop-shadow(0 0 22px rgba(55,182,255,.5))}.login-card form{text-align:left;margin-top:18px;display:grid;gap:12px}@media (max-width: 860px){.shell{flex-direction:column}.sidebar{width:100%;flex:none;height:auto;position:static}nav{display:flex;gap:6px;overflow-x:auto}nav a{flex:0 0 auto}.main{padding:14px}}.pos{display:grid;grid-template-columns:minmax(280px,5fr) minmax(340px,6fr);gap:14px;align-items:start}.pos-lista{margin-top:10px;max-height:62vh;overflow:auto;display:grid;gap:6px}.pos-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:2px 10px;text-align:left;background:#0f2038;border:1px solid var(--line);padding:8px 11px;border-radius:10px}.pos-item:hover:not(:disabled){border-color:var(--accent);background:#14294a}.pos-item-nombre{grid-column:1;grid-row:1;font-weight:600}.pos-item-datos{grid-column:1;grid-row:2;display:flex;gap:8px;align-items:center;font-size:.78rem;color:var(--muted)}.pos-item-datos em{font-style:normal}.pos-item-precio{grid-column:2;grid-row:1 / span 2;align-self:center;font-weight:700;color:var(--accent);white-space:nowrap}.pos-totales{display:grid;gap:4px;font-size:.92rem}.pos-totales>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.pos-totales>div>span{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.pos-total{border-top:1px solid var(--line);margin-top:6px;padding-top:8px;font-size:1.05rem}.pos-total b{font-size:1.7rem;color:var(--accent-2)}.pos-pagos{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}.pos-metodo{display:grid;gap:2px;text-align:center;padding:9px 6px}.pos-metodo b{font-size:1rem;color:var(--accent)}.pos-cobrar{width:100%;margin-top:14px;padding:15px;font-size:1.1rem}@media (max-width: 1080px){.pos{grid-template-columns:1fr}.pos-lista{max-height:34vh}}@media print{body{background:#fff;color:#000}.no-print,.sidebar,.topbar{display:none!important}.main{padding:0}.card{border:none;box-shadow:none;background:#fff;padding:0}.print-ticket{color:#000}.print-ticket table{font-size:11px}.print-ticket th,.print-ticket td{border-bottom:1px solid #999;color:#000;background:none!important}.print-ticket .table-wrap{border:none}}.print-ticket{max-width:720px;margin:0 auto;background:#fff;color:#111;padding:18px 22px;border-radius:8px}.print-ticket .head{display:flex;gap:14px;align-items:center;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}.print-ticket .head img{width:62px}.print-ticket .head h2{margin:0;color:#111}.print-ticket .kv{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;font-size:12.5px;margin-bottom:12px}.print-ticket .kv div span{color:#555;text-transform:uppercase;font-size:10px;letter-spacing:.5px;display:block}.print-ticket .box{border:1px solid #999;padding:8px 10px;font-size:12.5px;margin-bottom:10px;white-space:pre-wrap}.print-ticket .tot{text-align:right;font-size:13px;margin-top:8px}.print-ticket .tot b{font-size:16px}.print-ticket .sig{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:46px;font-size:12px}.print-ticket .sig div{border-top:1px solid #111;padding-top:4px;text-align:center}.print-ticket .foot{margin-top:14px;font-size:10.5px;color:#444;text-align:center}.pos-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:14px;align-items:start}.pos-grid>div>.card+.card{margin-top:14px}.pos-side{position:sticky;top:14px}.pos-results{margin-top:10px;max-height:310px;overflow:auto;border:1px solid var(--line);border-radius:10px}.pos-item{display:flex;width:100%;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--text);text-align:left;cursor:pointer;font:inherit}.pos-item:last-child{border-bottom:0}.pos-item:hover:not(:disabled){background:var(--local-soft)}.pos-item:disabled{opacity:.45;cursor:not-allowed}.pos-stock{white-space:nowrap;font-size:.8rem;color:var(--muted)}.pos-stock.low{color:var(--warn)}.pos-stock.zero{color:var(--danger)}.pos-total{display:flex;justify-content:space-between;align-items:baseline;margin:16px 0 10px;padding-top:12px;border-top:1px solid var(--line)}.pos-total b{font-size:1.6rem}@media (max-width: 980px){.pos-grid{grid-template-columns:1fr}.pos-side{position:static}}
