@font-face{font-family:IBM Plex Sans KR;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/IBMPlexSansKR-Regular-BN6ufgM4.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans KR;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/IBMPlexSansKR-Medium-CwoSX12N.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans KR;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/IBMPlexSansKR-SemiBold-CS0ppiEk.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/IBMPlexMono-Regular-Du0PCiXT.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/IBMPlexMono-Medium-CiYsa3y2.woff2)format("woff2")}@font-face{font-family:Noto Serif KR;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/noto-serif-kr-latin-600-normal-D1G7jVT2.woff2)format("woff2");unicode-range:U+0-24F}@font-face{font-family:Noto Serif KR;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/noto-serif-kr-korean-600-normal-BzrM9Tn9.woff2)format("woff2");unicode-range:U+11??,U+3000-303F,U+3130-318F,U+AC00-D7A3,U+A960-A97F,U+D7B0-D7FF,U+FF00-FFEF}:root{--paper:#e7e1d2;--paper-light:#f1ecdf;--ink:#242a2a;--muted:#6f7169;--rule:#7c807a;--rule-light:#b5b3a9;--indigo:#102d45;--indigo-2:#193e59;--moss:#3f735d;--moss-light:#d9e0ce;--rust:#a95536;--rust-light:#efe0d3;--mustard:#b68a1c;--mustard-light:#eee2bb;--blue:#24537b;--blue-light:#d9e5e7;--ui:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;--display:"Noto Serif KR","AppleMyungjo",serif;--mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;--serif:var(--display);--condensed:var(--ui);font-family:var(--ui);color:var(--ink);background:var(--paper);font-synthesis:none;font-size:14px}*{box-sizing:border-box}html{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}body{min-width:1180px;min-height:100vh;font-family:var(--ui);letter-spacing:-.018em;background-color:var(--paper);background-image:linear-gradient(90deg,#0000 0 97%,#2d322f08 100%),repeating-linear-gradient(0deg,#4a4b4206 0 1px,#0000 1px 4px);margin:0;font-weight:400}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--rust);outline-offset:2px}.shell{grid-template-columns:236px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--indigo);color:#ede9dc;background-image:linear-gradient(90deg,#0000 0 88%,#ffffff06 88% 89%,#0000 89%),repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 4px);border-right:1px solid #092033;flex-direction:column;width:236px;height:100vh;padding:0 14px 18px;display:flex;position:fixed}.sidebar:after{content:"";opacity:.92;background:repeating-linear-gradient(90deg,#e7dfcd 0 2px,#a84f37 2px 4px,#e7dfcd 4px 6px,#18394e 6px 8px);width:13px;position:absolute;top:0;bottom:0;right:0}.brand{align-items:center;gap:13px;padding:41px 14px 43px;display:flex}.brand>div{width:auto;height:auto;font-family:var(--serif);letter-spacing:-5px;background:0 0;font-size:52px;font-weight:600;line-height:.9;display:block}.brand b{font-family:var(--serif);font-size:18px;font-weight:600}.brand small{color:#c7c7bd;font-family:var(--mono);letter-spacing:.02em;margin-top:7px;font-size:10px;display:block}.nav-group{border-bottom:1px solid #e6e4d752;margin-right:10px;padding:15px 0 14px}.nav-group:last-of-type{border:0}.nav-group em{color:#c9c9bd;font-family:var(--condensed);letter-spacing:.04em;margin:0 12px 8px;font-size:12px;font-style:normal;display:block}.nav-group a{color:#e8e8df;border:1px solid #0000;border-radius:0;align-items:center;gap:14px;margin:2px 0;padding:10px 12px;font-size:15px;text-decoration:none;display:flex;position:relative}.nav-group a svg{stroke-width:1.55px}.nav-group a:hover{background:#ebe8da14}.nav-group a.active{color:#fff;background:#23465f;border-color:#bfc3bb}.nav-group a.active:after{content:"";background:repeating-linear-gradient(0deg,#f0e9d9 0 3px,#ba563a 3px 6px);width:6px;position:absolute;top:0;bottom:0;right:-12px}.sidebar-bottom{color:#cfcec2;font-family:var(--condensed);margin-top:auto;padding:12px;font-size:13px}main{grid-column:2;min-width:0}.topbar{border-bottom:2px solid var(--rule);background:#f1ecdfa6;align-items:center;gap:20px;height:82px;padding:0 28px;display:flex;position:relative}.topbar:after{content:"";border-bottom:1px solid var(--rule-light);position:absolute;bottom:-6px;left:28px;right:28px}.hamburger{display:none}.icon-button{color:var(--indigo);background:0 0;border:0;place-items:center;padding:5px;display:grid}.search-wrap{border:1px solid var(--ink);width:395px;height:42px;color:var(--ink);background:#faf7ed80;border-radius:0;align-items:center;gap:9px;margin-left:auto;padding:0 11px;display:flex;position:relative}.search-wrap input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:14px}.search-wrap input::placeholder{color:#72736d}.search-wrap kbd{font-family:var(--mono);border:1px solid var(--rule-light);color:var(--muted);background:var(--paper-light);border-radius:0;padding:1px 5px;font-size:10px}.search-results{background:var(--paper-light);border:1px solid var(--ink);z-index:20;border-radius:0;position:absolute;top:46px;left:-1px;right:-1px;overflow:hidden;box-shadow:5px 6px #1c282b2e}.search-results button{text-align:left;background:0 0;border:0;justify-content:space-between;width:100%;padding:11px 13px;display:flex}.search-results button:hover{background:var(--blue-light)}.search-results span{color:var(--blue);font-family:var(--mono);font-size:11px}.search-results p{color:var(--muted);padding:8px 13px}.reset{color:var(--indigo);background:0 0;border:0;align-items:center;gap:7px;font-size:14px;font-weight:600;display:flex}.reset svg{stroke-width:1.6px}.page-head{justify-content:space-between;align-items:flex-start;padding:27px 29px 16px;display:flex}.page-head:before{content:"JINWOO TEXTILE\a DAEGU, KOREA";white-space:pre;border:1px solid var(--rule);font:10px/1.35 var(--mono);letter-spacing:.04em;color:var(--muted);order:2;margin-left:18px;padding:8px 16px}.page-head h1{font-family:var(--serif);letter-spacing:-1.6px;margin:0 0 7px;font-size:32px;line-height:1.2}.page-head p{color:#454946;margin:0;font-size:15px}.page{padding:0 29px 32px}.card{border:1px solid var(--rule);background:#f1ecdf6b;border-radius:0}.section-title{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:13px 17px;display:flex}.section-title h2{font-family:var(--serif);letter-spacing:-.5px;margin:0;font-size:17px}.section-title .actions{gap:8px;display:flex}.button{border:1px solid var(--indigo);background:var(--indigo);color:#f3eee0;border-radius:0;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.button:hover{background:var(--indigo-2)}.button.secondary{border-color:var(--rule);color:var(--ink);background:0 0}.button.secondary:hover{background:#d9d6ca}.button.danger{background:var(--rust);border-color:var(--rust)}.button.mint{background:var(--moss);border-color:var(--moss)}.grid{gap:17px;display:grid}.kpis{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(5,1fr);margin-bottom:22px;position:relative}.kpis:before{content:"KPI";color:var(--blue);font:600 12px var(--condensed);letter-spacing:.08em;writing-mode:vertical-rl;position:absolute;top:21px;left:-27px;transform:rotate(180deg)}.kpis:after{content:"";background:repeating-linear-gradient(90deg,transparent 0 9px,var(--rule-light) 9px 10px);opacity:.75;height:8px;position:absolute;bottom:-11px;left:0;right:0}.kpi{border:0;border-right:1px solid var(--rule);background:0 0;min-height:122px;padding:17px 20px 20px;display:block;position:relative}.kpi:last-child{border-right:0}.kpi-icon{display:none}.kpi div span{color:#454946;font-size:14px;font-weight:600;display:block}.kpi b{font-family:var(--serif);color:var(--blue);letter-spacing:-2px;margin-top:12px;font-size:48px;line-height:1;display:block}.kpi:nth-child(3) b{color:var(--moss)}.kpi:nth-child(4) b{color:var(--indigo)}.kpi:nth-child(5) b{color:var(--mustard)}.table-wrap{overflow:auto}.table{border-collapse:collapse;white-space:nowrap;width:100%}.table th{border-bottom:1px solid var(--rule);border-right:1px dotted var(--rule-light);color:#454846;font-family:var(--condensed);letter-spacing:.02em;text-align:left;background:#d6d3c58c;padding:10px 13px;font-size:12px;font-weight:600}.table th:last-child{border-right:0}.table td{color:var(--ink);border-top:1px solid #bab8ad;border-right:1px dotted #c4c1b5;padding:11px 13px;font-size:13px}.table td:last-child{border-right:0}.table tbody tr{cursor:pointer}.table tbody tr:hover,.table tbody tr.selected{background:#d8e1df}.mono{font-family:var(--mono);letter-spacing:-.04em;font-size:11px}.muted{color:var(--muted)}.pill{border:1px solid var(--rule);font-family:var(--condensed);color:var(--ink);background:#f1ecdf80;border-radius:0;align-items:center;gap:5px;padding:3px 6px;font-size:12px;display:inline-flex}.pill i{background:var(--muted);border-radius:0;width:5px;height:5px}.pill.mint{border-color:var(--moss);color:var(--moss);background:var(--moss-light)}.pill.mint i{background:var(--moss)}.pill.blue{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}.pill.blue i{background:var(--blue)}.pill.amber{border-color:var(--mustard);color:#715614;background:var(--mustard-light)}.pill.amber i{background:var(--mustard)}.pill.violet{color:#765b73;background:#e7dce5;border-color:#765b73}.pill.violet i{background:#765b73}.pill.red{border-color:var(--rust);color:var(--rust);background:var(--rust-light)}.pill.red i{background:var(--rust)}.progress{min-width:106px;color:var(--ink);font:11px var(--mono);align-items:center;gap:8px;display:flex}.progress span{background:var(--moss);z-index:1;border-radius:0;min-width:2px;max-width:75px;height:5px;display:block;position:relative}.progress{position:relative}.progress:after{content:"";z-index:0;background:#d0cec2;border:1px solid #98998e;border-radius:0;width:75px;height:5px;position:absolute;left:0}.progress b{margin-left:0;font-weight:500}.empty{text-align:center;color:var(--muted);padding:44px}.filterbar{border-bottom:1px solid var(--rule);background:#ded9c94d;align-items:center;gap:0;padding:12px 16px;display:flex}.filterbar button,.tab{border:1px solid var(--rule);color:var(--ink);background:0 0;border-right:0;border-radius:0;padding:6px 11px;font-size:13px}.filterbar button:last-of-type{border-right:1px solid var(--rule)}.filterbar button.active,.tab.active{background:var(--indigo);border-color:var(--indigo);color:#f5efe0}.filterbar select{margin-left:auto}.filterbar .muted{margin-left:13px;font-size:12px}.field{color:#51534e;font-family:var(--condensed);letter-spacing:.02em;flex-direction:column;gap:6px;font-size:12px;display:flex}.field-wide{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid var(--rule);color:var(--ink);font-family:var(--serif);background:#f5f0e3;border-radius:0;outline:0;padding:9px}.field textarea{resize:vertical;min-height:74px}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;padding:19px;display:grid}.form-grid .form-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.modal-backdrop{z-index:30;background:#151f2170;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--paper-light);border:1px solid var(--indigo);border-radius:0;width:540px;max-height:90vh;overflow:auto;box-shadow:8px 9px #112d4161}.modal.wide{width:760px}.modal header{border-bottom:1px solid var(--rule);background:#dad5c566;justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.modal h2{font-family:var(--serif);margin:0;font-size:18px}.proposal-note{border:1px solid var(--rule);border-top:3px double var(--rule);color:var(--blue);background:#f1ecdf99;padding:12px 16px;font-size:12px}.proposal-note span{color:var(--muted);margin-left:5px}.toasts{z-index:50;gap:8px;display:grid;position:fixed;bottom:24px;right:24px}.toast{border:1px solid var(--moss);background:var(--moss-light);color:#244d3d;border-radius:0;padding:12px 16px;box-shadow:4px 5px #1c2a282e}.toast.warning{background:var(--mustard-light);border-color:var(--mustard);color:#6d5410}.right-drawer{background:var(--paper-light);border-left:1px solid var(--indigo);z-index:25;width:485px;position:fixed;top:0;bottom:0;right:0;overflow:auto;box-shadow:-8px 0 #112d4147}.drawer-head{border-bottom:3px double var(--rule);background:#ded9c966;justify-content:space-between;align-items:center;padding:21px;display:flex}.drawer-head h2{font-family:var(--serif);margin:0}.drawer-section{border-bottom:1px solid var(--rule-light);padding:18px 21px}.drawer-section h3{font-family:var(--condensed);color:#4c5550;letter-spacing:.04em;margin:0 0 10px;font-size:13px}.keyval{grid-template-columns:110px 1fr;gap:10px;line-height:1.9;display:grid}.keyval dt{color:var(--muted);font-family:var(--condensed)}.keyval dd{margin:0}.route{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.route .step{border:1px solid var(--rule);background:0 0;border-radius:0;padding:7px 9px;font-size:12px}.route .step.current{border-color:var(--blue);background:var(--blue-light);color:var(--blue);font-weight:600}.route .arrow{color:var(--moss);font-size:17px}.tag{border:1px solid var(--moss);color:var(--moss);font-family:var(--condensed);border-radius:0;margin-right:4px;padding:3px 6px;font-size:11px}.grade{border:1px solid var(--rule);width:22px;height:22px;font-family:var(--mono);place-items:center;font-size:11px;display:inline-grid}.grade.A{color:var(--moss);border-color:var(--moss)}.grade.B{color:var(--blue);border-color:var(--blue)}.grade.C{color:var(--mustard);border-color:var(--mustard)}.low{color:var(--rust);font-weight:700}.warning-row td{background:var(--rust-light)}.line-grid{grid-template-columns:repeat(4,1fr);margin-bottom:18px}.line-card{border-top:3px double var(--rule);background:#f1ecdf6b;padding:14px}.line-card h3{margin:0 0 5px;font-size:15px}.line-card p{color:var(--muted);margin:5px 0 10px;font-size:12px}.chart-card{background:#f1ecdf59;padding:16px}.chart-card h2{font-family:var(--serif);margin:0 0 12px;font-size:17px}.dashboard-two{grid-template-columns:1.18fr .82fr;margin-bottom:17px}.dashboard-bottom{grid-template-columns:1.55fr .85fr}.dashboard-bottom>.card:first-child{position:relative}.dashboard-bottom>.card:first-child:before{content:"WORK ORDER";color:var(--blue);font:600 11px var(--condensed);letter-spacing:.08em;writing-mode:vertical-rl;position:absolute;top:90px;left:-26px;transform:rotate(180deg)}.timeline{padding:5px 16px}.timeline-item{border-bottom:1px dotted var(--rule-light);grid-template-columns:43px 1fr auto;gap:9px;padding:11px 0;display:grid}.timeline-dot{width:auto;height:auto;box-shadow:none;font:10px var(--mono);color:var(--blue);background:0 0;border-radius:0;margin:0}.timeline-dot:after{content:"LOT"}.timeline-item b{font-weight:600}.timeline-item span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.timeline-item time{color:var(--blue);font:11px var(--mono)}.split{grid-template-columns:1fr 330px;gap:17px;display:grid}.recipe-grid{grid-template-columns:repeat(2,1fr)}.recipe{border-top:3px double var(--rule);padding:17px}.recipe-top{justify-content:space-between;display:flex}.recipe h2{margin:0;font-size:17px}.recipe p{color:var(--muted);font-size:12px}.params{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:0;margin:15px 0;display:grid}.params div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:0 0;border-radius:0;padding:8px}.params small{color:var(--muted);font-family:var(--condensed);display:block}.params b{font-size:12px}.ingredients{color:#4c514e;margin:0;padding-left:18px;font-size:12px;line-height:1.9}.recharts-cartesian-grid line{stroke:#b6b4aa!important}.recharts-text,.recharts-legend-item-text{font-size:11px;fill:#4a4e4c!important;color:#4a4e4c!important;font-family:var(--mono)!important}.recharts-default-tooltip{background:var(--paper-light)!important;border:1px solid var(--rule)!important;border-radius:0!important;box-shadow:3px 3px #1e28282e!important}.recharts-tooltip-label,.recharts-tooltip-item{color:var(--ink)!important}@media (width<=1240px){.search-wrap{width:310px}.page,.page-head{padding-right:20px}.dashboard-two,.dashboard-bottom{grid-template-columns:1fr}.dashboard-bottom>.card:first-child:before,.kpis:before{display:none}}@media (prefers-reduced-motion:no-preference){.button,.nav-group a,.table tbody tr{transition:background-color .16s,color .16s}}.ledger-stamp{border:1px solid var(--rule);height:42px;font-family:var(--mono);align-items:stretch;margin-left:auto;display:flex}.ledger-stamp>*{align-items:center;padding:0 13px;font-style:normal;display:flex}.ledger-stamp span{border-right:1px solid var(--rule);font-size:11px}.ledger-stamp b{font-family:var(--serif);letter-spacing:3px;color:var(--blue);border-right:1px solid var(--rule);font-size:22px;font-weight:500}.ledger-stamp i{font:600 20px var(--serif);color:var(--indigo);letter-spacing:-2px}.search-wrap{margin-left:0}@media (width<=1240px){.search-wrap{width:270px}.ledger-stamp>*{padding:0 9px}}.brand>div,.brand b,.page-head h1{font-family:var(--display)}.section-title h2,.modal h2,.drawer-head h2,.chart-card h2,.recipe h2{font-family:var(--ui);letter-spacing:-.035em;font-weight:600}.nav-group em,.sidebar-bottom,.table th,.pill,.field,.drawer-section h3,.keyval dt,.tag,.params small{font-family:var(--ui)}.mono,.brand small,.page-head:before,.search-wrap kbd,.progress,.timeline-dot,.timeline-item time,.ledger-stamp,.recharts-text,.recharts-legend-item-text{font-variant-numeric:tabular-nums lining-nums;font-family:var(--mono)!important}.page-head h1{letter-spacing:-.052em;font-size:31px;font-weight:600;line-height:1.25}.page-head p{letter-spacing:-.02em;font-size:14px;line-height:1.55}.section-title h2,.chart-card h2{font-size:17px;line-height:1.35}.table th{letter-spacing:.005em;padding:9px 12px;font-size:12px;line-height:1.3}.table td{letter-spacing:-.014em;padding:10px 12px;font-size:13px;line-height:1.42}.field input,.field select,.field textarea{font-family:var(--ui);font-size:13px;line-height:1.45}.kpi b{font-family:var(--mono);letter-spacing:-.055em;font-variant-numeric:tabular-nums lining-nums;font-size:44px;font-weight:500}.ledger-stamp b{font-family:var(--mono);letter-spacing:.14em;font-weight:500}.button,.reset,.nav-group a{letter-spacing:-.02em;font-weight:500}
