@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#00543a;--green2:#087354;--red:#e71d1d;--ink:#17231f;--muted:#718079;--line:#e4eae6;--bg:#f4f7f5;--white:#fff;--amber:#b97813;--shadow:0 8px 30px rgba(20,54,40,.055)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:246px;background:#082f25;color:#d9e8e0;padding:26px 17px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 38px;color:#fff}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e71d1d;color:white;font:800 21px Manrope}.brand strong{display:block;font:800 17px Manrope;letter-spacing:1.4px}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#a4c4b6;margin-top:3px}.nav-label{font-size:10px;letter-spacing:1.6px;color:#739789;padding:0 13px 12px;font-weight:700}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar a:not(.brand){display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:9px;color:#c4d9cf;font-weight:500;transition:.15s}.sidebar a.active{background:#164c3d;color:white;box-shadow:inset 3px 0 #e71d1d}.sidebar a:hover{background:#123f32}.nav-icon{font-size:20px;width:22px;text-align:center}.sidebar-bottom{margin-top:auto;padding:17px 13px 0;border-top:1px solid #245044;display:grid;grid-template-columns:10px 1fr;align-items:center;gap:8px;font-size:11px;color:#d0e1d8}.sidebar-bottom small{grid-column:2;color:#759d8d;font-size:10px}.live-dot{width:7px;height:7px;background:#51c58d;border-radius:50%;display:inline-block;box-shadow:0 0 0 4px #51c58d20}.main-area{margin-left:246px;min-height:100vh}.topbar{height:68px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px}.crumb{font-size:10px;letter-spacing:1.25px;font-weight:700;color:#718078}.crumb span{color:#c3cec8;padding:0 8px}.topbar-right{display:flex;align-items:center;gap:14px}.env-pill{display:inline-flex;align-items:center;gap:7px;background:#edf7f1;color:#28654a;border:1px solid #d7ebdf;border-radius:50px;padding:7px 10px;font-size:9px;font-weight:800;letter-spacing:.7px;white-space:nowrap}.env-pill i{width:6px;height:6px;border-radius:50%;background:#26a269}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e6eee9;color:var(--green);font-weight:800;font-size:11px}.page-wrap{padding:30px 38px 25px;max-width:1600px;margin:0 auto}.hero{background:linear-gradient(115deg,#083c2d 0%,#07543b 62%,#0d6949 100%);border-radius:17px;min-height:268px;padding:35px 38px;display:flex;justify-content:space-between;position:relative;overflow:hidden;color:#fff;box-shadow:0 14px 34px #00432c20}.eyebrow,.section-kicker{font-size:10px;font-weight:800;letter-spacing:1.4px;color:#4c8b6c}.hero .eyebrow{color:#a7d9bd;display:flex;align-items:center;gap:9px}.hero h1{font:800 clamp(26px,3vw,38px)/1.16 Manrope,sans-serif;letter-spacing:-1.2px;margin:20px 0 10px}.hero h1 em{font-style:normal;color:#b5e3c6}.hero p{color:#c5ddd1;margin:0;font-size:13px}.hero-actions{display:flex;gap:10px;margin-top:23px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:8px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:12px;cursor:pointer;transition:transform .12s,background .12s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green);color:#fff}.hero .btn-primary{background:#fff;color:#064630}.btn-ghost{background:#fff;color:#2d443a;border-color:#dfe7e2}.hero .btn-ghost{background:#ffffff12;color:#fff;border-color:#ffffff35}.hero-graphic{width:255px;position:relative;flex-shrink:0}.graphic-ring{position:absolute;border:1px solid #ffffff22;border-radius:50%;width:220px;height:220px;top:0;right:5px}.ring-two{width:170px;height:170px;top:25px;right:30px;border-style:dashed}.graphic-core{position:absolute;top:63px;right:73px;width:85px;height:85px;border-radius:24px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green);transform:rotate(-8deg);box-shadow:0 12px 30px #001e142e}.graphic-core span{font:800 28px Manrope}.graphic-core small{font-size:8px;letter-spacing:2px}.graphic-tag{position:absolute;background:#ffffffed;color:#294b3c;padding:8px 11px;border-radius:7px;font-size:9px;box-shadow:0 7px 18px #001c1322}.graphic-tag b{margin-left:6px;color:var(--green)}.tag-top{top:25px;right:-1px}.tag-bottom{bottom:22px;right:55px}.section-head,.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 17px}.section-head h2,.page-title-row h1{font:800 23px Manrope;margin:6px 0 0;letter-spacing:-.5px}.muted,.page-title-row p{color:var(--muted);font-size:12px;margin:7px 0 0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.stat-card{padding:18px 19px;min-height:140px}.stat-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:18px;margin-bottom:13px}.stat-icon.green{background:#e7f5ec;color:#087347}.stat-icon.blue{background:#e9f2ff;color:#3d6fb6}.stat-icon.purple{background:#f1eaff;color:#8061bc}.stat-icon.amber{background:#fff4dd;color:#ad761b}.stat-card>span{display:block;font-size:11px;color:#66776e}.stat-card strong{display:block;font:800 28px Manrope;margin:4px 0}.stat-card small{font-size:10px;color:#91a097}.content-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;margin-top:19px}.panel{padding:21px 22px;margin-bottom:18px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panel-head h3{font:800 15px Manrope;margin:0}.panel-head p{font-size:11px;color:var(--muted);margin:5px 0 0}.panel-head>a{font-size:11px;font-weight:700;color:var(--green)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:9px;letter-spacing:.8px;color:#87958d;background:#f8faf8;padding:12px 11px;font-weight:800}td{padding:14px 11px;border-bottom:1px solid #edf1ee;font-size:11px;color:#4e6056}tbody tr:last-child td{border-bottom:0}td b{color:#25372e}code,.mono{font-family:Consolas,monospace;font-size:11px;color:#176345;background:#eff6f1;padding:4px 6px;border-radius:4px}.status{display:inline-flex;align-items:center;padding:5px 8px;border-radius:50px;font-size:9px;font-weight:800;white-space:nowrap}.status-good{background:#e7f6ed;color:#187344}.status-warn{background:#fff2d9;color:#98620b}.status-neutral{background:#edf1ef;color:#637269}.quick-panel{padding-bottom:14px}.quick-link{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #edf1ee}.quick-icon{width:36px;height:36px;border-radius:9px;background:#eef6f0;color:var(--green);display:grid;place-items:center;font-size:19px;flex-shrink:0}.quick-link span:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1}.quick-link b{font-size:11px}.quick-link small{font-size:10px;color:#819087}.quick-link strong{font-size:21px;color:#91a399;font-weight:400}.notice{background:#f2f8f4;border:1px solid #e0eee5;padding:12px 13px;border-radius:8px;margin-top:15px}.notice b{font-size:11px;color:var(--green)}.notice p{font-size:10px;color:#687a70;line-height:1.5;margin:5px 0 0}.empty-state{padding:42px 15px;text-align:center;color:#75847c}.empty-state>span{font-size:27px;color:#9db8a8}.empty-state b{display:block;margin-top:10px;color:#30483b}.empty-state p{font-size:11px}.empty-state .btn{margin-top:8px}.empty-state.compact{padding:25px}.footer{padding:15px 38px 25px;font-size:9px;letter-spacing:1px;color:#9aa69f}.footer span{padding:0 6px;color:#d5a4a4}.page-title-row{margin-top:2px;margin-bottom:22px}.page-title-row h1{font-size:26px}.page-title-row .btn{flex-shrink:0}.form-panel{border-top:3px solid var(--green)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;min-width:0}.field label{font-size:11px;font-weight:700;color:#40544a}.form-control{width:100%;border:1px solid #dbe4de;border-radius:7px;background:#fff;padding:11px 12px;color:#20352a;outline:none;font-size:12px;min-height:40px}.form-control:focus{border-color:#398364;box-shadow:0 0 0 3px #39836417}.check-field{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;color:#4e6156;margin:4px 0 15px}.check-field input{accent-color:var(--green);width:15px;height:15px}.form-actions{display:flex;gap:9px;margin-top:12px;flex-wrap:wrap}.form-actions .btn{min-height:39px}.search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:0 10px;color:#8c9b92}.search-box input{border:0;outline:0;padding:8px 0;width:150px;font-size:11px}.alert{padding:12px 14px;border-radius:8px;margin:0 0 16px;font-size:12px;line-height:1.5}.alert-success{background:#e9f7ee;border:1px solid #ccebd7;color:#176a3d}.alert-error{background:#fff0ef;border:1px solid #ffd4d0;color:#a52b21}.alert-info{background:#edf5ff;border:1px solid #d7e8ff;color:#285a91}.production-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr);gap:17px;align-items:start}.step-badge{width:31px;height:31px;border-radius:9px;background:#edf6f0;color:var(--green);display:grid;place-items:center;font:800 11px Manrope}.form-hint{font-size:10px;line-height:1.5;color:#77877e;background:#f7faf8;padding:10px;border-radius:6px;margin:4px 0}.rule-row{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #edf1ee}.rule-check{width:22px;height:22px;border-radius:50%;background:#e7f6ed;color:#1c8a50;display:grid;place-items:center;flex-shrink:0;font-weight:800}.rule-row div{display:flex;flex-direction:column;gap:4px}.rule-row b{font-size:11px}.rule-row small{font-size:10px;color:#849188;line-height:1.4}.labels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.label-card{border:1px solid #dce5df;border-radius:8px;padding:13px 14px;background:#fff;max-width:340px;color:#18251e}.label-top{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--green);padding-bottom:7px}.label-top strong{font:800 14px Manrope;color:var(--green)}.label-top strong span{color:var(--red)}.label-top small{font-size:7px;letter-spacing:.5px;color:#6f7d74}.label-product{font:800 15px Manrope;margin:10px 0}.label-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.label-meta div{display:flex;flex-direction:column;gap:3px}.label-meta small{font-size:8px;color:#829087;letter-spacing:.5px}.label-meta b{font-size:10px}.label-barcode{height:48px;display:flex;align-items:center;justify-content:center;overflow:hidden}.label-barcode svg{max-width:100%;height:45px}.label-code{text-align:center;font:700 9px Consolas;letter-spacing:.7px}.label-weight{font:800 20px Manrope;text-align:center;margin:7px 0}.label-weight small{font-size:10px;color:#65756b}.label-bottom{display:flex;justify-content:space-between;border-top:1px solid #e4eae6;padding-top:7px;font-size:7px;letter-spacing:.5px;color:#718077}.barcode-fallback{font:10px Consolas;overflow-wrap:anywhere}.scanner-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:17px;align-items:start}.camera-stage{position:relative;min-height:260px;background:#102b22;border-radius:11px;overflow:hidden;display:grid;place-items:center}.camera-stage video{width:100%;height:300px;object-fit:cover;display:block}.camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e0eee6;text-align:center;padding:20px;background:linear-gradient(135deg,#143d2e,#09271d)}.camera-symbol{font-size:42px;margin-bottom:10px}.camera-placeholder b{font-size:13px}.camera-placeholder small{font-size:10px;color:#a7c0b2;margin-top:7px;max-width:260px;line-height:1.5}.camera-overlay{pointer-events:none;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.camera-overlay span{width:min(70%,310px);height:95px;border:2px solid #7de1a9;border-radius:9px;box-shadow:0 0 0 999px #00180e30}.camera-overlay small{color:white;background:#082f25c9;padding:5px 8px;border-radius:4px;font-size:8px;letter-spacing:1px}.camera-actions{display:flex;gap:9px;margin-top:14px}.camera-actions .btn{flex:1}.scanner-help{margin-top:24px;border-top:1px solid #edf1ee;padding-top:15px}.scanner-help b{font-size:11px}.scanner-help p{font-size:10px;color:#77877e;line-height:1.6}.full-btn{width:100%}.mono-input{font-family:Consolas,monospace}.result-panel{border-top:3px solid var(--green)}.result-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.result-head h2{font:800 22px Manrope;margin:6px 0}.result-head p{color:var(--muted);font-size:12px;margin:0}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.result-grid>div{background:#f7faf8;border:1px solid #edf2ee;padding:13px;border-radius:8px;display:flex;flex-direction:column;gap:8px;min-width:0}.result-grid small{font-size:9px;letter-spacing:.5px;color:#829087}.result-grid b{font-size:12px;overflow-wrap:anywhere}.result-grid .mono{background:none;padding:0}.validation-message,.field-validation-error{color:#b42318;font-size:10px}
@media(max-width:1150px){.sidebar{width:215px}.main-area{margin-left:215px}.page-wrap{padding:25px 24px}.topbar{padding:0 24px}.hero{padding:30px}.hero-graphic{width:190px;transform:scale(.88);transform-origin:right center}.stats-grid{gap:10px}.stat-card{padding:15px}.content-grid{grid-template-columns:1fr}.quick-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:15px}.quick-panel .panel-head,.quick-panel .notice{grid-column:1/-1}}
@media(max-width:800px){.sidebar{position:relative;width:auto;inset:auto;padding:13px 15px;display:block}.brand{padding:0 3px 12px}.brand-mark{width:32px;height:32px}.sidebar .nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;flex-direction:row;overflow:auto;gap:5px;padding-bottom:2px}.sidebar a:not(.brand){white-space:nowrap;padding:9px 11px;font-size:11px}.nav-icon{font-size:16px;width:auto}.main-area{margin-left:0}.topbar{height:52px;padding:0 17px}.crumb{font-size:8px}.page-wrap{padding:20px 15px}.hero{min-height:0;padding:25px 22px}.hero h1{font-size:28px}.hero-graphic{display:none}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:122px}.stat-card strong{font-size:25px}.content-grid,.production-layout,.scanner-layout{grid-template-columns:1fr}.page-title-row{align-items:flex-start}.page-title-row h1{font-size:22px}.page-title-row .env-pill{display:none}.panel{padding:17px 15px}.quick-panel{display:block}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{padding:12px 15px 20px}.labels-grid{grid-template-columns:1fr}.label-card{max-width:none}.camera-stage{min-height:220px}.camera-stage video{height:250px}}
@media(max-width:420px){.topbar-right .env-pill{display:none}.form-grid{grid-template-columns:1fr;gap:0}.page-title-row .btn{padding:9px;font-size:10px}.hero-actions .btn{font-size:10px;padding:10px}.result-head{align-items:flex-start;flex-direction:column}.result-grid{grid-template-columns:1fr 1fr}.panel-head{align-items:flex-start}.search-box input{width:100px}}
/* Operación rápida de almacén */
.warehouse-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);gap:17px;align-items:start}.dispatch-toolbar{padding:14px 18px}.dispatch-context{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px;gap:18px;align-items:end}.context-step{display:flex;align-items:center;gap:10px}.context-step>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e9f6ee;color:var(--green);font:800 11px Manrope;flex-shrink:0}.context-step>div{flex:1}.context-step small,.dispatch-total small{display:block;font-size:9px;letter-spacing:.7px;color:#819188;font-weight:800;margin-bottom:6px}.dispatch-total{border-left:1px solid var(--line);padding-left:18px}.dispatch-total strong{font:800 28px Manrope;color:var(--green);margin-right:5px}.dispatch-total span{font-size:10px;color:var(--muted)}.scan-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.scan-choice-card{border:1px solid #dce8df;background:#fbfdfb;border-radius:10px;padding:13px;text-align:left;display:grid;grid-template-columns:31px 1fr;column-gap:9px;cursor:pointer;color:var(--ink)}.scan-choice-card:hover,.scan-choice-card.selected{border-color:#4aa275;background:#eff9f2;box-shadow:0 0 0 3px #4aa27517}.scan-choice-icon{grid-row:span 2;font-size:24px;color:var(--green);display:grid;place-items:center}.scan-choice-card b{font-size:11px}.scan-choice-card small{font-size:9px;color:var(--muted);margin-top:4px}.warehouse-camera{min-height:200px}.warehouse-camera video{height:230px}.scan-input-field{margin-top:16px}.scan-input{font-size:14px;min-height:48px}.count-bubble{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e9f6ee;color:var(--green);font:800 14px Manrope}.picked-list{display:flex;flex-direction:column;gap:7px;max-height:385px;overflow:auto}.picked-row{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #e5ece7;border-radius:8px}.picked-check{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e5f6eb;color:#16844a;font-size:11px}.picked-row>div{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.picked-row b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picked-row small{font-size:9px;color:var(--muted)}.picked-row strong{font-size:11px;color:var(--green);white-space:nowrap}.pick-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:15px;margin-top:15px;font-size:10px;color:var(--muted)}.pick-summary .btn{font-size:10px;padding:9px 11px}@media(max-width:800px){.warehouse-grid{grid-template-columns:1fr}.dispatch-context{grid-template-columns:1fr 1fr}.dispatch-total{border-left:0;border-top:1px solid var(--line);padding:12px 0 0;grid-column:span 2}}
.printing-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);gap:17px;align-items:start}.print-preview{margin:0 auto 18px;width:60mm;min-height:40mm;box-shadow:0 12px 28px #0b3a2520}.printer-help{border-top:3px solid var(--green)}.printer-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.printer-steps>div{background:#f5faf6;border:1px solid #e1eee5;border-radius:9px;padding:14px;display:flex;flex-direction:column;gap:8px}.printer-steps b{font-size:10px;color:var(--green);letter-spacing:.7px}.printer-steps span{font-size:10px;color:#687a70;line-height:1.5}@media(max-width:800px){.printing-grid{grid-template-columns:1fr}.printer-steps{grid-template-columns:1fr}}
.inspection-card{border:1px solid #d8e5dc;border-radius:14px;padding:18px;margin-top:16px;background:#fff;display:flex;flex-direction:column;gap:13px;box-shadow:0 5px 16px #1f51300d}.inspection-card>b{font-size:16px;color:#173b2a}.inspection-card small{color:#687a70;line-height:1.6;border-bottom:1px solid #edf2ee;padding-bottom:10px}.quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;font-size:12px;background:#f6faf7;border-radius:10px;padding:13px}.quality-grid label{display:flex;gap:8px;align-items:center;padding:8px;border-radius:7px;background:#fff;border:1px solid #e3ece5}.quality-grid input{accent-color:#087443;width:16px;height:16px}@media(max-width:800px){.quality-grid{grid-template-columns:1fr}}
.shelf-life-edit{display:flex;align-items:center;gap:5px;min-width:95px}.shelf-life-edit .form-control{width:68px;padding:5px 7px;font-size:11px}.shelf-life-edit small{font-size:10px;color:#687a70}
.table-detail{display:block;color:#91a097;font-size:9px;margin-top:4px;max-width:300px;white-space:normal}
@media print{body{background:#fff}.sidebar,.topbar,.footer,.page-title-row,.hero,.stats-grid,.content-grid,.section-head,.panel:not(.labels-panel),.labels-panel>.panel-head,.alert{display:none!important}.main-area{margin:0}.page-wrap{padding:0;max-width:none}.labels-grid{display:block}.label-card{width:32mm;height:16.9mm;max-width:32mm;border:1px solid #bbb;border-radius:0;margin:0;page-break-after:always;padding:1mm;font-size:7px}.label-top{padding-bottom:0.5mm}.label-product{margin:.5mm 0;font-size:7px}.label-meta{margin:.5mm 0}.label-barcode{height:5mm}.label-barcode svg{height:4mm}.label-weight{margin:.5mm 0;font-size:9px}.label-bottom{padding-top:.5mm}@page{size:32mm 16.9mm;margin:0}}
