:root{--bg:#f0f2f0;--surface:#fff;--surface2:#f7f9f7;--border:#e2e8e2;--green-dark:#1a4a2e;--green-mid:#2d7a4f;--green-light:#4caf72;--green-pale:#e8f5ed;--amber:#d97706;--amber-pale:#fef3c7;--red:#dc2626;--red-pale:#fee2e2;--blue:#2563eb;--blue-pale:#dbeafe;--purple:#7c3aed;--purple-pale:#ede9fe;--pink:#db2777;--pink-pale:#fce7f3;--teal:#0891b2;--teal-pale:#cffafe;--text:#111827;--text-mid:#374151;--text-muted:#6b7280;--text-faint:#9ca3af;--sidebar-w:238px;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,sans-serif}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--green-dark);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.logo{border-bottom:1px solid #ffffff14;padding:16px 14px 12px}.logo-icon{margin-bottom:2px;font-size:22px}.logo-name{color:#fff;letter-spacing:-.02em;font-size:14px;font-weight:700}.logo-ver{background:var(--green-light);color:#fff;vertical-align:middle;border-radius:10px;margin-left:5px;padding:1px 5px;font-size:9px;font-weight:700;display:inline-block}.logo-sub{color:#ffffff61;font-size:10px}.nav{flex:1;padding:8px 6px}.nav-label{text-transform:uppercase;letter-spacing:.1em;color:#ffffff61;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;padding:9px 8px 4px;font-size:10px;font-weight:700;transition:background .15s;display:flex}.nav-label:hover{background:#ffffff0f}.nav-label .nav-arrow{color:#ffffff59;flex-shrink:0;font-size:9px;transition:transform .22s}.nav-label.collapsed .nav-arrow{transform:rotate(-90deg)}.nav-label.collapsed{color:#ffffff40}.nav-group-items{opacity:1;max-height:500px;transition:max-height .28s cubic-bezier(.4,0,.2,1),opacity .2s;overflow:hidden}.nav-group-items.collapsed{opacity:0;pointer-events:none;max-height:0}.nav-item{cursor:pointer;color:#ffffff9e;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;width:100%;margin-bottom:1px;padding:7px 9px;font-size:12.5px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{background:var(--green-light);color:#fff;font-weight:600}.nav-item .icon{text-align:center;flex-shrink:0;width:17px;font-size:14px}.nav-badge{background:var(--red);color:#fff;border-radius:10px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:700}.sidebar-footer{color:#ffffff8c;border-top:1px solid #ffffff14;padding:10px 14px;font-size:10px}.sidebar-footer button{width:100%;margin-top:6px}.estab-selector{background:#ffffff12;border:1px solid #ffffff1a;border-radius:8px;margin:10px 14px 4px;padding:9px 11px}.estab-label{color:#fff6;text-transform:uppercase;letter-spacing:1px;font-size:9px}.estab-select{color:#fff;background:0 0;border:none;width:100%;margin-top:2px;padding:0;font-family:Inter,sans-serif;font-size:13px;font-weight:600}.estab-select option{color:#000}.main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;justify-content:space-between;align-items:center;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.page-title{font-size:15px;font-weight:700}.page-date,.page-breadcrumb{color:var(--text-muted);font-size:11px}.topbar-right,.topbar-actions{align-items:center;gap:7px;display:flex}.btn{cursor:pointer;border:none;border-radius:7px;align-items:center;gap:5px;padding:6px 12px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--green-mid);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-ghost{color:var(--text-mid);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface2)}.btn-amber{background:var(--amber-pale);color:var(--amber);border:1px solid #fde68a}.btn-blue{background:var(--blue-pale);color:var(--blue);border:1px solid #bfdbfe}.btn-red{background:var(--red-pale);color:var(--red);border:1px solid #fecaca}.btn-sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.6;cursor:default}.content{flex:1;padding:20px 24px}.kpi-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px;margin-bottom:20px;display:grid}.kpi-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:13px 15px;position:relative;overflow:hidden}.kpi-card:before{content:"";background:var(--accent,var(--green-light));height:3px;position:absolute;top:0;left:0;right:0}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:10px;font-weight:600}.kpi-value{font-family:DM Mono,monospace;font-size:22px;font-weight:700;line-height:1}.kpi-unit{color:var(--text-muted);margin-left:1px;font-size:11px;font-weight:400}.kpi-delta{margin-top:4px;font-size:10px;font-weight:500}.kpi-delta.up{color:var(--green-mid)}.kpi-delta.down{color:var(--red)}.kpi-delta.neutral{color:var(--text-faint)}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.card-body{padding:15px 17px}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:11px 17px;font-size:13px;font-weight:600;display:flex}.section-header{justify-content:space-between;align-items:center;margin-bottom:11px;display:flex}.section-title{font-size:13.5px;font-weight:700}.section-sub{color:var(--text-muted);margin-top:1px;font-size:11px}.grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}table{border-collapse:collapse;width:100%;font-size:12.5px}th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:left;background:var(--surface2);border-bottom:1px solid var(--border);padding:8px 12px;font-size:10px;font-weight:700}td{border-bottom:1px solid var(--border);color:var(--text-mid);vertical-align:middle;padding:9px 12px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface2)}.num{font-family:DM Mono,monospace}.badge{border-radius:20px;align-items:center;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-flex}.badge-green{background:var(--green-pale);color:var(--green-mid)}.badge-amber{background:var(--amber-pale);color:var(--amber)}.badge-red{background:var(--red-pale);color:var(--red)}.badge-blue{background:var(--blue-pale);color:var(--blue)}.badge-purple{background:var(--purple-pale);color:var(--purple)}.badge-pink{background:var(--pink-pale);color:var(--pink)}.badge-teal{background:var(--teal-pale);color:var(--teal)}.badge-gray{color:#6b7280;background:#f3f4f6}.chart-bar-wrap{flex-direction:column;gap:8px;display:flex}.bar-row{align-items:center;gap:9px;display:flex}.bar-label{color:var(--text-mid);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:115px;font-size:11.5px;overflow:hidden}.bar-track{background:var(--surface2);border-radius:5px;flex:1;height:9px;overflow:hidden}.bar-fill{border-radius:5px;height:100%}.bar-val{color:var(--text-muted);text-align:right;flex-shrink:0;width:66px;font-family:DM Mono;font-size:11.5px}.alert{border-radius:8px;align-items:flex-start;gap:9px;margin-bottom:7px;padding:10px 13px;font-size:12.5px;display:flex}.alert-red{background:var(--red-pale);border-left:3px solid var(--red)}.alert-amber{background:var(--amber-pale);border-left:3px solid var(--amber)}.alert-icon{flex-shrink:0;margin-top:1px;font-size:14px}.alert-text strong{color:var(--text);margin-bottom:1px;font-weight:600;display:block}.alert-text span{color:var(--text-mid)}.form-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.form-row.cols3{grid-template-columns:1fr 1fr 1fr}.form-row.cols1{grid-template-columns:1fr}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--text-mid);font-size:11px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);color:var(--text);background:var(--surface);border-radius:7px;outline:none;padding:7px 10px;font-family:Inter,sans-serif;font-size:12.5px;transition:border .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-mid)}.field input[readonly]{background:var(--surface2)}.form-divider{border:none;border-top:1px solid var(--border);margin:12px 0}.form-actions{justify-content:flex-end;gap:7px;margin-top:14px;display:flex}.field-hint{color:var(--text-faint);margin-top:2px;font-size:10px}.form-error{background:var(--red-pale);color:var(--red);border-radius:7px;margin-bottom:10px;padding:8px 11px;font-size:12px}.modal-overlay{z-index:200;background:#0000006b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;width:520px;max-width:100%;max-height:92vh;padding:22px;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal-title{justify-content:space-between;align-items:center;margin-bottom:15px;font-size:15px;font-weight:700;display:flex}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:20px}.login-screen{background:var(--green-dark);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border-radius:14px;width:360px;max-width:calc(100vw - 32px);padding:32px;box-shadow:0 20px 60px #00000040}.login-logo{margin-bottom:4px;font-size:28px}.login-title{margin-bottom:2px;font-size:17px;font-weight:700}.login-sub{color:var(--text-muted);margin-bottom:20px;font-size:12px}.lote-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:11px;display:grid}.lote-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;text-decoration:none;display:block;overflow:hidden}.lote-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 13px;display:flex}.lote-name{font-size:13px;font-weight:700}.lote-card-body{padding:11px 13px}.lote-stat-row{justify-content:space-between;margin-bottom:9px;display:flex}.lote-stat .val{text-align:center;font-family:DM Mono;font-size:16px;font-weight:700}.lote-stat .lbl{color:var(--text-muted);text-transform:uppercase;text-align:center;font-size:9.5px}.progress-bar{background:var(--surface2);border-radius:3px;height:5px;margin-top:7px;overflow:hidden}.progress-fill{background:var(--green-light);border-radius:3px;height:100%}.cliente-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:13px 15px;display:flex}.avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.cliente-info{flex:1;min-width:0}.cliente-name{font-size:13px;font-weight:700}.cliente-detail{color:var(--text-muted);margin-top:2px;font-size:11px}.clientes-list{flex-direction:column;gap:7px;display:flex}.forn-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:12px;padding:13px 15px;display:flex}.forn-icon{background:var(--surface2);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:17px;display:flex}.insumo-row{border-bottom:1px solid var(--border);align-items:center;gap:11px;padding:9px 0;display:flex}.insumo-row:last-child{border-bottom:none}.insumo-icon{background:var(--surface2);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.insumo-info{flex:1;min-width:0}.insumo-name{font-size:12.5px;font-weight:600}.insumo-detail{color:var(--text-muted);margin-top:1px;font-size:10.5px}.insumo-stock{text-align:right;flex-shrink:0}.insumo-stock .qty{font-family:DM Mono;font-size:14px;font-weight:700}.insumo-stock .unit{color:var(--text-muted);font-size:10px}.reserva-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left:4px solid var(--amber);padding:13px 15px}.reserva-card.vencida{border-left-color:var(--red);background:var(--red-pale)}@media (width<=768px){.sidebar{width:48px}.logo-name,.logo-sub,.nav-item span,.nav-badge,.estab-selector{display:none}.nav-item{justify-content:center;padding:8px}.main{margin-left:48px}.grid-2,.grid-3,.form-row,.form-row.cols3{grid-template-columns:1fr}.content{padding:12px}.kpi-row{grid-template-columns:repeat(2,1fr)}}
