*{box-sizing:border-box}body{margin:0;color:#1c2f48;background:#f3f6fa}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh}.app-shell>.ant-layout-sider{height:100vh;position:sticky!important;top:0;overflow:auto;border-right:1px solid #e5ebf3}.brand{display:flex;align-items:center;gap:10px;height:84px;padding:0 24px;text-decoration:none;color:#12365f;white-space:nowrap}.brand b{font-size:21px;letter-spacing:-.7px}.brand em{font-size:12px;font-style:normal;letter-spacing:.5px;color:#6d8099;margin-left:4px}.brand-mark{width:32px;height:34px;background:#0b4f9c;color:#fff;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%)}.nav-search{padding:0 18px 20px}.nav-search .ant-input-affix-wrapper{background:#f4f7fb;border:0}.app-shell .ant-menu{border-inline-end:none!important;padding:0 8px}.app-shell .ant-menu-sub .ant-menu-item{padding-left:38px!important;font-size:13px}.app-shell .ant-menu-item-selected{font-weight:600}.nav-foot{padding:32px 26px 60px;font-size:10px;letter-spacing:1.2px;color:#8c9aad}.nav-foot span{letter-spacing:.5px;font-size:11px}.app-header{height:72px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5ebf3;position:sticky;top:0;z-index:20;box-shadow:0 3px 14px #1b3a5d03;line-height:normal}.app-content{padding:28px 30px;min-width:0}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.page-heading h1{font-size:26px;line-height:1.4;margin:7px 0 6px;letter-spacing:-.5px;color:#19324d}.page-heading p{font-size:13px;color:#8190a2;margin-bottom:0}.eyebrow{font-size:10px;letter-spacing:1.6px;color:#6e8cac;font-weight:700}.ant-card{box-shadow:0 3px 15px #1c365b02;border-color:#e5ebf3}.ant-card .ant-card-head{font-size:15px;font-weight:600;min-height:58px}.stat-card .ant-card-body{padding:20px 22px}.stat-top{display:flex;justify-content:space-between;color:#677b92;font-size:13px;margin-bottom:11px}.stat-top>span{color:#0b4f9c;background:#edf3fc;border-radius:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:16px}.stat-card .ant-statistic-content{font-weight:650;font-size:32px;letter-spacing:-1px;margin-bottom:9px;line-height:1.1}.stat-card small{font-size:12px;font-weight:400;color:#8291a2;letter-spacing:0}.muted{color:#8b98a9;font-size:12px}.stage-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stage-block{background:#f6f8fb;border:1px solid #ecf0f5;padding:16px;border-radius:8px;position:relative}.stage-block:not(:last-child):after{content:"›";position:absolute;right:-12px;top:50%;font-size:25px;color:#b8c7d7;z-index:1}.stage-number{font-size:10px;font-weight:700;color:#99aec7;letter-spacing:1px}.stage-block h3{font-size:15px;margin:9px 0 18px}.stage-block b{font-size:25px;font-weight:600}.stage-block span{font-size:11px;color:#8c9aad}.quick-actions a{display:flex;gap:14px;padding:15px 0;align-items:center;border-bottom:1px solid #f0f3f7;color:#243c56}.quick-actions a:first-child{padding-top:0}.quick-actions a:last-child{border:0;padding-bottom:0}.quick-actions a>div{flex:1}.quick-actions b{font-size:13px}.quick-actions p{color:#8c9aad;font-size:12px;margin:4px 0 0}.quick-actions a>.anticon{color:#a6b3c2}.quick-icon{background:#edf3fb;color:#0b4f9c;font-size:19px;padding:10px;border-radius:9px}.machine-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f3f7;cursor:pointer}.machine-row:last-child{border-bottom:0}.machine-row b{font-size:12px;margin-left:6px}.machine-row p{font-size:11px;color:#95a2b2;margin:6px 0 0 13px}.data-footnote{font-size:11px;line-height:1.9;color:#9aa6b6;padding:16px 0}.workspace-footer{display:flex;justify-content:space-between;font-size:11px;color:#a1adbb;margin-top:40px;border-top:1px solid #e4eaf1;padding-top:18px;letter-spacing:.5px}.workspace-card .ant-card-body{padding:22px 22px 8px}.list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.page-note{display:flex;gap:8px;font-size:12px;color:#8c9aad;line-height:1.8;margin-top:18px}.drawer-actions{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #edf1f6}.model-toolbar{display:flex;gap:15px;align-items:center;justify-content:space-between;margin:16px 0;flex-wrap:wrap}.screenshot-controls{min-width:0;max-width:100%}.model-workspace{min-width:0}.model-canvas{height:min(58vh,630px);min-height:300px;position:relative;background:#eef3f8;border:1px solid #dae3ee;border-radius:8px;overflow:hidden}.model-canvas canvas{display:block;width:100%;height:100%}.model-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.geometry-summary{display:flex;gap:25px;font-size:12px;flex-wrap:wrap;color:#7d8da1;padding:20px 0 4px}.geometry-summary b{font-weight:500;color:#29405e;margin-left:8px}.image-pan{width:100%;height:100%;overflow:auto;cursor:grab;display:flex;align-items:flex-start;touch-action:none}.image-pan:active{cursor:grabbing}.screenshot-information{display:flex;flex-wrap:wrap;gap:6px 20px;margin:8px 0;color:#52657b;font-size:12px}.image-pan img{margin:auto;-webkit-user-select:none;user-select:none;pointer-events:none}.page-loading{height:100vh;display:flex;justify-content:center;align-items:center}.login{display:grid;grid-template-columns:56% 44%;min-height:100vh;background:#fff}.login-story{background:linear-gradient(145deg,#0b4f9c,#073265);position:relative;color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.login-story:after{content:"";position:absolute;inset:0;opacity:.1;background-image:linear-gradient(#fff4 1px,transparent 1px),linear-gradient(90deg,#fff4 1px,transparent 1px);background-size:58px 58px;-webkit-mask-image:linear-gradient(130deg,transparent,black);mask-image:linear-gradient(130deg,transparent,black)}.login-story .brand{color:#fff;padding:20px 50px;height:100px;position:relative;z-index:1}.login-story .brand-mark{background:#fff;color:#0b4f9c}.login-story .brand em{color:#b4cee9}.login-headline{padding:0 11%;position:relative;z-index:1}.login-headline>span{color:#a9c8e9;font-size:13px;letter-spacing:2px}.login-headline h1{font-size:45px;line-height:1.45;font-weight:600;letter-spacing:1px;margin:20px 0}.login-headline p{font-size:15px;line-height:2;color:#acc7e3}.login-stages{display:flex;align-items:center;gap:17px;font-size:12px;color:#bcd2ea;margin-top:45px}.login-stages i{width:25px;height:1px;background:#ffffff4d}.login-footer{padding:40px 11%;font-size:10px;letter-spacing:1.7px;color:#8bafd4}.login-form{display:flex;align-items:center;justify-content:center;padding:40px}.login-form>div{width:360px;max-width:100%}.login-form h2{font-size:27px;margin:10px 0 12px;color:#163353}.login-form form{margin-top:32px}.login-hint{text-align:center;margin:25px 0}.login-form .ant-alert{margin-top:20px}@media(max-width:1100px){.app-content{padding:22px 18px}.app-header{padding:0 18px}.stage-flow{grid-template-columns:repeat(2,1fr)}.login-headline h1{font-size:34px}}@media(max-width:760px){.app-shell>.ant-layout-sider{display:none}.app-header .ant-breadcrumb{display:none}.app-header{justify-content:flex-end}.page-heading,.list-toolbar{align-items:flex-start;flex-direction:column}.login{grid-template-columns:1fr}.login-story{min-height:240px}.login-headline{padding:0 30px 30px}.login-headline h1{font-size:27px}.login-headline p,.login-stages,.login-footer{display:none}.login-story .brand{padding:20px 30px}.login-form{padding:35px 25px}.stage-flow{grid-template-columns:repeat(2,1fr)}.workspace-footer span{display:none}}.gantt-scroll{overflow:auto;min-height:140px}.gantt-header,.gantt-row{display:flex;min-width:850px;border-bottom:1px solid #e6edf4}.gantt-header>span,.gantt-row>button{width:170px;flex-shrink:0;padding:15px 8px;border:0;background:#f7f9fc;text-align:left;font-size:13px;color:#0b4f9c}.gantt-header>div{display:flex;justify-content:space-between;flex:1;font-size:11px;padding:8px 0;color:#6b7b91}.gantt-row>button small{display:block;color:#7c8ba1}.gantt-track{position:relative;flex:1;min-height:68px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(16.666% - 1px),#edf1f7 calc(16.666% - 1px),#edf1f7 16.666%)}.gantt-booking{position:absolute;top:12px;height:40px;border:0;background:#cddff3;color:#123e6d;border-radius:5px;padding:0 7px;font-size:11px;overflow:hidden;white-space:nowrap;cursor:pointer}.gantt-booking.active{background:#0b4f9c;color:#fff}.gantt-booking.cancelled{background:#f4f4f4;color:#999;text-decoration:line-through}.gantt-track.has-actual{min-height:86px}.gantt-track.has-actual .gantt-booking{top:39px;height:32px}.gantt-actual{position:absolute;top:6px;left:8px;z-index:2;max-width:calc(100% - 16px);color:#8b4513;border-color:#d7b26d;background:#fff7e6}.factory-floor{position:relative;min-height:300px;max-height:550px;border:1px solid #d6e2ef;border-radius:12px;background-color:#f4f8fc;background-image:linear-gradient(#e4ebf3 1px,transparent 1px),linear-gradient(90deg,#e4ebf3 1px,transparent 1px);background-size:25px 25px;overflow:auto}.factory-floor button{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:6px;padding:12px 15px;border:1px solid #cbd8e6;background:#fff;border-radius:10px;box-shadow:0 3px 10px #103b6020;cursor:pointer}.mes-label-sheet{display:grid;grid-template-columns:1fr;gap:12px}.mes-label{border:1px solid #ccd5e0;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;break-inside:avoid}.mes-label h3{margin:8px 0;word-break:break-all}.mes-label p{margin:6px 0}.mes-label small{font-size:10px;word-break:break-all}.mes-print-root{display:none}@media print{@page{margin:10mm}body.mes-printing{background:#fff!important}body.mes-printing>*{display:none!important}body.mes-printing>.mes-print-root{display:block!important;position:static;width:100%;background:#fff}body.mes-printing .mes-label-sheet{position:static;width:100%;display:block}body.mes-printing .mes-label{margin-bottom:6mm;box-shadow:none;background:#fff}}.overview-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}@media(max-width:1100px){.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.overview-metrics{grid-template-columns:1fr}}
