:root{--ink:#182235;--muted:#7a8496;--line:#e9edf3;--surface:#fff;--canvas:#f5f7fb;--primary:#4576ef;--primary-dark:#3464dc;--nav:#202a3b;--green:#1aa776;--red:#e66b6b;--amber:#e8a63b;--shadow:0 3px 16px rgba(31,45,73,.045);font-family:"DM Sans","Noto Sans KR",sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--canvas);font-size:13px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:var(--nav);color:#e9edf4;padding:24px 16px 18px;display:flex;flex-direction:column;z-index:20}.brand{height:44px;display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;margin:0 4px 30px}.brand-icon{width:38px;height:38px;background:#4877eb;border-radius:11px;display:grid;place-items:center}.brand-icon svg{width:23px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.brand-copy{display:flex;flex-direction:column;gap:2px}.brand-copy strong{font-size:16px;letter-spacing:-.45px}.brand-copy small{font-size:8px;letter-spacing:1.25px;color:#aab5c8}.workspace-card{display:flex;align-items:center;gap:10px;padding:11px;background:#2b3649;border:1px solid #374459;border-radius:9px;margin-bottom:28px}.workspace-avatar,.user-avatar{width:30px;height:30px;border-radius:8px;background:#e6edff;color:#4973d9;display:grid;place-items:center;font-weight:700}.workspace-info{display:flex;flex-direction:column;gap:3px;flex:1}.workspace-info strong{font-size:11px}.workspace-info small{font-size:10px;color:#98a4b7}.workspace-chevron{color:#8996aa}.nav-label{font-size:9px;color:#8490a3;letter-spacing:1.15px;font-weight:700;padding:0 11px 10px}.main-nav{display:grid;gap:4px}.nav-item{border:0;background:transparent;color:#aeb8c8;display:flex;align-items:center;gap:12px;width:100%;height:40px;border-radius:7px;padding:0 11px;text-align:left;font:inherit;font-size:12px;cursor:pointer;transition:.15s}.nav-item:hover{background:#29364a;color:#fff}.nav-item.active{background:#33425a;color:#fff;font-weight:600}.nav-item.active .nav-icon{color:#84a6ff}.nav-icon{font-size:17px;width:17px;text-align:center;color:#8997ac}.sidebar-bottom{margin-top:auto}.storage-note{display:flex;gap:9px;align-items:center;padding:13px 10px;border-top:1px solid #374153;margin-bottom:9px}.storage-dot{width:8px;height:8px;background:#3bc78f;border-radius:50%;box-shadow:0 0 0 3px #304638}.storage-note div{display:flex;flex-direction:column;gap:4px}.storage-note strong{font-size:10px}.storage-note small{font-size:9px;color:#9da9bc}.settings-link{font-size:11px}.main-content{margin-left:244px;min-height:100vh;padding:0 36px 0;max-width:1800px}.topbar{height:67px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9edf2}.breadcrumb{display:flex;align-items:center;gap:10px;color:#8993a3;font-size:11px}.breadcrumb strong{color:#3c4758;font-weight:600}.crumb-separator{color:#c6ccd5}.topbar-actions{display:flex;align-items:center;gap:14px}.today-label{font-size:11px;color:#788396}.icon-button{background:#fff;border:1px solid var(--line);color:#778296;width:31px;height:31px;border-radius:8px;font-size:16px;cursor:pointer}.user-avatar{width:30px;height:30px;border:1px solid #dfe7fb;font-size:11px}.mobile-menu{display:none}.page-view{display:none;padding-top:30px;animation:fade-in .2s ease}.page-view.active{display:block}@keyframes fade-in{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:1.25px;color:#8d99aa;font-weight:700;margin-bottom:6px}.page-heading h1{font-size:23px;letter-spacing:-.7px;margin:0;font-weight:700}.page-heading p{margin:7px 0 0;color:var(--muted);font-size:11px}.button{height:35px;border-radius:7px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:.15s}.button-primary{background:var(--primary);border:1px solid var(--primary);color:white;box-shadow:0 2px 4px #4576ef24}.button-primary:hover{background:var(--primary-dark)}.button-secondary{background:#fff;border:1px solid #e0e5ec;color:#566174}.button-secondary:hover{background:#f7f8fb}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.stat-card{background:var(--surface);border:1px solid #edf0f5;border-radius:9px;padding:15px 16px 13px;box-shadow:var(--shadow);min-height:106px}.stat-top{display:flex;align-items:center;justify-content:space-between}.stat-label{color:#7e899a;font-size:10px}.stat-icon{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:13px}.icon-blue{color:#4677ee;background:#edf2ff}.icon-green{color:#14a878;background:#e9f7f1}.icon-orange{color:#e29b32;background:#fff6e8}.icon-purple{color:#8972dc;background:#f1edff}.stat-value{margin-top:10px;font-size:23px;line-height:1;font-weight:700;letter-spacing:-.55px}.stat-value small{font-size:11px;font-weight:500;letter-spacing:0;color:#7c8797;margin-left:4px}.stat-foot{margin-top:8px;display:flex;align-items:center;gap:5px;font-size:9px;color:#8a94a3}.positive{color:#17a474;font-weight:600}.negative{color:#df7777;font-weight:600}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:15px}.panel{background:#fff;border:1px solid #edf0f5;border-radius:9px;box-shadow:var(--shadow);padding:16px 17px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.panel-heading h2{font-size:12px;margin:1px 0 5px;font-weight:700}.panel-heading p{font-size:10px;color:#929baa;margin:0}.period-chip{height:27px;border:1px solid #e9edf2;border-radius:6px;padding:0 8px;display:flex;align-items:center;gap:12px;font-size:9px;color:#667184}.period-chip span{color:#959eab}.production-panel{min-height:239px}.chart-legend{display:flex;gap:15px;margin:18px 0 3px 3px;color:#8892a2;font-size:9px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.plan-dot{background:#dfe7fb}.actual-dot{background:#5781f0}.production-chart{height:135px;position:relative;margin-top:4px}.bar-chart{width:100%;height:100%;display:flex;justify-content:space-around;align-items:flex-end;padding:10px 7px 21px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 32px,#f0f2f6 33px,#f0f2f6 34px)}.bar-group{height:100%;width:10%;display:flex;align-items:flex-end;justify-content:center;gap:4px;position:relative}.bar{width:12px;max-height:100%;border-radius:3px 3px 0 0;min-height:2px}.bar-plan{background:#e6ebf7}.bar-actual{background:#5c83ec}.bar-label{position:absolute;bottom:-18px;font-size:8px;color:#929baa;white-space:nowrap}.quality-panel{min-height:239px}.text-button{background:none;border:0;padding:2px 0;color:#6480c5;font:inherit;font-size:9px;cursor:pointer}.quality-chart{height:140px;display:grid;place-items:center;position:relative}.donut{width:115px;height:115px;border-radius:50%;display:grid;place-items:center;position:relative}.donut::after{content:"";width:79px;height:79px;background:#fff;border-radius:50%;position:absolute}.donut-label{z-index:1;text-align:center;display:flex;flex-direction:column;gap:3px}.donut-label strong{font-size:20px}.donut-label small{font-size:9px;color:#8b95a3}.quality-legend{display:flex;justify-content:center;gap:15px;font-size:9px;color:#858f9e}.quality-legend span{display:flex;align-items:center;gap:5px}.quality-legend i{width:7px;height:7px;border-radius:50%}.recent-panel,.inventory-panel{min-height:205px}.recent-panel{padding-bottom:10px}.table-wrap{overflow-x:auto;width:100%}table{border-collapse:collapse;width:100%;white-space:nowrap}th{height:33px;text-align:left;color:#929baa;font-size:9px;font-weight:500;border-bottom:1px solid #edf0f4}td{height:39px;border-bottom:1px solid #f0f2f6;color:#455064;font-size:10px}tbody tr:last-child td{border-bottom:0}.table-empty{text-align:center!important;color:#a0a8b4;height:76px!important}.item-cell{display:flex;align-items:center;gap:8px}.item-avatar{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:#edf2ff;color:#577ce3;font-size:10px;font-weight:700;flex:0 0 auto}.item-cell strong{display:block;color:#394355;font-size:10px}.item-cell small{display:block;color:#a0a8b4;font-size:9px;margin-top:2px}.progress-inline{display:flex;align-items:center;gap:6px}.progress-track{height:4px;width:43px;border-radius:4px;background:#edf0f5;overflow:hidden}.progress-fill{height:100%;background:#6187ef;border-radius:4px}.inventory-overview{margin-top:13px;display:grid;gap:13px}.inventory-row{display:grid;grid-template-columns:minmax(95px,1fr) 1.1fr auto;align-items:center;gap:10px}.inventory-name{font-size:10px;color:#566174;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory-track,.wide-track{height:6px;background:#edf0f5;border-radius:6px;overflow:hidden}.inventory-fill,.wide-fill{height:100%;border-radius:6px;background:#5d84eb}.inventory-fill.low,.wide-fill.low{background:#e89b76}.inventory-number{font-size:9px;color:#7c8797}.app-footer{height:56px;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#a0a8b5;margin-top:10px}.app-footer span{color:#b2b9c4}.table-panel{padding:0 17px 4px}.table-toolbar{min-height:57px;display:flex;align-items:center;justify-content:space-between;gap:14px}.search-box{width:min(300px,100%);height:31px;border:1px solid #e8ebf0;border-radius:6px;display:flex;align-items:center;padding:0 9px;gap:7px;color:#98a2b0}.search-box span{font-size:16px}.search-box input{width:100%;border:0;background:none;outline:none;font:inherit;font-size:10px;color:#3f4a5e}.search-box input::placeholder{color:#a7afbb}.table-count{color:#939dab;font-size:9px;white-space:nowrap}.table-panel th{height:36px}.table-panel td{height:46px}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:20px;font-size:9px;font-weight:500}.tag::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.tag-blue{color:#577ce2;background:#eff3ff}.tag-green{color:#1a9f72;background:#eaf7f1}.tag-red{color:#d96363;background:#fff0ef}.tag-orange{color:#c88b2c;background:#fff6e7}.tag-gray{color:#7d8796;background:#f0f2f5}.action-group{display:flex;gap:4px}.action-button{border:1px solid #e9edf2;background:#fff;color:#727e90;border-radius:5px;padding:4px 7px;font:inherit;font-size:9px;cursor:pointer}.action-button:hover{border-color:#c5d2f3;color:#5076d5}.action-delete:hover{border-color:#f3cccc;color:#d45a5a}.quality-summary,.inventory-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:-3px 0 15px}.summary-box{padding:13px 15px;border:1px solid #edf0f5;border-radius:8px;background:#fff}.summary-box span{display:block;color:#858f9e;font-size:9px}.summary-box strong{display:block;margin-top:6px;font-size:18px}.movement-panel{margin-top:15px}.movement-panel .panel-heading{margin-bottom:9px}.analytics-grid .panel{min-height:218px}.analytics-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.item-ranking,.defect-ranking{display:grid;gap:12px;margin-top:16px}.ranking-row{display:grid;grid-template-columns:22px minmax(60px,1fr) 1fr auto;align-items:center;gap:7px}.rank-number{font-size:9px;color:#a1aab6}.rank-name{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-value{font-size:9px;color:#7c8797}.rank-bar{height:5px;background:#eff2f7;border-radius:5px;overflow:hidden}.rank-bar span{display:block;height:100%;background:#6285e9;border-radius:5px}.plan-status{display:grid;gap:12px;margin-top:17px}.status-line{display:flex;justify-content:space-between;font-size:10px;color:#626d7f}.status-progress{height:6px;border-radius:5px;background:#eff1f5;margin-top:5px;overflow:hidden}.status-progress span{height:100%;display:block;background:#5c83ea}.status-progress.success span{background:#36b487}.modal-backdrop{position:fixed;inset:0;background:#18223573;z-index:50;display:grid;place-items:center;padding:18px;backdrop-filter:blur(2px)}.modal-backdrop[hidden]{display:none}.modal{width:min(510px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 18px 60px #15233b38}.modal-heading{padding:20px 22px 14px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #edf0f5}.modal-heading h2{margin:0;font-size:17px}.modal-close{width:27px;height:27px;background:#f4f6f9;border:0;border-radius:6px;font-size:19px;color:#7d8796;cursor:pointer}.modal-body{padding:17px 22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px}.field.full-width{grid-column:1/-1}.field label{font-size:10px;color:#596579;font-weight:600}.field input,.field select,.field textarea{width:100%;height:35px;border:1px solid #e5e9ef;border-radius:6px;padding:0 9px;outline:none;color:#3c4759;background:#fff;font:inherit;font-size:10px}.field textarea{height:65px;padding:9px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7d9aee;box-shadow:0 0 0 3px #547cf21a}.field input::placeholder{color:#b0b8c3}.form-note{font-size:9px;color:#929baa;line-height:1.5;margin:0}.modal-actions{border-top:1px solid #edf0f5;padding:13px 22px 17px;display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);background:#273449;color:#fff;padding:10px 16px;border-radius:8px;font-size:11px;opacity:0;transition:.22s;pointer-events:none;z-index:80;box-shadow:0 5px 20px #1822353b}.toast.show{opacity:1;transform:translate(-50%,0)}.stock-direction{display:flex;gap:8px}.stock-direction label{flex:1}.stock-direction input{position:absolute;opacity:0;pointer-events:none}.stock-direction span{height:35px;border:1px solid #e5e9ef;border-radius:6px;display:grid;place-items:center;color:#778195;cursor:pointer}.stock-direction input:checked+span{border-color:#6b8bee;background:#f0f4ff;color:#5276de;font-weight:600}@media(min-width:1440px){.main-content{padding-left:45px;padding-right:45px}.stats-grid{gap:17px}.dashboard-grid{gap:17px}}@media(max-width:1050px){.main-content{padding-left:24px;padding-right:24px}.sidebar{width:220px}.main-content{margin-left:220px}.stats-grid{gap:10px}.stat-card{padding:13px}.stat-value{font-size:20px}.dashboard-grid{grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .22s;width:250px;box-shadow:8px 0 30px #17223816}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0;padding:0 17px}.topbar{height:58px}.mobile-menu{display:block;border:0;background:transparent;color:#566174;font-size:18px;padding:0 7px 0 0;cursor:pointer}.breadcrumb{margin-right:auto}.today-label{display:none}.page-view{padding-top:23px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:21px}.page-heading p{max-width:300px;line-height:1.6}.page-heading>.button{flex:0 0 auto;margin-top:12px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-grid{grid-template-columns:1fr}.production-panel,.quality-panel{min-height:225px}.quality-chart{height:130px}.analytics-grid .panel{min-height:200px}.app-footer{margin-top:7px}.table-panel{padding:0 12px 4px}.table-toolbar{min-height:52px}.quality-summary,.inventory-summary{gap:8px}.summary-box{padding:11px}.summary-box strong{font-size:16px}}@media(max-width:440px){.main-content{padding-left:12px;padding-right:12px}.brand{margin-bottom:22px}.page-heading h1{font-size:19px}.page-heading p{font-size:10px}.page-heading>.button{height:32px;padding:0 9px;font-size:10px}.stat-card{min-height:100px;padding:12px}.stat-value{font-size:19px}.stat-foot{font-size:8px}.panel{padding:14px}.table-panel{padding:0 9px 4px}.quality-summary,.inventory-summary{grid-template-columns:1fr}.summary-box{display:flex;align-items:center;justify-content:space-between}.summary-box strong{margin:0;font-size:15px}.modal-body{padding:15px;gap:10px}.modal-heading{padding:17px}.modal-actions{padding:12px 15px}.search-box{width:215px}.topbar-actions{gap:8px}}