:root{color:#172033;background:#dce4ee;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;--blue: #1976ed;--blue-dark: #0f5ecb;--blue-soft: #edf5ff;--green: #18965f;--green-soft: #eaf7ef;--orange: #ef7a21;--red: #f03737;--red-soft: #fff1f1;--ink: #152033;--muted: #6b778b;--line: #e1e7ef;--page: #f4f7fb;--surface: #ffffff;--shadow: 0 22px 70px rgba(20, 34, 54, .2)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh;margin:0}body{-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid rgba(25,118,237,.26);outline-offset:2px}.prototype-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:#dce4ee}.phone{width:390px;height:844px;position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--page);border:7px solid #1f232b;border-radius:38px;box-shadow:var(--shadow)}.status-bar{min-height:30px;padding:8px 20px 5px;display:flex;justify-content:space-between;align-items:center;background:var(--surface);font-size:11px}.status-bar span,.status-bar b{font-weight:800}.app-header{min-height:64px;padding:10px 13px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;color:#fff;background:linear-gradient(135deg,#1976ed,#3389f5)}.header-icon{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:8px;background:#ffffff14;color:#fff;cursor:pointer}.app-header div{min-width:0;text-align:center}.app-header h1,.app-header p{margin:0}.app-header h1{font-size:17px;line-height:1.25;font-weight:800}.app-header p{margin-top:3px;overflow:hidden;color:#fffc;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.app-scroll{min-height:0;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c9d2df transparent}.page{min-height:100%;padding:14px 14px 132px}.upload-page{min-height:auto;padding:8px 14px 58px}.upload-box{min-height:142px;margin-top:4px;padding:18px 16px;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;place-items:center;row-gap:5px;border:2px dashed #abc0d8;border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;text-align:center}.drawing-file-input{display:none}.empty-upload-button{width:100%;height:100%;padding:0;display:grid;place-items:center;row-gap:5px;border:0;background:transparent;cursor:pointer}.empty-upload-actions{width:100%;height:100%;display:grid;grid-template-rows:1fr auto;gap:3px}.photo-upload-title{display:grid;place-items:center;align-content:center;gap:4px}.photo-upload-title b{color:var(--ink);font-size:15px}.photo-upload-title small{color:var(--muted);font-size:10px}.photo-upload-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.photo-upload-buttons button{min-height:28px;border:1px solid #bcd5f3;border-radius:6px;background:var(--blue-soft);color:var(--blue);font-size:11px;font-weight:800;cursor:pointer}.upload-mark{width:54px;height:54px;grid-row:auto;display:grid;place-items:center;border-radius:8px;background:var(--green);color:#fff}.upload-box.has-drawings{min-height:142px;padding:7px;display:grid;grid-template-rows:1fr auto;gap:5px}.drawing-preview-grid,.result-drawing-grid{width:100%;min-height:0;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.drawing-preview-grid.count-1,.result-drawing-grid.count-1{grid-template-columns:1fr}.result-drawing-grid.count-3,.result-drawing-grid.count-4{grid-template-columns:repeat(2,1fr)}.document-preview{width:100%;height:100%;position:static!important;padding:8px!important;display:grid;place-items:center;align-content:center;gap:4px;border-radius:0!important;background:#f4f7fb!important;color:var(--blue)!important}.document-preview b{width:100%;overflow:hidden;color:#44546a;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.drawing-thumb,.result-drawing-grid button{min-width:0;min-height:0;position:relative;overflow:hidden;padding:0;border:1px solid #cbd9e9;border-radius:7px;background:#eef3f8;cursor:zoom-in}.drawing-thumb img,.result-drawing-grid img{width:100%;height:100%;display:block;object-fit:contain;background:#fff}.drawing-thumb span,.result-drawing-grid button span{position:absolute;left:4px;bottom:4px;padding:2px 5px;border-radius:4px;background:#102034c7;color:#fff;font-size:9px}.replace-drawing-button{min-height:24px;border:0;border-radius:5px;background:var(--blue-soft);color:var(--blue);font-size:10px;font-weight:800;cursor:pointer}.upload-box b{margin:0;color:var(--ink);font-size:17px;align-self:auto}.upload-box small{font-size:12px;align-self:auto}.source-grid{margin-top:6px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.source-grid button{min-height:42px;padding:6px 13px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--blue);cursor:pointer}.source-grid b,.source-grid small{display:block}.source-grid b{color:var(--ink);font-size:13px}.source-grid small{margin-top:2px;color:var(--muted);font-size:10px;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-form{margin-top:6px;padding:0 10px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}.quick-form label,.field-row{min-height:34px;display:grid;grid-template-columns:84px 1fr 22px;align-items:center;gap:8px}.quick-form label+label{border-top:1px solid var(--line)}.quick-form span,.field-row span{display:flex;align-items:center;gap:6px;color:#4d5a6e;font-size:12px;font-weight:750}.quick-form input,.field-row input{width:100%;height:27px;padding:0 11px;border:1px solid #d4dce7;border-radius:7px;background:#fbfcfe;color:var(--ink);text-align:center;font-size:15px}.quick-form em,.field-row em{color:var(--muted);font-size:12px;font-style:normal}.project-history{margin-top:6px}.history-title{margin:0 0 4px 2px;color:var(--ink);font-size:13px;font-weight:800}.project-item{width:100%;min-height:36px;margin-top:4px;padding:6px 11px;display:flex;align-items:center;gap:10px;border:1px solid #cfe2f7;border-radius:8px;background:#f7fbff;cursor:pointer;text-align:left}.project-row{margin-top:4px;display:grid;grid-template-columns:1fr 38px;gap:5px}.project-row .project-item{margin-top:0}.delete-project-button{min-height:36px;display:grid;place-items:center;border:1px solid #f2c7c7;border-radius:8px;background:#fff5f5;color:#d93b3b;cursor:pointer}.empty-projects{min-height:48px;display:grid;place-items:center;border:1px dashed #cbd5e1;border-radius:8px;color:var(--muted);font-size:11px}.project-item span{flex:1}.project-item b,.project-item small{display:block}.project-item b{font-size:12px}.project-item small{margin-top:2px;color:var(--green);font-size:10px;font-weight:700}.recognition-complete{min-height:116px;display:grid;place-items:center;border:2px dashed #abc0d8;border-radius:8px;background:var(--surface);text-align:center}.recognition-complete .recognition-check{width:43px;height:43px;display:grid;place-items:center;border-radius:8px;background:#12c878;color:#fff}.recognition-complete .recognition-label{margin-top:6px;color:#4d5b6f;font-size:14px}.result-drawing-grid{height:98px;padding:7px 7px 0}.recognition-complete:has(.result-drawing-grid){display:grid;grid-template-rows:1fr auto;align-content:stretch}.field-row{margin-top:12px;padding:0 12px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}.wall-total{min-height:116px;margin-top:10px;padding:11px 14px;display:grid;place-items:center;border-radius:8px;background:var(--green-soft);color:var(--green)}.wall-total span{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:750}.recognition-confidence{padding:1px 4px;border-radius:4px;background:#ffffffbf;color:var(--blue);font-size:8px;font-style:normal}.wall-total strong{margin-top:2px;font-size:27px;line-height:1}.floor-wall-length-grid{width:100%;margin-top:3px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.floor-wall-length-grid small{padding:3px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px;border-radius:5px;background:#ffffffb8;font-size:9px}.floor-wall-length-grid strong{margin:0!important;font-size:12px!important;text-align:right}.floor-area-grid{width:100%;margin-top:10px;padding-top:9px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;border-top:1px solid rgba(24,150,95,.16)}.floor-area-grid small{min-width:0;padding:7px 4px;display:grid;place-items:center;border-radius:7px;background:#ffffffa6;color:#34775a;font-size:10px}.floor-area-grid b,.floor-area-grid em{display:block;font-style:normal}.floor-area-grid em{margin-top:3px;color:var(--green);font-size:13px;font-weight:850}.deduction-card{margin-top:10px;padding:12px 12px 6px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}.card-title{margin-bottom:8px;color:var(--ink);font-size:13px;font-weight:800}.card-title span{display:flex;align-items:center;gap:6px}.deduction-card .card-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.deduction-card .card-title em{padding:2px 5px;border-radius:4px;background:var(--blue-soft);color:var(--blue);font-size:8px;font-style:normal;white-space:nowrap}.deduction-line{min-height:27px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf1f5;font-size:13px}.deduction-line b{color:var(--red);font-size:14px}.deduction-line.total{color:var(--red);font-weight:800}.deduction-head,.deduction-floor-row{min-height:24px;display:grid;grid-template-columns:.75fr 1fr 1fr 1fr;align-items:center;gap:6px;text-align:center}.deduction-head{color:var(--muted);font-size:9px;font-weight:750}.deduction-floor-row{border-top:1px solid #edf1f5;font-size:10px}.deduction-floor-row b{text-align:left}.deduction-floor-row span{color:#45546a;font-size:10px}.deduction-floor-row strong{color:var(--red);font-size:10px}.brick-grid{margin-top:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.brick-card{min-height:105px;position:relative;padding:12px 5px 10px;display:flex;flex-direction:column;align-items:center;border:1px solid #d6dce5;border-radius:8px;background:var(--surface);cursor:pointer}.brick-card.selected{border-color:var(--blue);background:#edf4ff;box-shadow:inset 0 0 0 1px var(--blue)}.brick-icon{color:var(--orange)}.brick-icon.green{color:var(--green)}.brick-card b{margin-top:7px;font-size:13px}.brick-card small{margin-top:3px;color:var(--muted);font-size:11px}.brick-card i{width:18px;height:18px;margin-top:6px;display:grid;place-items:center;border-radius:4px;background:#12c878;color:#fff;font-style:normal}.result-block{margin-top:11px;overflow:hidden;border-radius:8px;background:var(--surface);border:1px solid var(--line)}.result-block h3{min-height:38px;margin:0;display:flex;align-items:center;justify-content:center;gap:6px;border-top:3px solid var(--blue);background:#eaf4ff;color:var(--blue);font-size:16px}.main-number{margin:12px;min-height:72px;display:grid;place-items:center;border-radius:8px;background:#fbfcfe}.main-number strong{color:var(--blue);font-size:27px;line-height:1}.main-number span{margin-top:6px;color:var(--muted);font-size:12px}.floor-material-table{padding:4px 7px 6px}.floor-material-head,.floor-material-row{min-height:25px;display:grid;grid-template-columns:.7fr 1.25fr 1fr 1fr;align-items:center;gap:3px;text-align:right}.floor-material-head{color:var(--muted);font-size:11px;font-weight:750}.floor-material-row{border-top:1px solid #edf1f5;color:#45546a;font-size:13px}.floor-material-head span:first-child,.floor-material-row b{text-align:left}.floor-material-row strong{color:var(--blue);font-size:14px}.floor-material-row.total{background:#f1f7ff;color:var(--ink);font-weight:850}.material-grid{margin-top:10px;display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.material-grid article{min-height:104px;padding:12px;display:grid;justify-items:center;align-content:center;border:1px solid #ffc7c7;border-radius:8px;background:var(--red-soft);text-align:center}.material-grid span{width:auto;height:24px;display:grid;place-items:center;color:#1cb4eb;font-size:12px;font-weight:900}.material-grid .sand{color:#e1a023}.material-grid b{color:#d62525;font-size:20px}.material-grid small{display:block;color:#6f5860;font-size:11px;font-style:normal}.cost-strip{min-height:45px;margin-top:10px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid #d9e5f3;border-radius:8px;background:var(--surface)}.cost-strip span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.cost-strip b{color:var(--blue);font-size:15px}.tune-button{min-height:34px;margin:9px auto 0;padding:0 13px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--blue);border-radius:6px;background:#fff;color:var(--blue);font-size:12px;font-weight:750;cursor:pointer}.primary-button{width:100%;min-height:48px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:8px;background:var(--blue);color:#fff;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px #1976ed33}.upload-page .bottom-panel{position:absolute;left:7px;right:7px;bottom:0;margin:0;padding:7px 14px;border-top:1px solid var(--line);background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.upload-page .primary-button{min-height:38px}.primary-button:hover,.solid-action:hover{background:var(--blue-dark)}.bottom-panel{position:absolute;left:7px;right:7px;bottom:62px;z-index:8;padding:10px 14px;border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-panel.dual{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bottom-panel.single-action{display:grid;grid-template-columns:1fr}.solid-action,.outline-action{min-height:43px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;font-size:14px;font-weight:800;cursor:pointer}.solid-action{border:0;background:var(--blue);color:#fff}.outline-action{border:1px solid var(--blue);background:#fff;color:var(--blue)}.bottom-nav{min-height:62px;padding:6px 78px 8px;display:grid;grid-template-columns:1fr;gap:16px;border-top:1px solid var(--line);background:#fffffffa}.parameters-page{padding-bottom:92px}.parameter-intro{padding:15px;display:flex;align-items:center;gap:11px;border-radius:9px;background:var(--blue-soft);color:var(--blue)}.parameter-intro b,.parameter-intro small{display:block}.parameter-intro small{margin-top:3px;color:var(--muted);font-size:11px}.parameter-form{margin-top:12px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.parameter-form label{min-height:54px;display:grid;grid-template-columns:1fr 88px 48px;align-items:center;gap:8px}.parameter-form label+label{border-top:1px solid var(--line)}.parameter-form span{font-size:13px;font-weight:750}.parameter-form input{width:88px;height:34px;border:1px solid #cbd7e6;border-radius:7px;text-align:center;font-weight:800}.parameter-form em{color:var(--muted);font-size:11px;font-style:normal}.parameter-note{margin-top:12px;padding:13px;display:grid;gap:4px;border-radius:8px;background:#fff8e8;color:#805d17;font-size:12px}.parameter-actions{margin-top:14px;display:grid;grid-template-columns:1fr 1.35fr;gap:9px}.parameter-actions button{min-height:44px;border-radius:8px;font-size:12px;font-weight:800;cursor:pointer}.reset-button{border:1px solid #bdc8d6;background:#fff}.save-parameter-button{border:0;background:var(--blue);color:#fff}.bottom-nav button{min-height:46px;display:grid;place-items:center;gap:2px;border:0;background:transparent;color:#8c98a7;font-size:10px;cursor:pointer}.bottom-nav button.active{color:var(--blue);font-weight:800}.toast{min-height:42px;padding:10px 14px;position:absolute;left:22px;right:22px;bottom:128px;z-index:30;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;background:#131d2deb;color:#fff;font-size:12px;box-shadow:0 10px 28px #141b293d}.toast svg{color:#59d991}.result-page{padding:7px 12px 55px}.result-page .recognition-complete{min-height:142px}.result-page .recognition-complete .recognition-check{width:52px;height:52px}.result-page .recognition-complete .recognition-label{margin-top:3px;font-size:15px;font-weight:750}.drawing-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;padding:48px 12px 36px;display:grid;grid-template-rows:1fr auto;place-items:center;background:#050a12f5;color:#fff}.drawing-lightbox img{width:100%;height:100%;object-fit:contain}.drawing-lightbox iframe{width:100%;height:100%;border:0;background:#fff}.cad-fullscreen-state{display:grid;place-items:center;gap:12px;color:#fff;text-align:center}.cad-fullscreen-state span{color:#aebbd0;font-size:12px}.drawing-lightbox>span{margin-top:10px;font-size:12px}.lightbox-close{width:38px;height:38px;position:absolute;top:10px;right:12px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:#ffffff1f;color:#fff;font-size:28px;line-height:1;cursor:pointer}.result-page .wall-total{min-height:82px;margin-top:4px;padding:5px 9px}.result-page .wall-total strong{font-size:19px}.result-page .floor-area-grid{margin-top:3px;padding-top:3px;gap:4px}.result-page .floor-area-grid small{padding:2px 3px;font-size:9px}.result-page .floor-area-grid em{margin-top:1px;font-size:11px}.result-page .deduction-card{margin-top:4px;padding:5px 9px 2px}.result-page .card-title{margin-bottom:1px;font-size:11px}.result-page .deduction-line{min-height:17px;font-size:10px}.result-page .deduction-line b{font-size:11px}.result-page .deduction-head,.result-page .deduction-floor-row{min-height:20px}.result-page .brick-grid{margin-top:4px;gap:5px}.result-page .brick-card{min-height:58px;padding:3px 4px}.result-page .brick-card b{margin-top:1px;font-size:10px}.result-page .brick-card small{margin-top:0;font-size:8px}.result-page .brick-card i{width:15px;height:15px;margin-top:2px}.result-page .result-block{margin-top:4px}.result-page .result-block h3{min-height:30px;font-size:15px}.result-page .floor-material-head,.result-page .floor-material-row{min-height:27px}.result-page .main-number{min-height:42px;margin:5px}.result-page .main-number strong{font-size:22px}.result-page .main-number span{margin-top:2px;font-size:10px}.result-page .material-grid{margin-top:6px;gap:6px}.result-page .material-grid article{min-height:66px;padding:6px}.result-page .material-grid span{height:17px;font-size:11px}.result-page .material-grid b{font-size:17px}.result-page .material-grid small{font-size:10px}.result-page .tune-button{min-height:28px;margin-top:5px}.result-page .bottom-panel{bottom:0;padding:7px 12px}.result-page .outline-action{min-height:38px}@media(max-width:520px){.prototype-shell{display:block;padding:0}.phone{width:100%;height:100dvh;border:0;border-radius:0;box-shadow:none}.bottom-panel{left:0;right:0}}.quantity-review-card{margin:7px 0;padding:8px 10px;border:1px solid #f0cd8d;border-radius:10px;background:#fff8eb;color:#79551c;font-size:12px}.quantity-review-card strong{font-size:13px}.quantity-review-card p{display:inline;margin-left:8px;line-height:1.5}.quantity-review-card summary{margin-top:3px;cursor:pointer}.quantity-review-card ul{margin:6px 0 0;padding-left:18px;line-height:1.6}.dimension-audit[open]{max-height:330px;overflow-y:auto;padding-right:4px}.quantity-review-card .dimension-audit p{display:block;margin:6px 0}.plan-review-entry{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #aacbff;background:#edf5ff;color:#176ee0;border-radius:10px;padding:11px 7px;margin:7px 0;font-weight:700}.plan-review-entry:disabled{opacity:.6}.plan-review-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#eaf0f8;display:flex;justify-content:center;font-size:14px;color:#173150}.plan-review{width:min(100%,1200px);height:100dvh;display:flex;flex-direction:column;background:#f6f9fd}.plan-review header,.plan-review footer{flex-shrink:0;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:6px;background:#fff;border-bottom:1px solid #dce6f2}.plan-review footer{border-bottom:0;border-top:1px solid #dce6f2;padding-bottom:max(10px,env(safe-area-inset-bottom));font-size:12px}.plan-review button{border:1px solid #b9cff0;border-radius:7px;padding:7px 9px;background:#fff;color:#1c65b3;cursor:pointer;font-size:12px}.plan-review button:disabled{opacity:.5;cursor:default}.plan-review header button:last-child,.plan-review footer button{background:#1677ff;color:#fff;border-color:#1677ff}.plan-review-scroll{overflow:auto;padding:10px;flex:1;min-height:0}.plan-process{display:flex;justify-content:space-between;gap:4px;color:#1667bd;font-size:12px;margin-bottom:9px}.plan-floor-selector{display:flex;gap:8px;margin:8px 0}.plan-floor-selector label{flex:1;min-width:0;font-size:12px}.plan-review select,.plan-review input[type=number]{display:block;width:100%;padding:7px;border:1px solid #bdd0e7;border-radius:6px;background:#fff;color:#173150;box-sizing:border-box;min-width:0}.plan-totals{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;background:#eaf5ff;border-radius:8px;padding:8px;font-size:12px;margin:8px 0}.plan-totals b{color:#1264cc}.plan-canvas-wrap{height:440px;background:#fff;position:relative;border:1px solid #b4cdec;border-radius:8px;overflow:hidden}.wall-number-entry{border:2px solid #1677ff;font-size:16px;padding:13px 8px}.plan-number-guide{display:flex;flex-direction:column;gap:5px;padding:10px;margin:8px 0;border-radius:8px;background:#e8f2ff;line-height:1.5}.plan-number-guide b{font-size:17px;color:#174ea6}.plan-number-guide span{font-size:13px}@media(min-width:800px){.plan-canvas-wrap{height:min(68dvh,680px)}.plan-review-scroll{padding:14px 22px}}.plan-svg{width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.plan-svg.panning{cursor:grabbing}.plan-svg:focus-visible{outline:2px solid #1677ff;outline-offset:-3px}.plan-svg.drawing{cursor:crosshair;touch-action:none}.plan-gesture-help{font-size:12px;color:#527094;margin:5px 0}.original-image-viewer{width:100%;height:100%;min-height:0;display:flex;flex-direction:column}.original-image-viewer .plan-svg{flex:1;min-height:0}.original-image-probe{display:none}.original-image-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;padding:4px;font-size:12px}.original-image-toolbar button{border:1px solid #b9cff0;border-radius:6px;padding:5px 10px;cursor:pointer}.plan-image-loading{position:absolute;left:10px;top:10px;background:#eef5ff;color:#2269b9;padding:5px;font-size:12px;pointer-events:none}.plan-tools{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.plan-notice{background:#fff5e6;color:#995306;border-radius:7px;padding:8px;font-size:12px;margin:8px 0}.plan-notice button{margin:4px}.plan-error{color:#b91c1c;background:#fef2f2;padding:8px;border-radius:7px;font-size:12px}.plan-tabs{display:flex;gap:5px;margin:10px 0}.plan-tabs button{flex:1}.plan-tabs button.active{color:#fff;background:#1677ff;border-color:#1677ff}.plan-ledger{background:#fff;border:1px solid #d9e3f0;border-radius:8px;max-height:255px;overflow:auto;margin-bottom:8px}.plan-ledger table{width:100%;border-collapse:collapse;font-size:12px}.plan-ledger th{background:#edf5ff;position:sticky;top:0}.plan-ledger th,.plan-ledger td{padding:8px 5px;border-bottom:1px solid #e8eef7;text-align:right}.plan-ledger th:first-child,.plan-ledger td:first-child{text-align:left}.plan-ledger tr{cursor:pointer}.plan-ledger tr.selected{background:#fff0db;color:#9a3412}.plan-ledger tr.excluded{color:#7c8796;text-decoration:line-through}.plan-ledger tr.unlocated{background:#fff8ed}.plan-ledger small{display:block;font-size:10px;color:#71829c}.plan-edit-card{background:#fff;border:1px solid #d9e3f0;border-radius:9px;padding:10px;margin:8px 0}.plan-edit-card p,.plan-hint{font-size:12px;line-height:1.7;color:#5b6f89;margin:7px 0}.plan-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0}.plan-edit-grid label{font-size:12px}.plan-check{display:flex;align-items:center;gap:8px;margin:9px 0;font-size:12px;line-height:1.6}.plan-check input{width:16px;height:16px;flex-shrink:0}.plan-locate{margin-bottom:8px}.parameter-form select{min-width:0;max-width:175px;padding:7px;border:1px solid #b9cde8;border-radius:6px;color:#173150;font-size:12px;background:#fff}.quantity-groups{margin:10px 0;padding:12px;background:#fff;border:1px solid #d6e4ff;border-radius:12px;color:#143354}.group-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.quantity-groups p,.height-guidance{font-size:13px;line-height:1.5;color:#52677f}.group-table-wrap{overflow-x:auto}.quantity-groups table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}.quantity-groups td,.quantity-groups th{padding:8px;border-bottom:1px solid #edf2f7;text-align:left}.quantity-groups small,.plan-ledger td small{display:block;font-size:11px;font-weight:400;color:#65758a}.group-area-list{display:flex;flex-wrap:wrap;gap:16px;padding:12px 0}.group-area-list span{display:grid;gap:5px;font-size:13px}.group-area-list strong{color:#1677ff}.group-input-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.group-input-grid>div{background:#f5f8fc;padding:10px;border-radius:8px}.group-input-grid label{display:block;margin:8px 0}.group-input-grid input{width:100%;padding:8px;border:1px solid #cbdcf4;border-radius:6px;box-sizing:border-box}.group-editor button,.group-title button{background:#edf5ff;border:1px solid #a9cbff;border-radius:6px;padding:7px;color:#1677ff;cursor:pointer}.group-editor small{display:block;color:#65758a;font-size:12px;margin-top:6px}.group-legend{display:flex;flex-wrap:wrap;gap:15px;font-size:13px;font-weight:600;padding:9px}.height-guidance{padding:0 12px}.plan-ledger input[type=checkbox]{width:16px;height:16px;margin-right:6px}.group-editor button:disabled{opacity:.5}.boundary-wall-links{margin-top:10px;padding:8px;border:1px solid #e6bc87;border-radius:6px;background:#fff7ed}.boundary-wall-links b{display:block;font-size:13px;color:#92400e}.boundary-wall-links button{display:block;width:100%;text-align:left;margin-top:6px}.dimension-check{margin:14px 0;padding:18px;border:2px solid #1677ff;border-radius:12px;background:#fff;color:#16324f}.dimension-check-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:20px}.dimension-check-title .confirmed{color:#087b42;font-size:15px}.dimension-check-title .pending{color:#9a4c00;font-size:15px}.dimension-check-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.dimension-check-values>div{padding:12px;border-radius:8px;background:#f0f6ff;display:flex;flex-direction:column;gap:9px}.dimension-check-values strong{font-size:23px}.dimension-check-values span{font-size:15px}.dimension-check-actions{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.dimension-check button{min-height:46px;padding:10px 22px;font-size:17px;border:1px solid #1677ff;border-radius:8px;background:#fff;color:#1261bf;cursor:pointer}.dimension-check button:first-child{background:#1677ff;color:#fff}.dimension-check button:disabled{opacity:.5;cursor:default}.dimension-check-inputs{display:flex;gap:16px;flex-wrap:wrap}.dimension-check-inputs label{display:flex;flex-direction:column;gap:8px;max-width:100%}.dimension-check-inputs input{min-height:52px;width:220px;max-width:100%;padding:8px 12px;font-size:24px;color:#16324f;background:#fff;border:2px solid #1677ff;border-radius:8px}@media(max-width:600px){.dimension-check-values{grid-template-columns:1fr}.dimension-check-values>div{flex-direction:row;justify-content:space-between}.dimension-check-values strong{font-size:20px}}.opening-capture-tools{border:1px solid #93c5fd;border-radius:10px;padding:10px;background:#eff6ff}.opening-capture-tools span{font-size:14px}.opening-capture{border:2px solid #1677ff}.opening-capture .plan-edit-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.opening-capture select,.opening-capture input{min-width:0;width:100%;box-sizing:border-box}.area-coverage-card{background:#fff;border:1px solid #d5e2f0;border-radius:10px;padding:12px;color:#14304f;margin:10px 0;font-size:12px}.area-coverage-card h3{margin:0 0 10px;font-size:15px;color:#1769cc}.area-coverage-floor{padding:8px 0;border-bottom:1px solid #e5edf5}.area-coverage-floor p{margin:5px 0;line-height:1.6}.area-comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0}.area-comparison-grid span{background:#edf6ff;border-radius:6px;padding:6px}.area-comparison-grid b{display:block;font-size:14px;margin-top:4px}.area-missing-materials{background:#fff3e3;border-radius:6px;padding:8px;color:#814a04}.area-coverage-card ul{padding-left:18px;margin:7px 0;line-height:1.7}.area-coverage-card details{margin-top:10px}.area-review-action{border:1px solid #1677ff;background:#eef6ff;color:#1769cc;border-radius:6px;padding:9px;width:100%;margin-top:10px}.reference-confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #dbe6f1}.reference-confirm-row input{width:95px;padding:7px;border:1px solid #b5c9df;border-radius:5px}body[data-desktop=true] .result-page:has(>.result-original-drawing){grid-template-areas:"drawing drawing" "status materials" "wallbutton bricks" "lengths openings" "area area" "groups groups" "acceptance acceptance" "notes notes" "review parameters" "save save"!important}body[data-desktop=true] .result-page>.area-range-card{grid-area:area!important;margin:0!important;font-size:14px}body[data-desktop=true] .result-page>.accuracy-acceptance-card{grid-area:acceptance!important;margin:0!important;font-size:14px}body[data-desktop=true] .area-coverage-card h3{font-size:18px}body[data-desktop=true] .result-page:has(>.result-original-drawing):has(>.speed-review-card){grid-template-areas:"drawing drawing" "timing materials" "status materials" "wallbutton bricks" "lengths openings" "area area" "groups groups" "acceptance acceptance" "notes notes" "review parameters" "save save"!important}body[data-desktop=true] .result-page>.speed-review-card{grid-area:timing!important}body[data-desktop=true] .result-page:has(>.result-original-drawing):has(>.image-reading-card){grid-template-areas:"drawing drawing" "image image" "timing materials" "status materials" "wallbutton bricks" "lengths openings" "area area" "groups groups" "acceptance acceptance" "notes notes" "review parameters" "save save"!important}body[data-desktop=true] .result-page>.image-reading-card{grid-area:image!important;min-width:0}body[data-desktop=true] .result-page>.result-group-section{grid-area:groups!important;min-width:0}.result-page>.result-original-drawing{display:grid!important;grid-template-rows:auto minmax(88px,1fr) auto!important;gap:8px;height:auto!important;min-height:180px!important}.result-original-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.result-original-header strong{display:flex;align-items:center;gap:6px;color:#1769cc;font-size:17px}.result-original-header button{border:1px solid #1677ff;border-radius:7px;padding:8px 16px;min-height:40px;background:#1677ff;color:#fff;cursor:pointer;white-space:nowrap}.result-page>.result-original-drawing .result-drawing-grid{min-height:88px}.result-page>.result-original-drawing .document-preview b{font-size:14px}.result-page>.result-original-drawing .result-drawing-grid img{max-height:180px}body[data-desktop=true] .result-page>.result-original-drawing{grid-area:drawing!important}.pdf-original-viewer{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#f2f5f8;border-radius:8px;color:#173150}.drawing-lightbox>.pdf-original-viewer{width:100%!important;height:100%!important;min-width:0;align-self:stretch;justify-self:stretch}.pdf-original-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:8px;background:#fff}.pdf-original-toolbar button,.pdf-original-toolbar select{min-height:38px;padding:6px 12px;border:1px solid #b6cef0;border-radius:6px;background:#fff;color:#1769cc;cursor:pointer}.pdf-original-toolbar button:disabled{opacity:.4;cursor:default}.pdf-original-viewer p{margin:0;padding:8px;text-align:center}.pdf-original-paper{flex:1;min-height:0;overflow:auto;padding:12px;text-align:center}.pdf-original-paper canvas{display:block;margin:0 auto;background:#fff}.grouped-component-selection{margin:12px 0;padding:14px;border:2px solid #1677ff;border-radius:12px;background:#fff}.component-selection-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:18px}.component-selection-title span,.grouped-component-selection>p{font-size:13px;color:#52677f}.component-group-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.plan-review .component-group-tabs button{min-width:110px;min-height:48px;font-size:16px;padding:8px 14px}.component-group-tabs button small{display:block;font-size:12px;margin-top:3px}.plan-review .component-group-tabs button[aria-pressed=true]{color:#fff;background:#1677ff;border-color:#1677ff}.component-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.component-category{min-width:0;border:1px solid #cadcf2;border-radius:9px;overflow:hidden}.component-category-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;background:#edf5ff;font-size:15px}.component-category-heading small{font-weight:400;font-size:12px}.plan-review .component-category-heading button{min-height:38px;padding:7px 12px;font-size:14px;white-space:nowrap}.component-category-items{max-height:240px;overflow:auto}.component-choice-row{display:flex;align-items:center;gap:8px;padding:8px;border-top:1px solid #edf2f8;min-height:62px}.component-choice-row input[type=checkbox]{flex:none;width:20px;height:20px;margin:0;accent-color:#1677ff;cursor:pointer}.plan-review .component-choice-row .component-inspect{flex:1;min-width:0;text-align:left;border:0;background:none;padding:2px;font-size:14px;color:#18385a}.component-inspect b,.component-inspect span{display:block;overflow-wrap:anywhere}.component-inspect span{margin-top:4px;font-size:13px}.component-choice-row>small{flex:none;font-size:12px;color:#8a6328}.component-choice-row>small.component-confirmed{color:#14804a}.component-category-items>p{padding:12px;color:#65758a;font-size:13px}.component-confirm-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;margin-top:8px}.component-confirm-bar>div{display:flex;gap:8px;flex-wrap:wrap}.plan-review .component-confirm-bar button{min-height:44px;font-size:15px}.plan-review .component-confirm-bar .component-confirm-all{background:#1677ff;border-color:#1677ff;color:#fff}.grouped-component-selection>small{display:block;line-height:1.5;color:#65758a}@media(max-width:800px){.component-category-grid{grid-template-columns:1fr}.component-category-items{max-height:210px}.component-confirm-bar{align-items:stretch}.component-confirm-bar>div{width:100%}.component-confirm-all{flex:1}}.component-selection-overview{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:16px;align-items:start;margin:10px 0 14px}.component-selection-controls>p{font-size:13px;line-height:1.6;color:#52677f;margin:0 0 10px}.component-selection-controls .plan-tools{margin:8px 0 0}.component-selection-controls .plan-tools label{width:100%;font-size:13px}.component-selection-controls .plan-tools select{width:100%;min-width:0}.component-inline-review{min-width:0}.component-inline-review .dimension-check{margin:0;padding:10px;border:1px solid #cadcf2;border-radius:9px;background:#f9fbff}.component-inline-review .dimension-check-title{font-size:16px;gap:6px}.component-inline-review .dimension-check-title b{font-size:12px}.component-inline-review .dimension-check-values{gap:6px;margin:8px 0}.component-inline-review .dimension-check-values>div{padding:7px;gap:4px}.component-inline-review .dimension-check-values span{font-size:12px}.component-inline-review .dimension-check-values strong{font-size:18px;overflow-wrap:anywhere}.component-inline-review .dimension-check p{font-size:12px;line-height:1.5;margin:6px 0}.component-inline-review .dimension-check small{display:block;font-size:11px;line-height:1.5}.component-inline-review .dimension-check-actions{gap:8px;margin:7px 0}.plan-review .component-inline-review .dimension-check button{min-height:36px;padding:6px 12px;font-size:14px}.component-inline-review .dimension-check-inputs{gap:8px}.component-inline-review .dimension-check-inputs label{font-size:12px;gap:4px}.component-inline-review .dimension-check-inputs input{min-height:38px;width:150px;padding:5px 8px;font-size:18px}@media(max-width:1000px){.component-selection-overview{grid-template-columns:1fr}}@media(max-width:600px){.component-inline-review .dimension-check-values{grid-template-columns:repeat(3,minmax(0,1fr))}.component-inline-review .dimension-check-values>div{flex-direction:column;justify-content:flex-start}.component-inline-review .dimension-check-values strong{font-size:16px}}.area-editor{margin:12px 0;padding:12px;border:2px solid #1677ff;border-radius:10px;background:#fff;color:#173150}.area-editor-title{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:18px}.area-editor-title strong{color:#1769cc}.area-editor p{font-size:13px;line-height:1.6;margin:8px 0}.area-editor-values{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.area-editor-values span{padding:7px 10px;border-radius:6px;background:#edf5ff;font-size:13px}.area-editor>label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.area-editor input{flex:1;min-width:200px;padding:8px;border:1px solid #b6cdef;border-radius:6px}.area-editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.plan-review .area-editor-actions button{min-height:40px}.plan-review .area-editor-actions button:last-child{background:#1677ff;color:#fff}.area-editor-corrections>div{display:flex;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid #d9e5f2;padding:6px 0;font-size:13px}.area-editor details{font-size:13px}:root{background:#f2f5fa;--shadow:0 8px 30px rgba(21,32,51,.06)}html,body,#root{width:100%;min-height:100%}.prototype-shell{display:block;min-height:100vh;padding:0;background:#f2f5fa}.phone{width:100%;height:auto;min-height:100vh;overflow:visible;border:0;border-radius:0;box-shadow:none}.status-bar{display:none}.app-header{min-height:80px;padding:15px max(24px,calc((100vw - 1320px)/2));grid-template-columns:46px 1fr 46px}.app-header h1{font-size:24px}.app-header p{font-size:13px}.header-icon{cursor:pointer}.app-scroll{overflow:visible;flex:none}.page{width:100%;max-width:1320px;min-height:0;margin:0 auto;padding:24px 28px 40px}.upload-page,.parameters-page{max-width:1040px}.upload-page .upload-box{min-height:230px;padding:30px;background:#fff}.photo-upload-title strong{font-size:22px}.photo-upload-buttons button,.file-button{min-height:46px;font-size:16px;cursor:pointer}.source-grid{gap:16px}.quick-form{margin-top:24px}.quick-form label{min-height:48px}.quick-form input{width:110px;min-height:36px;font-size:17px}.height-guidance{font-size:14px;line-height:1.8}.history-title{font-size:17px}.project-history{margin-top:20px;padding:18px;background:#fff;border-radius:12px;border:1px solid var(--line)}.project-history select{min-height:44px;font-size:15px}.bottom-panel,.upload-page .bottom-panel,.result-page .bottom-panel{position:static;margin-top:20px;padding:16px 0 0;border-top:1px solid var(--line);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.primary-button,.outline-action,.solid-action{min-height:48px;font-size:16px;cursor:pointer}.result-page{display:flex;flex-direction:column;gap:16px}.result-page>*{grid-area:auto;width:100%;min-width:0;margin:0}.result-page>.recognition-complete{padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px}.result-page .result-drawing-grid button{min-height:150px}.result-page .drawing-thumb img{max-height:280px;object-fit:contain}.result-page .document-preview{min-height:140px}.result-page .recognition-label{margin-top:12px;font-size:16px}.result-page .wall-total{padding:18px}.result-page .wall-total strong{font-size:24px}.result-page .floor-area-grid{margin-top:12px}.result-page .floor-area-grid small,.result-page .floor-area-grid em{font-size:14px}.result-page .quantity-review-card{padding:18px;font-size:15px;line-height:1.7}.result-page .deduction-card{padding:16px 20px}.result-page .card-title{font-size:17px}.result-page .deduction-head,.result-page .deduction-floor-row{min-height:40px;font-size:15px}.result-page .brick-card{min-height:100px;padding:12px;cursor:pointer}.result-page .brick-card b{font-size:18px}.result-page .brick-card small{font-size:14px}.result-page .result-block h3{font-size:22px;min-height:52px}.result-page .floor-material-head{min-height:42px;font-size:15px}.result-page .floor-material-row{min-height:56px;font-size:20px}.result-page .floor-material-row strong{font-size:26px}.result-page table{width:100%;border-collapse:collapse}.result-page table th,.result-page table td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}.result-page .plan-review-entry,.result-page .tune-button{min-height:48px;font-size:16px;cursor:pointer}.plan-review{width:100%;max-width:1680px}.plan-review header,.plan-review footer{padding:12px 24px}.plan-review-scroll{padding:16px 24px}.plan-review button,.plan-edit-grid label,.plan-ledger table{font-size:14px}.plan-ledger{max-height:360px}.plan-canvas-wrap{height:min(65vh,720px)}.parameter-form label{min-height:64px;font-size:16px}.parameter-form input,.parameter-form select{font-size:16px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);width:max-content;max-width:90vw}.server-status{display:flex;justify-content:space-between;gap:16px;padding:11px max(24px,calc((100vw - 1264px)/2));background:#fff;border-bottom:1px solid var(--line);color:#52627a;font-size:13px}.server-status span:first-child{display:flex;align-items:center;gap:8px}.server-status i{width:8px;height:8px;border-radius:50%;background:#adb8c6;flex:none}.server-status i.online{background:#15945c}.server-status i.offline{background:#d28a25}@media(max-width:760px){.page{padding:16px 12px 28px}.app-header{min-height:70px;padding:12px}.app-header h1{font-size:20px}.server-status{padding:10px 14px;flex-wrap:wrap;gap:6px}.engine-version{font-size:11px;overflow-wrap:anywhere}.upload-page .upload-box{min-height:190px;padding:16px}.result-page .quantity-review-card{font-size:14px;padding:12px}.plan-review-scroll{padding:12px}.plan-review header,.plan-review footer{padding:10px}}
