: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;align-items:center;gap:9px;padding:16px 14px 12px;display:flex;position:relative}.logo-icon{object-fit:contain;width:34px;height:34px;margin-bottom:4px;display:block}.logo-copy{min-width:0}.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:#ffffff7a;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:9px 8px 4px;font-family:inherit;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-static-label{text-transform:uppercase;letter-spacing:.1em;color:#ffffff7a;padding:9px 8px 4px;font-size:10px;font-weight:700}.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}.sidebar-footer span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.btn-sidebar{color:#fff;background:#ffffff0f;border:1px solid #ffffff40}.btn-sidebar:hover{background:#ffffff1f}.sidebar-version{color:#ffffff52;padding:6px 14px 12px;font-size:9.5px}.sidebar-close,.mobile-appbar,.sidebar-backdrop{display:none}.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 205px 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}.btn:focus-visible,.icon-button:focus-visible,.nav-item:focus-visible,.nav-label:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #4caf7259}.content{flex:1;padding:20px 24px}.route-loading{min-height:100vh;color:var(--text-muted);background:var(--bg);justify-content:center;align-items:center;font-size:13px;display:flex}.route-loading-inline{min-height:calc(100vh - 52px)}.route-error{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;margin:24px;padding:24px;display:flex}.route-error span{color:var(--text-muted);font-size:12px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.list-toolbar{align-items:center;gap:10px;min-height:38px;margin-bottom:12px;display:flex}.search-field{background:var(--surface);border:1px solid var(--border);min-width:240px;max-width:420px;height:38px;color:var(--text-muted);border-radius:8px;flex:1;align-items:center;gap:7px;padding:0 10px;display:flex}.search-field:focus-within{border-color:var(--green-mid);box-shadow:0 0 0 3px #4caf721f}.search-field input{min-width:0;height:100%;color:var(--text);background:0 0;border:0;outline:0;flex:1;font:12.5px Inter,sans-serif}.search-field button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:4px}.list-filters{align-items:center;gap:7px;display:flex}.list-filters select{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text-mid);border-radius:8px;padding:0 10px;font:12px Inter,sans-serif}.result-count{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:11px}.empty-state{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:9px;padding:22px;font-size:12.5px}.desktop-tools{z-index:80;align-items:center;gap:7px;display:flex;position:fixed;top:8px;right:18px}.icon-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:36px;height:36px;color:var(--text-mid);border-radius:8px;justify-content:center;align-items:center;font-size:16px;display:inline-flex;position:relative}.icon-button:hover{background:var(--surface2)}.header-badge{background:var(--red);color:#fff;text-align:center;border-radius:9px;min-width:17px;height:17px;padding:0 4px;font:700 9px/17px Inter,sans-serif;position:absolute;top:-5px;right:-5px}.header-popover-wrap{position:relative}.header-popover{background:var(--surface);border:1px solid var(--border);z-index:120;border-radius:10px;width:280px;position:absolute;top:43px;right:0;overflow:hidden;box-shadow:0 16px 42px #1118272e}.quick-actions{width:220px;padding:6px}.quick-actions a{color:var(--text-mid);border-radius:7px;align-items:center;gap:9px;padding:9px 10px;font-size:12.5px;font-weight:600;text-decoration:none;display:flex}.quick-actions a:hover{background:var(--green-pale);color:var(--green-dark)}.quick-actions a span{text-align:center;width:20px;font-size:15px}.popover-title{border-bottom:1px solid var(--border);justify-content:space-between;padding:11px 13px;font-size:12.5px;font-weight:700;display:flex}.popover-title span{background:var(--red-pale);color:var(--red);border-radius:10px;padding:1px 6px;font-size:10px}.popover-alert{border-bottom:1px solid var(--border);gap:9px;padding:10px 13px;display:flex}.popover-alert>span{font-size:15px}.popover-alert div{min-width:0}.popover-alert strong,.popover-alert small{display:block}.popover-alert strong{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.popover-alert small{color:var(--text-muted);margin-top:2px;font-size:10px}.popover-empty{text-align:center;color:var(--text-muted);padding:18px;font-size:12px}.popover-footer{text-align:center;color:var(--green-mid);background:var(--surface2);padding:9px 13px;font-size:11.5px;font-weight:700;text-decoration:none;display:block}.mobile-alert-sheet,.mobile-quick-sheet{display:none}.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-card[role=button]:focus-visible{outline-offset:2px;outline:3px solid #4caf7266}.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);overflow-x:auto}.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.cols4{grid-template-columns:1fr 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:560px;max-width:100%;max-height:92vh;padding:22px;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal-lg{width:780px}.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:#0f2d1c url(/login-bg.jpg) 50%/cover no-repeat;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding-bottom:22vh;display:flex;position:relative;overflow:hidden}.login-card{z-index:1;background:var(--surface);border-radius:14px;width:360px;max-width:calc(100vw - 32px);padding:32px;position:relative;box-shadow:0 20px 60px #00000073}.login-title{margin-bottom:2px;font-size:17px;font-weight:700}.login-sub{color:var(--text-muted);margin-bottom:20px;font-size:12px}.login-divider{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin:16px 0;font-size:11px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-social-btn{justify-content:center;gap:8px;width:100%;position:relative}.login-social-btn:disabled{opacity:.65;cursor:not-allowed}.login-social-soon{text-transform:uppercase;letter-spacing:.04em;background:var(--surface2);color:var(--text-faint);border-radius:8px;margin-left:6px;padding:2px 6px;font-size:9.5px;font-weight:700}.login-footer{z-index:1;color:#ffffff8c;letter-spacing:.02em;margin-top:16px;font-size:11px;position:relative}.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<=1024px){body{padding-top:54px}.mobile-appbar{z-index:140;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;height:54px;padding:0 10px;display:flex;position:fixed;inset:0 0 auto}.mobile-brand{flex-direction:column;flex:1;min-width:0;display:flex}.mobile-brand strong{font-size:13px}.mobile-brand span{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.sidebar{z-index:160;width:min(86vw,300px);transition:transform .22s;transform:translate(-105%);box-shadow:12px 0 35px #00000038}.sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{z-index:130;background:#0006;border:0;display:block;position:fixed;inset:0}.sidebar-close{color:#fff;cursor:pointer;background:#ffffff14;border:0;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;margin-left:auto;display:inline-flex}.main{min-width:0;margin-left:0}.desktop-tools{display:none}.mobile-alert-sheet{z-index:150;background:var(--surface);border:1px solid var(--border);border-radius:11px;display:block;position:fixed;top:61px;left:8px;right:8px;overflow:hidden;box-shadow:0 18px 45px #11182738}.mobile-alert-sheet .popover-title{align-items:center}.mobile-alert-sheet .popover-title button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:3px 6px}.mobile-quick-sheet{z-index:150;background:var(--surface);border:1px solid var(--border);border-radius:11px;width:min(280px,100vw - 16px);display:block;position:fixed;top:61px;right:8px;overflow:hidden;box-shadow:0 18px 45px #11182738}.mobile-quick-sheet .popover-title button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:3px 6px}.mobile-quick-sheet .quick-actions{width:auto}.topbar{align-items:center;gap:8px;height:auto;min-height:58px;padding:8px 12px;top:54px}.topbar-right,.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px}.topbar .btn{padding:6px 9px}.grid-2,.grid-3,.form-row,.form-row.cols3,.form-row.cols4{grid-template-columns:1fr}.content{min-width:0;padding:12px}.list-toolbar{flex-wrap:wrap;align-items:stretch}.search-field{min-width:100%;max-width:none}.list-filters{flex:1;overflow-x:auto}.result-count{display:none}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi-card{padding:12px}.kpi-value{font-size:19px}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:14px 14px 0 0;width:100%;max-width:none;max-height:92vh;padding:16px;overflow-y:auto}.card table{min-width:640px}.card-header{position:sticky;left:0}.tabs{white-space:nowrap;overflow-x:auto}.bar-label{width:90px}.bar-val{width:82px}}@media (width<=420px){.page-date,.topbar-right .btn-ghost{display:none}}
