html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{font-family:Segoe UI,Microsoft YaHei,sans-serif;color:#18212f;background:#f8f9fb;font-synthesis:none;--ink: #18212f;--muted: #657185;--line: #e2e6ec;--accent: #ff8500;--selected: #fff1d8}*{box-sizing:border-box}body{margin:0;min-width:360px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,.canvas-surface:focus-visible{outline:2px solid #c56500;outline-offset:3px}::selection{background:#ffdfb7;color:#18212f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100dvh}.topbar{height:86px;padding:0 28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:22px;flex-shrink:0}.brand img{width:220px;height:60px;object-fit:contain}.brand-divider{height:36px;width:1px;background:#ced4df}.brand h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.7px;white-space:nowrap}.topbar nav{display:flex;height:100%;gap:38px;align-items:center}.topbar nav button{padding:27px 0 23px;border:0;border-bottom:3px solid transparent;background:none;color:#596579;font-size:17px;font-weight:600;white-space:nowrap;transition:color .18s}.topbar nav button:hover,.text-button:hover{color:#b75900}.topbar nav button.active{color:#d36200;border-bottom-color:var(--accent)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.ant-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:none;font-weight:500}.ant-btn .ant-btn-icon{display:inline-flex;align-items:center}.ant-btn-primary{background:var(--accent);color:#241b0c;border-color:var(--accent);font-weight:650}.ant-btn-primary:not(:disabled):hover{background:#ee7800!important;color:#17120a!important;border-color:#ee7800!important}.import-button{height:46px;padding-inline:20px}.documentbar{min-height:58px;padding:12px 28px;display:flex;justify-content:space-between;gap:20px;align-items:center}.document-name{display:flex;align-items:center;gap:12px;min-width:0}.document-name>svg{color:#6a7586}.document-name strong{font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tag{border:1px solid #ffd3a8;background:#fff1e1;color:#ab5300;border-radius:4px;font-size:12px;padding:4px 9px}.file-meta{font-size:13px;color:var(--muted);white-space:nowrap}.text-button{background:none;border:none;padding:6px 0;color:#697588;font-size:13px}.workspace{padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) 376px;gap:18px;min-height:600px;height:calc(100dvh - 226px)}.canvas-wrapper{position:relative;min-width:0;min-height:0;height:100%}.drawing-panel{display:flex;height:100%;min-height:0;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.canvas-toolbar{min-height:66px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.tool-group{display:flex;gap:5px;align-items:center}.canvas-toolbar .ant-btn{border-color:#d4dae3;height:36px;font-size:12px;padding-inline:9px;color:#455267}.canvas-toolbar .ant-btn:disabled{color:#a3aab7;background:#fafbfc}.canvas-toolbar .tool-button.chosen{color:#37291a;background:#fff0db;border-color:#ff921c}.toolbar-divider{height:23px;width:1px;background:var(--line);margin-inline:3px}.zoom-value{font-size:12px;min-width:43px;text-align:center;font-variant-numeric:tabular-nums}.canvas-surface{position:relative;margin:0 14px 14px;flex:1;min-height:0;overflow:hidden;background-color:#f8f9fb;background-image:linear-gradient(#eaf0f5 1px,transparent 1px),linear-gradient(90deg,#eaf0f5 1px,transparent 1px);background-size:25px 25px;border:1px solid #edf0f5}.tool-pan{cursor:grab}.tool-pan:active{cursor:grabbing}.tool-add,.tool-measure{cursor:crosshair}.canvas-caption{position:absolute;top:12px;left:14px;color:#718094;font-size:12px;pointer-events:none}.canvas-unit{position:absolute;bottom:10px;left:12px;display:flex;align-items:center;gap:14px;color:#69768a;font-size:12px;pointer-events:none}.canvas-unit button{pointer-events:auto}.cross-icon{font-size:25px;font-weight:300;color:#8390a3}.inspector{display:flex;flex-direction:column;gap:12px;min-height:0}.settings-panel,.hole-list{border:1px solid var(--line);border-radius:8px;background:#fff}.settings-panel{padding:20px 20px 13px}.settings-panel h2{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;margin:0 0 22px}.form-row{display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:15px}.form-row label,.numeric-fields label{color:#536074;font-size:13px}.form-row .ant-select{width:100%}.numeric-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.numeric-fields label{display:block;margin-bottom:9px}.numeric-fields .ant-input-number-group-wrapper,.numeric-fields .ant-input-number{width:100%}.number-with-unit{display:flex;align-items:center;gap:9px}.number-with-unit>span{color:#647084;font-size:13px}.numeric-fields .ant-input-number-group-addon{background:#fff;border:0;padding:0 0 0 7px;font-size:12px;color:#647084}.generate-button{height:45px;margin-top:15px;font-size:15px}.form-note{margin:10px 0 0;color:#687489;font-size:12px;line-height:1.7}.review-alert{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 13px;border:1px solid #f2dfbf;border-radius:8px;background:#fff6e7;color:#b95700;min-height:58px}.review-alert>div{display:flex;align-items:center;gap:10px}.review-alert strong{font-size:14px}.review-alert .ant-btn{height:32px;border-color:#efc58c;background:#fff9ef;color:#ad5300;font-size:12px}.review-alert.clear{justify-content:flex-start;gap:10px;background:#f3f8f5;color:#29714a;border-color:#dbe9e0;font-size:13px}.hole-list{display:flex;flex-direction:column;overflow:hidden;min-height:0;flex:1}.section-heading{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 16px;border:0;background:#fff;text-align:left;font-size:19px;font-weight:700;color:var(--ink)}.section-heading small{font-size:13px;font-weight:400;color:#637087}.hole-table-scroll{overflow:auto;margin:0 6px 7px}.hole-table-scroll table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.hole-table-scroll th{background:#f0f3f7;color:#5d6a7f;font-weight:500;padding:10px 9px;white-space:nowrap}.hole-table-scroll td{border-bottom:1px solid #edf0f4;padding:5px 9px;height:38px;white-space:nowrap}.hole-table-scroll tbody tr{cursor:pointer}.hole-table-scroll tr:hover{background:#faf6ef}.hole-table-scroll tr.selected{background:var(--selected)}.hole-id{border:0;background:transparent;padding:4px 0;color:var(--ink);font-weight:600}.status-review{color:#a95800}.status-confirmed{color:#188149}.workspace-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 27px;min-height:82px}.workspace-footer>div{display:flex;gap:16px}.workspace-footer .ant-btn{height:44px;padding-inline:18px}.prototype-note{display:flex;align-items:center;gap:8px;font-size:12px;color:#6b788b}.prototype-dot{width:6px;height:6px;border-radius:50%;background:#e58b2c}.secondary-page{max-width:1180px;margin:0 auto;padding:35px 30px}.secondary-page h2{font-size:27px;margin:18px 0 12px}.secondary-intro{color:var(--muted);font-size:14px;margin-bottom:28px;line-height:1.8}.back-button{display:inline-flex;gap:8px;align-items:center}.standard-list{border-top:1px solid var(--line)}.standard-row{display:flex;align-items:center;gap:18px;padding:22px 6px;border-bottom:1px solid var(--line)}.standard-row>svg{color:#a65c15}.standard-row p{color:var(--muted);margin:6px 0 0;font-size:12px}.standard-state{margin-left:auto;color:#87612e;font-size:13px}.neutral-note{display:flex;align-items:flex-start;gap:10px;background:#fff4e1;padding:14px;color:#7e571e;font-size:13px;line-height:1.8;margin:20px 0;border-radius:6px}.neutral-note>svg{flex-shrink:0;margin-top:2px}.history-filename{display:flex;gap:8px;align-items:center}.review-summary{color:#687489;font-size:14px;margin:25px 0}.detail-form{margin-bottom:25px}.detail-form h3{margin-bottom:20px}.detail-form label{display:flex;align-items:center;justify-content:space-between;margin:14px 0;color:#596579}.help-content p{color:#576477;line-height:1.9;margin-bottom:15px}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffed;z-index:2;display:flex;flex-direction:column;gap:14px;justify-content:center;align-items:center;color:#566277;font-size:13px}.loading-line{width:150px;height:3px;background:#ff9b30;animation:load 1s ease-in-out infinite alternate;transform-origin:left}@keyframes load{0%{transform:scaleX(.25)}to{transform:scaleX(1)}}@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 420px;gap:18px}.topbar{height:90px}.canvas-toolbar .ant-btn{padding-inline:12px;font-size:13px;height:40px}.canvas-toolbar{min-height:72px}.settings-panel{padding:26px 22px 16px}.settings-panel h2{margin-bottom:25px;font-size:23px}.form-row{margin-bottom:19px}.generate-button{height:49px}.hole-table-scroll table{font-size:13px}.hole-table-scroll td{height:42px}}@media(max-width:1230px){.brand{gap:14px}.brand img{width:160px;height:46px}.brand h1{font-size:23px}.topbar nav{gap:22px}.topbar nav button{font-size:15px}.workspace{grid-template-columns:minmax(0,1fr) 330px;gap:14px;padding-inline:18px}.canvas-toolbar{padding:10px;gap:8px}.canvas-toolbar .tool-button{padding-inline:8px}.history-tools{margin-left:auto}.canvas-toolbar .tool-button span:not(.ant-btn-icon){display:none}.settings-panel{padding:20px 15px 12px}.form-row{grid-template-columns:70px 1fr;gap:8px}}@media(max-width:900px){.topbar{height:auto;min-height:76px;padding:14px 18px 0;gap:12px;flex-wrap:wrap}.brand img{width:145px;height:40px}.brand h1{font-size:21px}.topbar nav{order:3;width:100%;height:46px;gap:30px}.topbar nav button{padding:10px 0 12px;font-size:14px}.header-actions{margin-left:auto}.workspace{height:auto;grid-template-columns:1fr;min-height:0}.canvas-wrapper{height:580px}.inspector{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.settings-panel{grid-row:1 / 3}.review-alert{grid-column:2}.hole-list{grid-column:2;min-height:260px;max-height:330px}.documentbar{padding:14px 18px}.file-meta{display:none}.document-name strong{font-size:16px}.workspace-footer{padding-inline:18px}}@media(max-width:560px){.brand{gap:10px}.brand img{width:117px;height:33px}.brand-divider{height:27px}.brand h1{font-size:18px}.help-button{display:none}.import-button{padding-inline:10px;height:36px;font-size:12px}.topbar{padding-inline:12px;column-gap:8px}.topbar nav{justify-content:space-between;gap:15px}.documentbar{padding-inline:12px;gap:8px}.document-name{gap:7px}.document-name>svg{display:none}.document-name strong{font-size:13px;max-width:175px}.file-tag{font-size:10px;padding:2px 5px}.documentbar .text-button{font-size:11px;white-space:nowrap}.workspace{padding-inline:10px;gap:12px}.canvas-wrapper{height:420px}.canvas-surface{min-height:290px;margin:0 7px 7px;background-size:20px 20px}.canvas-toolbar{min-height:87px;padding:9px}.tool-group{gap:5px}.canvas-toolbar .ant-btn{height:33px;width:35px;padding:0}.canvas-toolbar .history-tools .ant-btn{width:30px}.toolbar-divider{margin:0}.canvas-caption{top:9px;font-size:10px}.canvas-unit{font-size:10px;bottom:5px}.inspector{display:flex}.settings-panel{padding:20px}.settings-panel h2{font-size:20px}.settings-panel,.hole-list{width:100%}.hole-list{min-height:auto;max-height:350px;flex:auto}.review-alert{width:100%}.workspace-footer{align-items:flex-start;flex-direction:column;gap:14px;padding:18px 12px}.workspace-footer>div{width:100%;gap:10px}.workspace-footer .ant-btn{flex:1}.secondary-page{padding:20px 15px}.secondary-page .ant-table-wrapper{overflow:auto}.standard-row{gap:10px}.standard-row p{font-size:10px;overflow-wrap:anywhere}}@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 468px}.brand img{width:240px}.brand h1{font-size:30px}.settings-panel{padding:21px 22px 13px}.settings-panel h2{margin-bottom:19px;font-size:23px}.form-row{margin-bottom:13px}.form-row label,.numeric-fields label{font-size:14px}.generate-button{height:47px;font-size:16px}.review-alert strong{font-size:15px}.hole-table-scroll table{font-size:14px}.workspace-footer .ant-btn{font-size:16px;height:48px}}@media(max-width:1100px){.topbar{display:flex}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.inspector{overflow-y:auto}.job-panel{padding:22px;background:#fff;border:1px solid var(--line);border-radius:10px;flex-shrink:0;min-width:0}.job-panel h2{display:flex;align-items:center;gap:10px;margin:0;font-size:22px}.job-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.job-actions .ant-btn{width:100%;min-width:0;height:40px;padding-inline:8px}.job-intro{color:#596579;font-size:13px;line-height:1.7;margin:10px 0 20px}.job-upload{display:flex;align-items:center;gap:12px;border:1px dashed #b8c1cd;border-radius:6px;padding:15px 12px;margin-bottom:12px;cursor:pointer;position:relative}.job-upload:hover,.job-upload:focus-within{border-color:#b75400;background:#fff8ef}.job-upload span{min-width:0}.job-upload strong{display:block;font-size:14px}.job-upload small{display:block;color:#596579;font-size:12px;overflow-wrap:anywhere;line-height:1.7;margin-top:5px}.job-upload input{position:absolute;width:1px;height:1px;opacity:0}.job-result-heading,.manual-heading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:20px 0 12px}.job-panel h3{font-size:16px;margin:0}.job-result-heading span,.manual-heading span{font-size:12px;color:#596579}.job-details{border-top:1px solid var(--line);padding:13px 0}.job-details summary{cursor:pointer;font-size:14px;font-weight:600}.job-details p{font-size:13px;line-height:1.8;overflow-wrap:anywhere;margin:12px 0}.job-details p span,.job-details small{display:block;color:#596579;font-size:11px}.requirements-scroll{max-height:230px;overflow-y:auto;padding-right:6px}.job-warnings{background:#fff5e6;color:#784914;padding:10px 13px;border-radius:6px;font-size:12px;line-height:1.8}.job-warnings p{margin:5px 0}.manual-diameter{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:13px}.manual-holes{max-height:160px;overflow-y:auto;margin:12px 0}.manual-holes>div{display:flex;align-items:center;border-bottom:1px solid var(--line)}.manual-holes>div>button:first-child{flex:1;text-align:left;border:0;background:transparent;padding:10px 0;font-size:12px;color:#48546a;cursor:pointer;font-variant-numeric:tabular-nums}.job-panel .ant-checkbox-wrapper{font-size:12px;line-height:1.8}.job-export{margin-top:14px}.job-empty{padding:24px 0 6px;color:#596579;font-size:13px;line-height:1.8}.job-error{margin-top:14px}@media(max-width:900px){.inspector{display:flex;flex-direction:column;overflow:visible}.job-panel{width:100%}}
