:root{font-family:DM Sans,system-ui,sans-serif;color:var(--theme-ink);background:var(--theme-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{text-decoration:none;color:inherit}svg{flex-shrink:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif}input,select,textarea{outline:none}input:focus,select:focus,textarea:focus{border-color:#50856b!important;box-shadow:0 0 0 3px var(--theme-accent) 18!important}::selection{background:#d8e7dc;color:#193f30}.app-shell{min-height:100vh;display:flex}.sidebar{width:260px;flex:0 0 260px;min-height:100vh;background:var(--theme-sidebar);color:#d7e4db;display:flex;flex-direction:column;padding:31px 17px 20px;position:sticky;top:0;height:100vh;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 15px 36px;color:#fff}.brand-mark{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--theme-highlight);color:#213529;border-radius:14px;transform:rotate(-8deg);flex-shrink:0}.brand-mark svg{transform:rotate(8deg)}.brand strong{font-family:Manrope,sans-serif;font-size:28px;letter-spacing:-1.8px;line-height:1;display:block}.brand strong span,.login-brand strong span{color:#e9a86e}.brand small{display:block;margin-top:6px;letter-spacing:3.7px;font-size:9px;font-weight:800;color:#9fb7a8}.workspace{background:var(--theme-sidebar-panel);border:1px solid #3b5947;border-radius:13px;display:flex;align-items:center;gap:10px;padding:12px 10px;margin:0 1px 31px}.workspace-symbol{background:#dfae79;color:#2b3328;font-weight:800;border-radius:9px;width:34px;height:34px;display:grid;place-items:center}.workspace span{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.workspace strong{font-size:12px;color:#fff}.workspace small{color:#9fb3a6;font-size:10px}.workspace>svg{color:#8faa98}.nav-title{font-size:9px;font-weight:800;letter-spacing:2px;color:#829b8a;padding:0 17px;margin-bottom:11px}.nav-links{display:grid;gap:3px}.nav-link{display:flex;align-items:center;gap:12px;padding:13px 15px;color:#a7beaf;font-size:12.5px;font-weight:600;border-radius:10px;transition:background .15s,color .15s}.nav-link:hover{background:#2d4538;color:#fff}.nav-link-active{color:#fff;background:var(--theme-sidebar-active);box-shadow:inset 3px 0 #d5ab7d}.nav-link-active svg{color:#ebbd88}.sidebar-grow{flex:1}.sidebar-footer{margin-top:20px}.online{background:#294137;border-radius:10px;color:#afcbbb;display:flex;align-items:center;gap:8px;padding:13px;font-size:10.5px;margin-bottom:19px}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#7bd3a0;box-shadow:0 0 0 3px #7bd3a01c;flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:10px;border-top:1px solid #3b5044;padding:20px 1px 0}.avatar{height:36px;width:36px;border-radius:12px;background:#e0b18c;color:#2c372d;display:grid;place-items:center;font-weight:800}.sidebar-user-name{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.sidebar-user-name strong{color:#fff;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-name small{font-size:10px;color:#a5b9a9}.logout-button{border:0;background:transparent;color:#bacbbf;padding:5px}.logout-button:hover{color:#fff}.main-area{min-width:0;display:flex;flex-direction:column;flex:1}.topbar{height:75px;flex-shrink:0;background:#fff;border-bottom:1px solid #e9ede8;display:flex;align-items:center;justify-content:space-between;padding:0 44px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:15px}.breadcrumb{color:#98a79b;font-size:12px}.breadcrumb-slash{color:#cfd9cf}.breadcrumb-current{font-size:12px;font-weight:700;color:#273a31}.topbar-chip{border:1px solid #dce9e0;background:#f7fbf8;border-radius:50px;color:#436b52;padding:9px 14px;font-size:11px;display:flex;align-items:center;gap:8px;font-weight:700}.topbar-avatar{width:36px;height:36px;background:#f1f4f0;border-radius:50%;display:grid;place-items:center;color:#557366}.page-content{width:100%;max-width:1560px;padding:34px 44px 60px;margin:0 auto;flex:1}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{font-size:9px;font-weight:800;letter-spacing:2.1px;color:#699a79;display:flex;align-items:center;gap:8px;margin-bottom:9px}.eyebrow span{width:7px;height:7px;border-radius:50%;background:#a4bc97}.page-heading h1{font-size:29px;letter-spacing:-1.3px;line-height:1.3;color:#213a2c}.page-heading p{color:var(--theme-subtle);font-size:13px;margin-top:7px}.heading-date{display:flex;flex-direction:column;text-align:right;gap:6px;padding-bottom:4px}.heading-date span{font-size:9px;letter-spacing:1.5px;font-weight:800;color:#a7b4aa}.heading-date strong{font-size:12px;color:#506558;text-transform:capitalize}.app-footer{display:flex;justify-content:space-between;gap:15px;padding:0 44px 22px;font-size:10px;color:#adb9ad}.app-footer span:first-child{font-weight:800}.card{background:#fff;border:1px solid var(--theme-outline);border-radius:15px;box-shadow:0 4px 22px #18312606}.panel{padding:26px}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:22px}.section-title h2{font-size:16px;color:#2a3c31;letter-spacing:-.5px}.section-title p{font-size:11.5px;color:#9aac9e;margin-top:6px}.section-title>a{align-self:center}.hero{min-height:228px;border-radius:18px;background:radial-gradient(circle at 83% 24%,#51785a,transparent 39%),linear-gradient(104deg,#27483a,var(--theme-accent-dark) 85%);position:relative;overflow:hidden;display:flex;align-items:center;margin-bottom:22px;color:#fff}.hero:before,.hero:after{content:"";position:absolute;border:1px solid #ecf4dc21;border-radius:50%;pointer-events:none}.hero:before{width:340px;height:340px;right:42px;top:-130px}.hero:after{width:500px;height:500px;right:-85px;top:-210px}.hero-content{position:relative;z-index:1;padding:31px 39px}.hero-eyebrow{font-size:9px;font-weight:800;letter-spacing:2px;color:#d5c5a8;display:flex;gap:8px;align-items:center;margin-bottom:15px}.hero h2{font-size:25px;line-height:1.35;letter-spacing:-1.2px;font-weight:750}.hero p{font-size:11.5px;color:#c5d9c8;line-height:1.6;margin:12px 0 18px;max-width:390px}.hero-link{display:inline-flex;align-items:center;gap:10px;font-size:11.5px;color:#fff;font-weight:750;border-bottom:1px solid #c0dcbb77;padding-bottom:5px}.hero-link:hover{color:#f2c99d}.hero-decoration{position:absolute;right:11%;top:-50px;width:300px;height:300px;border:1px solid #9cd1a031;border-radius:50%;display:grid;place-items:center;transform:rotate(-28deg)}.hero-bean{font-size:185px;font-weight:300;color:#a9c3aa24;text-shadow:0 0 90px #afdab817}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.metric{padding:21px 22px;min-height:141px}.metric-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.metric-top>span{font-size:9px;letter-spacing:1.1px;color:#9aa99e;font-weight:800;padding-top:6px}.metric-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.icon-amber{background:#fdf1e1;color:#d89c56}.icon-green{background:var(--theme-accent-soft);color:#5d9d66}.icon-purple{background:#f3edfb;color:#9b74c9}.icon-teal{background:#e9f3f0;color:#4b948a}.metric-value{font:800 28px Manrope,sans-serif;letter-spacing:-1px;margin:14px 0 6px;color:#294135}.metric-value small{font-size:13px;color:#9bac9f}.metric-bottom{font-size:10px;color:#91a096;display:flex;align-items:center;gap:6px}.mini-dot{width:6px;height:6px;background:#76c59a;border-radius:50%}.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:22px}.action-tile{border:1px solid #e9eee7;background:#fff;border-radius:13px;min-height:91px;display:flex;align-items:center;gap:12px;padding:16px;transition:transform .15s,box-shadow .15s}.action-tile:hover{transform:translateY(-2px);box-shadow:0 9px 25px #19432b0e}.action-icon{height:46px;width:46px;border-radius:12px;background:#f0f5ee;color:#538569;display:grid;place-items:center}.action-tile span{flex:1;display:flex;flex-direction:column;gap:5px}.action-tile strong{font-size:11.5px}.action-tile small{font-size:10px;color:#9bac9f}.action-tile>svg{color:#a2afa5}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.chart-container{height:233px}.recent-runs{min-width:0}.recent-run{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #f0f2ed}.recent-run:last-child{border-bottom:0}.run-symbol{width:36px;height:36px;border-radius:11px;background:#eef4ee;color:#6a9478;display:grid;place-items:center}.run-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.run-main strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.run-main small{font-size:10px;color:#a0afa4}.run-tail{display:flex;align-items:flex-end;gap:5px;flex-direction:column}.run-tail b{font-size:11px}.badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#f3f5f2;color:#88968c;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:700;white-space:nowrap}.badge-green{color:#43855e;background:#eaf5ec}.badge-amber{color:#a56e36;background:#fcf2e7}.badge-purple{color:#8664a5;background:#f2ecf9}.badge-red{color:#b65450;background:#fbebea}.table-scroll{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;color:#9aa99f;font-size:9px;font-weight:800;letter-spacing:1px;padding:15px 13px;border-bottom:1px solid #e9eee8;background:#fafbf9}td{padding:16px 13px;border-bottom:1px solid #eef1eb;color:#65776a}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf9}.right{text-align:right}.cell-title{font-size:12px;color:#2b3b31;font-weight:750}.cell-title.regular{font-weight:600}.cell-sub{display:block;font-size:10px;color:#a2afa5;margin-top:5px}.mono{font-variant-numeric:tabular-nums}.positive{color:#468963;font-weight:700}.negative{color:#ce8466;font-weight:700}.table-kind{display:inline-flex;align-items:center;gap:7px}.text-link{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;color:#4c8669;white-space:nowrap}.text-link:hover{text-decoration:underline}.overview-strip{display:flex;align-items:center;gap:20px;padding:24px 28px;background:#fff;border:1px solid #e7ece5;border-radius:14px;margin-bottom:21px;flex-wrap:wrap}.overview-value{display:flex;flex-direction:column;gap:5px;min-width:110px}.overview-value span{font-size:9px;letter-spacing:1.2px;color:#93a49a;font-weight:800}.overview-value strong{font:800 23px Manrope,sans-serif;letter-spacing:-.8px}.overview-value strong small{font-size:12px;font-weight:600;color:#829589}.overview-divider{height:38px;width:1px;background:#e7ede5}.overview-spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:39px;padding:11px 17px;border-radius:9px;font-size:11px;font-weight:800;border:1px solid transparent;transition:background .15s,transform .15s,box-shadow .15s;white-space:nowrap}.btn:not(:disabled):active{transform:scale(.98)}.btn-primary{background:#2a6048;color:#fff;box-shadow:0 3px 6px #245c4220}.btn-primary:hover{background:#1c513b}.btn-outline{background:#fff;border-color:#dce8dc;color:#426950}.btn-outline:hover{background:#f2f8f1}.btn-light{background:#f1f5ef;color:#54715f}.btn-light:hover{background:#e7f0e5}.filters{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:10px;background:#f8faf7;border:1px solid #e6ece5;border-radius:9px;padding:0 13px;min-width:250px;max-width:400px;flex:1}.search svg{color:#94aa9c}.search input{height:40px;border:0!important;background:transparent;outline:0!important;box-shadow:none!important;width:100%;font-size:11.5px;color:#2b4034}.search input::placeholder{color:#a8b5aa}.pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pill{background:#f5f7f3;color:#91a195;border:1px solid transparent;border-radius:8px;padding:10px 13px;font-size:10px;font-weight:750}.pill:hover{color:#2f604a}.pill-active{background:#e5f2e8;color:#347651;border-color:#d8e9da}.badge-wrap{display:flex;gap:5px}.location-cell{display:inline-flex;align-items:center;gap:6px}.location-cell svg{color:#84a18d}.stock-value{color:#264432;font-weight:800}.stock-value small{font-weight:500;color:#98a99b}.row-actions{display:flex;justify-content:flex-end;gap:5px}.row-actions button{border:1px solid #e7ede6;background:#fff;border-radius:7px;color:#6b9177;padding:7px;display:grid;place-items:center}.row-actions button:hover{background:#eaf2e9}.empty{color:#9aa99f;font-size:12px;text-align:center;padding:40px 10px}.loading{color:#5f866e;display:flex;align-items:center;justify-content:center;gap:10px;padding:100px 0}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.subtle{color:#a0b0a4;font-size:11px}.form-hero{display:flex;align-items:center;gap:18px;padding:24px 29px;border-radius:14px;background:#eaf3e9;border:1px solid #dae9d9;margin-bottom:20px}.form-hero-icon{width:54px;height:54px;border-radius:15px;background:#fff;color:#56926b;display:grid;place-items:center}.form-hero span{font-size:9px;letter-spacing:1.6px;color:#6d9a77;font-weight:800}.form-hero h2{font-size:18px;margin:5px 0}.form-hero p{font-size:11px;color:#839d89}.form-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr);gap:20px;align-items:start}.form-card{padding:29px}.form-stack{display:grid;gap:20px}.form-subhead{font-size:10px;font-weight:800;letter-spacing:1px;color:#4f7b60;display:flex;align-items:center;gap:11px;padding:12px 0 2px;border-top:1px solid #f0f2ed}.form-subhead span{border-radius:8px;background:#e8f3e9;color:#568965;font-size:10px;padding:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>span{font-size:11px;color:#617468;font-weight:700}.field input,.field select,.field textarea,.recipe-form-line select,.percent-input input{border:1px solid #dfe8df;border-radius:9px;background:#fff;min-height:42px;color:#34483b;padding:11px 13px;width:100%;font-size:12px}.field select,.recipe-form-line select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.field input::placeholder,.field textarea::placeholder{color:#b3beb4}.field small{font-size:9.5px;color:#a3afa4}.field textarea{resize:vertical}.checks-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.check-tile{border:1px solid #e4ebe3;border-radius:11px;padding:15px;display:flex;align-items:center;gap:12px;cursor:pointer}.check-tile input{position:absolute;opacity:0}.check-tile:has(input:checked){background:#f0f8ee;border-color:#9fceaa}.check-icon{width:35px;height:35px;border-radius:9px;background:#e8f3e6;color:#62956e;display:grid;place-items:center;font-size:18px;font-weight:800}.check-tile>span:nth-of-type(2){display:flex;flex-direction:column;gap:5px;flex:1}.check-tile strong{font-size:11px;color:#425b47}.check-tile small{font-size:9px;color:#98a99b}.check-mark{color:#7fad82;opacity:0}.check-tile:has(input:checked) .check-mark{opacity:1}.form-submit{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;padding-top:13px;border-top:1px solid #edf0ea}.form-submit>span{display:flex;align-items:center;gap:7px;font-size:10px;color:#8aab91}.form-submit .btn{min-height:45px}.side-panels{display:grid;gap:20px}.help-card{background:#f4f7ee}.help-symbol{width:42px;height:42px;border-radius:13px;background:#e1ead6;color:#688e5e;display:grid;place-items:center;margin-bottom:19px}.help-card h3{font-size:15px;margin-bottom:9px}.help-card>p{font-size:11px;line-height:1.8;color:#839a87;margin-bottom:18px}.help-step{display:flex;align-items:start;gap:12px;padding:12px 0;border-top:1px solid #dfe8dc}.help-step>span{border:1px solid #cee0c7;color:#6d956c;border-radius:8px;width:26px;height:26px;display:grid;place-items:center;font-size:11px;font-weight:800}.help-step div{display:flex;flex-direction:column;gap:4px}.help-step b{font-size:10.5px}.help-step small{color:#91a392;font-size:10px}.compact-movement{border-bottom:1px solid #edf0eb;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 0}.compact-movement:last-child{border-bottom:0}.compact-movement>div{display:flex;flex-direction:column;gap:5px;min-width:0}.compact-movement strong{font-size:11px}.compact-movement span:not(.badge){font-size:9px;color:#a0b0a2}.stages-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:23px}.stage-card{min-width:0;text-align:left;position:relative;border:1px solid #e4ebe3;border-radius:15px;background:#fff;padding:25px 24px;min-height:188px;display:flex;flex-direction:column;align-items:start;gap:16px;transition:transform .17s,box-shadow .17s}.stage-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #254c3414;border-color:#c9dfcb}.stage-icon{width:47px;height:47px;border-radius:12px;display:grid;place-items:center}.stage-roasting{color:#c98b52;background:#fbf0e4}.stage-grinding{color:#629780;background:#eaf5ee}.stage-molding{color:#8b76ad;background:#f0ebf7}.stage-text span{font-size:9px;font-weight:800;letter-spacing:1.4px;color:#9bac9d}.stage-text h3{font-size:16px;margin:6px 0}.stage-text p{font-size:11px;color:#768e7c}.stage-text small{display:block;font-size:10px;color:#a8b6a7;margin-top:7px}.stage-add{position:absolute;right:20px;top:26px;width:30px;height:30px;border:1px solid #e0e9df;color:#5d8f6c;border-radius:9px;display:grid;place-items:center}.ingredient-entry{display:flex;align-items:center;gap:10px;background:#fafcf9;padding:12px;border:1px solid #ebf0e9;border-radius:10px}.ingredient-number{border-radius:8px;width:27px;height:27px;display:grid;place-items:center;background:#e9f2e9;color:#61846b;font-weight:800;font-size:11px}.ingredient-fields{flex:1;display:grid;grid-template-columns:2fr 1fr;gap:11px;min-width:0}.remove-input{border:0;background:#f4f3ef;color:#9b847a;width:30px;height:30px;border-radius:8px;display:grid;place-items:center}.add-ingredient{border:1px dashed #a6c2aa;border-radius:9px;padding:12px;color:#538269;background:#f9fcf8;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px}.form-hint{color:#94a89a;font-size:10.5px;line-height:1.5}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.recipe-card{padding:24px}.recipe-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.recipe-icon{width:45px;height:45px;background:#f3eddf;color:#b69862;border-radius:13px;display:grid;place-items:center}.recipe-meta{letter-spacing:1.4px;font-size:9px;color:#a7b5a8;font-weight:800}.recipe-card h3{font-size:17px;color:#2b4033;margin:8px 0}.recipe-card>p{font-size:11px;color:#91a095}.recipe-divide{height:1px;background:#ecf0eb;margin:19px 0}.recipe-ingredients{display:grid;gap:12px}.recipe-line{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#7f9183}.recipe-line strong{color:#2c4535}.recipe-total{border-top:1px solid #ecf0eb;display:flex;justify-content:space-between;padding-top:19px;margin-top:20px;align-items:center}.recipe-total span{font-size:9px;letter-spacing:1px;color:#a2b09e;font-weight:800}.recipe-total b{color:#387752}.recipe-card .recipe-note{font-size:10px;color:#aab4aa;margin-top:20px;line-height:1.5}.new-recipe-tile{min-height:265px;background:transparent;border:2px dashed #d7e4d6;border-radius:14px;color:#699175;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.new-recipe-tile>span{width:52px;height:52px;border-radius:15px;background:#e8f3e7;display:grid;place-items:center}.new-recipe-tile strong{color:#427458;font-size:12px}.new-recipe-tile small{font-size:10px;color:#96ab97}.new-recipe-tile:hover{background:#edf6ec}.recipe-form-line{display:flex;gap:10px;align-items:center}.recipe-form-line select{flex:1;width:1px}.percent-input{width:110px;position:relative}.percent-input input{padding-right:28px}.percent-input>span{position:absolute;right:13px;top:12px;color:#8da08f}.recipe-form-total{background:#fff3e9;border-radius:9px;color:#a57f5f;display:flex;justify-content:space-between;padding:13px;font-size:11px}.recipe-form-total.total-ok{background:#e9f4e8;color:#4d8b5f}.admin-summary{background:#eaf2e9;border:1px solid #dae9d8;border-radius:13px;display:flex;align-items:center;gap:17px;padding:21px 24px;margin-bottom:20px}.admin-shield{width:52px;height:52px;border-radius:13px;background:#fff;display:grid;place-items:center;color:#61926d}.admin-summary h3{font-size:13px;margin-bottom:7px}.admin-summary p{font-size:11px;color:#789280;line-height:1.6}.admin-section{margin-bottom:20px}.users-grid{display:grid;gap:7px}.user-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid #eff2ed;padding:13px 3px}.user-row:last-child{border-bottom:0}.user-avatar{width:38px;height:38px;border-radius:11px;background:#e9f2e7;color:#46805d;display:grid;place-items:center;font-weight:800}.user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.user-info strong{font-size:11.5px}.user-info small{font-size:10px;color:#9cafa0;overflow:hidden;text-overflow:ellipsis}.icon-button{width:35px;height:35px;border:0;border-radius:9px;color:#617a68;background:#f0f5ef;display:grid;place-items:center}.icon-button:hover{background:#e0eddf}.catalog-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.catalog-tab{border:1px solid #e5ece5;background:#fff;border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:7px;color:#829686;font-size:10px;font-weight:800}.catalog-tab-active{background:var(--theme-accent-soft);color:#3b7a53;border-color:#d4e7d4}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.catalog-item{padding:13px 12px;border:1px solid #edf1eb;border-radius:9px;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px}.catalog-item>div{display:flex;align-items:center;gap:9px}.catalog-dot{width:7px;height:7px;border-radius:50%;background:#83b492;display:inline-block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#162c24a3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:50;padding:18px}.modal{background:#fff;border-radius:17px;width:min(100%,560px);max-height:min(90vh,980px);display:flex;flex-direction:column;box-shadow:0 30px 100px #07150c44;animation:modal-in .19s ease-out}.modal-wide{width:min(100%,760px)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal-header{padding:23px 27px;border-bottom:1px solid #eaf0e9;display:flex;align-items:start;gap:15px;justify-content:space-between;flex-shrink:0}.modal-header h2{font-size:19px;color:#2d4434}.modal-header p{font-size:11.5px;color:#8ca193;line-height:1.55;margin-top:8px;max-width:575px}.modal-content{padding:25px 27px;overflow-y:auto;overscroll-behavior:contain}.modal-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #eef2eb;padding-top:18px}.trace-view{display:grid;gap:15px}.trace-unit{background:#eef6ed;border-radius:13px;display:flex;flex-direction:column;gap:6px;padding:17px}.trace-unit span{font-size:9px;letter-spacing:1px;color:#7a9c83;font-weight:800}.trace-unit strong{font-size:18px}.trace-unit small{font-size:11px;color:#71937a}.trace-view h3{font-size:12px;margin-top:7px}.trace-link{border:1px solid #e9eee8;border-radius:9px;padding:12px;display:flex;align-items:center;gap:10px;font-size:11px}.trace-link svg{color:#669576}.trace-link span{flex:1}.trace-link b{font-size:10px;color:#779584}.notice{position:fixed;bottom:22px;right:25px;z-index:99;max-width:min(430px,calc(100vw - 36px));display:flex;align-items:center;gap:11px;border-radius:11px;padding:14px 17px;color:#fff;font-size:12px;box-shadow:0 8px 25px #112d1e3c;animation:modal-in .18s ease-out}.notice-success{background:#315e48}.notice-error{background:#9b4842}.notice span{flex:1}.notice button{border:0;background:transparent;color:inherit}.form-error{padding:13px 15px;color:#a44539;background:#fff1ed;border:1px solid #f7dcd6;border-radius:9px;font-size:12px}.boot{min-height:100vh;display:grid;place-items:center}.mobile-menu,.mobile-scrim{display:none}.login-screen{height:100vh;min-height:630px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.login-left{background:radial-gradient(ellipse at 65% 100%,#355844 0,transparent 55%),#1d3028;position:relative;overflow:hidden;color:#fff;padding:53px max(40px,9vw);display:flex;flex-direction:column;justify-content:space-between}.login-left:before,.login-left:after{content:"";position:absolute;border:1px solid #81ab8040;border-radius:50%;pointer-events:none}.login-left:before{width:660px;height:660px;bottom:-390px;left:-120px}.login-left:after{width:480px;height:480px;bottom:-240px;left:90px}.login-brand{display:flex;align-items:center;gap:13px;position:relative;z-index:1}.login-brand strong{font:800 30px Manrope,sans-serif;letter-spacing:-1.6px}.login-brand small{font-size:9px;letter-spacing:2.3px;color:#c3d5c6;font-weight:700}.login-copy{position:relative;z-index:1;margin-bottom:20px}.login-kicker{color:#d6b486;letter-spacing:2.2px;font-size:10px;font-weight:800;margin-bottom:25px}.login-copy h1{font-size:clamp(43px,5vw,72px);line-height:1.15;letter-spacing:-3px;font-weight:800}.login-copy h1 em{font-family:Georgia,serif;color:#d7b68f;font-weight:400;letter-spacing:-3px}.login-copy p{font-size:15px;max-width:400px;color:#bfd2c4;line-height:1.8;margin-top:23px}.login-features{display:grid;gap:18px;margin-top:37px}.login-features>div{display:flex;align-items:center;gap:12px;color:#dce9da;font-size:12px;font-weight:600}.login-features svg{color:#d5b68f}.login-copyright{position:relative;z-index:1;color:#88a697;font-size:10px}.login-right{display:flex;align-items:center;justify-content:center;padding:55px 30px}.login-form{width:min(100%,415px);display:grid;gap:19px}.login-form-icon{width:57px;height:57px;border-radius:17px;background:#ecf4eb;color:#427455;display:grid;place-items:center;margin-bottom:5px}.login-overline{font-size:10px;letter-spacing:2px;font-weight:800;color:#62976c}.login-form h2{font-size:30px;line-height:1.3;color:#294032;letter-spacing:-1.2px;margin-top:-10px}.login-form>p{font-size:13px;color:#90a194;line-height:1.7;margin:-9px 0 10px}.login-form .field input{height:51px}.login-button{width:100%;height:51px;font-size:13px;flex-direction:row-reverse;justify-content:space-between;padding:13px 18px;margin-top:7px}.login-safe{color:#a1afa2;font-size:11px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px}@media(max-width:1250px){.sidebar{width:227px;flex-basis:227px}.page-content{padding:29px 28px 45px}.topbar{padding:0 28px}.stats-grid{gap:10px}.metric{padding:19px 15px}.metric-top>span{font-size:8px}.action-tile{padding:13px}.dashboard-grid{gap:13px}.form-layout{grid-template-columns:minmax(0,1.5fr) minmax(255px,.9fr)}}@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions{grid-template-columns:1fr 1fr}.dashboard-grid,.form-layout{grid-template-columns:1fr}.side-panels{grid-template-columns:1fr 1fr}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stages-grid{gap:9px}.stage-card{padding:19px 15px}.stage-text h3{font-size:14px}.catalog-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;transform:translate(-100%);transition:transform .2s;width:270px;box-shadow:15px 0 50px #0002}.sidebar-open{transform:translate(0)}.mobile-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0b261bb0;border:0;z-index:19}.mobile-menu{display:grid}.topbar{height:62px;padding:0 18px}.topbar-left{gap:9px}.topbar-chip{display:none}.topbar-avatar{width:30px;height:30px}.page-content{padding:25px 17px 37px}.page-heading{margin-bottom:22px;align-items:start}.page-heading h1{font-size:25px}.heading-date{display:none}.hero{min-height:230px}.hero-content{padding:27px}.hero h2{font-size:22px}.hero-decoration{right:-155px}.stats-grid{gap:10px}.metric{padding:17px 15px;min-height:133px}.metric-value{font-size:24px}.metric-top>span{font-size:8px;letter-spacing:.4px}.metric-icon{width:33px;height:33px}.quick-actions{grid-template-columns:1fr;gap:9px}.action-tile{min-height:76px}.panel{padding:19px}.overview-strip{padding:18px;gap:14px}.overview-spacer{flex-basis:100%;height:0}.overview-strip .btn{flex:1}.stages-grid{grid-template-columns:1fr;gap:11px}.stage-card{min-height:unset;flex-direction:row;align-items:center;gap:15px;padding:17px}.stage-text span{font-size:8px}.stage-text h3{margin:4px 0}.stage-text small{display:none}.stage-add{right:14px;top:50%;transform:translateY(-50%)}.stage-text{padding-right:30px}.recipe-grid,.side-panels{grid-template-columns:1fr}.section-title{align-items:start}.section-title h2{font-size:14px}.filters{align-items:stretch}.filters .search{max-width:none;width:100%}.pills{gap:3px}.pill{padding:9px 10px}.form-card{padding:20px}.form-grid{gap:13px}.form-submit{flex-direction:column;align-items:stretch}.form-submit .btn{width:100%}.app-footer{padding:0 17px 16px}.app-footer span:last-child{display:none}.modal-backdrop{padding:0;align-items:flex-end}.modal{border-radius:17px 17px 0 0;width:100%;max-height:93dvh}.modal-header,.modal-content{padding:19px}.ingredient-fields{grid-template-columns:1fr;gap:8px}.ingredient-entry{align-items:start}.ingredient-entry .remove-input{margin-top:22px}.admin-summary{padding:15px}.admin-summary p{font-size:10px}.catalog-grid{grid-template-columns:1fr}.catalog-tabs{gap:4px}.catalog-tab{padding:8px}.user-row{flex-wrap:wrap;gap:9px}.user-info{min-width:120px}.login-screen{height:auto;min-height:100dvh;display:flex;flex-direction:column}.login-left{padding:25px;min-height:230px}.login-brand strong{font-size:25px}.login-copy{margin-top:35px}.login-kicker{margin-bottom:10px;font-size:8px}.login-copy h1{font-size:35px}.login-copy p,.login-features,.login-copyright{display:none}.login-right{padding:42px 24px}.login-form h2{font-size:25px}}@media(max-width:420px){.page-heading h1,.metric-value{font-size:22px}.metric-top{gap:4px}.metric-icon{width:30px;height:30px}.badge-wrap{flex-wrap:wrap}.checks-row{grid-template-columns:1fr}.modal-actions .btn{flex:1}}:root{--theme-sidebar:#1d2f28;--theme-sidebar-panel:#294136;--theme-sidebar-active:#365948;--theme-accent:#44896a;--theme-accent-dark:#315e46;--theme-accent-soft:#e8f4e9;--theme-highlight:#e3a96f;--theme-surface:#fff;--theme-page:#f6f8f5;--theme-ink:#273930;--theme-subtle:#87988d;--theme-outline:#e8eee7}body{background:var(--theme-page);color:var(--theme-ink)}.card,.topbar{background:var(--theme-surface)}.brand-logo{width:46px;height:46px;object-fit:contain;border-radius:11px}.brand-company{font-size:10px;line-height:1.4;color:#9fb7a8;padding-left:3px}.combo{position:relative;min-width:0;width:100%}.combo-input-wrap{display:flex;align-items:center;position:relative}.combo-input{width:100%;padding-right:34px!important}.combo-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#6b7b6f;padding:5px}.combo-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--theme-surface);box-shadow:0 14px 45px #15251e27;border:1px solid var(--theme-outline);border-radius:12px;max-height:250px;overflow-y:auto;z-index:100;padding:5px;min-width:180px}.combo-option{display:block;width:100%;border:0;border-radius:7px;background:transparent;text-align:left;padding:11px 10px;font-size:13px;color:var(--theme-ink);white-space:normal;overflow-wrap:anywhere}.combo-option:hover,.combo-option[aria-selected=true]{background:var(--theme-accent-soft);color:var(--theme-accent-dark)}.combo-empty{padding:12px;color:#819080;font-size:12px}.combo-input:focus{border-color:var(--theme-accent)!important}.credential-code{font-size:22px;font-weight:800;letter-spacing:4px;font-variant-numeric:tabular-nums}.login-method{display:flex;gap:7px;margin-bottom:17px}.login-method button{flex:1;padding:10px;font-size:12px;border-radius:10px;border:1px solid var(--theme-outline);background:var(--theme-surface);color:var(--theme-ink)}.login-method .selected{border-color:var(--theme-accent);background:var(--theme-accent-soft);font-weight:700}.password-help{font-size:11px;color:var(--theme-subtle)}@media(max-width:650px){.combo-option{padding:14px 11px}.combo-menu{max-height:230px}}.brand.with-company-logo,.login-brand.with-company-logo{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.brand.with-company-logo .brand-logo,.login-brand.with-company-logo .brand-logo{display:block;width:clamp(130px,100%,190px);height:auto;max-height:105px;object-fit:contain;object-position:left center;border-radius:0}.brand.with-company-logo>div{width:100%}.login-brand.with-company-logo>strong{display:block}.brand.with-company-logo{padding-bottom:22px}.permission-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;margin:10px 0}.permission-check{display:flex;align-items:center;gap:10px;font-size:12px;padding:12px;border:1px solid var(--theme-outline);border-radius:10px;background:var(--theme-surface);cursor:pointer}.permission-check input{accent-color:var(--theme-accent);width:17px;height:17px}.register-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:13px;margin-bottom:16px}.register-toolbar .search{max-width:440px;flex:1;min-width:180px}.register-pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:16px;font-size:12px}.receipt-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px}.receipt-fact{border:1px solid var(--theme-outline);border-radius:10px;padding:12px;display:grid;gap:6px;min-width:0}.receipt-fact span{font-size:10px;color:var(--theme-subtle)}.receipt-fact strong{overflow-wrap:anywhere;font-size:13px}.history-entry{border-left:3px solid var(--theme-accent);padding:12px 16px;margin-bottom:13px;background:var(--theme-page);border-radius:0 9px 9px 0}.history-entry header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:7px}.history-entry pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}@media(max-width:760px){.brand.with-company-logo .brand-logo,.login-brand.with-company-logo .brand-logo{max-height:65px;width:min(175px,100%)}.login-left:has(.with-company-logo){min-height:270px}}
