:root{--bg:#f4f1eb;--ink:#1c1a17;--muted:#6e675e;--line:#e0d8cc;--card:#fffcf7;--accent:#0d6433;--accent-soft:#0d643317;--warn:#8a5a00;--err:#8b2e2e;--ok:#0d6433;--grey:#9a948a;--sidebar-w:14.5rem;--radius:12px;--shadow-soft:0 1px 2px #1c1a170a, 0 8px 24px #1c1a170a}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(ellipse 80% 50% at 70% -10%, #e8efe9 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 0% 0%, #efe8dc 0%, transparent 50%), var(--bg);min-height:100vh;margin:0;font-family:Segoe UI,Tahoma,sans-serif}.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;display:grid}.app-sidebar{border-right:1px solid var(--line);z-index:10;background:linear-gradient(#fffcf8 0%,#f7f3ec 100%);flex-direction:column;height:100vh;padding:1rem .9rem 1.05rem;display:flex;position:sticky;top:0}.sidebar-logo{border-radius:10px;justify-content:center;align-items:center;padding:.2rem .35rem .7rem;text-decoration:none;transition:background .15s,opacity .15s;display:flex}.sidebar-logo:hover{background:#0d64330f}.sidebar-logo img{object-fit:contain;mix-blend-mode:multiply;width:100%;max-width:10.5rem;height:auto;display:block}.sidebar-upper{flex-direction:column;flex:0 0 33%;justify-content:flex-start;gap:.35rem;min-height:0;display:flex}.nav-primary{flex-direction:column;gap:.28rem;padding:.1rem 0;display:flex}.nav-item{color:#3d3933;letter-spacing:.01em;border-radius:9px;padding:.62rem .75rem;font-size:1.1875rem;font-weight:600;line-height:1.25;text-decoration:none;transition:background .15s,color .15s;display:block;position:relative}.nav-item:hover{color:var(--accent);background:var(--accent-soft)}.nav-item.active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);font-weight:750}.sidebar-spacer{flex:auto;min-height:1rem}.sidebar-bottom{border-top:1px solid var(--line);flex-direction:column;gap:.45rem;padding-top:.75rem;display:flex}.sidebar-date{color:var(--muted);letter-spacing:.01em;margin:0;padding:0 .7rem;font-size:.82rem}.nav-utils{flex-direction:column;gap:.2rem;display:flex}.nav-util{color:var(--muted);border-radius:9px;align-items:center;gap:.5rem;padding:.5rem .7rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.nav-util:hover{color:var(--accent);background:var(--accent-soft)}.nav-util.active{color:var(--accent);background:var(--accent-soft);font-weight:700}.nav-util .nav-icon{opacity:.9;flex-shrink:0;width:1.15rem;height:1.15rem;display:block}.app-main{flex-direction:column;min-width:0;display:flex}.wrap{width:100%;max-width:1080px;margin:0 auto;padding:1.35rem 2rem 2rem}.home-masthead{justify-content:center;margin:.35rem 0 1.6rem;display:flex}.home-masthead-inner{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:center;gap:2.8rem;min-width:min(100%,34rem);padding:1.1rem 2rem;display:flex}.home-brand-title{color:var(--accent);letter-spacing:.035em;font-size:2.87rem;font-weight:750;line-height:1.1;text-decoration:none}.home-brand-title:hover{color:#0a5229}.home-company{border-left:1px solid var(--line);align-items:center;gap:1rem;min-height:3.5rem;padding-left:1.7rem;display:inline-flex}.home-company-logo{object-fit:contain;width:auto;max-width:6.65rem;height:auto;max-height:3.85rem}.home-company-name{color:var(--ink);letter-spacing:.035em;font-size:2.87rem;font-weight:750;line-height:1.1}.page-head{border-bottom:1px solid var(--line);margin:0 0 1.15rem;padding-bottom:.75rem}.page-section-title{color:var(--accent);letter-spacing:calc(.02em + 2pt);margin:0;font-size:2.112rem;font-weight:750;line-height:1.1}body.page-product .page-head,body.page-ingredient .page-head,body.page-supplier .page-head{text-align:center}body.page-product .page-section-title,body.page-ingredient .page-section-title,body.page-supplier .page-section-title{font-size:2.7456rem}.print-brand{display:none}h1{margin-top:0;font-size:1.45rem}h2{color:#2c2925;margin:0 0 .65rem;font-size:1.02rem;font-weight:650}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);margin-bottom:1.15rem;padding:1.15rem 1.25rem}.panel-table{padding:0;overflow:hidden}.panel-table>h2{margin:0;padding:1.05rem 1.25rem .7rem}.panel-table>.note,.panel-table>p{margin:0;padding:.85rem 1.25rem 1.1rem}.panel-table>.table-scroll,.panel-table>h2+.table-scroll{border-top:1px solid var(--line)}.grid{gap:1rem;display:grid}.grid.two{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.stats-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:1.05rem 1.15rem}a.stat{color:var(--ink);text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}a.stat:hover{border-color:var(--accent);box-shadow:0 2px 10px #0d64331f}.stat strong{color:var(--accent);letter-spacing:-.02em;margin-bottom:.2rem;font-size:1.75rem;font-weight:750;line-height:1.15;display:block}@media (width<=1100px){.stats-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.stats{grid-template-columns:1fr}.stats-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile-row{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.tile-row-export{border-top:1px solid var(--line);margin-top:.7rem;padding-top:.7rem}.export-panel{border-top:1px solid var(--line);margin-top:.55rem;padding-top:.55rem}.export-panel[hidden],.export-step[hidden]{display:none}.export-panel .note{margin:0 0 .45rem}.tile{border:1px solid var(--line);min-height:2.9rem;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:.55rem;padding:.6rem 1rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.tile:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 2px 10px #0d64331f}.tile-icon{width:1.35rem;height:1.35rem;color:var(--accent);flex-shrink:0}.history-panel{margin-top:.85rem}.history-layout{grid-template:"show graph""list graph"minmax(0,1fr)/minmax(13rem,17rem) minmax(0,1fr);align-items:stretch;gap:.85rem 1.1rem;min-height:0;display:grid}.history-show-block{grid-area:show}.history-graph-head{flex:none;min-width:0;padding:.65rem .8rem .4rem}.history-items-block{flex-direction:column;grid-area:list;align-self:stretch;min-width:0;min-height:0;display:flex}.history-canvas-wrap{background:#fff;flex:auto;min-width:0;min-height:0;position:relative}.history-graph{border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;grid-area:graph;min-width:0;min-height:0;display:flex;overflow:hidden}.history-filters{display:contents}.history-filter-block{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;padding:.7rem .75rem}.history-filter-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-size:.78rem;font-weight:700}.history-type-list{flex-direction:column;gap:.25rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.history-type{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:.4rem .6rem;font-size:.92rem}.history-type:hover{background:#f4f1ea}.history-type.is-active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.history-range-label{margin-bottom:.3rem}.history-range{width:100%}.history-items-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.history-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.history-clear:hover{color:var(--accent)}.history-search{width:100%;margin-bottom:.5rem}.history-items{border-top:1px solid var(--line);flex:auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.history-item label{color:var(--ink);cursor:pointer;border-radius:5px;align-items:flex-start;gap:.5rem;margin:0;padding:.3rem .15rem;font-size:.9rem;display:flex}.history-item label:hover{background:#f4f1ea}.history-item input{flex-shrink:0;margin-top:.2rem}.history-item-text{min-width:0}.history-item-name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.history-item-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;display:block;overflow:hidden}.history-empty-row{color:var(--muted);padding:.5rem .15rem;font-size:.88rem}.history-graph-title{text-align:center;margin:0 0 .2rem;font-size:1.05rem;font-weight:700}.history-graph-note{text-align:center;margin:0}.history-canvas-wrap canvas{width:100%;height:100%;display:block}.history-placeholder{text-align:center;color:var(--muted);justify-content:center;align-items:center;margin:0;padding:1.5rem;font-size:.92rem;display:flex;position:absolute;inset:0}.history-placeholder[hidden],.history-tooltip[hidden]{display:none}.history-tooltip{z-index:2;color:#fff;white-space:nowrap;pointer-events:none;background:#1c1a17eb;border-radius:6px;align-items:center;gap:.4rem;padding:.3rem .55rem;font-size:.82rem;display:flex;position:absolute;box-shadow:0 2px 8px #0003}.history-tooltip-dot{border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem}@media (width<=900px){.history-layout{grid-template-columns:1fr;grid-template-areas:"show""list""graph"}.history-graph{height:16rem}}body.page-home{height:100vh;overflow:hidden}body.page-home .app-shell{height:100vh;min-height:100vh;overflow:hidden}body.page-home .app-main{height:100vh;min-height:0;overflow:hidden}body.page-home .wrap{flex-direction:column;height:100%;min-height:0;max-height:100%;padding:.45rem 1.35rem .55rem;display:flex;overflow:hidden}body.page-home .home-masthead{flex:none;margin:.1rem 0 .45rem}body.page-home .home-masthead-inner{gap:1.4rem;min-width:min(100%,28rem);padding:.35rem 1rem}body.page-home .home-brand-title,body.page-home .home-company-name{font-size:2.15rem}body.page-home .home-company{gap:.7rem;min-height:2.6rem;padding-left:1.1rem}body.page-home .home-company-logo{max-width:5rem;max-height:2.9rem}body.page-home .stats{flex:none;gap:.55rem;margin-bottom:.45rem}body.page-home .stat{padding:.55rem .75rem}body.page-home .stat strong{margin-bottom:.05rem;font-size:1.35rem}body.page-home .home-panel{flex:none;margin-bottom:.45rem;padding:.55rem .75rem}body.page-home .tile-row{gap:.45rem}body.page-home .tile-row-export{margin-top:.45rem;padding-top:.45rem}body.page-home .tile{border-radius:8px;min-height:2.25rem;padding:.35rem .75rem;font-size:.88rem}body.page-home .tile-icon{width:1.1rem;height:1.1rem}body.page-home .export-panel{margin-top:.4rem;padding-top:.4rem}body.page-home .history-panel{flex-direction:column;flex:auto;min-height:0;margin-top:.2rem;margin-bottom:0;padding:.55rem .7rem;display:flex;overflow:hidden}body.page-home .history-layout{flex:auto;gap:.55rem .85rem;min-height:0}body.page-home .history-filter-block{padding:.5rem .6rem}body.page-home .history-type{padding:.28rem .5rem;font-size:.86rem}body.page-home .history-type-list{gap:.15rem;margin-bottom:.45rem}body.page-home .history-graph-head{padding:.45rem .65rem .25rem}body.page-home .history-graph-title{font-size:.95rem}body.page-home .flashes{flex:none;margin:0 0 .35rem}@media (width<=900px){body.page-home{height:auto;overflow:auto}body.page-home .app-shell,body.page-home .app-main,body.page-home .wrap{height:auto;max-height:none;overflow:visible}body.page-home .history-panel{flex:none}}@media (width<=800px){.app-shell{grid-template-columns:1fr}.app-sidebar{border-right:none;border-bottom:1px solid var(--line);height:auto;padding:.85rem 1rem;position:relative}.sidebar-logo{justify-content:flex-start;padding:.15rem 0 .55rem}.sidebar-logo img{max-width:8.5rem}.sidebar-upper{flex:none}.sidebar-spacer{display:none}.nav-primary{flex-flow:wrap;gap:.25rem}.nav-item.active{box-shadow:none}.sidebar-bottom{margin-top:.65rem}.nav-utils{flex-flow:wrap}.grid.two{grid-template-columns:1fr}.products-toolbar{flex-direction:column;align-items:stretch}.piece-prices{grid-template-columns:1fr}.wrap{padding:1rem 1.1rem 1.5rem}.home-company{border-left:none;padding-left:0}}label{color:var(--muted);margin-bottom:.25rem;font-size:.85rem;display:block}input,select,textarea,button{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:.45rem .6rem}input[type=checkbox]{width:auto}textarea{width:100%;min-height:70px}.field{margin-bottom:.8rem}.row{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.row .field{flex:1;min-width:120px}button,.btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:.52rem .95rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}button.secondary,.btn.secondary{background:#5c564e}button.danger,.btn.danger{background:var(--err)}button.ghost,.btn.ghost{color:var(--accent);background:0 0;border:1px solid #b9d0c2}button.ghost:hover,.btn.ghost:hover{background:var(--accent-soft);border-color:var(--accent)}button:hover,.btn:hover{filter:brightness(.96)}button.icon-btn,.btn.icon-btn{justify-content:center;align-items:center;padding:.3rem .4rem;line-height:0;display:inline-flex}button.icon-btn.danger{background:var(--err);color:#fff}.icon-trash{width:1rem;height:1rem}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.38rem .45rem}th{color:var(--muted);font-weight:600}.col-left{text-align:left}.col-num{text-align:center}.col-action{text-align:center;width:2.75rem}a.product-link{color:var(--accent);font-weight:600;text-decoration:none}a.product-link:hover{text-decoration:underline}.products-toolbar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem .85rem;display:flex}.product-search{border-radius:8px;flex:1;min-width:0}.table-scroll{border:1px solid var(--line);border-radius:8px;overflow-y:auto}.products-table-scroll{max-height:22.55rem}.products-table{font-size:.88rem}.products-table th,.products-table td{padding:.55rem .75rem}.products-table thead th{padding-top:.7rem;padding-bottom:.55rem}.table-scroll table{margin:0}.table-scroll thead th{background:var(--card);z-index:1;box-shadow:0 1px 0 var(--line);position:sticky;top:0}.flashes{padding:0;list-style:none}.flash{border-radius:6px;margin-bottom:.5rem;padding:.6rem .8rem}.flash.ok{color:var(--ok);background:#e5f4ea}.flash.err,.flash.error{color:var(--err);background:#f8e8e8}.flash.warn{color:var(--warn);background:#fff3d9}.name-default{color:var(--grey)}.note{color:var(--muted);font-size:.82rem}.actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.home-panel,.home-panel .actions{margin-top:.15rem}.import-upload-panel{padding:.85rem 1rem}.import-toolbar{grid-template-columns:auto minmax(14rem,1fr) auto;align-items:center;gap:.65rem;margin:0;display:grid}.import-toolbar .btn,.import-toolbar button{white-space:nowrap;margin:0}.import-file-field{cursor:pointer;align-items:center;min-width:0;margin:0;display:flex;position:relative}.import-file-field input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.import-file-label{border:1px solid var(--line,#ddd5c8);width:100%;color:var(--muted,#6e675c);text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:8px;padding:.55rem .8rem;font-size:.92rem;display:block;overflow:hidden}.import-file-label.has-file{color:var(--ink,#1c1a17)}.import-file-name{color:var(--muted,#6e675c);cursor:help;border-bottom:1px dotted #c4bbb0}.import-path-cell{text-overflow:ellipsis;white-space:nowrap;max-width:22rem;color:var(--muted,#6e675c);font-size:.88rem;overflow:hidden}.import-batches-scroll{border-top:1px solid var(--line);max-height:10.75rem;margin:.55rem -1rem -.85rem;overflow-y:auto}.import-batches-scroll table{margin:0}.import-batches-scroll thead th{background:var(--card);z-index:1;position:sticky;top:0}@media (width<=800px){.import-toolbar{grid-template-columns:1fr}}.line-row{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:center;gap:.4rem;margin-bottom:.4rem;display:grid}@media (width<=800px){.line-row{grid-template-columns:1fr 1fr}}.cost-box{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.cost-box .panel{margin:0}.cost-box .big{font-size:1.3rem;font-weight:700}.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.page-toolbar h1{margin:0}.product-view.compact{max-width:100%}.product-view-top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.55rem;display:flex}.product-view-actions{flex-shrink:0;align-items:center;gap:.45rem;display:inline-flex}.action-icon{box-sizing:border-box;border:1px solid var(--line);width:2.35rem;height:2.35rem;color:var(--accent);cursor:pointer;font:inherit;appearance:none;background:#fff;border-radius:8px;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;text-decoration:none;transition:border-color .15s,background .15s,color .15s;display:inline-flex}button.action-icon{font-family:inherit}.action-icon svg{flex-shrink:0;width:1.2rem;height:1.2rem;display:block}.action-icon:hover,.action-icon:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);outline:none}.action-icon[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.product-title{flex-wrap:wrap;align-items:baseline;gap:.65rem;margin:0;font-size:1.35rem;font-weight:700;display:flex}.product-id{color:var(--muted);font-size:.95rem;font-weight:600}.print-prep{margin-top:.75rem}.print-prep[hidden]{display:none}.print-prep-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.print-prep-head h2{margin:0 0 .25rem}.recipe-workspace.print-sheet{display:none}.product-comments{color:var(--ink);margin:.25rem 0 0;font-size:.92rem;line-height:1.35}.piece-prices{grid-template-columns:1fr 1fr minmax(6.5rem,.55fr);gap:.65rem;margin-bottom:.75rem;display:grid}.piece-price-sub{align-items:center}.piece-price-sub .sub-product-view-check{justify-content:flex-start;align-items:center;min-height:1.6rem;margin-top:.15rem;display:flex}.piece-price-sub input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--sub-product)}.piece-price{background:var(--card);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.55rem .75rem;display:flex}.piece-price-label{color:var(--muted);font-size:.82rem}.piece-price-value{color:var(--accent);font-size:1.15rem;font-weight:700}.recipe-panel{margin-bottom:0}.recipe-heading{flex-wrap:wrap;align-items:baseline;gap:.65rem 1rem;margin-bottom:.45rem;display:flex}.recipe-note{color:var(--muted);flex:1;min-width:220px;font-size:.82rem}.recipe-table{font-size:.86rem}.recipe-table th,.recipe-table td{padding:.32rem .4rem}.recipe-table tfoot td{border-bottom:none;border-top:1px solid var(--line);padding-top:.45rem;font-weight:700}.product-meta-row{grid-template-columns:1.35fr .55fr .55fr 1.35fr;align-items:end;gap:.65rem;display:grid}.product-meta-row .field{margin-bottom:0}.product-meta-row input{width:100%}.field-sub-product .sub-product-check-wrap{align-items:center;min-height:2.15rem;padding:0 .15rem;display:flex}.field-sub-product input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--sub-product)}:root{--sub-product:#c9861c}a.product-link.is-sub-product-name,.is-sub-product-name,.ing-option.is-sub-product,td.is-sub-product-name{font-weight:650;color:var(--sub-product)!important}.ing-option.is-sub-product{background:0 0}.print-child-line .print-child-name{color:#4a453c;padding-left:.85rem;font-size:.95em}.recipe-lines-head,.recipe-line{grid-template-columns:minmax(12rem,2.2fr) 5.5rem 5.5rem 5rem 2.4rem;align-items:center;gap:.4rem;display:grid}.recipe-line .icon-btn.line-remove{justify-content:center;align-items:center;width:2.15rem;height:2.15rem;padding:0;display:inline-flex}.recipe-line .icon-btn.line-remove .icon-trash{width:1.1rem;height:1.1rem}#product-name::placeholder{color:var(--grey);opacity:1}#product-name.name-default::placeholder{color:var(--grey)}.recipe-lines-head{color:var(--muted);margin-bottom:.35rem;padding:0 .1rem;font-size:.8rem;font-weight:600}.recipe-lines{flex-direction:column;gap:.35rem;margin-bottom:.65rem;display:flex}.recipe-line select,.recipe-line input{width:100%}.ing-picker{position:relative}.ing-dropdown{z-index:20;border:1px solid var(--line);background:#fff;border-radius:8px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:hidden;box-shadow:0 8px 20px #00000014}.ing-option{cursor:pointer;padding:.45rem .65rem;font-size:.9rem}.ing-option:hover{background:#0d643314}.ing-option.ing-new{z-index:1;color:#3a7a55;border-bottom:1px solid var(--line);background:#f3faf6;font-weight:600;position:sticky;top:0}.ing-options-scroll{max-height:14rem;overflow-y:auto}.product-actions{margin-top:.75rem}.export-choice{border-top:1px solid var(--line);margin-top:.85rem;padding-top:.75rem}.export-choice .note{margin:0 0 .65rem}.ing-edit-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.65rem;display:flex}.ing-edit-top .product-title{margin:0}.ing-confirm{color:var(--ink);white-space:nowrap;align-items:center;gap:.4rem;font-size:.88rem;display:inline-flex}.ing-edit-row{grid-template-columns:1.2fr 1.2fr .7fr 1fr;align-items:end;gap:.65rem;margin-bottom:.75rem;display:grid}.ing-edit-row .field{margin-bottom:0}.ing-edit-row.prices{grid-template-columns:1fr auto 1fr;max-width:36rem}.ing-edit-row.prices .vat-field{align-items:center;padding-bottom:.35rem;display:flex}.vat-check{white-space:nowrap;align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;display:inline-flex}.ing-edit-row.date-row{grid-template-columns:minmax(10rem,14rem)}.date-one-field{position:relative}.date-one-field input[type=text]{cursor:pointer;width:100%}.date-one-field input[type=date]{opacity:0;cursor:pointer;background:0 0;border:none;width:100%;height:100%;position:absolute;inset:0}#conversion-field input{width:100%}@media (width<=800px){.product-meta-row{grid-template-columns:1fr}.recipe-lines-head,.recipe-line{grid-template-columns:1fr 1fr}.ing-edit-row,.ing-edit-row.prices{grid-template-columns:1fr}}.print-only{display:none}.recipe-picker{margin-bottom:.75rem}.recipe-workspace-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.25rem .15rem .75rem;display:flex}.recipe-workspace-head .product-title{margin:0}.recipe-summary{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:.75rem;display:flex}.recipe-pieces{color:var(--ink);margin:0}.recipe-pieces span,.recipe-total span{color:var(--muted);margin-bottom:.25rem;font-size:.8rem;display:block}.recipe-pieces input{width:8rem;color:var(--accent);font-weight:700}.recipe-total{border:1px solid var(--line);background:var(--card);border-radius:7px;min-width:11rem;padding:.45rem .7rem}.recipe-total strong{color:var(--accent);font-size:1.05rem}.recipe-scale-panel{margin-bottom:0}.recipe-scale-scroll{overflow:auto visible}.recipe-scale-table{min-width:760px;font-size:.88rem}.recipe-scale-table th,.recipe-scale-table td{padding:.4rem .5rem}.recipe-scale-table .recipe-new-qty{width:7rem}.recipe-scale-table .recipe-new-unit{width:6rem}.recipe-ingredient-name{font-weight:600;display:block}.recipe-ingredient-id{color:var(--muted);margin-top:.12rem;font-size:.75rem;display:block}.recipe-scale-table tfoot td{border-top:1px solid var(--line);border-bottom:0;font-weight:700}.recipe-empty{margin-top:.5rem}.recipe-recent-list{margin:.55rem 0 0;padding:0;list-style:none}.recipe-recent-list li{border-top:1px solid var(--line)}.recipe-recent-list li:first-child{border-top:0}.recipe-recent-link{color:var(--ink);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.55rem .1rem;text-decoration:none;display:flex}.recipe-recent-link:hover{color:var(--accent)}.recipe-recent-name{font-weight:600}.recipe-recent-meta{color:var(--muted);white-space:nowrap;font-size:.85rem}.brand-logo-preview{align-items:center;gap:.75rem;margin:.35rem 0 .75rem;display:flex}.brand-logo-preview img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;max-width:5rem;max-height:3rem;padding:.25rem}.settings-brand-panel{padding:.95rem 1.1rem}.settings-brand-form{margin:0}.settings-brand-row{flex-wrap:wrap;align-items:center;gap:.55rem .7rem;margin:0;display:flex}.settings-inline-label{color:var(--ink);white-space:nowrap;margin:0;font-size:.9rem;font-weight:600}.settings-brand-row input[type=text],.settings-brand-row input:not([type=file]):not([type=checkbox]){flex:12rem;min-width:11rem}.settings-brand-row>button[type=submit]{margin-left:auto}.settings-logo-pick{color:var(--accent);cursor:pointer;background:#fff;border:1px solid #b9d0c2;border-radius:8px;align-items:center;margin:0;padding:.45rem .75rem;font-size:.88rem;font-weight:600;display:inline-flex;position:relative}.settings-logo-pick input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.settings-logo-thumb{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:6px;max-width:3.5rem;max-height:2.2rem;padding:.15rem}.settings-remove-logo{white-space:nowrap;margin:0}.settings-main-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.settings-units-panel{min-width:0}.units-mgmt-table{border-collapse:collapse;margin:0}.units-mgmt-table th,.units-mgmt-table td{border-bottom:1px solid var(--line);vertical-align:middle}.units-mgmt-table tbody tr:last-child th,.units-mgmt-table tbody tr:last-child td{border-bottom:1px solid var(--line)}.units-mgmt-table .unit-conv-cell{white-space:nowrap;font-size:.88rem}.unit-conv-edit{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.unit-conv-edit[hidden],.unit-conv-view[hidden]{display:none!important}.unit-conv-qty{width:4.2rem;padding:.25rem .35rem;font-size:.85rem}.unit-conv-ref{width:auto;min-width:3.5rem;padding:.25rem .35rem;font-size:.85rem}.unit-actions{justify-content:flex-end;align-items:center;gap:.25rem;display:inline-flex}.unit-actions .icon-btn{color:var(--accent);background:0 0;border:1px solid #b9d0c2}.unit-actions .icon-btn.danger{background:var(--err);color:#fff;border-color:#0000}.unit-actions .icon-btn:disabled{opacity:.35;cursor:not-allowed}.units-footer-row{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;margin-top:.75rem;padding-top:.65rem;display:flex}.units-footer-row .settings-add-unit{flex:auto;min-width:0;margin:0}.unit-delete-panel{background:#faf6f4;border:1px solid #e4b8b8;border-radius:10px;margin-bottom:1rem;padding:.85rem 1rem}.unit-delete-panel h3{color:#a33b3b;margin:0 0 .45rem;font-size:1.05rem}.unit-delete-panel .note{margin:0 0 .65rem}.unit-usage-list{max-height:6rem;margin:.25rem 0 .65rem;padding-left:1.1rem;font-size:.88rem;overflow-y:auto}.unit-delete-controls{margin-top:.35rem}.unit-replace-form{margin:0}.unit-replace-row{flex-wrap:wrap;align-items:center;gap:.55rem .75rem;margin:.35rem 0 .75rem;display:flex}.unit-replace-row label{white-space:nowrap;margin:0}.unit-replace-row select{width:auto;min-width:10rem}.unit-radio{color:var(--ink);align-items:center;gap:.3rem;font-size:.88rem;display:inline-flex}.unit-delete-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.unit-force-delete-form{margin:0}.add-conv-label{white-space:nowrap;font-size:.88rem}tr.needs-unit-fix td,tr.needs-unit-fix .product-link{color:var(--err)!important}tr.needs-unit-fix{background:#fff5f5}.settings-add-unit-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.settings-add-unit-row input,.settings-add-unit-row select{flex:4.5rem;width:auto;min-width:0;padding:.35rem .45rem;font-size:.85rem}.settings-add-unit-row input[name=qty]{flex:0 0 4.5rem}.settings-compact-btn{white-space:nowrap;padding:.35rem .7rem!important;font-size:.82rem!important}.settings-vat-panel{min-width:0}.settings-vat-row{flex-wrap:wrap;align-items:center;gap:.35rem .4rem;font-size:.85rem;display:flex}.settings-vat-row .settings-inline-label{font-size:.85rem}.settings-vat-row input[type=number]{width:3.2rem;padding:.3rem .35rem;font-size:.85rem}.settings-vat-date{align-items:center;gap:.2rem;min-width:0;display:inline-flex}.settings-vat-date input[type=text]{width:5.6rem;min-width:0;padding:.3rem .35rem;font-size:.82rem}.settings-vat-date .price-cal-btn{width:1.85rem;height:1.85rem;padding:0}.settings-vat-date .price-cal-btn svg{width:.95rem;height:.95rem}.vat-history-scroll{border-top:1px solid var(--line);max-height:8.5rem;margin-top:.75rem;overflow-y:auto}.vat-history-scroll table{margin:0}.vat-history-scroll thead th{background:var(--card);z-index:1;position:sticky;top:0}.vat-hist-edit{width:5.5rem;padding:.25rem .35rem;font-size:.82rem}.vat-hist-pct{width:3.2rem}.vat-hist-edit[hidden],.vat-hist-view[hidden],.vat-save-btn[hidden]{display:none!important}.settings-pbi-panel{margin-top:1rem;padding:.75rem 1rem}.settings-pbi-row{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;display:flex}.settings-pbi-row h2{margin:0;font-size:1rem}.settings-export-files{color:var(--muted);margin:.5rem 0 0;padding-left:1.1rem;font-size:.88rem}.settings-export-files li{margin:.35rem 0}.settings-export-files a{color:var(--accent);font-weight:600;text-decoration:none}.settings-export-files a:hover{text-decoration:underline}.settings-export-path{color:var(--muted);word-break:break-all;margin-top:.1rem;font-size:.78rem;display:block}.settings-export-folder{margin:.55rem 0 0}.settings-export-folder code{word-break:break-all;font-size:.82rem}@media (width<=900px){.settings-main-grid{grid-template-columns:1fr}.settings-brand-row>button[type=submit]{margin-left:0}}.supplier-page-title{align-items:center;gap:.65rem;margin-bottom:.2rem;display:inline-flex}.supplier-grade{color:var(--accent);white-space:nowrap;background:#e5f4ea;border-radius:999px;padding:.18rem .5rem;font-size:.78rem;font-weight:700;display:inline-block}.supplier-details-grid{grid-template-columns:.8fr 1.4fr .7fr;gap:.65rem;margin-top:.75rem;display:grid}.supplier-details-grid .field{margin-bottom:0}.supplier-details-grid input,.supplier-details-grid select{width:100%}.supplier-address{grid-column:span 2}.supplier-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.supplier-contact-panel .note{min-height:2.1rem}.contact-rows{flex-direction:column;gap:.45rem;display:flex}.contact-row{grid-template-columns:1.25fr 1fr auto 2.1rem;align-items:center;gap:.4rem;display:grid}.contact-row input[type=text],.contact-row input[type=email]{width:100%;min-width:0}.contact-main{white-space:nowrap;align-items:center;gap:.3rem;margin:0;display:inline-flex}.contact-remove{width:2.1rem;height:2.1rem;padding:0;font-size:1.1rem}.supplier-ingredients-scroll{max-height:22rem}.supplier-chart-panel{transition:box-shadow .18s;position:relative}.supplier-chart-panel.is-empty .supplier-chart-wrap,.supplier-chart-panel.is-empty .supplier-chart-legend{display:none}.supplier-chart-panel.is-overlay{z-index:40;border:1px solid var(--line);background:#fffdf9fa;width:min(920px,100vw - 2rem);max-height:min(70vh,100vh - 2rem);margin:0;position:fixed;top:auto;bottom:1rem;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 12px 28px #1c1a171f}.supplier-chart-hint{margin:.2rem 0 0}.supplier-chart-wrap{width:100%;margin-top:.45rem;overflow-x:auto}.supplier-chart-wrap canvas{display:block}.supplier-chart-legend{color:var(--muted);flex-wrap:wrap;gap:.4rem 1rem;margin-top:.35rem;font-size:.8rem;display:flex}.supplier-chart-legend span{align-items:center;gap:.35rem;display:inline-flex}.supplier-chart-legend i{border-radius:999px;width:.75rem;height:.75rem;display:inline-block}.rich-editor{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.rich-toolbar{border-bottom:1px solid var(--line);background:#faf7f2;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.45rem .55rem;display:flex}.rich-toolbar button,.rich-toolbar select{border:1px solid var(--line);min-height:2rem;color:var(--ink);cursor:pointer;background:#fff;border-radius:6px;padding:.25rem .5rem}.rich-toolbar button:hover,.rich-toolbar select:hover{border-color:var(--accent);color:var(--accent)}.rich-color{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:.25rem;margin:0;padding:.15rem .35rem;display:inline-flex}.rich-color span{color:var(--ink);font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.rich-color input[type=color]{cursor:pointer;background:0 0;border:none;width:1.4rem;height:1.4rem;padding:0}.rich-surface{outline:none;min-height:9rem;padding:.75rem .85rem;line-height:1.45}.rich-surface:empty:before{content:attr(data-placeholder);color:var(--grey)}.recipe-instructions-panel{margin-top:.85rem}.recipe-instructions-content{color:var(--ink);margin-top:.45rem;line-height:1.5}.recipe-instructions-content p{margin:0 0 .55rem}.recipe-instructions-content ul,.recipe-instructions-content ol{margin:.25rem 0 .55rem 1.2rem;padding:0}.price-effective-backdrop{z-index:45;background:#1c1a1738;position:fixed;inset:0}.price-effective-modal{z-index:50;width:min(28rem,100vw - 2rem);margin:0;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 14px 32px #1c1a1729}.price-effective-modal h2{margin:0 0 .35rem;font-size:1.05rem}.price-effective-modal .actions{margin-top:.85rem}.price-effective-date-wrap{grid-template-columns:1fr auto;align-items:center;gap:.35rem;display:grid;position:relative}.price-effective-date-wrap input[type=text]{width:100%}.price-effective-date-wrap input.is-invalid{border-color:var(--err);background:#fff7f7}.price-cal-btn{width:2.35rem;height:2.35rem;color:var(--accent);border:1px solid var(--line);background:#fff;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.price-cal-btn:hover{background:#0d643314}.price-cal-btn svg{width:1.15rem;height:1.15rem}.mini-calendar{z-index:60;border:1px solid var(--line);background:#fffdf9;border-radius:10px;width:15.5rem;padding:.55rem;position:absolute;top:calc(100% + .35rem);left:0;box-shadow:0 10px 24px #1c1a171f}.mini-cal-head{color:var(--ink);justify-content:space-between;align-items:center;gap:.35rem;margin-bottom:.45rem;font-size:.88rem;font-weight:650;display:flex}.mini-cal-head button{width:1.7rem;height:1.7rem;color:var(--accent);background:0 0;border:1px solid #0000;border-radius:6px;padding:0;font-size:1rem;line-height:1}.mini-cal-head button:hover{border-color:var(--line);background:#0d643314}.mini-cal-weekdays,.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:.15rem;display:grid}.mini-cal-weekdays span{text-align:center;color:var(--muted);padding:.15rem 0;font-size:.68rem}.mini-cal-day{height:1.7rem;color:var(--ink);background:0 0;border:none;border-radius:6px;padding:0;font-size:.78rem}.mini-cal-day:hover{background:#0d64331a}.mini-cal-day.is-today{box-shadow:inset 0 0 0 1px var(--accent)}.mini-cal-day.is-selected{background:var(--accent);color:#fff}.mini-cal-empty{height:1.7rem}.price-pending-note{color:var(--warn);margin:.4rem 0 0;font-size:.82rem;line-height:1.35}.product-change-backdrop{z-index:45;background:#1c1a171f;position:fixed;inset:0}.product-change-modal{z-index:50;background:#fffcf8;border:1px solid #ebe4d8;border-radius:14px;width:min(32rem,100vw - 2rem);max-width:calc(100vw - 2rem);margin:0;padding:1.15rem 1.25rem 1.05rem;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 32px #1c1a170f}.product-change-modal h2{letter-spacing:.01em;color:#5c564c;margin:0 0 .45rem;font-size:1rem;font-weight:500}.product-change-line{color:#6e675c;overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:.9rem;font-weight:400;line-height:1.45}.product-change-line span{font-weight:400}.product-change-actions{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.product-change-actions .ghost{color:#6e675c;background:0 0;border:1px solid #d9d1c4}.product-change-actions .ghost:hover{border-color:var(--accent);color:var(--accent)}.product-as-new-note{color:#3a7a55;background:#f3faf6;border-radius:8px;margin:0 0 .85rem;padding:.55rem .7rem;font-size:.85rem;line-height:1.4}@media (width<=800px){.recipe-workspace-head{align-items:stretch}.recipe-summary{justify-content:flex-start}.supplier-details-grid{grid-template-columns:1fr}.supplier-address{grid-column:auto}.contact-row{grid-template-columns:1fr}.contact-main{padding:.2rem 0}}@media print{@page{size:auto;margin:10mm}body{color:#000;background:#fff!important}.app-sidebar,.page-section-title,.page-head,.home-masthead,.flashes,.screen-only,.print-prep{display:none!important}.print-brand{align-items:center;gap:.55rem;margin:0 0 .55rem;display:flex!important}.print-brand-logo{object-fit:contain;width:auto;max-width:2.8rem;height:auto;max-height:1.5rem}.print-brand-name{color:#222;font-size:10pt;font-weight:600}.print-only{display:initial!important}th.print-only,td.print-only{display:table-cell!important}.wrap{max-width:none;margin:0;padding:0}.app-shell,.app-main{display:block}.recipe-workspace.print-sheet{display:block!important}.recipe-workspace-head{border-bottom:1.5px solid #222;margin-bottom:.45rem;padding:0 0 .4rem}.recipe-workspace-head .product-title{font-size:14pt}.recipe-pieces strong{color:#000;font-size:10.5pt;display:block!important}.recipe-scale-panel,.recipe-instructions-panel.print-instructions,.recipe-scale-scroll{box-shadow:none;break-inside:avoid;page-break-inside:avoid;border:0;border-radius:0;margin:0 0 .45rem;padding:0;overflow:visible}.recipe-scale-table{width:100%;min-width:0;font-size:9pt}.recipe-scale-table .original-col{display:none!important}.recipe-scale-table th,.recipe-scale-table td{border-color:#aaa;padding:.18rem .28rem}.recipe-heading h2{margin:0 0 .25rem;font-size:11pt}.recipe-instructions-content{font-size:9pt;line-height:1.3}.recipe-instructions-content p{margin:0 0 .25rem}.recipe-scale-table .col-check{text-align:center;width:1.6rem}.print-check-box{vertical-align:middle;border:1.3px solid #333;border-radius:2px;width:.8rem;height:.8rem;display:inline-block}.piece-prices,.product-view-top,.product-view-actions{display:none!important}}.admin-inline-form,.admin-row-form,.admin-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem .9rem;display:flex}.admin-inline-form label,.admin-create-user label{color:var(--muted);flex-direction:column;gap:.4rem;font-size:.82rem;display:flex}.admin-inline-form input,.admin-inline-form select,.admin-row-form input,.admin-row-form select{min-width:9.5rem;padding:.5rem .7rem}.admin-row{align-items:center;padding:.15rem 0}.admin-row-form{flex:1;gap:.75rem .85rem;min-width:0}.admin-row-form .check{white-space:nowrap;align-items:center;gap:.4rem;min-height:2.15rem;margin:0;display:inline-flex}.admin-list{flex-direction:column;gap:.65rem;padding:.15rem 0 .35rem;display:flex}.admin-list-head{color:var(--muted);border-bottom:1px solid var(--line);grid-template-columns:minmax(10rem,1.2fr) minmax(8rem,1fr) auto auto 1fr;align-items:center;gap:.75rem .85rem;padding:0 .15rem .35rem;font-size:.78rem;font-weight:600;display:grid}.admin-list-row{grid-template-columns:minmax(10rem,1.2fr) minmax(8rem,1fr) auto auto 1fr;align-items:center;gap:.75rem .85rem;padding:.35rem .15rem;display:grid}.admin-list-row input[type=text],.admin-list-row input:not([type]),.admin-list-row select{width:100%;min-width:0;padding:.5rem .7rem}.admin-list-row .check{white-space:nowrap;align-items:center;gap:.4rem;margin:0;display:inline-flex}.admin-list-row .admin-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.admin-unassigned td,.admin-list-row.admin-unassigned{background:#fff8e8}.admin-list-row.admin-unassigned{border-radius:8px;padding:.55rem .65rem}@media (width<=800px){.admin-list-head{display:none}.admin-list-row{grid-template-columns:1fr 1fr}.admin-list-row .admin-row-actions{grid-column:1/-1;justify-content:flex-start}}.admin-create-user{grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));align-items:end;gap:.85rem 1rem;display:grid}.admin-create-user>button{justify-self:start;margin-top:.15rem}.admin-users-list{flex-direction:column;gap:.75rem;display:flex}.admin-users-head,.admin-user-card{grid-template-columns:minmax(12rem,1.35fr) minmax(8rem,1fr) 7.5rem minmax(9rem,1fr) auto;align-items:center;gap:.75rem .85rem;display:grid}.admin-users-head{color:var(--muted);border-bottom:1px solid var(--line);padding:0 .15rem .45rem;font-size:.78rem;font-weight:600}.admin-users-head.no-tenant{grid-template-columns:minmax(12rem,1.35fr) minmax(8rem,1fr) 7.5rem auto}.admin-user-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.85rem .95rem}.admin-user-card.admin-unassigned{background:#fff8e8;border-color:#ead7a8}.admin-user-card.no-tenant{grid-template-columns:minmax(12rem,1.35fr) minmax(8rem,1fr) 7.5rem auto}.admin-user-email{min-width:0}.admin-user-email strong{word-break:break-word;font-size:.92rem;font-weight:600;display:block}.admin-user-meta{color:var(--muted);margin-top:.2rem;font-size:.78rem;display:block}.admin-user-badge{color:#6a4d00;background:#f3e2b3;border-radius:999px;margin-top:.25rem;padding:.1rem .45rem;font-size:.72rem;font-weight:650;display:inline-block}.admin-user-card input,.admin-user-card select{width:100%;min-width:0;padding:.5rem .65rem}.admin-user-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.admin-user-actions .secondary{min-width:4.25rem}@media (width<=960px){.admin-users-head{display:none}.admin-user-card,.admin-user-card.no-tenant{grid-template-columns:1fr 1fr}.admin-user-email{grid-column:1/-1}.admin-user-actions{grid-column:1/-1;justify-content:flex-start}}.nav-tenant-switch{flex-direction:column;gap:.2rem;margin:0 0 .25rem;padding:.35rem .65rem .55rem;display:flex}.nav-tenant-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.nav-tenant-switch select{border:1px solid var(--line);background:var(--card);border-radius:4px;width:100%;padding:.25rem .35rem;font-size:.82rem}.spa-loading{flex-direction:column;gap:.65rem;padding:.35rem 0 1rem;display:flex}.spa-loading-label{color:var(--muted,#6e675e);margin:0;font-size:.88rem}.spa-skeleton{background:linear-gradient(90deg,#ebe4d8 0%,#f7f2ea 45%,#ebe4d8 100%) 0 0/200% 100%;border-radius:6px;height:.9rem;animation:1.2s ease-in-out infinite spa-shimmer}.spa-skeleton.wide{width:100%}.spa-skeleton.med{width:62%}.spa-skeleton.narrow{width:38%}.spa-skeleton.block{width:100%;height:3.2rem}@keyframes spa-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.spa-empty{color:var(--muted);text-align:center;padding:1.25rem .85rem;font-size:.92rem}.import-actions-sticky{background:linear-gradient(180deg, transparent 0%, var(--bg) 35%);z-index:2;margin-top:1rem;padding:.75rem 0;position:sticky;bottom:0}.page-product .product-view-top,.page-ingredient .ing-edit-top{margin-bottom:.85rem}.app-main .wrap>.note:first-child{margin-top:.5rem}body.page-inner .page-head{margin-bottom:1.35rem}.panel>h2:first-child{margin-bottom:.85rem}.panel>.note{margin-top:0;margin-bottom:.85rem}.panel .actions,.panel .admin-inline-form{margin-top:.15rem}.panel .admin-inline-form+.note,.panel .note+.admin-inline-form{margin-top:.35rem}.field label{margin-bottom:.35rem;display:block}.import-upload-panel,.page-inner .panel{margin-bottom:1.25rem}.rich-editor .rich-toolbar{flex-wrap:wrap;gap:.35rem;margin-bottom:.45rem;display:flex}.rich-editor .rich-toolbar button{min-width:2rem;padding:.2rem .45rem;font-size:.85rem}.rich-editor .rich-surface{border:1px solid var(--border,#d7cfc3);background:#fff;border-radius:8px;outline:none;min-height:8rem;padding:.65rem .75rem}.rich-editor .rich-surface:empty:before{content:attr(data-placeholder);color:var(--muted,#8a8174)}.product-change-backdrop[hidden],.product-change-modal[hidden]{display:none!important}.supplier-chart-panel.is-empty{opacity:.92}.stats-row{flex-wrap:wrap;align-items:stretch;gap:.75rem;margin-bottom:1.25rem;display:flex}.stat-box{border:1px solid var(--border,#d7cfc3);background:#fff;border-radius:8px;min-width:6.5rem;padding:.75rem 1rem}.stat-value{font-size:1.6rem;font-weight:700;line-height:1.1}.stat-label{color:var(--muted,#6e675e);font-size:.85rem}.stat-actions{align-items:center;margin-left:auto;display:flex}.panel{margin-bottom:1.5rem}.panel-title{margin:0 0 .35rem;font-size:1.15rem}.panel-hint,.field-hint,.muted{color:var(--muted,#6e675e);font-size:.88rem}.dash-group{margin-top:.85rem}.dash-group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6e675e);margin:0 0 .35rem;font-size:.95rem}.task-list,.dept-list,.history-list{margin:0;padding:0;list-style:none}.task-row{border-bottom:1px solid var(--border,#ebe4d8);align-items:center;gap:.75rem;padding:.55rem .65rem;display:flex}.task-row-main{color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.task-subject{font-weight:600}.task-meta{color:var(--muted,#6e675e);font-size:.85rem}.task-row.due-nice,.due-nice{background:#fff4e6}.task-row.due-must,.due-must{background:#fde8e8}.btn-small{padding:.25rem .55rem;font-size:.85rem}.btn-secondary,button.secondary{border:1px solid var(--border,#d7cfc3);background:0 0}.task-form .field{flex-direction:column;gap:.25rem;margin-bottom:.85rem;display:flex}.field-row{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.85rem;display:grid}.dashboard-opts{border:1px solid var(--border,#d7cfc3);border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.check{align-items:center;gap:.45rem;margin:.35rem 0;display:flex}.form-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.dept-item{border-bottom:1px solid var(--border,#ebe4d8);padding:.75rem 0}.dept-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dept-actions{gap:.35rem;margin-left:auto;display:flex}.dept-edit{flex-direction:column;gap:.5rem;max-width:28rem;margin-top:.5rem;display:flex}.history-list li{border-bottom:1px solid var(--border,#ebe4d8);grid-template-columns:11rem 8rem 1fr;gap:.5rem;padding:.35rem 0;font-size:.85rem;display:grid}.history-changes{white-space:pre-wrap;word-break:break-word;font-size:.78rem}.breadcrumb{margin-bottom:1rem;font-size:.9rem}.flash.ok{color:#1b5e20;background:#e8f5e9;border-radius:6px;padding:.5rem .75rem}
