:root{--navy: #0A0E27;--navy-deep: #05081C;--navy-soft: #161A38;--blue: #3B6EFF;--blue-light: #6B8FFF;--blue-deep: #1E3FCC;--ink: #0A0E27;--ink-soft: #3B4063;--ink-mute: #8086A8;--line: #E1E5F0;--line-soft: #EEF1F8;--bg-soft: #F5F7FA;--white: #FFFFFF;--ops: #1ABC9C;--data: #9B6BFF;--binario: #789B3E;--binario-soft:#9FBE60;--success: #1AB36D;--danger: #E53935;--warning: #F59E0B;--r-sm: 4px;--r: 8px;--r-lg: 14px;--shadow-sm: 0 1px 2px rgba(10,14,39,.06);--shadow: 0 4px 16px rgba(10,14,39,.08);--shadow-lg: 0 16px 48px rgba(10,14,39,.12);--font: "Inter", "Helvetica Neue", -apple-system, sans-serif;--mono: "JetBrains Mono", "SF Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);background:var(--bg-soft);color:var(--ink);font-size:14px;line-height:1.55;font-weight:400;letter-spacing:-.005em}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-deep)}button{font-family:inherit;cursor:pointer;border:none;background:none}.boot{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;z-index:9999}.boot-orbit{width:140px;height:140px;opacity:.85;animation:orbit-spin 8s linear infinite}@keyframes orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.boot-label{color:var(--blue-light);font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase}.login{min-height:100vh;background:var(--navy);display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}.login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 80% 20%,rgba(59,110,255,.18),transparent 40%),radial-gradient(circle at 20% 80%,rgba(155,107,255,.12),transparent 40%);pointer-events:none}.login-card{background:var(--navy-deep);border:1px solid rgba(255,255,255,.06);padding:56px 48px;max-width:440px;width:100%;position:relative;z-index:1;border-radius:var(--r-lg);box-shadow:0 32px 64px #0006}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:40px}.login-brand-logo{width:36px;height:36px}.login-brand-text{display:flex;flex-direction:column;line-height:1}.login-brand-name{font-size:16px;font-weight:800;color:var(--white);letter-spacing:.02em}.login-brand-sub{font-size:9px;font-weight:600;letter-spacing:.32em;color:var(--ink-mute);margin-top:4px}.login h1{color:var(--white);font-size:32px;font-weight:200;letter-spacing:-.02em;line-height:1.1;margin-bottom:12px}.login h1 strong{font-weight:700;color:var(--blue-light)}.login p.lead{color:var(--ink-mute);font-size:14px;margin-bottom:32px;line-height:1.55}.login form{display:flex;flex-direction:column;gap:16px}.login label{color:var(--ink-mute);font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase}.login input{background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:14px 16px;color:var(--white);font-family:var(--font);font-size:15px;outline:none;transition:border-color .15s}.login input:focus{border-color:var(--blue)}.login button[type=submit]{background:var(--blue);color:var(--white);padding:14px 24px;border-radius:var(--r);font-weight:600;font-size:14px;letter-spacing:.02em;transition:background .15s}.login button[type=submit]:hover{background:var(--blue-deep)}.login button[type=submit]:disabled{opacity:.5;cursor:wait}.login .msg{font-size:13px;padding:10px 12px;border-radius:var(--r)}.login .msg.ok{background:#1ab36d24;color:#4ade80;border:1px solid rgba(26,179,109,.3)}.login .msg.err{background:#e5393524;color:#fca5a5;border:1px solid rgba(229,57,53,.3)}.login-foot{margin-top:32px;font-size:11px;color:var(--ink-mute);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase}.login-foot .dot{color:var(--blue);margin:0 6px}.app{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--navy);color:var(--white);padding:28px 0;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--navy-soft)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 24px 32px}.sidebar-brand-logo{width:32px;height:32px}.sidebar-brand-text{display:flex;flex-direction:column;line-height:1}.sidebar-brand-name{font-size:14px;font-weight:800;letter-spacing:.02em;color:var(--white)}.sidebar-brand-sub{font-size:8.5px;font-weight:600;letter-spacing:.34em;color:var(--ink-mute);margin-top:3px}.sidebar-cobrand{margin:0 16px 24px;padding:12px 14px;background:#ffffff08;border-radius:var(--r);border:1px solid rgba(255,255,255,.05)}.sidebar-cobrand-label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--ink-mute);text-transform:uppercase;margin-bottom:8px}.sidebar-cobrand-row{display:flex;align-items:center;gap:8px;justify-content:space-between}.sidebar-cobrand-icaro{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--white);white-space:nowrap}.sidebar-cobrand-x{color:var(--ink-mute);font-size:12px;font-weight:300}.sidebar-cobrand-binario{height:14px;filter:brightness(0) invert(1);opacity:.85;flex-shrink:0}.role-binario{color:var(--binario-soft)!important}.mono-inline{font-family:var(--mono);font-size:.9em;color:var(--blue-light);letter-spacing:.02em}.sidebar-section{padding:0 16px;margin-bottom:24px}.sidebar-section-title{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);padding:0 8px 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);cursor:pointer;color:#ffffffa6;font-size:13.5px;font-weight:500;transition:background .12s,color .12s;border-left:2px solid transparent;position:relative}.nav-item:hover{color:var(--white);background:#3b6eff14}.nav-item.active{color:var(--white);background:#3b6eff24;border-left-color:var(--blue)}.nav-item .nav-icon{width:14px;height:14px;opacity:.7;flex-shrink:0}.nav-item.active .nav-icon{opacity:1;color:var(--blue)}.nav-item .badge{margin-left:auto;background:var(--blue);color:var(--white);font-family:var(--mono);font-size:9px;letter-spacing:.05em;padding:2px 7px;border-radius:10px;font-weight:600}.nav-item .badge.muted{background:var(--navy-soft);color:var(--ink-mute)}.sidebar-user{border-top:1px solid var(--navy-soft);padding:16px 24px;margin-top:16px;display:flex;align-items:center;gap:12px}.sidebar-user-avatar{width:32px;height:32px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--white)}.sidebar-user-info{flex:1;line-height:1.3;min-width:0}.sidebar-user-email{font-size:12px;color:var(--white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-family:var(--mono);font-size:9px;color:var(--ink-mute);letter-spacing:.18em;text-transform:uppercase}.sidebar-user button.signout{color:var(--ink-mute);padding:4px 8px;border-radius:var(--r-sm);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.sidebar-user button.signout:hover{color:var(--blue-light)}.content{padding:32px 40px 80px;max-width:1480px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;gap:24px;flex-wrap:wrap}.page-head h1{font-size:36px;font-weight:200;letter-spacing:-.025em;line-height:1.1;color:var(--ink)}.page-head h1 strong{font-weight:700}.page-head .lead{color:var(--ink-mute);font-size:14px;margin-top:6px;max-width:640px}.page-head-actions{display:flex;gap:10px;align-items:center}.kicker{font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--blue);margin-bottom:12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.stat{background:var(--white);padding:20px 22px;border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--blue)}.stat.success:before{background:var(--success)}.stat.warning:before{background:var(--warning)}.stat.danger:before{background:var(--danger)}.stat .label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}.stat .value{font-size:36px;font-weight:200;letter-spacing:-.03em;line-height:1;color:var(--ink);font-feature-settings:"tnum"}.stat .value .unit{font-size:16px;opacity:.55;margin-left:4px;font-weight:400}.stat .delta{font-size:12px;color:var(--ink-mute)}.stat .delta.up{color:var(--success)}.stat .delta.down{color:var(--danger)}.card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:24px 26px;margin-bottom:20px}.card-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;gap:16px;flex-wrap:wrap}.card-head h2{font-size:20px;font-weight:500;letter-spacing:-.015em;color:var(--ink)}.card-head h2 .count{color:var(--ink-mute);font-weight:400;font-size:14px;margin-left:8px;font-family:var(--mono)}.card-foot{padding-top:12px;border-top:1px solid var(--line);margin-top:16px;font-size:12px;color:var(--ink-mute);display:flex;justify-content:space-between}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl thead th{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);font-weight:600;background:var(--line-soft)}.tbl tbody td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;line-height:1.45}.tbl tbody tr:hover{background:var(--line-soft)}.tbl tbody tr:last-child td{border-bottom:none}.tbl td.num,.tbl th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.tbl td .pill{display:inline-flex}.tbl td.mono{font-family:var(--mono);font-size:12px}.tbl td.strong{font-weight:500;color:var(--ink)}.pill{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 9px;border-radius:12px;border:1px solid}.pill-blue{color:var(--blue);border-color:var(--blue);background:#3b6eff14}.pill-green{color:var(--success);border-color:var(--success);background:#1ab36d1a}.pill-amber{color:var(--warning);border-color:var(--warning);background:#f59e0b1f}.pill-red{color:var(--danger);border-color:var(--danger);background:#e539351a}.pill-mute{color:var(--ink-mute);border-color:var(--line);background:var(--bg-soft)}.pill-solid-blue{background:var(--blue);color:var(--white);border-color:var(--blue)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.gap-sm{gap:8px}.gap-lg{gap:24px}.row{display:flex;align-items:center;gap:8px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-mute{color:var(--ink-mute)}.text-sm{font-size:12px}.text-mono{font-family:var(--mono)}.mb-sm{margin-bottom:12px}.mb-md{margin-bottom:20px}.mb-lg{margin-bottom:32px}.matrix{display:grid;grid-template-columns:80px repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.matrix-cell{background:var(--white);padding:14px 16px;min-height:80px;display:flex;flex-direction:column;justify-content:center}.matrix-cell.header{background:var(--navy);color:var(--white);align-items:center;justify-content:center}.matrix-cell.row-label{background:var(--navy-soft);color:var(--white);align-items:center;justify-content:center}.matrix-cell.header .label,.matrix-cell.row-label .label{font-family:var(--mono);font-size:11px;letter-spacing:.2em}.matrix-cell.q{cursor:default;transition:background .12s}.matrix-cell.q:hover{background:var(--line-soft)}.matrix-cell .qcount{font-size:32px;font-weight:200;line-height:1;letter-spacing:-.03em;color:var(--ink)}.matrix-cell .qcount.zero{color:var(--ink-mute)}.matrix-cell .qvalue{font-family:var(--mono);font-size:11px;color:var(--ink-mute);margin-top:4px}.health-row{display:grid;grid-template-columns:200px 1fr 120px 100px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.health-row:last-child{border-bottom:none}.health-row .name{font-family:var(--mono);font-size:12px;color:var(--ink)}.health-row .bar{height:6px;background:var(--bg-soft);border-radius:3px;overflow:hidden;position:relative}.health-row .bar-fill{height:100%;background:var(--success)}.health-row.atencao .bar-fill{background:var(--warning)}.health-row.critico .bar-fill{background:var(--danger)}.health-row .meta{font-family:var(--mono);font-size:12px;color:var(--ink-mute)}.orbit-deco{position:absolute;pointer-events:none;opacity:.04}.empty{padding:40px 20px;text-align:center;color:var(--ink-mute)}.empty .empty-icon{font-size:32px;opacity:.4;margin-bottom:12px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.btn{padding:10px 18px;border-radius:var(--r);font-size:13px;font-weight:600;letter-spacing:.02em;background:var(--white);color:var(--ink);border:1px solid var(--line);cursor:pointer;transition:all .12s}.btn:hover{background:var(--bg-soft);border-color:var(--ink-mute)}.btn-blue{background:var(--blue);color:var(--white);border-color:var(--blue)}.btn-blue:hover{background:var(--blue-deep);border-color:var(--blue-deep)}.btn-green{background:var(--success);color:var(--white);border-color:var(--success)}.btn-green:hover{background:#0f8b54}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-mini{padding:5px 12px;border-radius:var(--r-sm);font-size:11px;font-weight:600;letter-spacing:.04em;background:var(--bg-soft);color:var(--ink);border:1px solid var(--line);cursor:pointer}.btn-mini:hover{background:var(--white);border-color:var(--blue);color:var(--blue)}.form-stack{display:flex;flex-direction:column;gap:12px}.form-stack label{display:flex;flex-direction:column;gap:4px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}.form-stack input,.form-stack select,.form-stack textarea{font-family:var(--font);font-size:14px;color:var(--ink);padding:10px 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--white);outline:none;transition:border-color .12s;text-transform:none;letter-spacing:0}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus{border-color:var(--blue)}.form-stack textarea{resize:vertical;min-height:60px;font-family:var(--font)}input[type=text],input[type=number],input[type=email],select,textarea{font-family:var(--font)}.drop-zone{border:2px dashed var(--line);border-radius:var(--r-lg);padding:80px 24px;text-align:center;cursor:pointer;background:var(--bg-soft);transition:all .15s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--blue);background:#3b6eff0d}.drop-zone .drop-icon{font-size:60px;font-weight:200;color:var(--blue);line-height:1;margin-bottom:16px;letter-spacing:-.04em}.drop-zone h3{font-weight:400;margin-bottom:8px;font-size:22px}.drop-zone p{color:var(--ink-mute);font-size:13px}.ingest-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px;font-size:13px}.ingest-row.ok{background:#1ab36d0a;border-color:#1ab36d4d}.ingest-row.err{background:#e539350a;border-color:#e539354d}.ingest-row.processing{background:var(--bg-soft)}.check-icon{color:var(--success);font-weight:700;font-size:16px}.x-icon{color:var(--danger);font-weight:700;font-size:16px}.ingest-name{flex:1;font-family:var(--mono);font-size:12px}.ingest-status{font-size:12px;color:var(--ink-mute)}.ingest-status.err{color:var(--danger);font-family:var(--mono)}.ingest-meta{display:flex;gap:8px;align-items:center}.etq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:8px}.etiqueta{background:var(--white);border:1px solid var(--ink);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:8px;page-break-inside:avoid;box-shadow:var(--shadow-sm)}.etq-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:6px;border-bottom:1px solid var(--line)}.etq-brand{display:flex;gap:6px;align-items:baseline}.etq-zzyon{font-weight:800;font-size:11px;letter-spacing:.04em;color:var(--navy)}.etq-binario{font-weight:500;font-size:9px;letter-spacing:.1em;color:var(--binario)}.etq-tipo{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:var(--ink-mute)}.etq-body{display:flex;gap:12px;align-items:center}.etq-qr{width:86px;height:86px;flex-shrink:0;border-radius:4px}.etq-meta{flex:1;min-width:0;line-height:1.3}.etq-codigo{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--navy);margin-bottom:4px;overflow-wrap:anywhere}.etq-linha{font-size:11px;color:var(--ink-soft)}.etq-linha.small{font-size:10px;color:var(--ink-mute);font-family:var(--mono);margin-top:2px}.etq-foot{font-family:var(--mono);font-size:8px;letter-spacing:.12em;color:var(--ink-mute);text-align:right}.etiqueta-endereco{border-color:var(--blue)}.etiqueta-endereco .etq-codigo{color:var(--blue-deep)}.etiqueta-volume{border-color:var(--navy)}.etiqueta-sku{border-color:var(--binario)}.etiqueta-sku .etq-codigo{color:var(--binario)}@media print{body.print-etq{background:#fff}body.print-etq .app>.sidebar,body.print-etq .page-head,body.print-etq .card-head,body.print-etq .grid-3 .card:not(.card):nth-child(n),body.print-etq .stats,body.print-etq .page-head-actions,body.print-etq #ingest-log-card,body.print-etq .nav-item,body.print-etq .row.gap-sm:not(.etq-grid .row),body.print-etq .sidebar{display:none!important}body.print-etq .app{grid-template-columns:1fr}body.print-etq .content{padding:8mm;max-width:100%}body.print-etq .card{box-shadow:none;border:none;padding:0;margin:0}body.print-etq #etq-preview,body.print-etq .etq-grid{grid-template-columns:repeat(2,1fr);gap:10mm}body.print-etq .etiqueta{box-shadow:none}}.end-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.end-cell{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:12px 10px;display:flex;flex-direction:column;gap:4px;position:relative;min-height:76px;cursor:default;transition:transform .1s,border-color .12s}.end-cell:hover{border-color:var(--blue);transform:translateY(-1px)}.end-cell.vazio{background:var(--bg-soft)}.end-cell.baixo{border-color:var(--success);background:#1ab36d0a}.end-cell.medio{border-color:var(--warning);background:#f59e0b0a}.end-cell.alto{border-color:var(--danger);background:#e539350a}.end-cell.quarentena{border-style:dashed}.end-codigo{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink)}.end-info{font-family:var(--mono);font-size:10px;color:var(--ink-mute)}.end-tag{position:absolute;top:6px;right:8px;font-size:10px;color:var(--binario)}.end-skus{font-size:10px;color:var(--ink-mute);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-clickable{cursor:pointer}.row-clickable:hover{background:var(--line-soft)}.qty-inp,.vol-inp{width:90px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--mono);font-size:12px}.vol-inp{width:130px}.masked-qty .text-mute{font-family:var(--mono);font-style:italic;font-size:11px}ul.clean{list-style:none;padding:0}ul.clean li{padding:8px 0 8px 18px;position:relative;font-size:13.5px;border-bottom:1px solid var(--line)}ul.clean li:last-child{border-bottom:none}ul.clean li:before{content:"—";position:absolute;left:0;color:var(--blue);font-weight:500}.mt-md{margin-top:20px}.mt-sm{margin-top:12px}.msg{padding:12px 16px;border-radius:var(--r);font-size:13px;line-height:1.55;border:1px solid;margin-top:8px}.msg.ok{background:#1ab36d14;color:#0f7a47;border-color:#1ab36d59}.msg.warn{background:#f59e0b14;color:var(--warning);border-color:#f59e0b66}.msg.err{background:#e5393514;color:var(--danger);border-color:#e5393559}.card h3{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.005em}@media (max-width: 900px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.content{padding:24px 20px 60px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
