:root{--bg:#0f1115;--surface:#181b21;--surface2:#20242c;--line:#2a2f39;--ink:#e8eaed;--muted:#9aa1ac;--amber:#e8820c;--amber-d:#c96f06;--ok:#2ec16e;--warn:#e8a90c;--bad:#ff5a4d;--graphite:#16181d}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}h2{font-family:Space Grotesk,sans-serif;margin:0 0 16px;font-weight:600}.loading{padding:60px;text-align:center;color:var(--muted)}.muted{color:var(--muted)}a{color:var(--amber)}.brand{display:flex;align-items:center;gap:10px;line-height:1}.brand-logo{height:26px;width:auto;display:block}.brand-sub{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.brand.big{flex-direction:column;gap:10px;margin-bottom:22px}.brand.big .brand-logo{height:46px}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--graphite);padding:14px 18px;border-bottom:1px solid var(--line)}.who{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--ink)}.net{display:flex;align-items:center;gap:5px;font-size:.74rem}.net-dot{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 6px currentColor}.net.on .net-dot{background:var(--ok);color:var(--ok)}.net.off .net-dot{background:var(--warn);color:var(--warn)}.net.off{color:#ffd9a3}.pend{background:#e8820c2e;border:1px solid rgba(232,130,12,.4);color:#ffce99;padding:3px 10px;border-radius:20px;font-size:.74rem;font-weight:700}.tabs{display:flex;background:var(--surface);border-bottom:1px solid var(--line)}.tabs button{flex:1;background:none;border:none;color:var(--muted);padding:15px;font-size:1rem;font-weight:600;border-bottom:2px solid transparent;transition:.15s}.tabs button.active{color:#fff;border-bottom-color:var(--amber)}.content{padding:18px;max-width:740px;margin:0 auto;width:100%}.back-btn{background:none;border:none;color:#fff;font-size:1.9rem;line-height:1;padding:0 4px 0 0;cursor:pointer}@media(max-width:380px){.hide-sm{display:none}}.home{max-width:620px;margin:0 auto;padding:24px 16px;width:100%}.home-title{text-align:center;color:var(--muted);font-weight:500;font-size:1rem;margin-bottom:20px}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px}.home-tile{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 10px;color:var(--ink);transition:.15s}.home-tile:not(.soon):active{border-color:var(--amber);transform:scale(.97)}.home-tile:not(.soon):hover{border-color:var(--amber)}.home-ico{width:46px;height:46px;display:grid;place-items:center;background:var(--surface2);border-radius:12px;color:var(--amber)}.home-ico svg{width:60%;height:60%}.home-name{font-weight:700;font-size:.95rem}.home-tile.soon{opacity:.5}.home-soon{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:7px;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:15px}input,select{padding:14px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;font-size:1.05rem;font-weight:500;color:var(--ink)}input::placeholder{color:#6b7280}input:focus,select:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px #e8820c2e}select option{background:var(--surface2)}button{cursor:pointer;font-family:inherit}.primary{width:100%;background:var(--amber);color:#16181d;border:none;border-radius:11px;padding:16px;font-size:1.1rem;font-weight:700;transition:.15s}.primary:hover{background:var(--amber-d)}.primary:disabled{opacity:.55}.ghost{background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:12px 16px;font-weight:600;color:var(--ink)}.row{display:flex;gap:10px}.row>*{flex:1}.check{flex-direction:row;align-items:center;gap:9px;font-weight:500;color:var(--ink)}.check input{width:auto;accent-color:var(--amber)}.mat-checks{display:flex;flex-direction:column;gap:10px;margin-bottom:15px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:13px}.mat-checks .check{margin:0}.user-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.user-info{min-width:0}.user-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-mats{font-size:.8rem;color:var(--muted);margin-top:4px}.user-row .ghost{flex:0 0 auto}.error{background:#ff5a4d1f;color:#ff8a80;border:1px solid rgba(255,90,77,.3);padding:11px 13px;border-radius:11px;font-size:.9rem}.ok{background:#2ec16e1f;color:#7ee2a8;border:1px solid rgba(46,193,110,.3);padding:11px 13px;border-radius:11px;font-weight:600}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1000px 560px at 50% -10%,#1c212b,#0b0d11)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px;width:350px;max-width:92vw;box-shadow:0 40px 90px #00000080;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:repeating-linear-gradient(45deg,var(--amber) 0 14px,#16181d 14px 28px)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:6px 0 16px}.keypad button{background:var(--surface2);border:1px solid var(--line);border-radius:13px;padding:17px;font-size:1.3rem;font-weight:700;color:var(--ink)}.keypad button:active{background:var(--amber);color:#16181d}.keypad .clr{color:var(--bad)}.keypad .bksp{color:var(--muted)}.hint{text-align:center;color:var(--muted);font-size:.82rem;margin-top:16px}.scan-row{display:flex;gap:10px;align-items:stretch}.scan-row input{flex:1;min-width:0}.scan-row .primary{width:auto;padding:0 20px;font-size:1rem;white-space:nowrap;flex:0 0 auto}.big-num{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:2.3rem;text-align:center;margin:12px 0;color:var(--amber)}.bobina-info{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.resumen{list-style:none;padding:0;margin:0 0 18px}.resumen li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.resumen li span{color:var(--muted)}.dest-label{font-weight:600;margin:10px 0}.dest-buttons{display:grid;grid-template-columns:1fr 1fr;gap:11px}.dest{background:var(--surface2);color:#fff;border:1px solid var(--line);border-radius:13px;padding:24px;font-size:1.1rem;font-weight:700}.dest:active{border-color:var(--amber)}.dest.prod{background:#2ec16e29;border-color:#2ec16e66;color:#9fe9bf}.chips{display:flex;gap:7px}.chips button{background:var(--surface2);border:1px solid var(--line);border-radius:20px;padding:8px 13px;font-size:.82rem;font-weight:600;color:var(--muted)}.chips button.active{background:var(--amber);color:#16181d;border-color:var(--amber)}.grid{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:14px}.grid th{text-align:left;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:9px;border-bottom:1px solid var(--line)}.grid td{padding:11px 9px;border-bottom:1px solid var(--line)}.tag{padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700}.tag.prod{background:#2ec16e29;color:#7ee2a8}.tag.dep{background:var(--surface2);color:var(--muted)}.tarjeta{border:2px solid #111;border-radius:10px;padding:16px;max-width:420px;margin:0 auto;background:#fff;color:#111}.tarjeta-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #ddd;padding-bottom:8px;margin-bottom:8px}.t-brand{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:1.1rem;color:#111}.t-fecha{font-size:.74rem;color:#666}.barcode{display:block;width:100%;height:auto}.t-datos{width:100%;border-collapse:collapse;margin-top:8px;font-size:.95rem;color:#111}.t-datos td{padding:6px 4px;border-bottom:1px solid #eee;vertical-align:top}.t-datos td:first-child{color:#666;width:34%}@media print{body{background:#fff}.topbar,.tabs,.noprint,.rl-fab,.rl-panel{display:none!important}.content{padding:0;max-width:none}.card{border:none;padding:0;background:#fff}.tarjeta{max-width:100%;border:2px solid #000}}
