:root{--bg:#f3f6fa;--card:#fff;--line:#dfe6ef;--text:#172334;--muted:#66758a;--blue:#1768ac;--red:#c53131;--orange:#d97706;--green:#16834b}
*{box-sizing:border-box}body{margin:0;font-family:Arial,"Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}
.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#12263a;color:#fff;padding:20px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 24px}.brand-mark{width:48px;height:48px;border:2px solid #fff;border-radius:12px;display:grid;place-items:center;font-weight:800}.brand small{display:block;color:#b8c7d6;margin-top:4px}
nav{display:grid;gap:6px}nav button{border:0;background:transparent;color:#d9e4ee;text-align:left;padding:13px 14px;border-radius:8px;font-size:15px;cursor:pointer}nav button:hover,nav button.active{background:#1d4666;color:#fff}.sidebar-foot{margin-top:auto;color:#91a6b9;font-size:12px;padding:12px 8px}
main{min-width:0}.topbar{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:14px 28px;position:sticky;top:0;z-index:5}.topbar h1{margin:0 0 5px;font-size:23px}.meta{color:var(--muted);font-size:13px}.top-actions{display:flex;gap:10px}.button{border:1px solid #b9c7d5;background:#fff;border-radius:7px;padding:9px 14px;cursor:pointer;font-size:14px}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}
#app{padding:22px 28px 40px}.grid{display:grid;gap:16px}.grid.kpi{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:0 2px 8px rgba(20,45,70,.04)}.card h2,.card h3{margin:0 0 14px}.kpi-card .label{color:var(--muted);font-size:13px}.kpi-card .value{font-size:28px;font-weight:700;margin-top:8px}.kpi-card .sub{font-size:12px;color:var(--muted);margin-top:6px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#f5f8fb;color:#46586e;position:sticky;top:0}tr:last-child td{border-bottom:0}.tag{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;background:#e8f2fb;color:#155f97}.tag.red{background:#fdeaea;color:var(--red)}.tag.green{background:#e8f7ef;color:var(--green)}.tag.orange{background:#fff2dd;color:var(--orange)}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.field .read{background:#f7f9fb;border:1px solid var(--line);border-radius:6px;padding:9px 10px;min-height:36px}.notice{padding:12px 14px;border-left:4px solid var(--blue);background:#edf6fd;border-radius:6px;margin-bottom:14px}.notice.warn{border-color:var(--orange);background:#fff7e9}.empty{padding:45px;text-align:center;color:var(--muted)}
canvas.chart{width:100%;height:260px;border:1px solid var(--line);border-radius:8px;background:#fff}.iframe-wrap{height:calc(100vh - 160px);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.iframe-wrap iframe{width:100%;height:100%;border:0}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.muted{color:var(--muted)}.alert-item{border-left:5px solid var(--orange);padding:13px 15px;background:#fff;border-radius:7px;margin-bottom:10px}.alert-item.critical{border-color:var(--red)}.alert-item h4{margin:0 0 7px}.code{font-family:Consolas,monospace;background:#172334;color:#eaf2f8;padding:14px;border-radius:8px;overflow:auto;font-size:12px}
@media(max-width:1000px){.shell{grid-template-columns:190px 1fr}.grid.kpi,.grid.three{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}}

.model-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.model-actions{display:flex;gap:10px;flex-wrap:wrap}.model-frame{height:calc(100vh - 190px);min-height:680px}.model-frame iframe{width:100%;height:100%;border:0;background:#fff}.notice{margin-bottom:12px;padding:10px 14px;border-radius:8px;background:#eef6ff;color:#315b86}.iframe-wrap{overflow:hidden;border:1px solid #dce4ee;border-radius:12px;background:white}@media(max-width:900px){.model-toolbar{align-items:flex-start;flex-direction:column}.model-frame{height:760px}}
/* v0.2.1 option-style parameter editor */
.field input,.field select{width:100%;height:39px;border:1px solid #c7d2df;border-radius:7px;background:#fff;padding:7px 10px;font:inherit;color:var(--text)}
.field input:focus,.field select:focus{outline:2px solid rgba(23,104,172,.16);border-color:var(--blue)}
.field small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.5}.hidden{display:none!important}
.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.section-heading h3{margin-bottom:5px}.section-heading p{margin:0}.area-result{padding:9px 12px;background:#eef6ff;border-radius:8px;white-space:nowrap;color:#315b86}.area-result b{font-size:19px;color:var(--blue)}
.parameter-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.geometry-grid{grid-template-columns:repeat(5,minmax(145px,1fr))}.geometry-actions{display:flex;align-items:center;gap:14px;margin-top:14px}
.concrete-grid{display:grid;grid-template-columns:1.25fr .7fr 1.6fr;gap:18px;align-items:end}.compound-input{height:39px;display:flex;align-items:center;border:1px solid #c7d2df;border-radius:7px;overflow:hidden;background:#fff}.compound-input>span{padding:0 10px;white-space:nowrap;color:#40556d;background:#f4f7fa;height:100%;display:flex;align-items:center}.compound-input input{border:0;border-radius:0;height:100%;min-width:0}.compound-input input:focus{outline:0;box-shadow:inset 0 0 0 2px rgba(23,104,172,.16)}.slump-input input{width:90px}.compact-concrete input{max-width:120px}
.table-input{width:100px;height:34px;border:1px solid #c7d2df;border-radius:6px;padding:5px 8px}.sticky-save{position:sticky;bottom:10px;margin-top:18px;padding:13px 16px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 22px rgba(24,48,73,.12);display:flex;align-items:center;gap:15px;z-index:3}.button.large{padding:11px 22px;font-weight:700}
@media(max-width:1250px){.geometry-grid{grid-template-columns:repeat(3,1fr)}.concrete-grid{grid-template-columns:1fr 1fr}.slump-field{grid-column:1/-1}}
@media(max-width:900px){.parameter-grid,.geometry-grid,.concrete-grid{grid-template-columns:1fr 1fr}.section-heading{flex-direction:column}.area-result{white-space:normal}}

/* v0.2.2 full geometry editor */
.geometry-editor-layout{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(520px,1.35fr);gap:18px;align-items:start}.geometry-preview-panel{border:1px solid var(--line);border-radius:10px;background:#fbfdff;padding:10px;position:sticky;top:105px}.geometry-canvas{width:100%;height:430px;display:block;background:#fff;border-radius:8px}.geometry-legend{display:flex;gap:18px;flex-wrap:wrap;padding:8px 8px 0;color:var(--muted);font-size:12px}.geometry-controls-panel{min-width:0}.geometry-extra-grid{grid-template-columns:1.2fr 1fr .7fr;margin-top:14px}.geometry-tube-rows{display:grid;gap:8px;margin-top:14px}.geometry-tube-row{display:grid;grid-template-columns:90px 1fr 1fr 120px;gap:10px;align-items:end;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.geometry-tube-row label{font-size:11px;color:var(--muted)}.geometry-tube-row input{width:100%;height:34px;border:1px solid #c7d2df;border-radius:6px;padding:5px 8px}.geometry-tube-row>span{font-size:12px;color:var(--muted);padding-bottom:8px}.geometry-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}
@media(max-width:1250px){.geometry-editor-layout{grid-template-columns:1fr}.geometry-preview-panel{position:static}.geometry-canvas{height:390px}}@media(max-width:760px){.geometry-tube-row{grid-template-columns:1fr 1fr}.geometry-extra-grid{grid-template-columns:1fr}.geometry-canvas{height:330px}}

/* v0.2.4 project global + professional geometry */
.form-grid .field label{font-size:13px;line-height:1.35;min-height:20px}.field input,.field select{font-size:14px;min-width:0}.parameter-grid{grid-template-columns:repeat(3,minmax(210px,1fr))}.geo-letter{display:inline-grid;place-items:center;min-width:27px;height:27px;margin-right:6px;border-radius:50%;background:#ef6c00;color:#fff;font:bold 16px Arial;vertical-align:middle}.geometry-canvas{cursor:grab;touch-action:none}.geometry-canvas.dragging{cursor:grabbing}.geometry-preview-panel{overflow:visible}.geometry-controls-panel .field label{font-size:14px;font-weight:600;color:#304760}.global-actions{display:flex;gap:8px;flex-wrap:wrap}.button.mini{padding:5px 9px;font-size:12px}.button.danger{border-color:#e2a7a7;color:#a32727}.table-wrap td,.table-wrap th{font-size:13px}.card{overflow:visible}.section-heading>div{min-width:0}.section-heading h3{line-height:1.3}.section-heading p{line-height:1.55}.compound-input input[type=number]{font-size:16px;font-weight:700}.tube-length,.tube-gap{border-color:#53a678!important;background:#f1fbf5!important}
@media(max-width:1100px){.parameter-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.section-heading{align-items:stretch}.global-actions{width:100%}}
/* v0.3 integrated records, curves and native 3D */
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.record-dialog{width:min(820px,92vw);border:0;border-radius:12px;padding:0;box-shadow:0 24px 70px rgba(17,39,61,.28)}.record-dialog::backdrop{background:rgba(10,25,40,.5)}.record-dialog form{padding:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.workbench-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.65fr);gap:16px}.workbench-main{min-width:0}.workbench-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:12px}.workbench-status>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 13px;background:#f4f8fc;border:1px solid var(--line);border-radius:8px}.workbench-status b{font-size:17px;color:var(--blue)}.native-3d{width:100%;height:520px;display:block;border:1px solid var(--line);border-radius:10px;background:#f7fafc}.native-3d.large{height:620px}.event-line{font-size:13px;border-bottom:1px dashed var(--line);padding-bottom:8px}.playback-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.55fr);gap:16px}.playback-stage{min-width:0}.timeline{width:100%;margin-top:14px}.timeline-text{text-align:center;color:var(--muted);font-size:13px;margin-top:6px}.tube-state{display:grid;grid-template-columns:55px 1fr 1fr;gap:6px 10px;padding:12px 0;border-bottom:1px solid var(--line)}.tube-state b{grid-row:span 2;font-size:18px;color:var(--blue)}.playback-side{align-self:start;position:sticky;top:105px}@media(max-width:1200px){.workbench-grid,.playback-layout{grid-template-columns:1fr}.playback-side{position:static}.native-3d.large{height:520px}}@media(max-width:900px){.analysis-grid,.grid.four{grid-template-columns:1fr 1fr}.native-3d{height:420px}} 

/* v0.3.1 unified analysis/workbench/playback */
.integrated-workspace{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(310px,.58fr);gap:16px;margin-top:16px}.integrated-main{min-width:0}.integrated-side{align-self:start;position:sticky;top:105px}.integrated-charts{margin-top:16px}.workspace-kpis{margin-bottom:0}.model-actions{display:flex;gap:8px;flex-wrap:wrap}.integrated-main .native-3d.large{height:600px}.integrated-side .tube-state{font-size:14px}@media(max-width:1200px){.integrated-workspace{grid-template-columns:1fr}.integrated-side{position:static}.integrated-main .native-3d.large{height:520px}}
/* v0.3.2 field-sync and interactive 3D */
.sync-status{margin:0 0 12px;padding:8px 12px;border-radius:7px;background:#eef6ff;color:#315b86;font-size:13px}.native-3d{user-select:none;touch-action:none}.model-actions .button{white-space:nowrap}

/* v0.3.3 parameter layout and integrated analysis polish */
.parameter-master-card{padding-bottom:18px}.compact-parameter-grid{grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px}.compact-parameter-grid .field input,.compact-parameter-grid .field select{height:38px}.wall-id-field input{font-weight:800;color:var(--blue);letter-spacing:.4px}.parameter-subsection{margin-top:18px;padding:16px;border:1px solid #dce6ef;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}.subsection-title{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.subsection-title b{font-size:16px;color:#243e57}.subsection-title span{font-size:12px;color:var(--muted)}.embedded-concrete-grid{grid-template-columns:1.1fr .75fr 1.45fr;max-width:920px}.compact-tube-table table{min-width:700px}.compact-tube-table th{background:#edf4fa;color:#294760}.sticky-save{gap:10px}.sticky-save .button[disabled]{opacity:.45;cursor:not-allowed}.geometry-main-card{padding-top:18px}
.analysis-command-card{margin-top:16px;padding:20px}.refined-kpis .value{font-size:25px}.analysis-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(390px,.9fr);gap:18px;align-items:stretch}.analysis-3d-pane,.analysis-primary-pane{min-width:0}.analysis-3d-pane{display:flex;flex-direction:column}.compact-status{margin-bottom:10px}.grounded-3d{height:610px!important}.analysis-primary-pane{border-left:1px solid var(--line);padding-left:18px;display:flex;flex-direction:column}.primary-chart-heading h3{margin:0;color:#1b3d5c;font-size:19px}.primary-chart-heading p{margin:5px 0 8px;color:var(--muted);font-size:13px}.primary-chart{height:310px!important}.deviation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 12px}.deviation-summary>div{padding:10px;border-radius:8px;background:#f4f8fb;border:1px solid var(--line);text-align:center}.deviation-summary span{display:block;font-size:12px;color:var(--muted)}.deviation-summary b{display:block;margin-top:4px;font-size:18px;color:#2d4e68}.deviation-summary .positive{color:#c15b24}.deviation-summary .negative{color:#1768ac}.curve-switcher{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 8px}.curve-switcher .button.active{background:#1768ac;color:#fff;border-color:#1768ac}.aux-curve-panel{margin-top:4px;padding-top:8px;border-top:1px dashed var(--line)}.aux-curve-panel h4{margin:0 0 4px;color:#324f68}.aux-chart{height:235px!important}.analysis-lower-grid{display:grid;grid-template-columns:.8fr 1.1fr 1.1fr;gap:14px;margin-top:16px}.card-lite{padding:15px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.card-lite h3{margin-top:0;font-size:16px;color:#284862}.card-lite p{margin:7px 0;font-size:13px}.card-lite .event-line{font-size:12px}.analysis-command-card .section-heading{margin-bottom:10px}.analysis-command-card .model-actions{justify-content:flex-end}
@media(max-width:1450px){.compact-parameter-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.analysis-main-grid{grid-template-columns:1.25fr .9fr}.grounded-3d{height:560px!important}}
@media(max-width:1120px){.analysis-main-grid{grid-template-columns:1fr}.analysis-primary-pane{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:16px}.analysis-lower-grid{grid-template-columns:1fr}.embedded-concrete-grid{grid-template-columns:1fr}.grounded-3d{height:520px!important}}
@media(max-width:760px){.compact-parameter-grid{grid-template-columns:1fr 1fr}.deviation-summary{grid-template-columns:1fr}.analysis-command-card{padding:13px}}

/* v0.3.4 unified typography and original-logic pour curve */
:root{
 --font-ui:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",Arial,sans-serif;
 --fs-page:24px;--fs-section:18px;--fs-card:16px;--fs-nav:14px;--fs-data:16px;--fs-label:12px;--fs-button:14px;
 --lh-tight:1.25;--lh-body:1.55;--radius-card:12px;--shadow-card:0 3px 14px rgba(24,48,73,.055)
}
body{font-family:var(--font-ui);font-size:14px;line-height:var(--lh-body);letter-spacing:.01em}
.topbar h1{font-size:var(--fs-page);font-weight:800;line-height:var(--lh-tight);color:#18334d}.meta{font-size:13px;line-height:1.45}
nav button{font-family:var(--font-ui);font-size:var(--fs-nav);font-weight:600;line-height:1.3;padding:12px 14px}
.card{border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
.card h2{font-size:20px;font-weight:800;line-height:var(--lh-tight)}.card h3,.section-heading h3{font-size:var(--fs-section);font-weight:800;line-height:1.35;color:#203e59}
.card h4{font-size:var(--fs-card);font-weight:700}.muted,.section-heading p{font-size:13px;line-height:1.6}
.kpi-card .label,.field label,.deviation-summary span{font-size:var(--fs-label);font-weight:600;letter-spacing:.02em}.kpi-card .value{font-size:27px;line-height:1.15;font-variant-numeric:tabular-nums}
.button{font-family:var(--font-ui);font-size:var(--fs-button);font-weight:700;line-height:1.2;min-height:38px;padding:9px 15px;border-radius:8px}.button.mini{font-size:13px;min-height:32px;padding:6px 11px}
.field input,.field select,.table-input{font-family:var(--font-ui);font-size:14px}.table-wrap th{font-size:12px;font-weight:800;letter-spacing:.025em}.table-wrap td{font-size:13px;font-variant-numeric:tabular-nums}
.analysis-command-card{background:linear-gradient(180deg,#fff,#fbfdff);border-color:#d9e4ed}.analysis-command-card>.section-heading{padding-bottom:13px;border-bottom:1px solid #e3eaf0}
.analysis-main-grid{grid-template-columns:minmax(0,1.25fr) minmax(520px,1fr);gap:22px}.analysis-primary-pane{padding-left:22px}
.primary-chart-heading{padding:2px 0 8px}.primary-chart-heading h3{font-size:20px;font-weight:800}.primary-chart-heading p{font-size:13px;line-height:1.55;max-width:720px}
.primary-chart.pour-curve{height:390px!important;border-radius:10px;border-color:#d7e1ea;background:#fff}
.deviation-summary>div{padding:11px 10px}.deviation-summary b{font-size:19px;font-variant-numeric:tabular-nums}
.curve-switcher{padding:9px 0 4px;border-top:1px dashed #d9e2ea}.aux-curve-panel h4{font-size:15px;font-weight:800}.card-lite h3{font-size:16px;font-weight:800}.card-lite p,.event-line{line-height:1.55}
.workbench-status>div{font-size:13px}.workbench-status b{font-size:16px}.tube-state span{font-size:13px;font-variant-numeric:tabular-nums}.timeline-text{font-size:13px;font-weight:600}
@media(max-width:1350px){.analysis-main-grid{grid-template-columns:1fr}.analysis-primary-pane{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:18px}.primary-chart.pour-curve{height:360px!important}}
/* v0.4 Smart filling analysis */
.anomaly-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(90px,.9fr) minmax(80px,.7fr);gap:8px 12px;align-items:center;padding:10px 12px;margin:8px 0;border-radius:10px;border:1px solid #dbe5ee;background:#f8fbfd;font-variant-numeric:tabular-nums}
.anomaly-row small{grid-column:1/-1;color:#718096;font-size:11px}
.anomaly-row.bulge{border-left:5px solid #e07a24;background:linear-gradient(90deg,rgba(224,122,36,.10),#fff 42%)}
.anomaly-row.neck{border-left:5px solid #327ac2;background:linear-gradient(90deg,rgba(50,122,194,.10),#fff 42%)}
.anomaly-row.bulge b,.anomaly-row.bulge span:last-of-type{color:#b85c13}.anomaly-row.neck b,.anomaly-row.neck span:last-of-type{color:#245f9f}

/* v0.4.1 analysis visualization layout refinement */
.analysis-command-card{padding:22px 24px 24px}
.analysis-main-grid{grid-template-columns:minmax(0,1.42fr) minmax(500px,.95fr);gap:24px;align-items:start}
.analysis-3d-pane{min-width:0}
.three-d-visual-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;align-items:stretch}
.three-d-canvas-wrap{min-width:0;overflow:hidden;border-radius:12px}
.grounded-3d{height:600px!important;border-radius:12px}
.replay-point-panel{min-height:600px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f5f9fc);padding:16px 15px;display:flex;flex-direction:column}
.replay-point-panel h3{margin:0 0 12px;font-size:16px;color:#274963;border-bottom:1px solid #dfe8ef;padding-bottom:10px}
.replay-point-panel p{margin:9px 0;font-size:13px;line-height:1.5;color:#4c6173}
.replay-point-panel p b{display:block;margin-top:2px;font-size:16px;color:#173b58;font-variant-numeric:tabular-nums}
.replay-help{margin-top:auto;padding-top:12px;border-top:1px dashed #d4e0e8;font-size:11px;line-height:1.55;color:#738394}
.analysis-primary-pane{padding-left:24px}
.primary-chart.pour-curve{height:520px!important}
.analysis-lower-grid{grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.equal-analysis-card{min-height:214px;display:flex;flex-direction:column}
.equal-analysis-card>div{flex:1}
.tube-state-compact{display:grid;grid-template-columns:minmax(95px,1.25fr) repeat(5,minmax(72px,1fr));gap:8px;align-items:center;min-height:64px;padding:10px 8px;border-bottom:1px solid var(--line)}
.tube-state-compact:last-child{border-bottom:0}
.tube-state-compact b{grid-row:auto;font-size:15px;color:#1768ac;white-space:nowrap}
.tube-state-compact span{display:flex;flex-direction:column;gap:2px;font-size:14px;font-weight:700;color:#233f56;font-variant-numeric:tabular-nums;white-space:nowrap}
.tube-state-compact em{font-style:normal;font-size:11px;font-weight:500;color:#7a8997}
.anomaly-row{min-height:64px;margin:0 0 8px;padding:9px 11px}
.recent-steps-card{padding-top:14px}
.compact-status>div{min-height:48px}
.timeline{margin-top:12px}
.timeline-text{font-size:12px}
@media(max-width:1500px){
 .analysis-main-grid{grid-template-columns:minmax(0,1.3fr) minmax(460px,.9fr)}
 .three-d-visual-grid{grid-template-columns:minmax(0,1fr) 200px}
 .replay-point-panel,.grounded-3d{min-height:560px;height:560px!important}
 .primary-chart.pour-curve{height:485px!important}
}
@media(max-width:1240px){
 .analysis-main-grid{grid-template-columns:1fr}
 .analysis-primary-pane{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:18px}
 .primary-chart.pour-curve{height:430px!important}
}
@media(max-width:900px){
 .three-d-visual-grid{grid-template-columns:1fr}
 .replay-point-panel{min-height:auto}
 .grounded-3d{height:500px!important}
 .analysis-lower-grid{grid-template-columns:1fr}
 .tube-state-compact{grid-template-columns:1fr 1fr 1fr}
 .tube-state-compact b{grid-column:1/-1}
}


/* v0.4.2 analysis layout and whole-section anomaly grouping */
.tube-status-under-3d{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}
.subsection-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.subsection-title h3{margin:0;font-size:16px;color:#284862}
.subsection-title span{font-size:11px;color:var(--muted)}
.tube-status-under-3d .tube-state-compact{min-height:52px;padding:7px 6px}
.analysis-secondary-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr);gap:16px;margin-top:16px;align-items:stretch}
.analysis-secondary-grid>.card-lite{margin:0;min-height:210px}
.recent-steps-card .event-line{margin:0;padding:8px 0;font-size:12px}
.anomaly-table-wrap{overflow-x:auto}
.anomaly-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.anomaly-table th,.anomaly-table td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.anomaly-table th:first-child,.anomaly-table td:first-child{text-align:left}
.anomaly-table td b{display:block;color:#284862;font-size:13px}
.anomaly-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.anomaly-table tr.bulge td:first-child{border-left:4px solid #e07a24}
.anomaly-table tr.neck td:first-child{border-left:4px solid #327ac2}
.anomaly-table tr.bulge td:not(:first-child){color:#a95316}
.anomaly-table tr.neck td:not(:first-child){color:#245f9f}
.whole-section-badge,.single-side-badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap}
.whole-section-badge{background:#fff1e7;color:#a84f13;border:1px solid #efb17f}
.single-side-badge{background:#eef4f9;color:#496578;border:1px solid #cbd9e4}
@media(max-width:1120px){.analysis-secondary-grid{grid-template-columns:1fr}.analysis-secondary-grid>.card-lite{min-height:auto}}

/* v0.4.3 导管交互与监理资料预留 */
.geometry-canvas{touch-action:none;cursor:crosshair}.geometry-canvas.dragging{cursor:grabbing}.geometry-preview-panel{user-select:none}
.archive-reserve .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.status-chip.pending{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#fff7e6;color:#a15c00;font-size:12px;font-weight:700;white-space:nowrap}.archive-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.archive-option{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfdff;cursor:pointer}.archive-option input{margin-top:3px;width:18px;height:18px}.archive-option span{display:grid;gap:5px}.archive-option b{font-size:15px;color:var(--text)}.archive-option small{font-size:12px;color:var(--muted);line-height:1.6}.archive-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.archive-reserve #archiveReserveHint{margin-top:10px}
@media(max-width:760px){.archive-options{grid-template-columns:1fr}}
/* v0.4.4.1 slump-pour rhythm analysis */
.inline-check{display:flex;align-items:center;gap:8px;min-height:38px;font-size:13px;color:#334155}.inline-check input{width:18px;height:18px}.slump-analysis-card{margin-top:16px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fff,#fbfdff)}.slump-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 12px}.slump-kpis>div{padding:11px 12px;border:1px solid #dfe8ef;border-radius:9px;background:#f7fafc}.slump-kpis em{display:block;font-style:normal;font-size:11px;color:#718096}.slump-kpis b{display:block;margin-top:3px;font-size:17px;color:#1f4059;font-variant-numeric:tabular-nums}.slump-summary{padding:12px 14px;border-left:4px solid #3b82f6;border-radius:7px;background:#f2f7fd;color:#40566a;font-size:13px;line-height:1.7}.slump-table-wrap{margin-top:12px}.slump-table-wrap td small{display:block;color:#8493a1;font-size:10px;margin-top:2px}.slump-details{margin-top:12px}.slump-details summary{cursor:pointer;color:#2d5f87;font-weight:700;font-size:13px}.slump-details .table-wrap{margin-top:8px}@media(max-width:900px){.slump-kpis{grid-template-columns:1fr 1fr}}

/* v0.4.6.2 基础参数紧凑化、自动计算提示与监理资料自动生成 */
.parameter-master-card{padding:15px 16px 13px}.parameter-master-card .section-heading{margin-bottom:8px}.parameter-master-card .section-heading p{margin-top:2px;line-height:1.35}
.compact-parameter-grid{grid-template-columns:repeat(6,minmax(128px,1fr));gap:6px 9px}.compact-parameter-grid .field label{font-size:11px;min-height:auto;margin-bottom:3px;white-space:nowrap}.compact-parameter-grid .field input,.compact-parameter-grid .field select{height:32px;padding:5px 7px;font-size:13px}.compact-parameter-grid .field small{display:none}
.parameter-master-card .parameter-subsection{margin-top:9px;padding:9px 11px}.parameter-master-card .subsection-title{margin-bottom:7px}.parameter-master-card .subsection-title b{font-size:14px}.parameter-master-card .subsection-title span{font-size:11px}
.embedded-concrete-grid{grid-template-columns:1fr .72fr 1.2fr;gap:8px 10px}.embedded-concrete-grid .field label{margin-bottom:3px}.embedded-concrete-grid .compound-input{min-height:32px}.embedded-concrete-grid input{height:30px!important}
.compact-tube-table th,.compact-tube-table td{padding:5px 7px}.compact-tube-table input{height:28px;padding:3px 5px}.computed-field input{background:#f3f6f8!important;color:#40586b;cursor:help;border-style:dashed}.computed-attention input{outline:2px solid #e9a23b;outline-offset:1px}.parameter-calc-hint{margin:8px 0 3px;padding:7px 10px;border-radius:7px;background:#f6f9fc;color:#657789;font-size:11px;border:1px dashed #ccd9e4}
.geometry-actions{margin-top:9px;gap:9px}.geometry-tube-row input{width:88px}.archive-profile-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.archive-template-panel{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;padding:10px;border:1px solid #dfe8ef;border-radius:8px;background:#f8fbfd}.archive-template-panel>div{display:flex;flex-direction:column;gap:2px;margin-right:auto}.archive-template-panel span{font-size:11px;color:var(--muted)}.archive-service-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.archive-service-row label{font-size:12px;font-weight:700}.archive-service-row input{width:320px;max-width:52vw;height:32px;border:1px solid var(--line);border-radius:6px;padding:5px 8px}.archive-service-row small{color:var(--muted)}
@media(max-width:1450px){.compact-parameter-grid{grid-template-columns:repeat(5,minmax(130px,1fr))}.archive-profile-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:1150px){.compact-parameter-grid{grid-template-columns:repeat(4,minmax(135px,1fr))}}


/* v0.4.7.0 PC account authentication */
body.pc-auth-pending .shell{display:none}
#pcAuthRoot:empty{display:none}
.pc-login-screen{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef5fa 0%,#f8fbfd 46%,#e8f1f7 100%)}
.pc-login-card{width:min(420px,calc(100vw - 36px));padding:30px 32px 28px;border:1px solid #d7e2ea;border-radius:16px;background:#fff;box-shadow:0 22px 60px rgba(35,63,86,.16)}
.pc-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.pc-login-brand>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#1768ac;color:#fff;font-size:16px;font-weight:800;letter-spacing:.5px}.pc-login-brand>div{display:grid;gap:2px}.pc-login-brand b{font-size:17px;color:#1d405c}.pc-login-brand small{font-size:11px;color:#728394}
.pc-login-card h1{margin:0 0 8px;font-size:25px;color:#173b58}.pc-login-card>p{margin:0 0 22px;color:#687b8c;font-size:13px}.pc-login-card>label:not(.pc-remember){display:grid;gap:7px;margin:14px 0;color:#334e63;font-size:13px;font-weight:700}.pc-login-card input[type="text"],.pc-login-card input[type="password"],.pc-login-card input:not([type]){height:42px;border:1px solid #cbd9e4;border-radius:8px;padding:8px 11px;font-size:15px;outline:none}.pc-login-card input:focus{border-color:#4c91c9;box-shadow:0 0 0 3px rgba(23,104,172,.10)}
.pc-remember{display:flex!important;align-items:center;gap:8px!important;margin:14px 0 10px!important;font-size:12px!important;font-weight:500!important;color:#607486!important}.pc-remember input{width:16px;height:16px}
.pc-login-message{min-height:38px;margin:8px 0 12px;padding:9px 10px;border-radius:7px;background:#f4f8fb;color:#64788a;font-size:12px;line-height:1.5}.pc-login-message.error{background:#fff0f0;color:#a33b3b;border:1px solid #f1cccc}
.pc-login-submit{width:100%;height:42px;font-size:14px}.pc-login-submit:disabled{opacity:.7;cursor:wait}.pc-login-security{display:block;margin-top:13px;color:#8a99a6;font-size:10px;line-height:1.55;text-align:center}
.pc-user-badge{display:inline-flex;align-items:center;min-height:34px;padding:6px 10px;border:1px solid #d6e2eb;border-radius:999px;background:#f6f9fb;color:#405b70;font-size:12px;white-space:nowrap}.pc-logout{white-space:nowrap}
