/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.start{inset-inline-start:var(--spacing)}.hidden{display:none}.table{display:table}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}:root{--ink:#152033;--muted:#718096;--line:#e6eaf0;--blue:#2f6fed;--blue-dark:#2054c7;--blue-soft:#edf4ff;--bg:#f5f7fa;--card:#fff;--green:#17835a;--orange:#d47b16;--red:#d34b40}.login-page{background:radial-gradient(circle at 75% 15%,#315c9b 0 1px,#0000 2px),linear-gradient(135deg,#0e1d32,#172b47 60%,#203c63);place-items:center;display:grid}.login-card{box-shadow:0 30px 80px #07101f66}.login-error{font-size:10px}.demo-accounts{border-top:1px solid #e9edf2;margin-top:20px;padding-top:16px}.demo-accounts>b{color:#8793a3;margin-bottom:8px;font-size:9px;display:block}.demo-accounts>span{grid-template-columns:85px 1fr auto;gap:7px;padding:5px 0;font-size:9px;display:grid}.demo-accounts em,.demo-accounts i{color:#7b899b;font-style:normal}.demo-accounts strong{color:#33465f}.logout-button{border-left:1px solid #e5e9ef!important;margin-left:12px!important;padding-left:18px!important}.role-readonly{pointer-events:none;opacity:.92;position:relative}.role-readonly:before{content:"工程审核只读资料";z-index:2;color:#a96412;background:#fff2dd;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:800;position:absolute;top:18px;right:18px}.machining-page{padding-bottom:45px}.machining-summary{grid-template-columns:repeat(4,1fr);margin:0 32px 18px}.machining-summary>div{border-radius:10px;padding:17px 18px}.machining-summary span{color:#94a8c2;font-size:9px}.machining-summary strong{margin:7px 0 4px;font-size:24px}.machining-summary small{color:#8296af}.machining-grid{grid-template-columns:minmax(360px,.8fr) minmax(480px,1.2fr);gap:16px}.machining-form>label{color:#526176;margin-top:14px;font-size:10px;font-weight:700;display:block}.machining-form input,.machining-form select,.machining-form textarea{border:1px solid #dce2ea;border-radius:7px;padding:0 10px}.machining-form input,.machining-form select{height:40px}.machining-form textarea{height:78px;padding-top:10px}.machining-fields{grid-template-columns:1fr 1fr;gap:12px}.machining-fields label{color:#526176;font-size:10px;font-weight:700}.machining-submit{margin-top:14px}.machine-log-list{gap:9px}.machine-log-list article{border:1px solid #e2e7ee;border-radius:8px;padding:12px 85px 12px 13px}.machine-log-list article>div{align-items:center;gap:9px;display:flex}.machine-log-list article>div b{font-size:11px}.machine-log-list article>div span{color:#2d63bd;background:#eaf1fd;border-radius:4px;padding:3px 6px;font-size:9px}.machine-log-list article>strong{color:#176c4e;font-size:18px;position:absolute;top:13px;right:13px}.machine-log-list article p{color:#8390a0;margin:6px 0 0;font-size:9px}.machine-log-list article small{color:#59697c;margin-top:6px;font-size:9px;display:block}.machine-log-list article>button{color:#c34c43;background:0 0;border:0;font-size:9px;position:absolute;bottom:10px;right:13px}.empty-machine{color:#8c98a8;flex-direction:column;justify-content:center;align-items:center;min-height:320px;display:flex}.empty-machine b{font-size:12px}.empty-machine span{margin-top:7px;font-size:9px}.record-link{color:#17243a;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:11px;font-weight:800;-webkit-text-decoration:underline #9ab8ed;text-decoration:underline #9ab8ed}.record-link:hover{color:#2f6fed;text-decoration-color:#2f6fed}.dropzone.needs-file{background:#fffaf2;border-color:#e7b66c}.dropzone.needs-file .upload-icon{color:#b66b10;background:#fff0d8}.dropzone.needs-file em{color:#b66b10;font-weight:700}.topbar-eng-link{color:#235fcf;white-space:nowrap;background:#edf4ff;border-radius:6px;padding:7px 11px;font-weight:800;text-decoration:none}.topbar .topbar-status{margin-right:22px}.topbar-actions{white-space:nowrap;align-items:center;display:flex}.topbar-actions i{color:#c7ced8;padding:0 7px;font-style:normal}.topbar-actions button{padding:7px 3px}.topbar-actions .logout-button{border-left:0!important;margin-left:0!important;padding-left:3px!important}.report-sheet.pdf-exporting .report-summary>div{min-height:68px!important;padding:12px 11px 16px!important}.report-sheet.pdf-exporting .report-summary span{font-size:9px!important;line-height:16px!important}.report-sheet.pdf-exporting .report-summary strong{white-space:normal!important;margin-top:4px!important;padding-bottom:3px!important;font-size:11px!important;line-height:20px!important;overflow:visible!important}.report-sheet.pdf-exporting .report-score strong{padding-bottom:3px!important;line-height:28px!important}.report-sheet.pdf-exporting .report-section li{line-height:1.9!important}.customer-combo{width:100%;height:47px;background:0 0!important;border:0!important;margin:0!important;overflow:visible!important}.customer-combo input{background:#fbfcfe!important;border:1px solid #dce2ea!important;display:block!important}.customer-combo input:focus{border-color:#75a2f5!important;box-shadow:0 0 0 3px #edf4ff!important}.customer-combo select{text-align:center;color:#4e6684!important;width:42px!important;height:38px!important;box-shadow:none!important;background:#f3f7fd!important;border-left:1px solid #e7ebf1!important;border-radius:0 6px 6px 0!important;padding:0 4px!important;font-size:10px!important;top:8px!important;right:1px!important}.customer-combo select:disabled{cursor:not-allowed;color:#a8b2bf!important;background:#f7f8fa!important}.auto-read{color:#17805a;background:#e7f7ef}.auto-read,.manual-read{border-radius:999px;margin-left:7px;padding:3px 7px;font-size:9px;font-style:normal;font-weight:700;display:inline-block}.manual-read{color:#a86412;background:#fff3df}.restore-auto{color:#2f6fed;background:#edf4ff;border:0;border-radius:5px;margin-left:7px;padding:3px 7px;font-size:9px;font-weight:700}.mold-formula{color:#66768a;background:#f5f8fc;border-radius:6px;margin:8px 0 0;padding:8px 10px;font-size:9px;line-height:1.6}.material-cost-card{background:#f8fbff;border:1px solid #dce6f2;border-radius:8px;margin-top:9px;padding:11px 12px}.material-cost-title{justify-content:space-between;align-items:center;display:flex}.material-cost-title span{color:#315d9c;font-size:10px;font-weight:800}.material-cost-title b{color:#176b4e;font-size:15px}.material-cost-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px;display:grid}.material-cost-grid p{background:#fff;border:1px solid #e7edf4;border-radius:6px;margin:0;padding:7px 8px}.material-cost-grid span,.material-cost-grid strong{display:block}.material-cost-grid span{color:#8895a5;font-size:8px}.material-cost-grid strong{color:#33465e;margin-top:3px;font-size:10px}.material-cost-card>small{color:#718198;margin-top:8px;font-size:9px;display:block}.size-row.detected input{color:#176848;cursor:not-allowed;background:#f2faf6;border-color:#bcded0}.size-row.detected label span{color:#56947d}.size-help{color:#8996a7;margin:7px 0 0;font-size:9px}.size-help.detected-unit{color:#26785b;background:#edf9f3;border-radius:6px;padding:7px 9px;line-height:1.55}.cavity-input>span{white-space:nowrap;font-weight:700;color:#64758a!important}.wechat-preview{z-index:150;background:#0d1726cc;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.wechat-preview-card{background:#fff;border-radius:15px;flex-direction:column;width:min(680px,100%);max-height:94vh;display:flex;overflow:hidden;box-shadow:0 24px 70px #07101f66}.wechat-preview-card>header{border-bottom:1px solid #e5e9ef;justify-content:space-between;align-items:center;padding:17px 20px;display:flex}.wechat-preview-card>header small,.wechat-preview-card>header strong{display:block}.wechat-preview-card>header strong{font-size:16px}.wechat-preview-card>header small{color:#8390a1;margin-top:4px;font-size:10px}.wechat-preview-card>header button{color:#526174;background:#f0f3f7;border:0;border-radius:50%;width:30px;height:30px;font-size:20px;line-height:1}.wechat-image-wrap{text-align:center;background:#edf2f6;flex:1;min-height:0;padding:16px;overflow:auto}.wechat-image-wrap img{width:min(420px,100%);height:auto;margin:0 auto;display:block;box-shadow:0 5px 20px #263b5530}.wechat-guide{background:#f1faf6;border-top:1px solid #d8eee4;padding:13px 20px}.wechat-guide b,.wechat-guide span{display:block}.wechat-guide b{color:#176c4d;font-size:11px}.wechat-guide span{color:#607366;margin-top:4px;font-size:10px}.wechat-preview-card>footer{border-top:1px solid #e5e9ef;justify-content:flex-end;gap:9px;padding:14px 20px;display:flex}.status-select{color:#aa6414;background:#fff6e9;border:1px solid #f0dcc2;border-radius:999px;outline:none;max-width:118px;padding:6px 9px;font-size:9px}.status-select:focus{box-shadow:0 0 0 3px #fff1dc}.status-select.approved{color:#177653;background:#edf9f4;border-color:#bfe4d5}.status-select.returned{color:#b74840;background:#fff4f3;border-color:#edcbc8}.quote-table .tr{grid-template-columns:1.05fr 1.15fr .48fr .58fr .78fr .45fr .58fr .32fr}.delete-cell,.delete-heading{text-align:center}.delete-cell button{color:#c44d44;background:#fff7f6;border:1px solid #efc8c5;border-radius:6px;padding:6px 10px;font-size:10px;font-weight:700}.delete-cell button:hover{color:#fff;background:#d9534a;border-color:#d9534a}.share-cell{text-align:center}.share-cell button{color:#14704f;white-space:nowrap;background:#edf9f4;border:1px solid #b8d8cb;border-radius:6px;padding:7px 10px;font-size:10px;font-weight:700}.share-cell button:hover{color:#fff;background:#177b58;border-color:#177b58}.share-cell.locked button{color:#8a97a7;background:#f5f7f9;border-color:#dfe4ea}.share-cell.locked button:hover{color:#59687a;background:#e9edf2;border-color:#cad2dc}.share-cell small{margin-top:4px!important;display:block!important}@media print{.app-shell,.report-toolbar{display:none!important}.report-modal{background:#fff!important;position:static!important;overflow:visible!important}.report-sheet{width:auto!important;min-height:auto!important;box-shadow:none!important;margin:0!important;padding:12mm!important}.report-section{break-inside:avoid}@page{size:A4;margin:0}}.report-modal{z-index:100;background:#e9eef4;position:fixed;inset:0;overflow:auto}.report-toolbar{z-index:2;background:#132238;justify-content:flex-end;align-items:center;gap:10px;height:58px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 3px 12px #101d2e33}.report-toolbar button{color:#405168;background:#fff;border:1px solid #d8e0ea;border-radius:7px;padding:9px 16px;font-weight:700}.report-toolbar .report-print{color:#fff;background:#2f6fed;border-color:#2f6fed}.report-sheet{background:#fff;width:210mm;min-height:297mm;margin:22px auto;padding:16mm;box-shadow:0 8px 32px #21334d26}.report-head{border-bottom:3px solid #1d4f98;justify-content:space-between;padding-bottom:14px;display:flex}.report-head>div:first-child small,.report-head>div:first-child strong{display:block}.report-head>div:first-child strong{font-size:22px}.report-head>div:first-child small{letter-spacing:2px;color:#718096;margin-top:4px;font-size:10px}.report-head h1{text-align:right;margin:0;font-size:22px}.report-head p{color:#718096;text-align:right;margin:6px 0 0;font-size:10px}.report-summary{background:#dfe5ed;border:1px solid #dfe5ed;grid-template-columns:repeat(4,1fr);gap:1px;margin:18px 0;display:grid}.report-summary>div{background:#f8fafc;min-width:0;padding:11px}.report-summary span,.report-summary strong{display:block}.report-summary span{color:#718096;font-size:9px}.report-summary strong{text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:12px;overflow:hidden}.report-score{color:#fff;background:#132238;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:20px;padding:15px 18px;display:grid}.report-score span,.report-score strong{display:block}.report-score span{color:#9eb1c8;font-size:9px}.report-score strong{margin-top:6px;font-size:18px}.report-section{break-inside:avoid;border:1px solid #e1e6ed;border-radius:7px;margin-top:14px;overflow:hidden}.report-section h2{color:#24579f;background:#f2f6fb;margin:0;padding:8px 11px;font-size:11px}.report-section ul{grid-template-columns:1fr 1fr;gap:6px 20px;margin:0;padding:11px 26px;display:grid}.report-section li{color:#4d5d72;font-size:9px;line-height:1.55}.report-section.split{border-color:#ebd6b5}.report-section.split h2{color:#a45f0c;background:#fff7ea}.report-section.risk{border-color:#efd1cd}.report-section.risk h2{color:#b4473d;background:#fff3f1}.report-price{color:#fff;background:#132238;border-radius:8px;justify-content:space-between;align-items:center;margin-top:16px;padding:14px 17px;display:flex}.report-price span{color:#9eb1c8;font-size:10px}.report-price strong{font-size:25px}.report-sign{grid-template-columns:1fr 1fr;gap:50px;margin-top:34px;display:grid}.report-sign div{color:#718096;border-top:1px solid #8d99a8;padding-top:8px;font-size:10px}.report-note{color:#7d8998;margin-top:18px;font-size:9px;line-height:1.7}.split-card{background:#fafbfd;border:1px solid #dfe6ef;border-radius:9px;margin-top:12px;padding:13px}.split-card>div{align-items:center;gap:9px;margin-bottom:10px;display:flex}.split-card>div>span{color:#3d6598;background:#e7eef8;border-radius:7px;place-items:center;width:26px;height:26px;font-weight:900;display:grid}.split-card>div>small{color:#8290a2;font-size:10px}.split-card>div>strong{margin-left:auto;font-size:13px}.split-card ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.split-card li{color:#5f6e80;padding-left:12px;font-size:10px;line-height:1.5;position:relative}.split-card li:before{content:"";background:#7894b7;border-radius:50%;width:4px;height:4px;position:absolute;top:6px;left:1px}.split-card.suggest{background:#fffbf5;border-color:#f0d9b6}.split-card.suggest>div>span{color:#b76b10;background:#fff0d9}.split-card.suggest>div>strong{color:#b76b10}.split-card.critical{background:#fff8f7;border-color:#f0c7c4}.split-card.critical>div>span{color:#c34b41;background:#fde5e2}.split-card.critical>div>strong{color:#c34b41}.split-card.safe{background:#f7fcf9;border-color:#cfe9dd}.split-card.safe>div>span{color:#187a55;background:#e1f5eb}.split-card.safe>div>strong{color:#187a55}.split-card>div>em{color:#53657a;white-space:nowrap;text-overflow:ellipsis;background:#fff;border:1px solid;border-radius:999px;max-width:48%;padding:3px 8px;font-size:10px;font-style:normal;overflow:hidden}.piece-config-section{background:#f6f9ff;border:1px solid #bcd7ff;border-radius:10px;margin-top:14px;padding:12px}.piece-config-head,.piece-config-list article>header{justify-content:space-between;align-items:center;gap:9px;display:flex}.piece-config-head b,.piece-config-head small{display:block}.piece-config-head b{color:#24579f;font-size:11px}.piece-config-head small{color:#75879f;margin-top:3px;font-size:8px}.piece-config-head>em{color:#2f6fce;background:#e1edff;border-radius:999px;padding:4px 8px;font-size:9px;font-style:normal;font-weight:800}.piece-config-list{gap:9px;margin-top:10px;display:grid}.piece-config-list article{background:#fff;border:1px solid #d8e5f7;border-radius:8px;padding:10px}.piece-config-list article>header>span{color:#2864bb;background:#e8f1ff;border-radius:7px;place-items:center;width:29px;height:29px;font-size:9px;font-weight:900;display:grid}.piece-config-list article>header>div{flex:1}.piece-config-list article>header b,.piece-config-list article>header small{display:block}.piece-config-list article>header b{font-size:10px}.piece-config-list article>header small{color:#8492a4;margin-top:2px;font-size:8px}.piece-config-list article>header>em{color:#16704e;font-size:9px;font-style:normal;font-weight:800}.piece-config-grid{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px;display:grid}.piece-config-grid label{color:#65758a;font-size:8px;font-weight:700}.piece-config-grid input,.piece-config-grid select{background:#fbfcfe;border:1px solid #dae3ef;border-radius:6px;width:100%;height:32px;margin-top:4px;padding:0 7px;font-size:9px}.piece-config-grid input[readonly]{color:#6c7c90;background:#f1f4f8}.piece-config-list article>footer{color:#60748c;border-top:1px dashed #dce5ef;margin-top:8px;padding-top:7px;font-size:8px;line-height:1.5}.piece-config-list article>footer button{float:right;color:#2e65b4;background:#e8f1ff;border:0;border-radius:5px;padding:3px 7px;font-size:8px;font-weight:700}@media (max-width:720px){.piece-config-grid{grid-template-columns:1fr 1fr}}.result-block.tool{background:#f8faff;border:1px solid #e4ebf8;border-radius:8px;margin-top:12px;padding:13px}.result-block.tool h4 span{color:#235fcf;background:#dfeaff;border-radius:6px;width:22px;height:22px}.result-block.tool li:before{background:#4d82df}.mold-heading-row{justify-content:space-between;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.mold-heading-row>.group-label{flex:1;margin:0}.mold-mode-select{width:145px}.mold-mode-select>span{color:#607086;margin-bottom:5px;font-size:9px;font-weight:700;display:block}.mold-mode-select select{color:#34475e;background:#fff;border:1px solid #d9e1eb;border-radius:6px;width:100%;height:34px;padding:0 8px;font-size:10px}.lower-mold-thickness{background:#f6f9fe;border:1px solid #d9e6f7;border-radius:7px;align-items:flex-end;gap:12px;margin-top:8px;padding:9px 10px;display:flex}.lower-mold-thickness label{width:31%}.lower-mold-thickness label span{color:#5d6e84;margin-bottom:5px;font-size:9px;display:block}.lower-mold-thickness input{border:1px solid #d6dfeb;border-radius:6px;width:100%;height:36px;padding:0 10px}.lower-mold-thickness small{color:#6380a6;padding-bottom:9px;font-size:9px}.material-cost-grid.split-cost{grid-template-columns:repeat(2,1fr)}@media (max-width:720px){.mold-heading-row{flex-direction:column;align-items:stretch}.mold-mode-select{width:100%}.lower-mold-thickness{flex-direction:column;align-items:stretch}.lower-mold-thickness label{width:100%}.material-cost-grid.split-cost{grid-template-columns:1fr}}.mold-pair-grid{grid-template-columns:1fr;gap:9px;margin-top:8px;display:grid}.mold-size-card{background:#fafcff;border:1px solid #dce5f0;border-radius:8px;padding:10px 11px 11px}.mold-size-card.upper{background:#f7faff;border-color:#b9d3ff}.mold-size-card.lower{background:#f7fcf9;border-color:#c9dfd4}.mold-size-card.same{margin-top:8px}.mold-size-card-title{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.mold-size-card-title b{color:#294c7a;font-size:10px}.mold-size-card.lower .mold-size-card-title b{color:#277056}.mold-size-card-title small{color:#8a98aa;font-size:8px}.mold-size-card .size-row input{background:#fff}.mold-size-card.upper .size-row input{border-color:#cbdcf6}.mold-size-card.lower .size-row input{border-color:#cfe3d9}.core-pull-size-section{background:#fffaf2;border:1px solid #efcfa2;border-radius:8px;margin-top:10px;padding:11px}.core-pull-item-title,.core-pull-size-head{justify-content:space-between;align-items:center;display:flex}.core-pull-size-head b,.core-pull-size-head small{display:block}.core-pull-size-head b{color:#9a5b12;font-size:10px}.core-pull-size-head small{color:#9b8871;margin-top:3px;font-size:8px}.core-pull-size-head em{color:#a05c0b;background:#ffe8c2;border-radius:999px;padding:4px 8px;font-size:9px;font-style:normal;font-weight:800}.core-pull-size-list{gap:8px;margin-top:9px;display:grid}.core-pull-size-list article{background:#fff;border:1px solid #f0dec5;border-radius:7px;padding:9px}.core-pull-item-title{margin-bottom:1px}.core-pull-item-title b{color:#66513b;font-size:9px}.core-pull-item-title small{color:#a08b75;font-size:8px}.core-pull-size-list .size-row input{background:#fffdf9;border-color:#eadbc7}.core-pull-cost{background:#fff9ec!important;border-color:#efcf9d!important}.core-pull-cost em{color:#b56a12;margin-top:3px;font-size:8px;font-style:normal;font-weight:800;display:block}.cavity-field{grid-column:1/-1}.cavity-input{position:relative}.cavity-input input{padding-right:34px}.cavity-input>span{color:#8290a2;font-size:11px;position:absolute;top:20px;right:12px}.cavity-field>small{color:#8290a2;align-items:center;gap:8px;margin-top:6px;font-size:9px;display:flex}.cavity-field>small button{background:var(--blue-soft);color:var(--blue);border:0;border-radius:4px;padding:3px 7px;font-size:9px}.plate-note{color:#788699;background:#f8fafc;border:1px solid #e4e9f0;border-radius:7px;flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;padding:9px 11px;font-size:9px;display:flex}.plate-note>span{color:var(--blue);font-weight:800}.plate-note>b{color:#405168}.plate-note>i{background:#b1bdca;border-radius:50%;width:3px;height:3px}*{box-sizing:border-box}body,html{background:var(--bg)}body{color:var(--ink);margin:0;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:5;background:#132238;flex-direction:column;width:244px;padding:28px 18px 22px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:0 8px 30px;display:flex}.brand-mark{background:linear-gradient(145deg,#4d8dff,#275acb);border-radius:11px;place-items:center;width:42px;height:42px;font-size:22px;font-weight:900;display:grid;box-shadow:0 8px 22px #0b1425}.brand small,.brand strong{display:block}.brand strong{letter-spacing:1px;font-size:18px}.brand small{color:#8da2bf;letter-spacing:2px;margin-top:3px;font-size:11px}.sidebar nav{gap:7px;display:grid}.sidebar nav button{color:#9eb0c8;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;padding:13px 14px;transition:all .2s;display:flex}.sidebar nav button span{width:20px;font-size:19px}.sidebar nav button i{background:#243750;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:11px;font-style:normal}.sidebar nav button.active,.sidebar nav button:hover{color:#fff;background:#243a58}.sidebar nav button.active{box-shadow:inset 3px 0 #4f8cff}.sidebar-note{background:#1b304b;border:1px solid #2d425e;border-radius:12px;margin-top:auto;padding:16px}.sidebar-note b,.sidebar-note strong{display:block}.sidebar-note b{color:#8da2bf;font-size:11px}.sidebar-note strong{color:#69a0ff;margin:7px 0;font-size:21px}.sidebar-note p{color:#9eb0c8;margin:0;font-size:11px;line-height:1.6}.engineer{border-top:1px solid #2b3d55;align-items:center;gap:9px;margin-top:18px;padding:18px 5px 0;display:flex}.engineer>span{background:#345781;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;display:grid}.engineer b,.engineer small{display:block}.engineer b{font-size:11px}.engineer small{color:#7890ae;margin-top:3px;font-size:10px}.content{flex:1;min-width:0;margin-left:244px}.topbar{border-bottom:1px solid var(--line);height:54px;color:var(--muted);background:#fff;justify-content:flex-end;align-items:center;padding:0 34px;font-size:12px;display:flex}.topbar div{margin-right:22px}.topbar button{color:#516178;background:0 0;border:0}.live-dot{background:#2eb67d;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 4px #e3f7ef}.page-heading{justify-content:space-between;align-items:end;max-width:1280px;margin:0 auto;padding:28px 32px 22px;display:flex}.page-heading p{color:var(--blue);letter-spacing:2.4px;margin:0 0 5px;font-size:10px;font-weight:800}.page-heading h1{letter-spacing:-1px;margin:0 0 6px;font-size:26px}.page-heading>div>span{color:var(--muted);font-size:13px}.steps{border:1px solid var(--line);background:#fff;border-radius:11px;max-width:1216px;margin:0 auto 20px;padding:14px 34px}.steps,.steps>div{align-items:center;display:flex}.steps>div{color:#9aa7b8;gap:10px;min-width:170px}.steps i{border:1px solid #d3dae4;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-style:normal;font-weight:800;display:grid}.steps b,.steps small{display:block}.steps b{font-size:12px}.steps small{margin-top:2px;font-size:10px}.steps em{background:#dde3eb;flex:1;height:1px;margin:0 18px}.steps .current,.steps .done{color:var(--ink)}.steps .done i{background:var(--blue);border-color:var(--blue);color:#fff}.steps .current i{border:2px solid var(--blue);color:var(--blue)}.workspace{grid-template-columns:minmax(460px,.92fr) minmax(480px,1.08fr);gap:18px;max-width:1280px;margin:0 auto;padding:0 32px 50px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:12px;box-shadow:0 4px 18px #192a4609}.form-panel,.result-panel{padding:24px}.panel-title{border-bottom:1px solid #edf0f4;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:15px;display:flex}.panel-title>span{color:var(--blue);background:var(--blue-soft);border-radius:5px;padding:6px;font-size:10px;font-weight:900}.panel-title h2,.panel-title p{margin:0}.panel-title h2{font-size:15px}.panel-title p{color:#97a3b3;margin-top:4px;font-size:10px}.field-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.field-grid label,.group-label{color:#4e5e72;font-size:11px;font-weight:700}.field-grid input,.field-grid select,.size-row input{width:100%;height:40px;color:var(--ink);background:#fbfcfe;border:1px solid #dce2ea;border-radius:7px;outline:none;margin-top:7px;padding:0 11px}.field-grid input:focus,.field-grid select:focus,.size-row input:focus{border-color:#75a2f5;box-shadow:0 0 0 3px #edf4ff}.group-label{margin-top:18px;display:block}.size-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.size-row label{position:relative}.size-row label span{color:#9aa5b4;font-size:10px;position:absolute;top:19px;left:10px}.size-row input{padding-left:48px}.rush-row{background:#f8fafc;border:1px solid #e8edf2;border-radius:8px;align-items:center;gap:10px;margin-top:17px;padding:11px 13px;display:flex}.rush-row b,.rush-row small{display:block}.rush-row b{font-size:11px}.rush-row small{color:#8a98aa;margin-top:2px;font-size:10px}.switch input{display:none}.switch span{background:#c9d1dc;border-radius:20px;width:34px;height:19px;transition:all .2s;display:block;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:all .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #8895a5}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:after{transform:translate(15px)}.upload-title{margin-top:24px}.dropzone{width:100%;min-height:145px;color:var(--ink);background:#f8fbff;border:1.5px dashed #b8c8e0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex}.dropzone:hover{border-color:var(--blue);background:#f3f7ff}.dropzone input{display:none}.upload-icon{width:36px;height:36px;color:var(--blue);background:#e6efff;border-radius:50%;place-items:center;margin-bottom:9px;font-size:20px;display:grid}.dropzone strong{text-overflow:ellipsis;max-width:92%;font-size:12px;overflow:hidden}.dropzone small{color:#8694a6;margin:7px 0;font-size:10px}.dropzone em{color:#8ea0b7;font-size:9px;font-style:normal}.dropzone.has-file{background:#f7fbf9;border-style:solid;border-color:#a9d9c8}.dropzone.has-file .upload-icon{color:var(--green);background:#e3f5ee}.ghost,.primary{border-radius:7px;padding:10px 16px;font-size:12px;font-weight:700}.primary{border:1px solid var(--blue);background:var(--blue);color:#fff;box-shadow:0 3px 9px #2f6fed33}.primary:hover{background:var(--blue-dark)}.primary:disabled{opacity:.45;cursor:not-allowed}.ghost{color:#506077;background:#fff;border:1px solid #d9e0e9}.analyze{width:100%;height:43px;margin-top:14px}.spinner{vertical-align:-2px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:13px;height:13px;margin-right:8px;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.result-panel{min-height:640px}.analyzing,.empty-result{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:540px;display:flex}.analyzing h3,.empty-result h3{margin:20px 0 8px;font-size:14px}.analyzing p,.empty-result p{color:#8a98aa;max-width:370px;margin:0;font-size:11px;line-height:1.7}.scan-box{color:#7da0db;background:linear-gradient(135deg,#f8fbff,#edf4ff);border:1px solid #b8c9e6;border-radius:7px;place-items:center;width:92px;height:72px;display:grid;position:relative}.scan-box b{letter-spacing:2px;font-size:18px}.scan-box span{border-color:var(--blue);width:13px;height:13px;position:absolute}.scan-box span:first-child{border-top:2px solid;border-left:2px solid;top:-1px;left:-1px}.scan-box span:nth-child(2){border-top:2px solid;border-right:2px solid;top:-1px;right:-1px}.scan-box span:nth-child(3){border-bottom:2px solid;border-left:2px solid;bottom:-1px;left:-1px}.scan-box span:nth-child(4){border-bottom:2px solid;border-right:2px solid;bottom:-1px;right:-1px}.mini-flow{color:#8c9aad;align-items:center;gap:10px;margin-top:23px;font-size:9px;display:flex}.mini-flow span{border:1px solid #e0e6ee;border-radius:4px;padding:5px 8px}.mini-flow i{font-style:normal}.radar{background:radial-gradient(circle,#edf4ff 0 3px,#0000 4px),repeating-radial-gradient(circle,#0000 0 14px,#dce7f8 15px);border:1px solid #bed0ef;border-radius:50%;place-items:center;width:92px;height:92px;display:grid;position:relative;overflow:hidden}.radar i{transform-origin:0 100%;background:linear-gradient(45deg,#0000,#6c9df455);width:50%;height:50%;animation:scan 1.2s linear infinite;position:absolute;top:0;right:0}.radar b{color:var(--blue);font-size:10px}@keyframes scan{to{transform:rotate(1turn)}}.score-card{background:#f9fbfe;border:1px solid #e3e9f1;border-radius:10px;align-items:center;gap:16px;padding:15px;display:flex}.score-ring{background:conic-gradient(var(--score-color) var(--score),#e7ecf2 0);border-radius:50%;place-items:center;width:82px;height:82px;display:grid;position:relative}.score-ring:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:7px}.score-ring div{z-index:1;text-align:center}.score-ring strong{font-size:23px}.score-ring small{color:#9aa5b4;font-size:8px;display:block}.score-card>div:nth-child(2) span{color:#8290a2;font-size:10px}.score-card h3{margin:3px 0;font-size:21px}.score-card p{color:#8b98a8;margin:0;font-size:9px}.estimate{text-align:right;margin-left:auto;font-size:18px}.estimate small{color:#98a3b1;margin-top:3px;font-size:9px;display:block}.result-block{border-bottom:1px solid #edf0f4;padding:15px 2px}.result-block h4{align-items:center;gap:7px;margin:0 0 9px;font-size:11px;display:flex}.result-block h4 span{width:19px;height:19px;color:var(--blue);background:#edf3ff;border-radius:50%;place-items:center;font-size:9px;display:grid}.result-block ul{grid-template-columns:1fr 1fr;gap:7px 15px;margin:0;padding:0;list-style:none;display:grid}.result-block li{color:#5f6e80;padding-left:12px;font-size:10px;line-height:1.45;position:relative}.result-block li:before{content:"";background:#9bb2d5;border-radius:50%;width:4px;height:4px;position:absolute;top:6px;left:1px}.result-block.warn h4 span{color:var(--orange);background:#fff3e4}.result-block.warn li:before{background:var(--orange)}.result-block.good h4 span{color:var(--green);background:#e9f8f1}.result-block.good li:before{background:var(--green)}.price-box{color:#fff;background:#132238;border-radius:9px;grid-template-columns:1fr auto;align-items:center;margin-top:15px;padding:15px;display:grid}.price-box>div small,.price-box>div span{display:block}.price-box>div span{font-size:11px;font-weight:800}.price-box>div small{color:#91a5bf;margin-top:4px;font-size:9px}.price-box label{background:#203753;border:1px solid #355071;border-radius:6px;align-items:center;padding:3px 8px;display:flex}.price-box label span{color:#7ba6f2;font-weight:800}.price-box input{color:#fff;text-align:right;background:0 0;border:0;outline:none;width:100px;font-size:20px;font-weight:900}.price-range{color:#8ea2bb;border-top:1px solid #2d425b;grid-column:1/-1;margin-top:10px;padding-top:9px;font-size:9px}.result-actions{justify-content:flex-end;gap:8px;margin-top:15px;display:flex}.subpage{max-width:1280px;margin:0 auto}.boundary,.table-panel{margin:0 32px 50px}.table-tools{border-bottom:1px solid var(--line);justify-content:space-between;padding:19px 22px;display:flex}.table-tools span{color:var(--muted);font-size:11px}.quote-table{overflow:auto}.tr{border-bottom:1px solid #edf0f4;grid-template-columns:1.1fr 1.25fr .6fr .7fr .8fr .6fr;align-items:center;gap:18px;min-width:950px;padding:15px 22px;display:grid}.tr:last-child{border-bottom:0}.tr>span{font-size:11px}.tr b,.tr small{display:block}.tr b{font-size:11px}.tr small{color:#8b98a8;margin-top:4px;font-size:9px}.tr.th{color:#7c8a9d;background:#f8fafc;padding-top:10px;padding-bottom:10px;font-size:9px}.status{color:#b36b15;background:#fff3e2;border-radius:999px;padding:5px 8px;font-size:9px;font-style:normal}.version{color:#617188;border:1px solid #dce4ef;border-radius:999px;padding:7px 12px;font-size:10px}.rule-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin:0 32px 18px;display:grid}.rule-summary>div{color:#fff;background:#15263d;border-radius:9px;padding:17px 20px}.rule-summary span,.rule-summary strong{display:block}.rule-summary strong{color:#6e9ff6;font-size:24px}.rule-summary span{color:#95a8c0;margin-top:3px;font-size:10px}.rules-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin:0 32px 18px;display:grid}.rule-card{padding:18px}.rule-card>div{color:var(--blue);justify-content:space-between;font-size:10px;display:flex}.rule-card>div span{background:var(--blue-soft);border-radius:4px;padding:4px;font-weight:800}.rule-card h3{margin:15px 0 7px;font-size:15px}.rule-card p{color:#6d7b8e;height:34px;margin:0;font-size:10px;line-height:1.6}.rule-card small{color:#9ba6b4;border-top:1px solid #edf0f4;margin-top:13px;padding-top:11px;font-size:9px;display:block}.boundary{padding:22px}.boundary h2{margin:0 0 17px;font-size:16px}.boundary>div{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.boundary p{border-left:3px solid var(--blue);margin:0;padding-left:12px}.boundary b,.boundary span{display:block}.boundary b{margin-bottom:5px;font-size:11px}.boundary span{color:#758397;font-size:10px;line-height:1.6}.toast{color:#fff;z-index:10;background:#12243a;border-radius:8px;padding:13px 18px;font-size:12px;position:fixed;bottom:25px;right:25px;box-shadow:0 10px 30px #15203340}@media (max-width:1050px){.workspace{grid-template-columns:1fr}.rules-grid{grid-template-columns:1fr 1fr}.boundary>div{grid-template-columns:1fr}.result-panel{min-height:560px}}@media (max-width:760px){.sidebar{width:100%;height:auto;padding:16px;position:static}.app-shell{display:block}.brand{padding-bottom:13px}.sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebar nav button{justify-content:center;font-size:0}.sidebar nav button span{font-size:18px}.engineer,.sidebar nav button i,.sidebar-note{display:none}.content{margin:0}.topbar{display:none}.page-heading{padding:22px 16px 16px}.steps{margin:0 16px 15px;padding:11px}.steps small{display:none}.steps>div{min-width:auto}.steps em{margin:0 8px}.workspace{padding:0 16px 30px}.field-grid,.result-block ul,.workspace{grid-template-columns:1fr}.rule-summary{grid-template-columns:1fr 1fr;margin:0 16px 14px}.rules-grid{grid-template-columns:1fr;margin:0 16px 14px}.boundary,.table-panel{margin:0 16px 30px}.boundary>div{grid-template-columns:1fr}.page-heading h1{font-size:22px}.form-panel,.result-panel{padding:18px}}@media print{.form-panel,.page-heading .ghost,.result-actions,.sidebar,.steps,.topbar{display:none}.content{margin:0}.workspace{padding:0;display:block}.result-panel{box-shadow:none;border:0}.page-heading{padding:0 0 20px}.price-box{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.field-grid[data-multi-piece=true] .global-cavity-field{display:none!important}.machining-piece-selector{background:#f7faff;border:1px solid #cbdcf6;border-radius:9px;margin-top:12px;padding:11px}.machining-piece-selector-head{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.machining-piece-selector-head b{color:#285a9e;font-size:10px}.machining-piece-selector-head small{color:#7b8da4;font-size:8px}.machining-piece-main-card button,.machining-piece-split-card button{text-align:left;background:#fff;border:1px solid #d9e4f3;border-radius:7px;width:100%}.machining-piece-main-card button{grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px;display:grid}.machining-piece-main-card span,.machining-piece-split-card button>span{color:#2864bb;background:#e8f1ff;border-radius:5px;padding:4px 7px;font-size:8px;font-weight:900}.machining-piece-main-card strong{font-size:10px}.machining-piece-main-card small,.machining-piece-split-card button>small{color:#17805a;font-size:8px}.machining-piece-main-card button.active,.machining-piece-split-card button.active{background:#f8fbff;border-color:#2f6fed;box-shadow:0 0 0 2px #e7efff}.machining-piece-split-card{background:#fffaf3;border:1px solid #ead8b9;border-radius:7px;margin-top:9px;padding:9px}.machining-piece-split-card>header{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.machining-piece-split-card>header span{color:#ad6713;font-size:9px;font-weight:900}.machining-piece-split-card>header strong{color:#725d43;font-size:9px}.machining-piece-split-card>div{grid-template-columns:1fr 1fr;gap:6px;display:grid}.machining-piece-split-card button{grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:8px;display:grid}.machining-piece-split-card button>b{white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}@media (max-width:720px){.machining-piece-split-card>div{grid-template-columns:1fr}}.decision-review{background:#fffaf0;border:1px solid #f1c46c;border-radius:14px;margin:14px 0;padding:14px}.step-inline-result{background:#eef9f3;border:1px solid #c9dfd3;border-radius:8px;grid-column:1/-1;padding:11px 12px}.step-inline-result b,.step-inline-result small,.step-inline-result span{display:block}.step-inline-result b{color:#177153;font-size:11px}.step-inline-result span{color:#536b60;margin-top:5px;font-size:9px;line-height:1.55}.step-inline-result small{color:#315d9c;margin-top:6px;font-weight:700}.step-inline-result.pending{background:#fff8ec;border-color:#ead8b8}.step-inline-result.pending b{color:#9a6415}.decision-review>header{align-items:center;gap:12px;margin-bottom:10px;display:flex}.decision-review>header>div{align-items:center;gap:8px;display:flex}.decision-review>header span{color:#946200;background:#fff1cc;border-radius:9px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.decision-review>header strong{color:#9a6400;margin-left:auto}.decision-review>header em{color:#6e7e93;background:#fffc;border-radius:999px;padding:4px 9px;font-size:12px;font-style:normal}.decision-review.confirmed-required{background:#fff6f0;border-color:#f0a36d}.decision-review.confirmed-none{background:#f3fff8;border-color:#9ed9bb}.decision-review.confirmed-none>header strong{color:#15805a}.decision-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.decision-review-grid>section{background:#ffffffb8;border:1px solid #15315014;border-radius:10px;padding:10px 12px}.decision-review-grid small{color:#18314f;font-weight:700}.decision-review-grid ul{color:#61738d;margin:6px 0 0;padding-left:18px;font-size:12px;line-height:1.7}@media (max-width:900px){.decision-review>header{flex-wrap:wrap;align-items:flex-start}.decision-review>header strong{margin-left:0}.decision-review-grid{grid-template-columns:1fr}}.work-order-actions{align-items:center;gap:10px;display:flex}.new-version-button{color:#fff;cursor:pointer;background:#1769d2;border:0;border-radius:8px;padding:11px 18px;font-weight:800}.version-timeline{background:#fff;border:1px solid #d9e3f0;border-radius:12px;margin:0 0 18px;padding:18px}.version-timeline>header{justify-content:space-between;align-items:center;display:flex}.version-timeline h2{margin:3px 0;font-size:18px}.version-list{gap:10px;margin-top:14px;display:flex;overflow:auto}.version-list button{text-align:left;background:#f8fafc;border:1px solid #dce4ee;border-radius:9px;min-width:180px;padding:12px;position:relative}.version-list button.current{background:#edf5ff;border-color:#1769d2}.version-list button.selected{box-shadow:0 0 0 2px #1769d233}.version-list b,.version-list em,.version-list small,.version-list span{display:block}.version-list i{color:#fff;background:#1769d2;border-radius:10px;padding:2px 6px;font-size:10px;position:absolute;top:8px;right:8px}.version-detail{background:#f4f7fb;border-radius:8px;margin-top:12px;padding:12px}.version-modal{z-index:1000;background:#0d1b2a99;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.version-modal>section{background:#fff;border-radius:14px;width:min(560px,100%);padding:22px}.version-modal footer,.version-modal header,.version-pair{justify-content:space-between;align-items:center;display:flex}.version-modal header button{background:0 0;border:0;font-size:26px}.version-pair{background:#edf5ff;border-radius:9px;padding:14px}.version-pair b,.version-pair small,.version-pair span{display:block}.version-pair b{font-size:22px}.version-modal label{margin-top:14px;font-weight:700;display:block}.version-modal input,.version-modal select,.version-modal textarea{border:1px solid #ccd7e5;border-radius:7px;width:100%;margin-top:6px;padding:10px}.version-modal textarea{min-height:90px}.version-modal footer{justify-content:flex-end;gap:10px;margin-top:18px}.version-modal footer button{border:0;border-radius:7px;padding:10px 16px}.version-modal footer .confirm{color:#fff;background:#1769d2;font-weight:800}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;color:#142238;background:radial-gradient(circle at 75% 15%,rgba(125,169,238,.28),transparent 30%),linear-gradient(135deg,#0e1d32,#172b47 60%,#203c63)}.login-standard-logo{display:block;width:min(310px,92%);height:auto;margin:0 auto 22px;object-fit:contain}.login-card{width:min(430px,100%);padding:32px;border-radius:18px;background:#fff;box-shadow:0 30px 80px rgba(7,16,31,.4)}.login-brand{display:flex;align-items:center;gap:12px}.login-brand>span{width:43px;height:43px;display:grid;place-items:center;border-radius:11px;background:#2f6fed;color:#fff;font-size:22px;font-weight:900}.login-brand small,.login-brand strong{display:block}.login-brand strong{font-size:18px}.login-brand small{margin-top:3px;color:#8391a4;font-size:10px;letter-spacing:2px}.login-heading{margin:27px 0 22px}.login-heading p{margin:0;color:#2f6fed;font-size:9px;font-weight:900;letter-spacing:2px}.login-heading h1{margin:7px 0 6px;font-size:25px}.login-heading span{color:#7a8798;font-size:11px}.login-card>label{display:block;margin-top:14px;color:#526176;font-size:11px;font-weight:700}.login-card>label input,.login-card>label select{width:100%;height:43px;margin-top:7px;padding:0 12px;border:1px solid #dbe2ec;border-radius:8px;background:#fbfcfe;outline:none}.login-card>label input:focus,.login-card>label select:focus{border-color:#75a2f5;box-shadow:0 0 0 3px #edf4ff}.login-error{margin:10px 0 0;color:#c1433b;font-size:11px}.login-submit{width:100%;height:44px;margin-top:18px}.demo-accounts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid #e7ecf3}.demo-accounts b{grid-column:1/-1;margin-bottom:2px;color:#7c899a;font-size:10px}.demo-accounts span{padding:9px 10px;border-radius:8px;background:#f5f8fc;font-size:10px}.demo-accounts em,.demo-accounts i,.demo-accounts strong{display:block;font-style:normal}.demo-accounts i{color:#2f6fed;font-weight:800}.demo-accounts strong{margin:3px 0;color:#26364d}.demo-accounts em{color:#8a96a7}@media (max-width:560px){.login-page{padding:16px;gap:12px}.login-standard-logo{width:min(270px,94%);margin-bottom:18px}.login-card{padding:24px 20px}.demo-accounts{grid-template-columns:1fr}}.machining-page{width:100%;min-width:0;padding:0 0 48px}.machining-page .page-heading{display:flex;align-items:flex-end;justify-content:space-between;min-height:168px;padding:34px 32px 26px;border-bottom:1px solid #e5eaf1;background:#f5f7fb}.machining-page .page-heading p{margin:0 0 9px;color:#2f6fed;font-size:11px;font-weight:800;letter-spacing:2.2px}.machining-page .page-heading h1{margin:0 0 8px;color:#17263d;font-size:28px;line-height:1.2}.machining-page .page-heading span{color:#758399;font-size:12px}.machining-order-board{margin:22px 32px 18px;padding:0}.machining-order-board-head{min-height:72px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6ebf2}.machining-order-board-head>div{display:flex;align-items:center;gap:12px}.machining-order-board-head>div>span{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#edf4ff;color:#2f6fed;font-size:10px;font-weight:800}.machining-order-board-head h2,.machining-order-board-head p{margin:0}.machining-order-board-head h2{color:#26364c;font-size:16px}.machining-order-board-head p{margin-top:4px;color:#8b98aa;font-size:10px}.machining-order-board-head>b{color:#728096;font-size:11px}.machining-order-list{display:grid}.machining-order-row{width:100%;min-height:76px;padding:13px 18px;display:grid;grid-template-columns:minmax(175px,1.4fr) 70px 105px 85px 95px 125px 82px;align-items:center;gap:12px;border:0;border-bottom:1px solid #edf0f4;background:#fff;color:#24364d;text-align:left;transition:background .18s ease,box-shadow .18s ease}.machining-order-row:last-child{border-bottom:0}.machining-order-row:hover{background:#f8fbff}.machining-order-row.selected{position:relative;background:#f3f7ff;box-shadow:inset 4px 0 #2f6fed}.machining-order-row.completed{background:#f7f9fc;color:#657389}.machining-order-row.completed.selected{box-shadow:inset 4px 0 #93a1b5}.order-due b,.order-due small,.order-hours b,.order-hours small,.order-main small,.order-main strong{display:block}.order-main strong{color:#1f3653;font-size:13px}.completed .order-main strong{color:#657389}.order-due small,.order-hours small,.order-main small{margin-top:5px;color:#8a97a8;font-size:9px}.order-due b,.order-hours b{margin-top:3px;font-size:11px}.order-hours b{white-space:nowrap}.order-priority,.order-rework,.order-status{justify-self:start;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.order-priority.urgent{border:1px solid #cf1712;background:linear-gradient(135deg,#ff2d24,#ff5a36);color:#fff;box-shadow:0 0 0 3px rgba(255,49,39,.1),0 4px 10px rgba(216,35,27,.25)}.order-priority.high{border:1px solid #f08a00;background:linear-gradient(135deg,#ffc928,#ff9f1a);color:#7b3000;box-shadow:0 3px 8px rgba(240,138,0,.18)}.order-priority.normal{background:#edf4ff;color:#2f6fed}.order-priority.low{background:#eef2f6;color:#6c788a}.order-rework{background:#f2f4f7;color:#929cac}.order-rework.active{background:#fff0e6;color:#bb5d18}.order-status{background:#e9f7f0;color:#187353}.completed .order-status{background:#e7ebf0;color:#596678}.order-action{justify-self:end;color:#2f6fed;font-size:10px;font-weight:800}.completed .order-action{color:#66758a}.machining-order-empty{padding:40px 20px;color:#8b98aa;font-size:11px;text-align:center}.machining-detail-nav{min-height:76px;margin:22px 32px 14px;padding:12px 16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;border:1px solid #dce5f1;border-radius:12px;background:#fff;box-shadow:0 6px 20px rgba(31,48,74,.05)}.machining-detail-nav>button{min-height:38px;padding:0 14px;border:1px solid #cfdaea;border-radius:8px;background:#f7faff;color:#2f6fed;font-size:11px;font-weight:800}.machining-detail-nav>div small,.machining-detail-nav>div span,.machining-detail-nav>div strong{display:block}.machining-detail-nav>div span{color:#8a97a8;font-size:9px}.machining-detail-nav>div strong{margin-top:3px;color:#243b5a;font-size:14px}.machining-detail-nav>div small{margin-top:3px;color:#7b899b;font-size:9px}.machining-selected-order{margin-top:16px;padding:11px 12px;border:1px solid #dce5f1;border-radius:8px;background:#f8fbff}.machining-selected-order small,.machining-selected-order span,.machining-selected-order strong{display:block}.machining-selected-order span{color:#7f8da0;font-size:9px}.machining-selected-order strong{margin-top:5px;color:#263a55;font-size:12px}.machining-selected-order small{margin-top:4px;color:#8190a3;font-size:9px}.core-pull-time-summary{margin-top:10px;padding:11px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;border:1px solid #efcf9d;border-radius:8px;background:#fff9ec}.core-pull-time-summary>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}.core-pull-time-summary>div strong{margin-top:0;text-align:right}.core-pull-time-summary>div,.core-pull-time-summary>p{margin:0;padding:8px 9px;border-radius:6px;background:#fff}.core-pull-time-summary b,.core-pull-time-summary span,.core-pull-time-summary strong{display:block}.machining-target-switch{margin-top:14px;padding:11px;border:1px solid #dbe4f0;border-radius:9px;background:#f8fbff}.machining-target-switch>small,.machining-target-switch>span{display:block}.machining-target-switch>span{color:#526176;font-size:10px;font-weight:700}.machining-target-switch>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.machining-target-switch button{height:38px;border:1px solid #cbd8e9;border-radius:7px;background:#fff;color:#526176;font-weight:700;cursor:pointer}.machining-target-switch button.active{border-color:#2f6fed;background:#eaf1ff;color:#1856c9;box-shadow:inset 0 0 0 1px #2f6fed}.machining-target-switch button.active.core{border-color:#d58a20;background:#fff3dc;color:#9a5a00;box-shadow:inset 0 0 0 1px #d58a20}.machining-target-switch>small{margin-top:7px;color:#8090a5;font-size:9px}.core-pull-time-summary span{color:#967b58;font-size:8px}.core-pull-time-summary b,.core-pull-time-summary strong{margin-top:4px;color:#87500d;font-size:10px}.machining-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 32px 18px}.machining-summary>div{min-width:0;padding:18px;border-radius:12px;background:#14263e;color:#fff;box-shadow:0 8px 22px rgba(20,38,62,.1)}.machining-summary small,.machining-summary span,.machining-summary strong{display:block}.machining-summary span{color:#9cacc0;font-size:10px}.machining-summary strong{overflow:hidden;margin:7px 0 5px;color:#fff;font-size:23px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.machining-summary strong.over{color:#ffb05a}.machining-summary small{overflow:hidden;color:#8498b0;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.machining-grid{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(420px,1.15fr);gap:18px;margin:0 32px;align-items:start}.machining-page .panel{min-width:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:13px;background:#fff;box-shadow:0 8px 25px rgba(31,48,74,.05)}.machining-form,.machining-table{padding:22px}.machining-page .panel-title{display:flex;align-items:flex-start;gap:12px;padding-bottom:17px;border-bottom:1px solid #e9edf3}.machining-page .panel-title>span{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#edf4ff;color:#2f6fed;font-size:10px;font-weight:800}.machining-page .panel-title h2{margin:0 0 4px;color:#26364c;font-size:16px}.machining-page .panel-title p{margin:0;color:#9aa5b5;font-size:10px}.machining-fields label,.machining-form>label{display:block;color:#526176;font-size:11px;font-weight:700}.machining-form>label{margin-top:16px}.work-priority{display:grid;grid-template-columns:auto 92px minmax(0,1fr);align-items:center;gap:10px;margin-top:12px;padding:11px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.work-priority>span{color:#526176;font-size:10px;font-weight:700}.work-priority select{width:92px!important;height:32px!important;margin:0!important;font-weight:700}.work-priority b{display:grid;min-width:62px;height:29px;place-items:center;border-radius:999px;font-size:10px}.work-priority small{color:#8b97a8;font-size:9px}.work-priority .urgent{min-width:78px;border:2px solid #a91915!important;background:#e2342d!important;color:#fff!important;box-shadow:0 4px 11px rgba(185,34,29,.28)}.work-priority .high,.work-priority .urgent{display:flex;align-items:center;justify-content:center;height:34px;font-size:12px;font-weight:900}.work-priority .high{min-width:72px;border:2px solid #e13c32!important;background:#ffd83d!important;color:#c8211a!important;box-shadow:0 3px 9px rgba(208,44,34,.2)}.work-priority b i{margin-right:5px;font-size:12px;font-style:normal}.work-priority b i,.work-priority b span{display:inline-block;line-height:1}.work-priority.priority-urgent{position:relative;overflow:hidden;border:2px solid #d82f29;background:#fff0ee;box-shadow:0 5px 16px rgba(197,39,32,.18)}.work-priority.priority-urgent:before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:#c51f1a}.work-priority.priority-urgent>span{color:#a51f1a;font-weight:900}.work-priority.priority-urgent small{color:#a33d38;font-weight:800}.work-priority.priority-high{position:relative;overflow:hidden;border:2px solid #e84a3e;background:#fff5b8;box-shadow:0 5px 14px rgba(217,70,55,.14)}.work-priority.priority-high:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:#e53935}.work-priority.priority-high>span{color:#9d271f;font-weight:900}.work-priority.priority-high small{color:#9b4a26;font-weight:700}.work-priority .normal{border-color:#bcd0f7!important;background:#eef4ff!important;color:#2f6fed!important}.work-priority .low{border-color:#d8dee7!important;background:#f2f4f7!important;color:#6d7b8e!important}.work-due-date{display:grid;grid-template-columns:auto 150px minmax(0,1fr);align-items:center;gap:10px;margin-top:10px;padding:11px 12px;border:1px solid #dfe5ed;border-radius:8px;background:#f8fafc}.work-due-date>span{color:#526176;font-size:10px;font-weight:700}.work-due-date input{width:150px!important;height:34px!important;margin:0!important}.work-due-date b{color:#26364c;font-size:11px}.work-due-date small{color:#8290a3;font-size:9px}.work-due-date.soon{border-color:#f0ca92;background:#fff9ee}.work-due-date.soon small{color:#ad6818;font-weight:700}.work-due-date.overdue{border-color:#edb2ac;background:#fff2f0}.work-due-date.overdue small{color:#c64339;font-weight:800}.active-rework-alert{margin-top:10px;padding:12px 14px;border:1px solid #eeaaa3;border-left:4px solid #d84e43;border-radius:8px;background:#fff1ef}.active-rework-alert p,.active-rework-alert small,.active-rework-alert strong{display:block;margin:0}.active-rework-alert strong{color:#c33f35;font-size:11px}.active-rework-alert p{margin-top:6px;color:#5d4750;font-size:10px;line-height:1.55}.active-rework-alert small{margin-top:6px;color:#9d7773;font-size:8px}.rework-control{margin-top:10px;padding:12px;border:1px solid #dfe5ed;border-radius:9px;background:#fbfcfe}.rework-control.has-active{border-color:#efbd94;background:#fffaf4}.rework-head{display:flex;align-items:center;gap:9px}.rework-head span{color:#526176;font-size:10px;font-weight:700}.rework-head b{color:#26364c;font-size:11px}.rework-head em,.rework-status{margin-left:auto;padding:4px 9px;border-radius:999px;background:#fff0e5;color:#b85c18;font-size:9px;font-style:normal}.rework-create{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:8px;margin-top:10px}.rework-create input{height:36px!important;margin:0!important}.rework-create button{border:0;border-radius:7px;background:#e87825;color:#fff;font-size:10px;font-weight:700;cursor:pointer}.rework-create button:disabled{background:#d7dde6;cursor:not-allowed}.rework-list{display:grid;gap:7px;margin-top:10px}.rework-list article{display:grid;grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;background:#fff;box-shadow:inset 0 0 0 1px #e7ebf1}.rework-list p,.rework-list small,.rework-list strong{display:block;margin:0}.rework-list strong{color:#32425a;font-size:10px}.rework-list p{margin-top:3px;color:#59687c;font-size:10px}.rework-list small{margin-top:4px;color:#96a0af;font-size:8px}.rework-list .rework-archive-note{color:#b06a23;font-weight:700}.rework-archive-photos{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.rework-archive-photos a{display:block;width:38px;height:38px;overflow:hidden;border:1px solid #efc994;border-radius:5px}.rework-archive-photos img{width:100%;height:100%;object-fit:cover}.rework-list select{width:92px!important;height:32px!important;margin:0!important;font-size:9px}.rework-status.done{background:#eaf8f2;color:#17835a}.machining-start-gate{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:15px;border:2px solid #2f6fed;border-radius:9px;background:linear-gradient(135deg,#f1f6ff,#e8f0ff);box-shadow:0 5px 16px rgba(47,111,237,.12)}.machining-start-gate h3,.machining-start-gate p,.machining-start-gate span{display:block;margin:0}.machining-start-gate span{color:#2f6fed;font-size:8px;font-weight:900;letter-spacing:1.5px}.machining-start-gate h3{margin-top:3px;color:#173f86;font-size:13px}.machining-start-gate p{margin-top:4px;color:#6d7f99;font-size:9px;line-height:1.5}.machining-start-gate button{flex:0 0 auto;min-width:105px;height:40px;border:0;border-radius:7px;background:#2f6fed;color:#fff;font-size:11px;font-weight:900;box-shadow:0 4px 11px rgba(47,111,237,.26)}.machining-start-record{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-top:12px;padding:8px 10px;border:1px solid #cde8dc;border-radius:7px;background:#f2faf6;font-size:8px}.machining-start-record span{color:#16825a;font-weight:900}.machining-start-record b{color:#466b5d}.machining-start-record small{color:#82998f}.machining-entry-fields{min-width:0;margin:0;padding:0;border:0}.machining-entry-fields.locked{opacity:.48;filter:grayscale(.25)}.machining-entry-fields.locked button,.machining-entry-fields.locked input,.machining-entry-fields.locked select,.machining-entry-fields.locked textarea{cursor:not-allowed}.machining-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:14px}.machining-form input,.machining-form select,.machining-form textarea{width:100%;margin-top:7px;padding:0 11px;border:1px solid #dbe2ec;border-radius:8px;background:#fbfcfe;color:#27374e;outline:none}.machining-form input,.machining-form select{height:42px}.machining-form textarea{min-height:82px;padding-top:11px;resize:vertical}.machining-form input:focus,.machining-form select:focus,.machining-form textarea:focus{border-color:#74a0f4;box-shadow:0 0 0 3px #eef4ff}.machining-submit{width:100%;min-height:43px;margin-top:16px}.machine-log-list{display:grid;gap:10px;margin-top:16px}.machine-log-list article{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:14px 16px;border:1px solid #e5eaf1;border-radius:10px;background:#fafbfd}.machine-log-list article>div b,.machine-log-list article>div span{display:block}.machine-log-list article>div b{color:#26364c;font-size:12px}.machine-log-list article p,.machine-log-list article small,.machine-log-list article>div span{color:#8390a3;font-size:9px}.machine-log-list article>strong{color:#2f6fed;font-size:20px}.machine-log-list article p,.machine-log-list article small{grid-column:1/-1;margin:0}.machine-log-list article button{position:absolute;right:14px;bottom:12px;border:0;background:transparent;color:#d4574d;font-size:9px;cursor:pointer}.machine-log-list article .log-actions{position:absolute;right:12px;bottom:9px;display:flex;gap:6px}.machine-log-list article .log-actions button{position:static;min-width:39px;height:24px;padding:0 7px;border:1px solid #b9cff5;border-radius:6px;background:#fff;color:#2f6fed;font-size:8px}.machine-log-list article .log-actions .delete{border-color:#efc2be;color:#c94b42}.log-updated{color:#2f6fed!important}.log-edit-modal{position:fixed;z-index:1100;inset:0;display:grid;place-items:center;padding:22px;background:rgba(13,27,46,.58);backdrop-filter:blur(3px)}.log-edit-modal>section{width:min(560px,100%);padding:24px;border-radius:15px;background:#fff;box-shadow:0 28px 80px rgba(8,20,38,.3)}.log-edit-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid #e7ebf1}.log-edit-head small{color:#2f6fed;font-size:9px;font-weight:900;letter-spacing:1.6px}.log-edit-head h2{margin:5px 0 0;color:#26364c;font-size:21px}.log-edit-head button{width:31px;height:31px;border:0;border-radius:7px;background:#f3f5f8;color:#6d7b8f;font-size:19px;cursor:pointer}.log-edit-grid{display:grid;grid-template-columns:1fr 1fr .8fr;gap:12px;margin-top:17px}.log-edit-grid label,.log-edit-note{display:block;color:#526176;font-size:10px;font-weight:700}.log-edit-grid input,.log-edit-grid select,.log-edit-note textarea{width:100%;margin-top:7px;border:1px solid #dbe2ec;border-radius:8px;background:#fbfcfe;outline:none}.log-edit-grid input,.log-edit-grid select{height:40px;padding:0 10px}.log-edit-note{margin-top:14px}.log-edit-note textarea{min-height:84px;padding:10px;resize:vertical}.log-edit-modal>section>p{margin:10px 0 0;color:#8f9aa9;font-size:9px}.log-edit-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.log-edit-actions button{min-width:88px;height:38px;border:1px solid #dce2ea;border-radius:7px;background:#fff;color:#657388;font-size:10px;font-weight:700;cursor:pointer}.log-edit-actions .save{border-color:#2f6fed;background:#2f6fed;color:#fff}.log-edit-actions .save:disabled{border-color:#d6dce5;background:#d6dce5;cursor:not-allowed}.empty-machine{min-height:220px;display:grid;place-content:center;gap:8px;margin-top:16px;border:1px dashed #d7dfea;border-radius:11px;background:#fafbfd;text-align:center}.empty-machine b{color:#526176;font-size:13px}.empty-machine span{color:#9aa5b5;font-size:10px}.completion-card{margin-top:18px;padding-top:18px;border-top:1px solid #e7ebf1}.completion-head,.completion-head>div{display:flex;align-items:center}.completion-head{justify-content:space-between;gap:12px}.completion-head>div{gap:10px}.completion-head>div>span{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#edf4ff;color:#2f6fed;font-size:10px;font-weight:800}.completion-head h3,.completion-head p{margin:0}.completion-head h3{color:#26364c;font-size:14px}.completion-head p{margin-top:3px;color:#96a1b1;font-size:9px}.machining-status{min-width:66px;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#2f6fed;font-size:9px;text-align:center}.completion-photo-input{display:none}.photo-upload-button{width:100%;min-height:44px;margin-top:14px;border:1px dashed #8db2f5;border-radius:9px;background:#f3f7ff;color:#2f6fed;font-size:10px;font-weight:800;cursor:pointer}.photo-upload-button:disabled{border-color:#d7dee8;background:#f5f6f8;color:#a0aab8;cursor:not-allowed}.completion-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.completion-gallery figure{position:relative;overflow:hidden;margin:0;border:1px solid #e0e6ee;border-radius:8px;background:#fff}.completion-photo-card{cursor:zoom-in}.completion-photo-card:focus-visible{outline:3px solid #75a2f5;outline-offset:2px}.completion-preview-media{position:relative;width:100%}.completion-preview-media span{position:absolute;right:7px;bottom:7px;padding:4px 7px;border-radius:999px;background:rgba(19,34,56,.78);color:#fff;font-size:8px;font-weight:700}.completion-gallery img{width:100%;aspect-ratio:4/3;display:block;object-fit:cover;background:#eef1f5}.completion-gallery figcaption{padding:8px}.completion-gallery figcaption b,.completion-gallery figcaption small{display:block;overflow:hidden;text-overflow:ellipsis}.completion-gallery figcaption b{color:#425168;font-size:9px;white-space:nowrap}.completion-gallery figcaption small{margin-top:4px;color:#98a2b1;font-size:7px;line-height:1.45}.completion-gallery figure>.completion-delete{position:absolute;top:5px;right:5px;z-index:3;width:auto;height:26px;padding:0 8px;border:1px solid rgba(255,255,255,.65);border-radius:6px;background:rgba(177,52,45,.9);color:#fff;font-size:8px;font-weight:800;cursor:pointer}.completion-lightbox{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:24px;background:rgba(7,16,29,.88);backdrop-filter:blur(5px)}.completion-lightbox>section{position:relative;width:min(1100px,96vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden;border-radius:12px;background:#101b2b;box-shadow:0 28px 90px rgba(0,0,0,.5)}.completion-lightbox img{display:block;max-width:100%;max-height:calc(94vh - 70px);margin:auto;object-fit:contain}.completion-lightbox footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 17px;background:#fff;color:#43536a}.completion-lightbox footer b{font-size:11px}.completion-lightbox footer span{color:#8895a5;font-size:9px}.completion-lightbox-close{position:absolute;z-index:2;top:12px;right:12px;width:38px;height:38px;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(13,25,42,.78);color:#fff;font-size:25px;cursor:pointer}.completion-empty{display:grid;place-items:center;min-height:94px;margin-top:12px;padding:18px;border-radius:8px;background:#f8fafc;text-align:center}.completion-empty b,.completion-empty span{display:block}.completion-empty b{color:#647389;font-size:10px}.completion-empty span{margin-top:5px;color:#a0aab7;font-size:8px}.completion-warning{margin:10px 0 0;padding:8px 10px;border-radius:7px;background:#fff0ee;color:#c44238;font-size:9px}.work-complete-button{width:100%;min-height:44px;margin-top:12px;border:0;border-radius:8px;background:#17835a;color:#fff;font-size:11px;font-weight:800;cursor:pointer}.work-complete-button:disabled{background:#cbd5df;cursor:not-allowed}.completion-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.completion-review-actions button{min-height:42px;border:1px solid #e6b6b1;border-radius:8px;background:#fff;color:#bd493f;font-size:10px;font-weight:800;cursor:pointer}.completion-review-actions .approve{border-color:#17835a;background:#17835a;color:#fff}.completion-review-actions .approve:disabled{border-color:#ccd4dd;background:#ccd4dd;cursor:not-allowed}.completion-finished{margin-top:13px;padding:12px;border-radius:8px;background:#eaf8f2;color:#17835a;font-size:10px;font-weight:800;text-align:center}@media (max-width:1080px){.machining-order-row{grid-template-columns:minmax(160px,1.4fr) 62px 92px 72px 112px 70px}.machining-order-row .order-rework{display:none}.machining-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.machining-grid{grid-template-columns:1fr}}@media (max-width:700px){.machining-page .page-heading{min-height:auto;padding:26px 18px 22px}.machining-detail-nav,.machining-grid,.machining-order-board,.machining-summary{margin-left:18px;margin-right:18px}.machining-detail-nav{grid-template-columns:1fr auto}.machining-detail-nav>button{grid-column:1/-1;justify-self:start}.machining-order-board-head{align-items:flex-start;gap:12px}.machining-order-row{grid-template-columns:1fr auto;gap:8px 12px;padding:15px}.machining-order-row .order-main{grid-column:1/-1}.machining-order-row .order-action,.machining-order-row .order-due,.machining-order-row .order-hours,.machining-order-row .order-priority,.machining-order-row .order-status{justify-self:start}.machining-order-row .order-action{justify-self:end}.machining-fields,.machining-summary{grid-template-columns:1fr}.core-pull-time-summary{grid-template-columns:1fr 1fr}.completion-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.log-edit-grid{grid-template-columns:1fr}.work-due-date,.work-priority{grid-template-columns:1fr auto}.work-due-date small,.work-priority small{grid-column:1/-1}}.time-entry-error{display:block;margin-top:5px;color:#c44238;font-size:9px;font-weight:700}.core-pull-hint{display:block;margin-top:6px;color:#2f6fed;font-size:10px;font-weight:600}.customer-combo{position:relative!important;display:block!important;width:100%!important;height:47px!important;overflow:hidden!important}.customer-combo input{width:100%!important;height:40px!important;margin-top:7px!important;padding-right:48px!important;border-radius:7px!important}.customer-combo select{position:absolute!important;z-index:2!important;top:7px!important;right:0!important;width:44px!important;height:40px!important;margin:0!important;padding:0!important;border:0!important;border-left:1px solid #e2e8f0!important;border-radius:0 7px 7px 0!important;opacity:0!important;cursor:pointer!important}.customer-combo:after{top:23px;right:17px;width:7px;height:7px;border-right:2px solid #536b89;border-bottom:2px solid #536b89;transform:rotate(45deg)}.customer-combo:after,.customer-combo:before{content:"";position:absolute;z-index:1;pointer-events:none}.customer-combo:before{top:8px;right:0;width:43px;height:38px;border-radius:0 6px 6px 0;background:#f3f7fd}.customer-combo.no-history:after{opacity:.35}.customer-combo.no-history select{cursor:not-allowed!important}.priority-cell{display:flex!important;flex-direction:column;align-items:center;gap:4px}.priority-select{width:82px;height:34px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700;outline:none;cursor:pointer}.priority-badge{min-width:58px;height:27px;display:inline-flex!important;align-items:center;justify-content:center;padding:0 12px;border:1px solid;border-radius:999px;font-size:10px;line-height:1;text-align:center}.priority-badge.urgent,.priority-select.urgent{border:2px solid #cf1712;background:linear-gradient(135deg,#ff2d24,#ff5a36);color:#fff;font-weight:900;box-shadow:0 0 0 3px rgba(255,49,39,.12),0 5px 13px rgba(216,35,27,.32)}.priority-badge.high,.priority-select.high{border:2px solid #f08a00;background:linear-gradient(135deg,#ffc928,#ff9f1a);color:#7b3000;font-weight:900;box-shadow:0 3px 9px rgba(240,138,0,.22)}.priority-badge.normal,.priority-select.normal{border-color:#bcd0f7;background:#eef4ff;color:#2f6fed}.priority-badge.low,.priority-select.low{border-color:#d8dee7;background:#f2f4f7;color:#6d7b8e}.quote-table .tr{min-width:1080px;grid-template-columns:1.02fr 1.12fr .42fr .58fr .68fr .8fr .52fr .68fr .58fr .3fr!important}.price-box{grid-template-columns:minmax(180px,1fr) auto!important;gap:12px}.price-range-main{min-width:190px;padding:9px 14px;border:1px solid #416083;border-radius:7px;background:#203753;text-align:center}.price-range-main small,.price-range-main strong{display:block}.price-range-main small{color:#8fb1df!important;font-size:8px!important}.price-range-main strong{margin-top:3px;color:#fff;font-size:19px;white-space:nowrap}@media (max-width:760px){.price-box{grid-template-columns:1fr!important}.price-range-main{width:100%}}.due-date-cell{display:flex!important;flex-direction:column;align-items:flex-start;gap:4px}.due-date-cell input{width:112px;height:34px;padding:0 6px;border:1px solid #d8e0ea;border-radius:7px;background:#fff;color:#35465d;font-size:9px;outline:none}.due-date-cell b{color:#35465d;font-size:10px}.due-date-cell small{color:#8794a6;font-size:9px}.due-date-cell.soon input{border-color:#efc78e;background:#fff9ed}.due-date-cell.soon small{color:#ad6818;font-weight:700}.due-date-cell.overdue input{border-color:#ecafa9;background:#fff1ef}.due-date-cell.overdue small{color:#c44238;font-weight:800}.record-rework-badge{display:inline-flex;align-items:center;min-height:21px;padding:0 7px;border:1px solid #efb0aa;border-radius:999px;background:#fff0ee;font-style:normal}.record-rework-badge,.record-rework-trigger{margin-top:6px;color:#c64036;font-size:8px;font-weight:800}.record-rework-trigger{display:block;min-height:25px;padding:0 9px;border:1px solid #efaaa3;border-radius:6px;background:#fff;cursor:pointer}.record-rework-trigger:hover{background:#fff0ee}.rework-modal{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:22px;background:rgba(13,27,46,.58);backdrop-filter:blur(3px)}.rework-modal>section{width:min(520px,100%);padding:24px;border-radius:15px;background:#fff;box-shadow:0 28px 80px rgba(8,20,38,.3)}.rework-modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid #e7ebf1}.rework-modal-head small{color:#d05045;font-size:9px;font-weight:900;letter-spacing:1.7px}.rework-modal-head h2{margin:5px 0 0;color:#26364c;font-size:21px}.rework-modal-head button{width:31px;height:31px;border:0;border-radius:7px;background:#f3f5f8;color:#6d7b8f;font-size:19px;cursor:pointer}.rework-order-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.rework-order-info span{padding:10px;border-radius:8px;background:#f7f9fc;color:#8b97a8;font-size:9px}.rework-order-info strong{display:block;overflow:hidden;margin-top:5px;color:#35455c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.rework-modal>section>label{display:block;margin-top:17px;color:#526176;font-size:11px;font-weight:700}.rework-modal textarea{width:100%;min-height:110px;margin-top:8px;padding:11px;border:1px solid #dbe2ec;border-radius:8px;outline:none;resize:vertical}.rework-modal textarea:focus{border-color:#e58d84;box-shadow:0 0 0 3px #fff0ee}.rework-modal>section>p{margin:10px 0 0;color:#8995a6;font-size:9px;line-height:1.6}.rework-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.user-row{grid-template-columns:1.05fr .85fr .75fr 1.55fr 1fr .7fr .55fr!important}.machine-assignment-create{grid-column:1/-1}.machine-assignment-create>b{display:block;margin-bottom:8px;color:#526176;font-size:11px}.machine-assignment-create>div,.start-machine-grid,.user-machine-picker{display:flex;flex-wrap:wrap;gap:6px}.machine-assignment-create label{cursor:pointer}.machine-assignment-create input{display:none}.machine-assignment-create span,.start-machine-grid button,.user-machine-picker button{min-width:38px;padding:7px 8px;border:1px solid #d8e0ea;border-radius:7px;background:#fff;color:#607086;font-size:10px;text-align:center}.machine-assignment-create label.selected span,.start-machine-grid button.selected,.user-machine-picker button.selected{border-color:#2f6fed;background:#eaf1ff;color:#245cc4;font-weight:800}.user-machine-picker button{min-width:28px;padding:5px;cursor:pointer}.start-machine-grid button:disabled,.user-machine-picker button:disabled{cursor:not-allowed;opacity:.4}.machine-start-selector{align-items:stretch!important}.machine-start-selector>div{flex:1}.start-machine-grid{margin-top:12px}.machine-start-selector>button:disabled{opacity:.45;cursor:not-allowed}.machining-start-record em{display:block;margin-top:7px;color:#2f6fed;font-size:10px;font-style:normal;font-weight:800}@media (max-width:900px){.user-row{grid-template-columns:1fr!important}}.rework-modal-actions button{min-width:92px;height:38px;border:1px solid #dce2ea;border-radius:7px;background:#fff;color:#657388;font-size:10px;font-weight:700;cursor:pointer}.rework-modal-actions .confirm{min-width:126px;border-color:#d75348;background:#d75348;color:#fff}.rework-modal-actions .confirm:disabled{border-color:#d8dde5;background:#d8dde5;cursor:not-allowed}@media (max-width:560px){.rework-order-info{grid-template-columns:1fr}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.record-overview{max-width:1280px;margin:0 auto 14px;padding:0 32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.record-overview>div{padding:15px 17px;border:1px solid #e1e7ef;border-radius:10px;background:#fff;box-shadow:0 4px 14px rgba(31,55,86,.04)}.record-overview small,.record-overview span,.record-overview strong{display:block}.record-overview span{color:#718096;font-size:10px}.record-overview strong{margin:5px 0 3px;color:#203753;font-size:23px}.record-overview small{color:#8b97a6;font-size:9px}.record-overview .danger{border-color:#efc7c2;background:#fff8f7}.record-overview .danger strong{color:#c3453c}.record-tools{align-items:center;gap:16px}.record-tools>div:first-child span,.record-tools>div:first-child strong{display:block}.record-tools>div:first-child span{margin-top:4px;color:#8693a3;font-size:9px}.record-filters{display:flex;align-items:center;gap:8px}.record-filters input,.record-filters select{height:36px;border:1px solid #d8e0ea;border-radius:7px;background:#fff;color:#3f5067;outline:none}.record-filters input{width:240px;padding:0 11px}.record-filters select{min-width:125px;padding:0 9px}.record-filters input:focus,.record-filters select:focus{border-color:#75a2f5;box-shadow:0 0 0 3px #edf4ff}.record-filters button{height:36px;padding:0 11px;border:1px solid #d8e0ea;border-radius:7px;background:#f7f9fc;color:#66768a;cursor:pointer}.record-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8895a5}.record-empty b{color:#43546b;font-size:13px}.record-empty span{margin-top:7px;font-size:10px}@media (max-width:900px){.record-overview{padding:0 16px}.record-tools{align-items:stretch;flex-direction:column}.record-filters{width:100%}.record-filters label:first-child{flex:1}.record-filters input{width:100%}.quote-table .th{display:none!important}.quote-table .tr:not(.th){min-width:0!important;margin:10px;padding:14px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;border:1px solid #e1e7ef!important;border-radius:10px;background:#fff}.quote-table .tr:not(.th)>span{padding:0!important;border:0!important;min-width:0}.quote-table .tr:not(.th)>span:first-child,.quote-table .tr:not(.th)>span:nth-child(2),.quote-table .tr:not(.th)>span:nth-child(6){grid-column:1/-1}.quote-table .tr:not(.th)>span:before{display:block;margin-bottom:4px;color:#8996a6;font-size:8px;font-weight:700}.quote-table .tr:not(.th)>span:nth-child(3):before{content:"复杂度"}.quote-table .tr:not(.th)>span:nth-child(4):before{content:"建议报价"}.quote-table .tr:not(.th)>span:nth-child(5):before{content:"最终成交价"}.quote-table .tr:not(.th)>span:nth-child(6):before{content:"当前状态"}.quote-table .tr:not(.th)>span:nth-child(7):before{content:"优先级"}.quote-table .tr:not(.th)>span:nth-child(8):before{content:"交期"}.quote-table .tr:not(.th)>span:nth-child(9):before{content:"客户报价"}.quote-table .tr:not(.th)>span:nth-child(10):before{content:"操作"}.priority-cell{align-items:flex-start}}@media (max-width:620px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:14px}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.sidebar nav button{min-width:0;min-height:42px;padding:9px 10px;white-space:normal}.engineer,.sidebar-note{display:none!important}.content{margin-left:0;width:100%}.topbar{position:static;min-height:48px;padding:0 14px}.page-heading{align-items:stretch;flex-direction:column;gap:12px}.page-heading>button{width:100%;min-height:42px}.record-overview{grid-template-columns:1fr}.record-filters{align-items:stretch;flex-direction:column}.record-filters button,.record-filters select{width:100%}.quote-table .tr:not(.th){grid-template-columns:1fr!important}.quote-table .tr:not(.th)>span{grid-column:1!important}.due-date-cell input,.priority-select,.share-cell button,.status-select{width:100%;max-width:none;min-height:40px}}.inspection-entry{display:block;width:100%;min-height:30px;margin-top:7px;padding:5px 8px;border:1px solid #e6a34d;border-radius:6px;background:#fff5e6;color:#9c5908;font-size:9px;font-weight:800;cursor:pointer}.inspection-entry:hover{border-color:#d88418;background:#ffe9c7}.quote-table .tr.completed-order{background:#f1f3f6}.quote-table .tr.completed-order>span>:not(.record-rework-trigger):not(.record-link){opacity:.42;filter:grayscale(1);pointer-events:none}.quote-table .tr.completed-order .record-rework-trigger{opacity:1;filter:none;pointer-events:auto;border-color:#df655b;background:#fff;color:#bd3f36;box-shadow:0 3px 9px rgba(189,63,54,.12)}.quote-table .tr.completed-order .record-link:not(.locked){opacity:1;filter:none;pointer-events:auto;color:#2f6fed;cursor:pointer}.quote-table .tr.completed-order .record-link.locked{opacity:.42;filter:grayscale(1);pointer-events:none;color:#66758a;text-decoration:none}.completed-readonly{position:relative;pointer-events:none;opacity:.82}.completed-readonly:after{content:"已验收完成 · 只读";position:absolute;z-index:3;top:16px;right:16px;padding:6px 10px;border-radius:999px;background:#e8ebef;color:#637083;font-size:9px;font-weight:800}.login-admin-note{margin:20px 0 0;padding-top:16px;border-top:1px solid #e7ecf3;color:#8793a4;font-size:10px;text-align:center}.users-page{width:100%;min-width:0;padding-bottom:48px}.users-page .page-heading{min-height:168px;padding:34px 32px 26px;border-bottom:1px solid #e5eaf1;background:#f5f7fb}.users-page .page-heading p{margin:0 0 9px;color:#2f6fed;font-size:11px;font-weight:800;letter-spacing:2.2px}.users-page .page-heading h1{margin:0 0 8px;color:#17263d;font-size:28px}.users-page .page-heading span{color:#758399;font-size:12px}.users-layout{display:grid;gap:18px;margin:22px 32px 0}.users-page .panel{min-width:0;overflow:hidden;padding:22px;border:1px solid #e2e8f0;border-radius:13px;background:#fff;box-shadow:0 8px 25px rgba(31,48,74,.05)}.users-page .panel-title{display:flex;align-items:flex-start;gap:12px;padding-bottom:17px;border-bottom:1px solid #e9edf3}.users-page .panel-title>span{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#edf4ff;color:#2f6fed;font-size:10px;font-weight:800}.users-page .panel-title h2{margin:0 0 4px;color:#26364c;font-size:16px}.users-page .panel-title p{margin:0;color:#9aa5b5;font-size:10px}.user-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.user-form-grid label{display:block;color:#526176;font-size:11px;font-weight:700}.rotation-help,.shift-preview{display:block;margin-top:5px;color:#2f6fed!important;font-size:9px!important;font-weight:600}.shift-preview{color:#8794a6!important}.user-form-grid input,.user-form-grid select,.user-row input,.user-row select{width:100%;height:40px;margin-top:7px;padding:0 10px;border:1px solid #dbe2ec;border-radius:8px;background:#fbfcfe;color:#27374e;outline:none}.user-form-grid input:focus,.user-form-grid select:focus,.user-row input:focus,.user-row select:focus{border-color:#74a0f4;box-shadow:0 0 0 3px #eef4ff}.user-message{display:inline-block;margin:14px 0 0;color:#2f6fed;font-size:10px}.user-create-button{min-width:130px;height:42px;margin-top:16px}.user-table{min-width:780px;margin:18px -22px -22px}.user-list{overflow-x:auto!important}.user-row{display:grid;grid-template-columns:1.35fr 1fr .8fr 1fr .7fr .55fr;align-items:center;gap:12px;min-height:70px;padding:10px 22px;border-top:1px solid #e9edf3}.user-row:first-child{border-top:0}.user-row>span{min-width:0}.user-row b,.user-row small{display:block}.user-row b{overflow:hidden;color:#24344b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.user-row em,.user-row small{margin-top:4px;color:#8b97a8;font-size:10px;font-style:normal}.user-row input,.user-row select{height:36px;margin-top:0;font-size:10px}.user-head{min-height:42px;background:#f7f9fc;color:#708097;font-size:10px;font-weight:700}.account-delete,.account-status{min-width:66px;height:32px;border-radius:7px;background:#fff;font-size:10px;cursor:pointer}.account-status.enabled{border:1px solid #bce4d4;color:#17835a}.account-delete,.account-status.disabled{border:1px solid #f0c3bf;color:#c34c43}.account-delete:disabled,.account-status:disabled{border-color:#dfe4eb;color:#a8b1be;cursor:not-allowed}@media (max-width:1050px){.user-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.users-page .page-heading{min-height:auto;padding:26px 18px 22px}.users-layout{margin-right:18px;margin-left:18px}.user-form-grid{grid-template-columns:1fr}}