:root{font-family:"DM Sans",Arial,sans-serif;color:#202a3c;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#202a3c;--muted:#8290a5;--line:#e9edf3;--blue:#3268e8;--navy:#17243c}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app-shell{min-height:100vh}.sidebar{width:252px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:#fff;padding:27px 17px 15px;display:flex;flex-direction:column;z-index:4}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;padding:1px 8px 39px}.brand-mark{display:grid;place-items:center;background:#4d79ed;color:white;border-radius:11px;width:39px;height:39px;font:800 21px Manrope,sans-serif;box-shadow:0 6px 18px #19376d}.brand strong,.brand small,.server-status strong,.server-status small{display:block}.brand strong{font:800 14px Manrope,sans-serif;letter-spacing:1.2px}.brand small{font-size:9px;letter-spacing:1.7px;color:#91a1bc;margin-top:3px}.workspace-label{font-size:9px;letter-spacing:1.25px;color:#8392aa;padding:0 11px 12px}.nav-list{display:grid;gap:5px}.nav-item{width:100%;display:flex;align-items:center;gap:13px;text-align:left;border:0;border-radius:8px;padding:11px 12px;background:transparent;color:#adbad0;font-size:12px}.nav-item:hover,.nav-item.active{background:#263755;color:white}.nav-item.active{box-shadow:inset 3px 0 #648aff}.nav-icon{font-size:17px;width:18px;text-align:center}.nav-count{margin-left:auto;background:#334765;border-radius:20px;padding:2px 7px;font-size:10px}.sidebar-bottom{margin-top:auto}.server-status{display:flex;align-items:center;gap:10px;padding:13px 9px;border-top:1px solid #2a3850;color:#e4eaf4}.server-status strong{font-size:11px}.server-status small{color:#8c9bb3;font-size:9px;margin-top:4px}.status-dot{width:8px;height:8px;border-radius:50%;background:#41cc91;box-shadow:0 0 0 4px #263b4b}.logout-button{width:100%;text-align:left;color:#aab7ca;background:none;border:0;padding:15px 10px;font-size:11px}
.main-area{margin-left:252px;min-height:100vh}.topbar{height:62px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.breadcrumbs{font-size:11px;color:#8995a7}.breadcrumbs span{margin:0 9px;color:#c0c8d4}.breadcrumbs strong{color:#465269;font-weight:600}.topbar-right{display:flex;align-items:center;gap:15px}.today{font-size:10px;color:#78869b}.avatar{display:grid;place-items:center;width:31px;height:31px;background:#e9efff;border-radius:50%;color:#3667d8;font-size:10px;font-weight:700}.content{max-width:1400px;margin:0 auto;padding:35px 4.5% 60px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.eyebrow{font-size:9px;letter-spacing:1.4px;font-weight:700;color:#7d8ba1;margin:0 0 7px}.page-heading h1,.login-card h1{font:800 25px Manrope,sans-serif;letter-spacing:-.65px;margin:0;color:#202a3c}.muted{color:#8793a5;font-size:11px;line-height:1.6;margin:6px 0 0}.wave{color:#edae4c;font-size:18px}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:6px;padding:10px 14px;font-size:11px;font-weight:600;transition:.15s}.button:hover{filter:brightness(.97);transform:translateY(-1px)}.button.primary{background:#386de8;color:white;box-shadow:0 3px 8px #386de824}.button.secondary{background:white;color:#57657a;border-color:#e1e6ee}.button.full{width:100%}.button.small-button{padding:8px 10px;font-size:10px}.heading-actions{display:flex;gap:9px}.upload-button{position:relative;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:21px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 2px 8px #22355005}.stat-card{padding:17px 17px 15px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#8793a5;font-size:9px;font-weight:700;letter-spacing:.45px}.stat-card>strong{display:block;font:800 26px Manrope,sans-serif;margin:14px 0 4px;letter-spacing:-.5px}.stat-card>small{font-size:10px;color:#97a1b0}.stat-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px}.blue{background:#edf2ff;color:#4172ea}.green{background:#e7f8ef;color:#28a66b}.violet{background:#f2edff;color:#825fe2}.orange{background:#fff3e7;color:#e69a41}.section-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:15px}.panel{padding:19px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.panel-heading h2{font:700 14px Manrope,sans-serif;margin:0;color:#293449}.panel-heading p{font-size:10px;margin-top:5px}.text-button{background:none;border:0;color:#4773dd;font-size:10px}.compact-list{display:grid}.compact-job{padding:12px 0;border-top:1px solid #f0f2f6}.compact-top,.progress-meta{display:flex;justify-content:space-between;align-items:center}.compact-top strong{font-size:11px}.compact-top span{font-size:9px;color:#8592a5}.compact-name{font-size:10px;color:#7f8b9d;margin:3px 0 9px}.progress-track{height:5px;border-radius:5px;background:#eef1f5;overflow:hidden}.progress-track span{display:block;height:100%;background:#5680ee;border-radius:5px}.compact-foot{display:flex;justify-content:space-between;color:#95a0b0;font-size:9px;margin-top:6px}.today-panel{display:flex;align-items:center;flex-direction:column;text-align:center;justify-content:center}.today-panel .panel-heading{width:100%;text-align:left}.quick-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:#edf2ff;color:#4d77e8;font-size:23px;margin:4px auto 9px}.quick-title{font:700 13px Manrope,sans-serif;margin:0}.centered{max-width:230px;text-align:center;margin:7px auto 16px}.today-panel .button{max-width:230px}.notice{display:flex;align-items:flex-start;gap:13px;background:#fff9ec;border:1px solid #f5e9cd;border-radius:8px;padding:14px 16px;margin-top:17px;color:#bd8b35}.notice>span{font-size:16px}.notice strong{font-size:10px;color:#866626}.notice p{margin:4px 0 0;font-size:10px;line-height:1.5;color:#9c895f}.blue-notice{background:#f1f6ff;border-color:#e1ebff;color:#5680dc}.blue-notice strong{color:#3d5f9b}.blue-notice p{color:#7587a5}.filter-row{display:flex;align-items:center;justify-content:space-between;margin:22px 0 14px}.search-wrap{display:flex;align-items:center;gap:8px;border:1px solid #e5e9f0;border-radius:6px;background:white;padding:0 10px;min-width:270px;height:36px;color:#a1adbd}.search-wrap input{border:0;outline:none;width:100%;font-size:10px;color:var(--ink);background:transparent}.job-list{display:grid;gap:11px}.job-card{background:white;border:1px solid var(--line);border-radius:8px;padding:17px 19px}.job-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.job-code{display:inline-block;color:#4773df;background:#eef3ff;border-radius:4px;padding:4px 7px;font-size:9px;font-weight:700;letter-spacing:.3px}.job-card h3{font:700 13px Manrope,sans-serif;margin:9px 0 3px}.job-card .muted{margin:0}.job-card-bottom{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;align-items:end;gap:22px;margin-top:17px}.job-progress-label{font-size:9px;color:#818da0;display:flex;justify-content:space-between;margin-bottom:6px}.job-quantity{text-align:right}.job-quantity strong{display:block;font-size:12px}.job-quantity small{font-size:9px;color:#9aa5b4}.no-data{padding:32px 15px;text-align:center;color:#98a3b2;font-size:11px;background:#fff;border:1px dashed #dde3eb;border-radius:8px}
.table-panel{padding-bottom:0}.table-scroll{overflow:auto;margin:0 -19px}table{border-collapse:collapse;width:100%;min-width:780px}th{text-align:left;background:#fafbfd;color:#8b97a8;font-size:9px;letter-spacing:.45px;padding:11px 14px;white-space:nowrap}td{font-size:10px;padding:13px 14px;border-top:1px solid #eff1f5;color:#566277;white-space:nowrap}td strong{color:#303b4f}.badge{display:inline-block;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:600}.badge.good{background:#e8f8ef;color:#239460}.badge.late{background:#fff0ef;color:#d35a53}.badge.neutral{background:#f0f2f6;color:#758196}.quality-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:23px}.pareto-list{display:grid;gap:15px}.pareto-row{display:grid;grid-template-columns:145px 1fr 70px;gap:12px;align-items:center}.pareto-name{font-size:10px;color:#657187}.pareto-bar{height:9px;background:#f0f2f6;border-radius:8px;overflow:hidden}.pareto-bar span{display:block;height:100%;background:linear-gradient(90deg,#f0a05b,#e77663);border-radius:8px}.pareto-value{text-align:right;font-size:10px;font-weight:700;color:#404c60}.inventory-heading{align-items:center}.inventory-heading .search-wrap{min-width:220px}.empty-cell{text-align:center;color:#9aa5b4;padding:30px}
.modal{position:fixed;inset:0;z-index:10;background:#1320398a;display:grid;place-items:center;padding:18px}.modal-card{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:11px;padding:23px 25px;box-shadow:0 20px 80px #10203b40}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start}.modal-heading h2{font:800 18px Manrope,sans-serif;margin:0}.icon-button{border:0;background:#f2f4f7;border-radius:50%;width:29px;height:29px;color:#667287;font-size:20px}.progress-summary{background:#f7f9fc;border:1px solid #edf0f5;border-radius:7px;padding:14px;margin:17px 0}.progress-meta{font-size:10px;color:#657187;margin-bottom:8px}.progress-meta strong{font-size:12px;color:#3e6ee0}.progress-summary .progress-track{height:7px}.progress-summary .progress-track span{background:#4d78eb}.progress-summary .muted{font-size:9px;margin-top:7px}.log-section-heading{display:flex;justify-content:space-between;align-items:center;margin:19px 0 11px}.log-section-heading h3{font:700 12px Manrope,sans-serif;margin:0}.log-list{display:grid;gap:8px}.log-entry{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;border:1px solid #edf0f4;border-radius:7px;padding:11px 12px}.log-date{font-size:10px;font-weight:700;color:#43516a}.log-detail strong{font-size:10px}.log-detail small{display:block;color:#8a96a8;font-size:9px;margin-top:4px}.log-amount{text-align:right;font-size:10px;font-weight:700}.log-amount small{display:block;color:#e17a67;font-weight:500;margin-top:4px}.log-form{border-top:1px solid var(--line);margin-top:17px;padding-top:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label,.login-card label{display:grid;gap:5px;font-size:10px;color:#657187;font-weight:600}.form-grid input,.form-grid select,.login-card input{width:100%;border:1px solid #e1e6ee;border-radius:5px;padding:9px 10px;font-size:11px;color:#364258;background:white;outline:none}.form-grid input:focus,.form-grid select:focus,.login-card input:focus{border-color:#7191ed;box-shadow:0 0 0 3px #7191ed20}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.toast{position:fixed;right:22px;bottom:22px;z-index:20;background:#24344f;color:white;padding:12px 16px;border-radius:7px;font-size:11px;box-shadow:0 8px 25px #17243c30;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;max-width:min(420px,calc(100vw - 30px))}.toast.visible{opacity:1;transform:translateY(0)}.toast.error{background:#a73e3b}.login-screen{min-height:100vh;display:grid;place-items:center;padding:18px;background:radial-gradient(ellipse at 80% 20%,#e8eeff 0%,transparent 45%),#f5f7fb}.login-card{width:min(380px,100%);background:white;border:1px solid var(--line);border-radius:12px;padding:31px;box-shadow:0 14px 45px #182a4510}.login-card .brand-mark{margin-bottom:23px}.login-card h1{font-size:21px}.login-card>.muted{margin:7px 0 22px}.login-card label{margin-bottom:15px}.login-card .button{margin-top:3px;padding:12px}.error-text{color:#bd4845;font-size:10px;margin-top:10px;min-height:14px}
@media(max-width:1000px){.sidebar{width:215px}.main-area{margin-left:215px}.content{padding-left:3.4%;padding-right:3.4%}.stat-card{padding:14px}.stat-top{font-size:8px}.section-grid{grid-template-columns:1.25fr 1fr}}
@media(max-width:760px){.sidebar{width:100%;height:58px;inset:auto 0 0;padding:5px 8px;background:#17243cf5}.brand,.workspace-label,.sidebar-bottom{display:none}.nav-list{height:100%;display:flex;justify-content:space-around;gap:2px}.nav-item{flex-direction:column;justify-content:center;gap:2px;padding:4px 2px;font-size:8px;text-align:center;white-space:nowrap;flex:1}.nav-icon{font-size:15px}.nav-count{position:absolute;margin:0 0 24px 25px;padding:1px 5px;font-size:8px}.main-area{margin:0 0 58px}.topbar{height:52px;padding:0 17px}.content{padding:25px 16px 30px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.page-heading h1{font-size:22px}.page-heading>.button,.heading-actions{width:100%}.heading-actions>*{flex:1}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card{padding:12px}.stat-card>strong{font-size:23px;margin:11px 0 3px}.stat-top{font-size:8px}.stat-icon{width:25px;height:25px}.section-grid{grid-template-columns:1fr}.today-panel{min-height:255px}.filter-row{align-items:flex-start;flex-direction:column;gap:9px}.search-wrap{min-width:0;width:100%}.job-card{padding:14px}.job-card-bottom{grid-template-columns:1fr auto;gap:12px}.job-card-bottom .button{grid-column:1/-1;width:100%}.job-quantity{grid-column:2}.quality-stats{grid-template-columns:1fr}.quality-stats .stat-card{padding:13px}.quality-stats .stat-card>strong{margin:7px 0 2px}.pareto-row{grid-template-columns:105px 1fr 48px;gap:8px}.inventory-heading{align-items:flex-start;flex-direction:column}.inventory-heading .search-wrap{width:100%}.modal{padding:8px}.modal-card{padding:18px 15px;max-height:94vh}.form-grid{grid-template-columns:1fr 1fr;gap:9px}.log-entry{grid-template-columns:65px 1fr auto;gap:7px;padding:9px}.log-section-heading{gap:8px}.log-section-heading h3{font-size:11px}.log-date,.log-amount{font-size:9px}}
@media(max-width:390px){.nav-item{font-size:7px}.form-grid{grid-template-columns:1fr}.today{font-size:9px}.page-heading h1{font-size:20px}}
.heading-actions{flex-wrap:wrap}.heading-actions #create-job-button{white-space:nowrap}.process-chips{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.process-chip{display:inline-flex;background:#f0f4ff;color:#536d9f;border-radius:4px;padding:4px 7px;font-size:9px}.distribution-list{display:grid;gap:14px}.distribution-row{display:grid;gap:7px}.distribution-meta{display:flex;justify-content:space-between;gap:12px;font-size:10px}.distribution-meta strong{color:#465269}.distribution-meta span{color:#8491a3}.station-prompt{background:#eff5ff;border-color:#e2ebff;color:#4c73ca}.station-prompt strong{color:#3d5f9b}.station-prompt p{color:#7587a5}.station-selector{display:grid;gap:9px;max-width:620px;margin-bottom:24px}.station-selector label{font:700 13px Manrope,sans-serif}.station-selector select{min-height:48px;width:100%;border:1px solid #dfe5ef;border-radius:7px;padding:10px 13px;background:#fff;color:#344158;font-size:15px}.station-selector .muted{margin:0}.station-job-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px}.station-job-heading h2{font:700 16px Manrope,sans-serif;margin:0}.station-job-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.station-job-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-height:170px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px;text-align:left;color:var(--ink);box-shadow:0 3px 12px #17243c08}.station-job-card:hover,.station-job-card:focus-visible{border-color:#7e9cf0;box-shadow:0 4px 18px #386de81b;outline:none}.station-job-stage{background:#eef3ff;color:#3e6cda;padding:5px 8px;border-radius:5px;font-size:11px;font-weight:700}.station-job-card>strong{font:800 19px Manrope,sans-serif}.station-job-product{font-size:14px;color:#68758a}.station-job-numbers{display:flex;flex-wrap:wrap;gap:15px;color:#7d899b;font-size:11px}.station-job-numbers b{color:#3e4c63}.station-job-action{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:auto;padding-top:10px;border-top:1px solid #eef1f5;color:#3e6ee0;font-size:12px;font-weight:700}.process-choice-heading{margin:20px 0 10px}.process-choice-heading h3{font:700 13px Manrope,sans-serif;margin:0}.process-choice-heading .muted{font-size:10px}.job-create-fields{margin-top:18px}.process-choices{display:grid;gap:7px}.process-choice{display:grid;grid-template-columns:21px minmax(85px,.6fr) minmax(180px,1fr);align-items:center;gap:9px;padding:10px;border:1px solid #edf0f5;border-radius:7px;color:#556278}.process-choice>input[type=checkbox]{width:17px;height:17px;accent-color:#386de8}.process-check{display:none}.process-stage-name{font-size:11px;font-weight:700}.process-station-input{width:100%;min-height:35px;padding:7px 9px;border:1px solid #e1e6ee;border-radius:5px;font-size:11px;color:#46546a}.process-station-input:disabled{background:#f6f7f9;color:#aab2bd}.worker-mode .worker-extra{display:none!important}.worker-mode .modal-card{max-width:620px}.worker-mode .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.worker-mode .form-grid label{font-size:14px}.worker-mode .form-grid input,.worker-mode .form-grid select{min-height:48px;font-size:16px}.worker-mode .button{min-height:46px;font-size:14px}.worker-mode .log-entry{padding:14px 12px}.worker-mode #show-log-form{min-height:44px;font-size:12px}.worker-mode #log-title{font-size:21px}
@media(max-width:760px){.sidebar{height:64px;padding:4px 0}.nav-list{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.nav-item{flex:0 0 78px;min-width:78px;white-space:normal;line-height:1.1;font-size:9px}.nav-icon{font-size:17px}.main-area{margin-bottom:64px}.heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.heading-actions #create-job-button{grid-column:1/-1}.heading-actions>*{width:100%;font-size:10px;padding:10px 7px}.station-selector{padding:18px}.station-selector select{min-height:56px;font-size:17px}.station-job-list{grid-template-columns:1fr}.station-job-card{min-height:180px;padding:20px}.station-job-card>strong{font-size:23px}.station-job-product{font-size:16px}.station-job-numbers{font-size:13px;gap:18px}.station-job-stage{font-size:12px}.station-job-action{font-size:14px;padding-top:13px}.station-job-heading h2{font-size:15px}.create-job-card{padding:18px 15px}.job-create-fields{grid-template-columns:1fr}.process-choice{grid-template-columns:23px minmax(76px,.6fr) minmax(0,1fr);gap:7px;padding:9px 6px}.process-stage-name{font-size:10px}.process-station-input{font-size:12px;min-height:42px}.process-choice>input[type=checkbox]{width:20px;height:20px}.worker-mode .modal-card{padding:20px 16px}.worker-mode .log-section-heading{align-items:flex-start}.worker-mode .log-section-heading h3{font-size:14px}.worker-mode .log-entry{grid-template-columns:65px 1fr auto}.worker-mode .log-date,.worker-mode .log-amount{font-size:11px}.worker-mode .log-detail strong{font-size:12px}.station-prompt{padding:13px}.station-prompt .text-button{padding:9px 0;font-size:12px}}@media(max-width:390px){.nav-item{flex-basis:72px;min-width:72px;font-size:8px}.process-choice{grid-template-columns:22px 70px minmax(0,1fr)}.process-station-input{padding:6px;font-size:11px}.worker-mode .form-grid{grid-template-columns:1fr}}
.job-actions{display:flex;gap:6px;flex-shrink:0}.button.danger{background:#fff4f3;color:#c54d47;border-color:#f2dbd9}.job-card-top>.job-actions .button{padding:7px 11px;font-size:10px}.create-job-card{width:min(880px,100%);display:flex;flex-direction:column;max-height:94vh;padding-bottom:0}.create-job-card>.modal-heading{flex:0 0 auto;padding-bottom:15px}.job-form-scroll{overflow:auto;overscroll-behavior:contain;padding:0 4px 12px}.job-form-section{min-width:0;border:1px solid #e9edf4;border-radius:9px;padding:15px;margin:0 0 13px}.job-form-section legend{padding:0 8px;font:700 12px Manrope,sans-serif;color:#34445f}.job-form-section legend>span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#edf2ff;color:#456fd5;margin-right:5px;font-size:10px}.job-form-section .job-create-fields{margin-top:3px}.job-form-section .form-grid label{font-size:10px}.job-form-section .form-grid input{min-height:38px}.stage-section-help{margin:0 0 12px}.process-choices{gap:8px}.process-choice{display:block;padding:0;overflow:hidden}.process-choice-main{display:grid;grid-template-columns:minmax(115px,.65fr) minmax(150px,1fr) auto;align-items:center;gap:10px;padding:9px 10px}.process-choice-check{display:flex;align-items:center;gap:9px}.process-choice-check input{width:17px;height:17px;accent-color:#386de8}.process-choice .process-stage-name{font-size:11px;color:#47556b}.stage-details-toggle{border:0;background:#eff3ff;color:#466bc4;border-radius:5px;padding:8px 9px;font-size:10px}.stage-details-toggle:disabled{color:#a4adba;background:#f5f6f8;cursor:not-allowed}.process-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px;background:#f8faff;border-top:1px solid #edf0f5}.process-detail-grid label{display:grid;gap:5px;font-size:9px;color:#68758a}.process-detail-grid input{min-width:0;width:100%;min-height:35px;padding:7px;border:1px solid #dfe5ee;border-radius:5px;background:white;font-size:11px;color:#38465c}.process-detail-grid input:focus{outline:2px solid #386de840;border-color:#7e9cf0}.job-form-actions{flex:0 0 auto;position:sticky;bottom:0;background:#fff;padding:12px 0 16px;border-top:1px solid #edf0f4;margin-top:0}.job-form-actions .button{min-width:125px}.job-form-actions button:disabled{opacity:.65;cursor:wait;transform:none}.job-card-top h3{margin-top:8px}.job-card-top .muted{margin-top:3px}
@media(max-width:760px){.create-job-card{width:100%;max-height:96dvh;padding:16px 12px 0}.create-job-card>.modal-heading h2{font-size:16px}.job-form-section{padding:12px 9px;margin-bottom:10px}.job-form-section legend{font-size:11px}.job-form-section .job-create-fields{grid-template-columns:1fr 1fr;gap:9px}.job-form-section .form-grid input{min-height:42px;font-size:13px}.process-choice-main{grid-template-columns:minmax(90px,.6fr) minmax(95px,1fr) auto;gap:6px;padding:9px 6px}.process-choice-check{gap:6px}.process-choice-check input{width:20px;height:20px}.process-choice .process-stage-name{font-size:10px}.process-station-input{min-height:42px;font-size:11px}.stage-details-toggle{padding:8px 5px;font-size:9px;white-space:nowrap}.process-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.process-detail-grid input{min-height:41px;font-size:13px}.process-detail-grid label{font-size:10px}.job-actions{gap:4px}.job-card-top>.job-actions .button{padding:9px 10px;font-size:11px}.job-card-top{gap:8px}.job-card-top>div:first-child{min-width:0}.job-card-top h3{font-size:12px}.job-form-actions .button{min-height:44px}}@media(max-width:390px){.job-form-section .job-create-fields{grid-template-columns:1fr}.process-choice-main{grid-template-columns:88px minmax(82px,1fr) auto}.process-station-input{padding:6px 5px;font-size:10px}.job-card-top>.job-actions .button{padding:8px}}
 .data-update-meta{font-size:10px!important;color:#71819a!important;margin-top:8px!important}.job-actions .duplicate-job{color:#3f6ad6}
@media(max-width:760px){.job-actions{gap:4px}.job-actions .button{padding:8px 6px!important;font-size:9px}.data-update-meta{font-size:9px!important}}
.upload-button[aria-busy="true"]{opacity:.65;cursor:wait}.upload-button[aria-busy="true"]::after{content:" Đang xử lý..."}
.job-actions{flex-wrap:wrap;justify-content:flex-end}.job-detail-card{width:min(900px,100%);display:flex;flex-direction:column}.job-detail-card>.modal-heading{padding-bottom:14px;border-bottom:1px solid var(--line)}.job-detail-content{overflow:auto;overscroll-behavior:contain;padding:3px 2px}.job-detail-section{margin-top:17px}.job-detail-section h3{font:700 12px Manrope,sans-serif;color:#33415a;margin:0 0 9px}.job-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 12px;border:1px solid #e9edf3;border-radius:7px;padding:10px 12px;background:#f9fafc}.job-detail-item{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-bottom:1px solid #edf0f4;font-size:10px}.job-detail-item span{color:#748197}.job-detail-item strong{text-align:right;color:#2d394e;overflow-wrap:anywhere}.job-detail-actions{position:sticky;bottom:0;background:#fff;padding:12px 0 0;margin-top:15px;border-top:1px solid var(--line)}.station-search-wrap{min-width:0;width:100%;height:44px}.station-search-wrap input{font-size:14px}.station-selector{max-width:760px}.station-job-assignment{font-size:11px;color:#77849a}.station-job-open{width:100%;min-height:44px;margin-top:auto;font-size:12px}.station-job-open:disabled{opacity:.6;cursor:not-allowed;transform:none}.station-job-card{cursor:default}@media(max-width:760px){.job-actions{justify-content:flex-start}.job-actions .button{padding:8px 9px!important;font-size:10px}.job-detail-card{width:100%;max-height:96dvh;padding:17px 13px}.job-detail-grid{grid-template-columns:1fr;gap:0;padding:7px 10px}.job-detail-item{font-size:12px}.job-detail-actions{display:grid;grid-template-columns:1fr 1fr}.station-selector{max-width:none}.station-search-wrap{height:50px}.station-search-wrap input{font-size:16px}.station-job-assignment{font-size:12px}.station-job-open{min-height:50px;font-size:14px}}

/* ---- Trang Kế hoạch: biểu đồ trạng thái và bộ lọc ---- */
.plan-overview{display:flex;align-items:center;gap:30px;margin-bottom:6px;padding:18px 24px}
.plan-donut{position:relative;flex:0 0 132px;width:132px;height:132px}
.plan-donut svg{width:100%;height:100%;display:block}
.plan-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.plan-donut-center strong{font:800 26px Manrope,sans-serif;color:#202a3c;line-height:1}
.plan-donut-center span{font-size:9px;color:#8793a5;margin-top:3px}
.plan-overview-info{flex:1;min-width:0}
.plan-overview-info h2{font:700 14px Manrope,sans-serif;margin:0;color:#293449}
.plan-legend{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px;max-width:360px}
.plan-legend li{display:grid;grid-template-columns:12px 1fr auto 40px;align-items:center;gap:9px;font-size:11px;color:#566277}
.plan-legend i{width:10px;height:10px;border-radius:50%}
.plan-legend strong{color:#303b4f}
.plan-legend small{text-align:right;color:#97a1b0;font-size:10px}
.filter-row{flex-wrap:wrap;gap:10px}
.status-filters{display:flex;flex-wrap:wrap;gap:7px}
.status-filter{display:inline-flex;align-items:center;gap:7px;border:1px solid #e1e6ee;background:#fff;color:#6a778b;border-radius:20px;padding:8px 13px;font-size:10px;font-weight:600;cursor:pointer;transition:.15s}
.status-filter .count{display:inline-block;min-width:18px;padding:1px 6px;border-radius:10px;background:#f0f2f6;color:#758196;text-align:center;font-size:9px}
.status-filter:hover{border-color:#c9d3e4}
.status-filter[aria-pressed="true"]{background:#edf2ff;border-color:#b9ccf8;color:#3c64cf}
.status-filter[aria-pressed="true"] .count{background:#d8e4ff;color:#3c64cf}
.status-filter[data-status="late"][aria-pressed="true"]{background:#fff0ef;border-color:#f3c9c6;color:#c74a43}
.status-filter[data-status="late"][aria-pressed="true"] .count{background:#fbd9d6;color:#c74a43}
.status-filter[data-status="done"][aria-pressed="true"]{background:#e8f8ef;border-color:#bfe6d2;color:#1f8a58}
.status-filter[data-status="done"][aria-pressed="true"] .count{background:#cdeedd;color:#1f8a58}
.badge.producing{background:#edf2ff;color:#3e6cda}
.job-card .badge{margin-left:4px;vertical-align:1px}
.job-card.is-late{border-left:3px solid #e0605a}
@media(max-width:760px){.plan-overview{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.plan-legend{max-width:none;width:100%}.status-filters{width:100%}.status-filter{flex:1 1 auto;justify-content:center}}

/* ---- Nhãn mức độ ưu tiên (tự động theo ngày giao hàng) ---- */
.badge.prio-urgent{background:#b42318;color:#fff}
.badge.prio-p1{background:#f08a24;color:#fff}
.badge.prio-p2{background:#f6c945;color:#4a3a00}
.badge.prio-p3{background:#d3e5ff;color:#2457b5}
.badge.prio-on_track{background:#d6f3e3;color:#17794a}
.job-due{margin:4px 0 0;font-size:10px;color:#7d899b}
.station-job-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px}

/* ---- Chọn và xóa hàng loạt ---- */
.bulk-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 10px;padding:9px 14px;background:#fff;border:1px solid #e1e6ee;border-radius:9px;font-size:11px}
.bulk-bar.has-selection{background:#fff7f6;border-color:#f3c9c6}
.bulk-bar #selected-count{flex:1}
.bulk-bar .button{padding:8px 14px;font-size:11px}
.bulk-bar .button:disabled{opacity:.45;cursor:not-allowed}
.job-select{display:inline-flex;align-items:center;margin:0;cursor:pointer}
.job-id-row .badge{margin:0}
.job-id-row{margin-bottom:6px}
.job-select input{margin:0;width:16px;height:16px;accent-color:#3c64cf;cursor:pointer}
.job-card.is-selected{box-shadow:0 0 0 2px #b9ccf8;background:#fbfcff}

/* ---- Form nhật ký: chi tiết lỗi NG theo công đoạn ---- */
.ng-detail{margin:14px 0 0;padding:12px 14px 14px;border:1px solid #e1e6ee;border-radius:9px;background:#fbfcfe}
.ng-detail legend{padding:0 7px;font-size:10px;font-weight:700;color:#4b5870}
.ng-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.log-form input.is-auto{background:#f1f4f9;color:#2f3b52;font-weight:700}
@media(max-width:760px){.ng-detail-grid{grid-template-columns:1fr 1fr}}

/* ---- Confirm popup modal ---- */
.confirm-card{max-width:440px;padding:26px 26px 20px}
.confirm-message{font-size:13px;line-height:1.65;white-space:pre-line;color:#465269;margin:8px 0 20px}
.button.danger{background:#e0463d;color:white;border-color:#e0463d}
.button.danger:hover{filter:brightness(.93)}
