:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Noto Sans TC,sans-serif;color:#2c3338;background:#f6f7f7;font-synthesis:none;font-weight:400;line-height:1.6;font-size:14px;--primary:#50575e;--dark:#2c3338;--muted:#8c8f94;--border:#e5e5e5;--orange:#787c82}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #a7aaad;outline-offset:3px}input:focus,select:focus{outline:2px solid #a7aaad;outline-offset:0;border-color:#8c8f94!important}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.6px;line-height:1.3;margin-bottom:10px;font-weight:650}h2{font-size:17px;line-height:1.4;font-weight:650;margin-bottom:8px}h3{font-size:15px;margin:22px 0 12px}p{margin-bottom:12px}b,strong{font-weight:620}small,.small{font-size:12px}.muted{color:#8c8f94}.danger-text{color:#787c82!important}.green-text{color:#646970}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#8c8f94;margin-bottom:12px}.btn{display:inline-flex;gap:7px;align-items:center;justify-content:center;border:1px solid transparent;background:var(--primary);color:#fff;padding:10px 17px;border-radius:7px;font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap;transition:background .15s,transform .15s}.btn:hover{background:#3c434a}.btn.secondary{background:#fff;color:#646970;border-color:#e5e5e5}.btn.secondary:hover{background:#f0f0f1}.btn.text{background:transparent;color:#646970;padding:6px 4px}.btn.text:hover{color:#3c434a;background:#f0f0f1}.btn.small{padding:6px 10px;font-size:11px}.btn.text.small{padding:5px}.icon-btn{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;padding:7px;border-radius:5px;color:#8c8f94}.icon-btn:hover{background:#f0f0f1;color:#50575e}.icon-btn.danger{color:#8c8f94}.badge{display:inline-flex;align-items:center;border-radius:4px;background:#f0f0f1;padding:3px 7px;color:#8c8f94;font-size:10px;font-weight:500;white-space:nowrap}.badge.green{background:#f0f0f1;color:#787c82}.badge.orange,.badge.blue{background:#f0f0f1;color:#8c8f94}.badge.gray{color:#8c8f94;background:#f0f0f1}.inline-link{display:inline-flex;align-items:center;gap:5px;color:#646970;background:none;border:0;padding:0;font-size:11px;font-weight:600}.inline-link:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:228px;position:fixed;inset:0 auto 0 0;background:var(--dark);color:#c3c4c7;display:flex;flex-direction:column;z-index:30;padding:26px 17px 0}.brand{display:flex;align-items:center;gap:10px;color:#50575e}.brand-mark{width:39px;height:42px;display:grid;place-items:center;border:1px solid #a7aaad;border-radius:9px;color:#787c82}.brand strong{display:block;font-size:19px;letter-spacing:2px;line-height:1.4;font-weight:600;white-space:nowrap}.brand strong span{font-size:8px;letter-spacing:1.2px;font-weight:400;margin-left:3px;opacity:.8}.brand small{font-size:8px;letter-spacing:1.7px;font-weight:400;color:#8c8f94;display:block;margin-top:3px}.brand.light{color:#e5e5e5}.brand.light .brand-mark{border-color:#646970;color:#c3c4c7}.sidebar-brand{padding:0 5px 25px}.workspace-label{font-size:11px;border:1px solid #50575e;border-radius:6px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;color:#c3c4c7;margin-bottom:28px;letter-spacing:.4px}.workspace-dot{background:#c3c4c7;width:5px;height:5px;border-radius:50%}.nav-label{font-size:9px;color:#787c82;letter-spacing:1.5px;padding-left:13px;margin-bottom:9px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;background:none;border:0;border-radius:6px;padding:11px 13px;font-size:12px;color:#a7aaad}.sidebar nav button svg{stroke-width:1.6}.sidebar nav button:hover{background:#3c434a;color:#e5e5e5}.sidebar nav button.active{background:#50575e;color:#f0f0f1}.sidebar nav button.active:before{content:"";position:absolute;left:0;height:22px;width:3px;background:#c3c4c7;border-radius:0 3px 3px 0}.sidebar nav button i{font-style:normal;font-size:9px;margin-left:auto;background:#646970;color:#dcdcde;padding:0 5px;border-radius:3px}.sidebar-bottom{margin-top:auto;padding-top:22px}.system-state{font-size:10px;padding:16px 13px 22px;color:#a7aaad}.system-state>span{display:inline-block;width:5px;height:5px;background:#c3c4c7;border-radius:50%;margin-right:7px}.system-state small{display:block;font-size:9px;margin:5px 0 0 13px;color:#787c82}.profile{display:flex;align-items:center;gap:10px;border:0;border-top:1px solid #3c434a;width:100%;background:transparent;color:#e5e5e5;text-align:left;padding:18px 6px}.avatar{display:grid;place-items:center;background:#c3c4c7;color:#3c434a;border-radius:7px;width:32px;height:34px;font-size:13px}.profile>span:nth-child(2){flex:1}.profile b{display:block;font-size:11px}.profile small{display:block;font-size:9px;color:#a7aaad;margin-top:3px}.main-shell{margin-left:228px;width:calc(100% - 228px);min-width:0}.topbar{height:67px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 35px}.breadcrumbs{display:flex;align-items:center;gap:14px;font-size:10px;color:#a7aaad}.breadcrumbs b{color:#787c82;font-weight:500}.breadcrumb-slash{color:#c3c4c7}.top-actions{display:flex;align-items:center;gap:13px}.secure-status{display:flex;align-items:center;gap:5px;font-size:9px;color:#8c8f94}.main-content{padding:17px 35px 0;max-width:1800px;margin:auto}.period-filter{display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:10px;color:#a7aaad;margin-bottom:16px}.period-filter input{border:1px solid #e5e5e5;background:#fff;border-radius:5px;color:#8c8f94;padding:5px 7px;font-size:10px;width:119px}.period-filter .btn{font-size:10px;padding:4px 10px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.page-head .eyebrow{font-size:9px;letter-spacing:1.7px;margin-bottom:9px}.page-head .muted{font-size:11px;margin:0}.head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-bottom:4px}.date-chip{border:1px solid var(--border);background:#fff;color:#8c8f94;font-size:10px;padding:7px 12px;border-radius:6px}.welcome-strip{border-radius:10px;background:linear-gradient(110deg,#f0f0f1,#f0f0f1);padding:23px 30px;min-height:173px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;margin-bottom:22px;border:1px solid #e5e5e5}.welcome-strip h2{font-size:21px;letter-spacing:.6px;color:#50575e;margin:10px 0 7px}.welcome-strip p{font-size:11px;color:#8c8f94;margin-bottom:11px}.welcome-strip .badge{font-size:8px;background:#e5e5e5;color:#8c8f94;padding:3px 7px;letter-spacing:1px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--border);border-radius:9px;padding:17px 18px 15px;min-width:0}.metric-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#8c8f94;margin-bottom:10px}.metric-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:#f6f7f7;color:#8c8f94}.metric strong{font-size:25px;color:#50575e;letter-spacing:-.6px;line-height:1.2}.metric p{font-size:9px;color:#a7aaad;margin:11px 0 0;white-space:normal}.metric.accent{background:#f0f0f1;border-color:#dcdcde}.metric.warning .metric-icon{background:#f6f7f7;color:#a7aaad}.metric.warning strong{color:#8c8f94}.panel{background:#fff;border:1px solid var(--border);border-radius:9px;overflow:hidden;margin-bottom:22px;min-width:0}.panel-head{padding:20px 22px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h2{font-size:13px;color:#646970;margin:0}.panel-head p{font-size:9px;color:#a7aaad;margin:5px 0 0}.chart-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:20px}.chart-grid .panel{min-height:355px}.chart-area{height:255px;margin:0 15px 12px 7px;min-width:0}.chart-note{font-size:9px;color:#8c8f94;margin:0 20px 14px}.donut-area{height:196px;position:relative;margin-top:-5px}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;padding-top:3px}.donut-center small{color:#a7aaad;font-size:8px}.donut-center b{font-size:17px;color:#646970;margin-top:5px}.cost-legend{display:grid;grid-template-columns:1fr 1fr;gap:10px 17px;padding:1px 23px 20px}.cost-legend>div{font-size:9px;display:flex;align-items:center;justify-content:space-between;gap:5px}.cost-legend span{display:flex;align-items:center;gap:6px;color:#8c8f94}.cost-legend i{display:inline-block;width:5px;height:5px;border-radius:50%}.cost-legend b{font-size:9px;color:#646970}.lower-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:20px}.table-scroll{overflow-x:auto;width:100%}table{border-collapse:collapse;white-space:nowrap;width:100%;text-align:left;font-size:11px}th{font-size:9px;color:#a7aaad;font-weight:400;background:#f6f7f7;padding:10px 20px;border-bottom:1px solid #f0f0f1}td{padding:15px 20px;border-bottom:1px solid #f0f0f1;color:#787c82;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fff}td b{font-size:10px;color:#646970}.cell-note{display:block;font-size:8px;color:#a7aaad;margin-top:4px;max-width:230px;overflow:hidden;text-overflow:ellipsis}.item-cell{display:flex;align-items:center;gap:10px}.item-cell span:last-child{display:flex;flex-direction:column;gap:4px}.item-cell small{font-size:8px;color:#a7aaad}.mini-icon{width:31px;height:33px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:#f0f0f1;color:#a7aaad}.mini-icon.raw,.mini-icon.packaging,.mini-icon.finished,.mini-icon.semi{background:#f0f0f1;color:#a7aaad}.quick-links{padding:0 20px 10px}.quick-link{display:flex;align-items:center;gap:11px;background:none;border:0;border-bottom:1px solid #f0f0f1;width:100%;padding:13px 0;text-align:left;color:#a7aaad}.quick-link:last-child{border:0}.quick-icon{width:32px;height:33px;display:grid;place-items:center;background:#f6f7f7;border-radius:7px;color:#a7aaad}.quick-link>span:nth-child(2){flex:1}.quick-link b{font-size:11px;color:#787c82;display:block}.quick-link small{font-size:9px;color:#a7aaad;display:block;margin-top:3px}.quick-link:hover b{color:var(--primary)}.app-footer{display:flex;justify-content:space-between;border-top:1px solid #f0f0f1;padding:18px 0;color:#a7aaad;font-size:8px;letter-spacing:.6px;margin-top:26px}.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:18px;border-bottom:1px solid var(--border);white-space:nowrap}.tabs button{border:0;background:transparent;color:#a7aaad;font-size:11px;padding:9px 15px 12px;position:relative}.tabs button.active{color:#646970;font-weight:600}.tabs button.active:after{content:"";height:2px;position:absolute;bottom:0;background:#787c82;left:12px;right:12px}.tabs span{font-size:8px;margin-left:6px;border-radius:3px;background:#f0f0f1;color:#a7aaad;padding:1px 4px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px}.search{display:flex;align-items:center;gap:8px;border:1px solid #e5e5e5;border-radius:6px;padding:0 10px;color:#a7aaad;background:#fff;max-width:350px;flex:1}.search input{padding:8px 0;border:0;outline:none;width:100%;font-size:10px;color:#787c82;background:transparent}.search input:focus{outline:none}.search input::placeholder{color:#c3c4c7}.row-actions{display:flex;align-items:center;gap:7px}.empty{text-align:center;padding:38px 20px;color:#c3c4c7;white-space:normal}.empty svg{opacity:.65}.empty h3{font-size:12px;color:#8c8f94;margin:10px 0 7px}.empty p{font-size:10px;margin:0;color:#a7aaad}.chart-area .empty{padding-top:72px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.recipe-card{padding:22px;margin:0}.recipe-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.recipe-card h2{font-size:17px}.recipe-lines{border-top:1px solid var(--border);padding:10px 0;margin-top:16px;min-height:130px}.recipe-lines>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0;font-size:11px;color:#8c8f94}.recipe-lines b{color:#787c82;font-size:10px}.recipe-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding-top:12px}.recipe-footer>span{font-size:9px;color:#a7aaad}.info-banner,.error-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;margin-bottom:20px;background:#f0f0f1;color:#8c8f94;font-size:10px}.error-banner{background:#f0f0f1;color:#787c82}.operational-facts{padding:10px 22px 24px}.operational-facts>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #f0f0f1;padding:17px 0;font-size:10px;color:#a7aaad}.operational-facts>div:last-child{border:0}.operational-facts strong{font-size:11px;font-weight:500;color:#787c82}.panel-copy{font-size:11px;padding:0 22px;color:#a7aaad;line-height:1.9}.settings-actions{display:flex;flex-wrap:wrap;gap:8px;padding:7px 22px 18px}.settings-grid .callout{margin:0 22px 15px}.file-label input{display:none}.table-note{font-size:10px;color:#a7aaad;padding:18px 22px 0;white-space:normal}.load-more{text-align:center;padding:18px}.demo-banner{display:flex;align-items:center;justify-content:center;gap:8px;background:#f6f7f7;color:#8c8f94;font-size:9px;padding:7px 12px}.demo-banner span{font-size:8px;border:1px solid #dcdcde;border-radius:3px;padding:0 5px}.modal{border:1px solid #e5e5e5;border-radius:13px;width:min(720px,calc(100% - 24px));padding:0;color:#646970;background:#fff;box-shadow:0 24px 70px #2c333826;max-height:90dvh;overflow:auto}.modal::backdrop{background:#2c333866;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:23px 26px 18px;border-bottom:1px solid #f0f0f1}.modal-head h2{font-size:18px;margin:0;color:#646970}.modal-head .eyebrow{font-size:8px;margin-bottom:5px}.form-body{padding:22px 26px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;min-width:0}.field>span{font-size:11px;color:#8c8f94;font-weight:500}.field input,.field select,.field textarea{width:100%;border:1px solid #e5e5e5;border-radius:6px;min-height:40px;padding:9px 11px;color:#646970;background:#fff;font-size:12px}.field input::placeholder{color:#c3c4c7;font-size:11px}.field small{font-size:9px;color:#a7aaad;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.checkbox{display:flex;align-items:flex-start;gap:7px;font-size:10px;color:#8c8f94;margin:10px 0;line-height:1.8}.checkbox input{accent-color:#787c82;margin-top:3px}.callout{background:#f6f7f7;border:1px solid #f0f0f1;border-radius:6px;padding:13px 15px;font-size:11px;color:#8c8f94;line-height:1.9;margin:15px 0}.preview-line{display:flex;align-items:center;justify-content:space-between;font-size:11px;gap:14px;padding:7px 0;border-bottom:1px solid #f0f0f1}.preview-line:last-child{border:0}.preview-line span{color:#a7aaad}.preview-line b{font-size:10px;color:#787c82}.form-footer{display:flex;gap:10px;justify-content:flex-end;padding:18px 26px;background:#fff;border-top:1px solid var(--border)}.form-error{font-size:11px;color:#787c82;margin:0 26px 13px;white-space:normal}.form-error:empty{display:none}.line-row{display:grid;grid-template-columns:minmax(130px,2fr) minmax(72px,.8fr) minmax(70px,.7fr) minmax(70px,.8fr) auto;gap:10px;align-items:start}.line-row:has(.field:nth-child(3):last-child){grid-template-columns:minmax(140px,2fr) minmax(70px,1fr) minmax(70px,.8fr)}.line-row>.field{margin-bottom:11px}.line-row select,.line-row input{font-size:11px;padding:8px}.line-row>.icon-btn{margin-top:28px}.operations-row{grid-template-columns:2fr 1fr auto!important}.line-editor{padding:12px;background:#fff;border:1px solid #f0f0f1;border-radius:7px;margin-bottom:14px}.detail-header{display:flex;justify-content:space-between;align-items:center}.detail-header b{font-size:16px}.detail-header p{font-size:10px;margin-top:4px}.detail-header .badge{align-self:start}.toast{position:fixed;bottom:25px;left:calc(50% + 90px);transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#f0f0f1;border:1px solid #c3c4c7;color:#646970;border-radius:8px;padding:12px 15px;box-shadow:0 7px 25px #2c333820;z-index:100;font-size:12px;max-width:min(600px,90vw);white-space:normal}.toast.error{background:#f6f7f7;border-color:#c3c4c7;color:#787c82}.toast>span{flex:1}.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:#8c8f94;font-size:12px}.gate{min-height:100vh;display:grid;place-items:center;padding:20px}.gate .panel{width:min(460px,100%);padding:30px}.gate .brand{margin-bottom:30px}.gate h1{font-size:22px}.gate .muted{font-size:11px;margin-bottom:24px}.gate .form-error{margin:0 0 14px}.floating-error{position:fixed;bottom:20px;right:20px;background:#f0f0f1;color:#8c8f94;padding:10px;font-size:12px;border-radius:6px}.mobile-menu,.mobile-close,.nav-backdrop{display:none}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1.05fr}.login-story{background:var(--dark);color:#e5e5e5;padding:45px 55px;position:relative;overflow:hidden;display:flex;flex-direction:column}.login-copy{margin:auto 0;position:relative;z-index:1}.login-copy .eyebrow{color:#a7aaad;font-size:8px;letter-spacing:1.5px;margin-top:65px}.login-copy h1{font-size:47px;font-weight:400;line-height:1.55;letter-spacing:4px}.login-copy>p:not(.eyebrow){font-size:12px;color:#a7aaad;line-height:2.1;margin-bottom:10px}.login-copyright{font-size:8px;letter-spacing:1.6px;color:#8c8f94;margin-top:150px}.login-main{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px;background:#f6f7f7;position:relative}.login-form-wrap{width:min(350px,100%)}.login-form-wrap h2{font-size:25px;letter-spacing:.5px;margin-bottom:9px;color:#50575e}.login-form-wrap>.muted{font-size:11px;margin-bottom:30px}.login-lock{width:47px;height:47px;border-radius:12px;display:grid;place-items:center;background:#f0f0f1;color:#a7aaad;margin-bottom:24px}.login-form-wrap form>.btn{width:100%;justify-content:space-between;margin-top:8px;padding:12px 16px}.login-form-wrap .field{margin-bottom:20px}.login-form-wrap .form-error{margin:0 0 12px}.login-help{font-size:9px;line-height:2;color:#a7aaad;margin-top:22px}.login-foot{position:absolute;bottom:28px;left:40px;right:40px;display:flex;justify-content:space-between;color:#a7aaad;font-size:8px;letter-spacing:1px}.demo-login{padding:10px 12px;background:#f0f0f1;color:#8c8f94;font-size:9px;border-radius:6px;margin-bottom:22px}@media(min-width:1650px){:root{font-size:15px}.main-content{padding-left:45px;padding-right:45px}.page-head .muted{font-size:13px}.panel-head h2{font-size:15px}td,td b{font-size:12px}.metric strong{font-size:30px}}@media(max-width:1150px){.sidebar{width:205px;padding-left:12px;padding-right:12px}.sidebar .brand strong{font-size:17px}.sidebar .brand strong span{font-size:6px}.main-shell{margin-left:205px;width:calc(100% - 205px)}.main-content{padding-left:22px;padding-right:22px}.topbar{padding:0 23px}.chart-grid,.lower-grid{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:15px}.metric{padding:14px 13px}.metric strong{font-size:21px}.metric-grid{gap:12px}.page-head{align-items:start}.head-actions{flex-wrap:wrap;justify-content:flex-end}.page-head h1{font-size:25px}.cost-legend{padding:5px 15px 20px;gap:10px}.cost-legend>div{flex-wrap:wrap}.welcome-strip{padding:22px}}@media(max-width:950px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid,.lower-grid{grid-template-columns:minmax(0,1fr)}.lower-grid .quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-link{border:0}.quick-link>svg{display:none}.chart-grid .panel{min-height:320px}.donut-area{height:200px}.cost-legend{max-width:450px;margin:auto;padding-bottom:22px}.page-head .date-chip{display:none}}@media(max-width:700px){.sidebar{width:228px;transform:translate(-100%);transition:transform .2s}.sidebar.visible{transform:translate(0)}.main-shell{margin-left:0;width:100%}.mobile-menu,.mobile-close{display:inline-flex}.mobile-close{margin-left:auto;color:#a7aaad}.sidebar-brand{display:flex;align-items:center}.nav-backdrop{display:block;position:fixed;inset:0;z-index:25;background:#2c333866;border:0}.topbar{height:57px;padding:0 14px}.breadcrumbs{gap:9px}.secure-status{display:none}.top-actions{gap:7px}.main-content{padding:15px 15px 0}.period-filter{gap:5px;margin:0 0 20px}.period-filter>span:first-child{margin-right:auto;font-size:8px}.period-filter input{width:105px;font-size:9px;padding:5px 3px}.period-filter .btn{padding:5px 7px}.page-head{gap:14px;margin-bottom:20px;flex-direction:column}.page-head h1{font-size:26px}.page-head .eyebrow{font-size:8px}.head-actions{justify-content:flex-start;margin:0}.welcome-strip{padding:20px 17px;min-height:160px}.welcome-strip h2{font-size:18px}.welcome-strip p{font-size:9px;max-width:215px}.metric-grid{gap:10px;margin-bottom:18px}.metric{padding:13px;min-height:112px}.metric strong{font-size:22px}.metric-label{font-size:9px;margin-bottom:10px}.metric-icon{width:24px;height:25px}.metric-icon svg{width:15px}.metric p{font-size:8px;margin-top:9px;line-height:1.7}.panel{margin-bottom:17px}.panel-head{padding:17px 17px 0}.panel-head h2{font-size:13px}.panel-head p{font-size:8px}.panel-head .inline-link{font-size:9px}.chart-grid,.lower-grid{gap:0}.chart-area{height:240px;margin-left:0;margin-right:10px}.chart-grid .panel{min-height:320px}.lower-grid .quick-links{display:block}.quick-link>svg{display:block}.quick-link{border-bottom:1px solid #f0f0f1}.chart-grid .panel:last-child{min-height:330px}.cost-legend{font-size:10px;padding:0 25px 22px}.cost-legend>div,.cost-legend b{font-size:10px}.demo-banner{font-size:8px;line-height:1.8;justify-content:flex-start}.demo-banner span{flex:none}th{padding:10px 14px}td{padding:14px}.tabs button{padding-left:10px;padding-right:10px}.toolbar{padding:14px;flex-wrap:wrap}.toolbar .search{min-width:200px}.toolbar .checkbox{margin:0;font-size:9px}.recipe-grid{grid-template-columns:1fr}.recipe-card{padding:19px}.app-footer{font-size:7px;gap:15px;margin-top:20px}.app-footer span:last-child{white-space:nowrap}.modal{max-height:95dvh;border-radius:10px}.modal-head{padding:19px 18px 15px}.form-body{padding:18px}.form-grid{grid-template-columns:1fr}.form-footer{padding:14px 18px;position:sticky;bottom:0}.form-error{margin:0 18px 14px}.line-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0 9px}.line-row>.field:first-child{grid-column:1/-1}.line-row>.icon-btn{margin:0 0 10px;align-self:center;justify-self:end}.line-editor{padding:12px}.operations-row>.field:first-child{grid-column:1/-1}.toast{left:50%;width:calc(100% - 30px);bottom:15px;font-size:11px}.info-banner{font-size:9px;align-items:flex-start}.info-banner svg{flex:none}.settings-actions{padding-left:17px;padding-right:17px}.operational-facts{padding:0 17px 15px}.operational-facts strong{font-size:10px}.login-page{grid-template-columns:1fr;min-height:100dvh}.login-story{padding:25px 25px 20px;height:auto;min-height:200px}.login-copy{margin:0}.login-copy .eyebrow{margin-top:18px;font-size:6px;margin-bottom:9px}.login-copy h1{font-size:25px;line-height:1.5;letter-spacing:2px;margin:0}.login-copy>p:not(.eyebrow){display:none}.login-copyright{display:none}.login-main{padding:32px 25px 70px;align-items:start;min-height:590px}.login-form-wrap{max-width:400px;margin:auto}.login-lock{display:none}.login-form-wrap>.eyebrow{font-size:8px;margin-bottom:8px}.login-form-wrap h2{font-size:23px}.login-form-wrap>.muted{margin-bottom:24px}.login-foot{bottom:17px;left:25px;right:25px}.login-help{font-size:9px}.gate .panel{padding:24px}.gate .brand{margin-bottom:24px}}.sidebar nav button{font-size:13px;color:#c3c4c7}.sidebar .brand strong{font-size:22px;letter-spacing:2px}.brand small{font-size:7px;letter-spacing:1px}.page-head .muted{font-size:13px;color:#787c82}.panel-head h2{font-size:15px}.panel-head p{font-size:11px;color:#8c8f94}.metric-label{font-size:12px;color:#787c82}.metric p{font-size:11px;color:#787c82}.metric strong{font-size:27px}.badge{font-size:11px}.btn,.btn.small,.btn.text.small{font-size:12px}.quick-link b{font-size:13px}.quick-link small{font-size:11px;color:#8c8f94}.cost-legend>div,.cost-legend b{font-size:11px}.cost-legend span{color:#787c82}.donut-center small{font-size:10px;color:#787c82}.donut-center b{font-size:18px}th{font-size:11px;color:#787c82}td{font-size:12px;color:#646970}td b{font-size:12px}.item-cell small,.cell-note{font-size:10px;color:#8c8f94}.recipe-lines>div{font-size:12px;color:#787c82}.recipe-lines b{font-size:12px}.recipe-footer>span{font-size:11px;color:#8c8f94}.field>span{font-size:13px;color:#646970}.field input,.field select,.field textarea{font-size:14px}.field small{font-size:11px;color:#8c8f94}.checkbox,.callout,.preview-line{font-size:12px;color:#787c82}.preview-line b{font-size:12px}.info-banner,.table-note{font-size:12px;color:#787c82}.search input{font-size:12px}.tabs button{font-size:13px}.toolbar .muted{font-size:11px}.form-error{font-size:13px}.welcome-strip p{font-size:12px;color:#787c82}.welcome-strip .badge{font-size:10px}.welcome-strip .inline-link{font-size:12px}.demo-banner{font-size:11px;color:#787c82}.demo-banner span{font-size:10px}.panel-copy{font-size:12px;color:#8c8f94}.operational-facts>div{font-size:12px;color:#8c8f94}.operational-facts strong{font-size:12px}.login-help{font-size:11px;color:#8c8f94}.login-form-wrap>.muted{font-size:13px}.login-copy>p:not(.eyebrow){font-size:14px}.login-copy h1{font-size:44px}.login-form-wrap .eyebrow{font-size:10px}.chart-note{font-size:11px}@media(max-width:700px){.metric strong{font-size:23px}.metric-label{font-size:11px}.metric p{font-size:10px}.page-head .muted{font-size:12px}.welcome-strip h2{font-size:17px}.welcome-strip p{font-size:11px}.demo-banner,.demo-banner span{font-size:9px}.tabs button{font-size:12px}.panel-head h2{font-size:14px}.panel-head p{font-size:10px}.info-banner{font-size:11px}.form-grid{grid-template-columns:1fr}.login-copy h1{font-size:25px}.sidebar .brand strong{font-size:22px}}.fulfillment-summary{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.fulfillment-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:190px;max-width:280px}.demand-line{display:grid;gap:5px;margin:8px 0;min-width:155px}.demand-line small,.deadline-lines span{font-size:12px;color:#646970}.deadline-lines{display:grid;gap:6px;min-width:165px}.fulfillment-table td{vertical-align:top}.fulfillment-table td p{margin:8px 0}.fulfillment-table .toolbar .field{margin:0;width:210px}.sidebar nav{overflow-y:auto;min-height:0}.sidebar .sidebar-bottom{margin-top:10px}.fulfillment-table td,.fulfillment-table td b{font-size:13px}@media(max-width:700px){.fulfillment-table table,.fulfillment-table tbody,.fulfillment-table tr,.fulfillment-table td{display:block;width:100%;min-width:0}.fulfillment-table thead{display:none}.fulfillment-table tr{border-bottom:5px solid #f0f0f1;padding:12px 0}.fulfillment-table td{border:0;padding:8px 16px;white-space:normal}.fulfillment-actions{max-width:none;min-width:0}.fulfillment-table .table-scroll{overflow:visible}.deadline-lines{min-width:0}.fulfillment-table td p{margin:6px 0}.fulfillment-table td:before{display:block;font-size:11px;color:#787c82;margin-bottom:5px}.fulfillment-table td:nth-child(2):before{content:"商品與備貨"}.fulfillment-table td:nth-child(3):before{content:"付款／開工提醒"}.fulfillment-table td:nth-child(4):before{content:"交期／操作"}}:root{--primary:#3858e9;--primary-hover:#2140d6;--dark:#1e1e1e;--text:#1e1e1e;--muted:#50575e;--border:#dcdcde;--canvas:#f0f0f1;--surface:#ffffff;--blue-wash:#eef2ff;--chart-material:#3858e9;--chart-labor:#1e1e1e;--chart-machine:#7b90ff;--chart-other:#787c82;--chart-estimated:#aebaff;color:var(--text);background:var(--canvas)}button:focus-visible,a:focus-visible{outline-color:var(--primary)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);border-color:var(--primary)!important}.muted,.eyebrow,.page-head .muted,.metric-label,.metric p,.panel-head p,.cell-note,.item-cell small,.recipe-footer>span,.field small,.checkbox,.panel-copy,.table-note,.operational-facts>div,.search input::placeholder,.quick-link small,.empty,.empty p,.chart-note,.cost-legend span,.donut-center small,.app-footer,.login-help,.login-foot{color:var(--muted)}h1,h2,h3,.panel-head h2,.metric strong,td,td b,th,.recipe-lines>div,.recipe-lines b,.field>span,.field input,.field select,.field textarea,.preview-line,.preview-line b,.operational-facts strong,.quick-link b,.cost-legend b,.donut-center b,.login-form-wrap h2{color:var(--text)}.btn:hover{background:var(--primary-hover)}.btn.secondary{color:var(--primary);border-color:var(--border);background:var(--surface)}.btn.secondary:hover,.btn.text:hover{background:var(--blue-wash);color:var(--primary-hover)}.btn.text,.inline-link,.green-text{color:var(--primary)}.icon-btn{color:#646970}.icon-btn:hover{background:var(--blue-wash);color:var(--primary)}.sidebar{background:var(--dark);color:#f0f0f1}.brand{color:var(--text)}.brand-mark{border-color:var(--primary);color:var(--primary)}.brand small{color:#646970}.brand.light,.brand.light small{color:#fff}.brand.light .brand-mark{color:#aebaff;border-color:#646970}.workspace-label{color:#f0f0f1;border-color:#50575e}.workspace-dot{background:#aebaff}.nav-label,.system-state small,.profile small{color:#c3c4c7}.sidebar nav button{color:#f0f0f1}.sidebar nav button:hover{background:#2c3338;color:#fff}.sidebar nav button.active{background:var(--primary);color:#fff}.sidebar nav button.active:before{background:#aebaff}.sidebar nav button i{background:#fff;color:#1e1e1e}.system-state{color:#dcdcde}.system-state>span{background:#aebaff}.profile{color:#fff;border-color:#50575e}.avatar{background:#3858e9;color:#fff}.breadcrumbs,.breadcrumbs b,.secure-status,.period-filter,.period-filter input,.date-chip{color:var(--muted)}.topbar,.panel,.metric,.date-chip,.search{background:var(--surface)}.period-filter input,.search{border-color:var(--border)}.welcome-strip{background:linear-gradient(110deg,#eef2ff,#f6f7ff);border-color:#dce2ff}.welcome-strip h2{color:var(--text)}.welcome-strip p{color:var(--muted)}.welcome-strip .badge,.metric-icon,.quick-icon,.login-lock{color:var(--primary);background:#e5eaff}.metric.accent{background:var(--blue-wash);border-color:#cbd4ff}.metric.warning strong,.danger-text{color:#996800!important}.metric.warning .metric-icon{background:#fff8e5;color:#996800}.badge{background:#f0f0f1;color:#50575e}.badge.green,.badge.blue{background:#e5eaff;color:#2744c4}.badge.orange{background:#fff8e5;color:#855c00}.badge.gray{background:#f0f0f1;color:#50575e}th{background:#f6f7f7}th,td{border-color:#e5e5e5}tbody tr:hover{background:#f6f7ff}.mini-icon,.mini-icon.raw,.mini-icon.semi,.mini-icon.finished,.mini-icon.packaging{background:#eef2ff;color:#3858e9}.tabs button{color:var(--muted)}.tabs button.active{color:var(--primary)}.tabs button.active:after{background:var(--primary)}.tabs span{background:#e5eaff;color:#2744c4}.field input,.field select,.field textarea{border-color:#a7aaad;background:#fff}.field input::placeholder,.search input::placeholder{color:#646970}.checkbox input{accent-color:var(--primary)}.info-banner,.callout{background:var(--blue-wash);border-color:#cbd4ff;color:#2744c4}.line-editor,.form-footer{background:#f6f7f7;border-color:var(--border)}.modal{color:var(--text);border-color:var(--border);box-shadow:0 24px 70px #1e1e1e26}.modal::backdrop,.nav-backdrop{background:#1e1e1e66}.modal-head h2{color:var(--text)}.form-error,.icon-btn.danger{color:#b32d2e}.error-banner,.floating-error,.toast.error{background:#fcf0f1;color:#8a2424;border-color:#e8b9bb}.toast{background:#eef2ff;border-color:#aebaff;color:#2744c4}.demo-banner,.demo-login{background:#fff8e5;color:#855c00}.demo-banner span{border-color:#d8bd72}.loading{color:var(--muted)}.login-story{background:var(--dark);color:#fff}.login-copy .eyebrow{color:#aebaff}.login-copy h1{color:#fff;letter-spacing:2px}.login-copy>p:not(.eyebrow),.login-copyright{color:#dcdcde}.login-main{background:#fff}.login-help{line-height:1.9}.recharts-cartesian-axis-tick text{fill:#50575e}.recharts-cartesian-grid line{stroke:#e5e5e5}.recharts-default-tooltip{background-color:#fff!important;border-color:#dcdcde!important}@media(max-width:700px){.mobile-close{color:#f0f0f1}}
