/* Official Noto Sans JP variable font. License: fonts/OFL.txt. */
@font-face{font-family:"Noto Sans JP";src:url("fonts/NotoSansJP-Variable.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap;}
:root{font-family:"Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;font-weight:400;color:#263442;background:#f4f6f8;font-size:14px;--teal:#147d78;--border:#e0e6eb;--muted:#778390}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}button{color:inherit}button:disabled{opacity:.42;cursor:default}input,select,textarea{width:100%;min-width:0;border:1px solid #dbe2e8;background:#fff;color:#263442;padding:10px 11px;border-radius:7px}input:focus,select:focus,textarea:focus{outline:2px solid #14857a55;border-color:var(--teal)}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #60c2b8;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:26px;letter-spacing:-.5px;line-height:1.4}h2{font-size:16px}h3{font-size:14px;line-height:1.55}p,li{line-height:1.7}ul{padding-left:20px}small{font-size:11px}.muted{color:var(--muted);font-size:12px}.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}.skip-link{position:fixed;left:15px;top:-100px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:12px}
.app-layout{display:grid;grid-template-columns:202px minmax(0,1fr);min-height:100vh}.app-rail{background:#182633;color:#b9c5ce;display:flex;flex-direction:column;padding:31px 18px 22px;position:sticky;top:0;height:100vh;min-height:650px}.rail-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:12px;color:#fff;white-space:nowrap}.brand-icon{display:grid;place-items:center;background:#2c706f;border-radius:9px;font-size:24px;width:34px;height:38px}.rail-brand small{display:block;letter-spacing:1.4px;font-size:8px;color:#8faaa9;margin-top:6px}.rail-project{margin:39px 8px 27px;padding-bottom:22px;border-bottom:1px solid #ffffff10}.eyebrow{font-size:9px;letter-spacing:1.4px;font-weight:700;color:#8c99a4;display:block}.rail-project strong{display:block;color:#e5edf2;font-size:12px;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}.rail-link{display:flex;align-items:center;gap:11px;border:0;border-radius:7px;width:100%;background:transparent;color:#9badbc;padding:13px 11px;text-align:left;font-size:12px;margin-bottom:5px;white-space:nowrap}.rail-link>span{font-size:18px;line-height:1}.rail-link:hover{background:#ffffff08;color:#fff}.rail-link.active{background:#284445;color:#a8e3d5;box-shadow:inset 3px 0 #6dc7b0}.rail-data{margin:30px 8px}.rail-data button{display:block;border:0;background:transparent;color:#aab8c3;font-size:11px;padding:12px 0;text-align:left}.rail-data button:hover{color:#fff}
.main-workspace{padding:30px 32px 45px;min-width:0;max-width:1770px;width:100%;margin:auto}.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.breadcrumb{font-size:11px;color:#6c7e8d;margin-bottom:8px}.breadcrumb span{color:#a1acb6;margin-left:7px}.workspace-subtitle{font-size:12px;color:#7e8a95;margin-top:7px}.top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.save-state{font-size:10px;color:#8b98a3;margin-right:10px;white-space:nowrap}.button{border:1px solid var(--border);border-radius:7px;background:#fff;padding:11px 16px;line-height:1.3;font-size:12px;font-weight:600;white-space:nowrap}.button:hover{background:#edf3f5}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff}.button.primary:hover{background:#106b66}.button.small{padding:8px 11px;font-size:11px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.version-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:15px}.saved-picker{display:flex;align-items:center;gap:12px;font-size:11px;color:#7b8b97;min-width:0}.saved-picker select{font-size:11px;padding:7px 30px 7px 10px;max-width:340px;background:transparent}.file-menu{position:relative;font-size:11px;flex-shrink:0}.file-menu>summary{list-style:none;padding:8px 12px;border-radius:6px}.file-menu>summary:hover{background:#e8edf1}.file-menu-items{position:absolute;z-index:10;right:0;top:38px;width:210px;background:#fff;border:1px solid var(--border);box-shadow:0 12px 35px #23394a20;border-radius:9px;padding:7px}.file-menu-items button{width:100%;border:0;border-radius:5px;background:none;padding:11px;text-align:left;font-size:12px}.file-menu-items button:hover{background:#edf5f3}.change-status{font-size:11px;color:#82929d;min-height:39px;padding:12px 0 10px;line-height:1.5}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:22px;align-items:start}.workspace-content{min-width:0}.preset-strip{margin-bottom:20px}.preset-title{font-size:10px;color:#8896a0;margin-bottom:8px}.preset-list{display:flex;flex-wrap:wrap;gap:6px}.preset-button{border:1px solid #dce4e8;background:#fff;font-size:10px;line-height:1.4;padding:8px 11px;color:#516774;border-radius:6px}.preset-button:hover{background:#e5f1ee;border-color:#9ec8bc;color:#14675c}
.feature-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.board-lane{background:#fff;border:1px solid #e2e2e2;border-radius:12px;padding:17px 14px 0;min-width:0;transition:border-color .15s,background .15s}.lane-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.lane-heading h2{font-size:15px;margin-top:7px;display:flex;align-items:center;gap:9px}.count{font-size:10px;font-weight:600;background:transparent;color:#638093;padding:3px 7px;border-radius:5px}.lane-dot{width:7px;height:7px;border-radius:50%;background:#479b7d;margin-right:3px}.lane-help{font-size:10px;color:#8b9ba7;margin-bottom:13px}.bank-filters{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:6px;margin-bottom:12px}.bank-filters input,.bank-filters select{font-size:10px;padding:8px 7px;border-color:#dfe6eb}.board-card-list{display:flex;flex-direction:column;gap:11px;height:calc(100vh - 371px);min-height:340px;max-height:790px;overflow-y:auto;overflow-x:hidden;padding:3px 3px 12px;scrollbar-width:thin;scrollbar-color:#c7d6d4 transparent;overscroll-behavior:contain}.estimate-lane .board-card-list{height:calc(100vh - 327px);max-height:834px}.feature-card{position:relative;background:#fff;border:1px solid #e0e7eb;border-radius:9px;padding:12px 14px;box-shadow:0 2px 3px #1d3d4703;flex-shrink:0}.selected-card{border-color:#d7e3de}.card-top{display:flex;align-items:center;gap:7px;margin-bottom:6px}.drag-handle{border:0;border-radius:4px;background:none;color:#a7b4bd;font-size:20px;line-height:1;padding:3px 4px;margin-left:-6px;touch-action:none;cursor:grab;user-select:none}.drag-handle:active{cursor:grabbing}.category-label{font-size:9px;font-weight:600;color:#8a9ca8;letter-spacing:.3px;flex:1}.icon-button{display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid #dae5e4;border-radius:6px;background:#f5f9f8;color:#388778;font-size:20px;line-height:1}.remove-feature{background:#fff;color:#a5b2b9;border-color:transparent}.icon-button:hover{background:#ddecdf;color:#1a675b}.remove-feature:hover{background:#fff0eb;color:#b7664b}.feature-card h3{margin-bottom:9px;color:#32444f;font-weight:650}.card-description{font-size:11px;color:#8c9aa3;line-height:1.6;margin-bottom:12px}.feature-card .field{margin-bottom:0}.selected-card>.field>span{font-size:9px;margin-bottom:5px;color:#90a09f}.selected-card>.field>select{font-size:11px;background:#f6f9f8;border-color:#e3ebe7;padding:9px 8px}.card-price{display:flex;align-items:baseline;justify-content:space-between;gap:7px;margin:12px 0 10px}.card-price strong{font-size:15px;letter-spacing:.1px;font-variant-numeric:tabular-nums;color:#3d5963}.selected-card .card-price strong{color:#2b6557}.card-price>span{font-size:9px;color:#9aa6ae}.card-scope{font-size:10px;color:#7b8a94;line-height:1.7;border-top:1px solid #edf1f3;padding-top:9px}.manual-work{margin-top:7px;color:#677e82}.manual-work>span{display:block;font-size:9px;color:#a0aead;margin-bottom:2px}.feature-card details{border-top:1px solid #edf1f3;margin-top:11px;padding-top:9px}.feature-card summary{font-size:10px;color:#82969a}.feature-card details[open]>summary{margin-bottom:12px}.feature-card details p{font-size:11px;margin:8px 0}.feature-card details .field-grid{grid-template-columns:1fr}.feature-card details input,.feature-card details textarea,.feature-card details select{font-size:11px;padding:8px}.feature-card details .field>span{font-size:10px}.reorder-actions{display:flex;gap:6px;margin-top:12px}.lane-footer{border-top:1px solid #dbe4e8;color:#90a2a9;font-size:9px;padding:12px 0;text-align:center}.estimate-lane .lane-footer{border-color:#d9e5de}.lane-empty{border:1px dashed #c3d2d3;display:grid;place-items:center;min-height:150px;border-radius:8px;text-align:center;padding:25px;color:#8ba5a3;font-size:12px;line-height:2}.add-candidate{margin-top:16px;padding:17px!important}.add-candidate>summary{font-size:12px;color:#6f8992}.add-candidate[open]>summary{margin-bottom:20px}.drop-active{border-color:#2c9b7f;background:#e2f0e8;box-shadow:0 0 0 2px #329d7e20}.feature-card.drop-before:before,.feature-card.drop-after:after{content:"";position:absolute;height:3px;background:#27977d;left:0;right:0;border-radius:4px;z-index:3}.feature-card.drop-before:before{top:-7px}.feature-card.drop-after:after{bottom:-7px}.is-dragging{opacity:.35}.board-dragging .feature-card{cursor:grabbing}.drag-preview{position:fixed;z-index:100;pointer-events:none;left:0;top:0;background:#fff;box-shadow:0 10px 30px #203f4035;border:1px solid #50a38b;border-radius:9px;padding:15px 22px;max-width:260px;color:#245e4f;font-size:12px}
.cost-sidebar{position:sticky;top:25px;min-width:0}.cost-card{background:#203341;color:#fff;border-radius:12px;padding:23px 21px;box-shadow:0 7px 18px #263b4810}.cost-caption{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#b6c7d2}.cost-total{font-size:32px;font-weight:650;letter-spacing:-.7px;margin:22px 0 5px;font-variant-numeric:tabular-nums}.cost-total small{font-size:12px;margin-left:5px;letter-spacing:0;color:#c0ced6}.cost-note{font-size:10px;color:#8ca4b5}.cost-tax{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#99afbd;padding-top:12px}.cost-tax strong{color:#c6d8e2;font-weight:500}.cost-unknown{margin:20px 0;background:#b28e3320;border:1px solid #b69b4340;padding:11px;border-radius:7px;font-size:10px;color:#e4c989}.cost-unknown strong{display:block;font-size:11px;margin-bottom:4px;font-weight:500}.cost-unknown span{font-size:9px;color:#baae91}.cost-unknown.complete{background:#61998715;color:#8fc4b4;border-color:#6ab69430}.cost-breakdown{margin:18px 0}.breakdown-row{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:#9fb5c4;margin-top:13px}.breakdown-row>span{display:flex;align-items:center;gap:6px}.breakdown-row strong{font-size:10px;color:#cadae4;font-weight:500;white-space:nowrap}.group-dot{width:5px;height:5px;display:inline-block;border-radius:50%;flex-shrink:0}.breakdown-track{height:3px;border-radius:5px;background:#ffffff07;margin-top:7px}.breakdown-track i{height:100%;display:block;border-radius:5px}.group-color-0{background:#80c6b4}.group-color-1{background:#7baecc}.group-color-2{background:#b3a0ce}.group-color-3{background:#ccb187}.group-color-4{background:#96ad90}.cost-adjust{margin-top:10px;width:100%;background:#ffffff08;border-color:#ffffff15;color:#bcd4dd;font-size:11px}.cost-adjust:hover{background:#ffffff15}.cost-footnote{font-size:9px;color:#6e8b9e;margin-top:12px;line-height:1.7}.operation-summary{margin-top:16px;border:1px solid var(--border);border-radius:11px;padding:18px 20px;background:#fff}.summary-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.summary-heading h2{font-size:12px}.text-button{border:0;background:none;font-size:10px;color:#578b83;padding:0}.monthly-cost{font-size:22px;color:#486170;font-weight:600}.operation-summary .muted{font-size:10px;margin:5px 0 13px}.summary-row{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e8eef0;padding:11px 0;font-size:11px}.summary-row strong{font-weight:500}.check-summary{border-bottom:1px solid var(--border);padding:15px 5px;font-size:10px;color:#7f919c}.check-summary summary{line-height:1.6}.check-summary li{margin:7px 0}
.panel{background:#fff;border:1px solid var(--border);border-radius:11px;padding:24px;margin-bottom:18px}.panel-heading{margin-bottom:20px}.panel-heading h2{margin-bottom:7px}.panel>p{margin:10px 0;font-size:12px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:block;min-width:0}.field>span{display:block;font-size:11px;color:#7c8e9a;margin-bottom:7px}.notice,.warning{padding:14px 17px;border-radius:8px;font-size:11px;line-height:1.8;margin:12px 0}.notice{background:#eaf3f0;color:#54796e;border:1px solid #dbe9e4}.warning{background:#fbf3e4;color:#8e7343;border:1px solid #eee1c7}.choice-option{display:flex;align-items:center;gap:9px;padding:12px 0;font-size:12px}.choice-option input{width:16px;height:16px}.summary-list{margin:16px 0}.summary-list p{font-size:12px;padding:8px 0}.operation-card,.compare-card,.diff-item{border:1px solid var(--border);border-radius:9px;padding:18px;margin-top:12px}.operation-card p{font-size:11px;margin:10px 0}.feature-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}.badge{font-size:9px;background:#e9f1ef;padding:4px 7px;border-radius:4px;color:#60877a}.badge.unknown{background:#f8edd8;color:#a2854c}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compare-card{margin:0;background:#f8fafb}.compare-card p,.diff-item p{font-size:11px;margin-top:8px}.empty{padding:25px;text-align:center;color:#899ba6}.panel details summary{font-size:12px}.panel details[open] summary{margin-bottom:14px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;padding:12px 18px;background:#243d43;color:#fff;border-radius:8px;box-shadow:0 6px 25px #213c4025;font-size:12px;z-index:30;pointer-events:none}#toast:empty{display:none}.print-document{display:none}.division-panel{margin:0 0 20px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 20px}.division-heading{display:flex;align-items:center;gap:14px;margin-bottom:14px}.division-heading h2{font-size:13px}.division-heading>span{font-size:10px;color:#8a9ca6}.division-all{margin-left:auto;background:#f4f7f8;border:1px solid #e1e9ec;border-radius:6px;padding:7px 10px;font-size:10px;color:#718a95}.division-all.selected{color:#287e6b;background:#eaf4ef;border-color:#bfddd0}.division-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.division-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;min-width:0;border:1px solid #e3e9ed;background:#f9fbfc;border-radius:8px;padding:14px 15px;transition:border-color .15s,box-shadow .15s}.division-card:hover{border-color:#a3c6c1;background:#f4f9f7}.division-card.selected{border-color:#38997b;background:#eef8f2;box-shadow:0 0 0 1px #38997b20}.division-name{display:flex;gap:7px;align-items:center;line-height:1.6;font-size:11px;color:#6e8590;min-height:35px}.division-name .group-dot{width:7px;height:7px}.division-amount{display:block;font-size:22px;letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-weight:600;color:#365b65;margin:7px 0 12px}.division-track{height:7px;background:#e7edf0;border-radius:8px;overflow:hidden;display:block}.division-track i{height:100%;display:block;border-radius:8px}.division-meta{font-size:9px;color:#8299a2;margin-top:9px;line-height:1.8}.division-meta em{font-style:normal;color:#a5854f;white-space:nowrap}.division-help{font-size:10px;color:#8ba1a8;margin-top:12px}.division-card .group-color-0{background:#499f85}.division-card .group-color-1{background:#599bc3}.division-card .group-color-2{background:#a08ac1}.division-card .group-color-3{background:#c1a06b}.division-card .group-color-4{background:#819f74}
@media(max-width:1250px){.division-amount{font-size:19px}.division-card{padding:12px}.division-name{font-size:10px}.division-grid{gap:9px}}
@media(max-width:1050px){.division-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.division-panel{padding:15px}.division-heading{gap:8px;flex-wrap:wrap}.division-heading>span{font-size:9px}.division-heading h2{font-size:12px}.division-name{min-height:32px;font-size:10px}.division-amount{font-size:19px}.division-meta{font-size:8px}.division-help{font-size:9px}.app-rail nav{margin-top:10px}.board-card-list,.estimate-lane .board-card-list{max-height:450px}}
.primary-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.primary-case{text-align:left;padding:12px 13px;background:#fff;color:#58737d;border-color:#d4e3df}.primary-case strong{font-size:12px;font-weight:600;display:block}.primary-case span{display:block;margin-top:5px;font-size:9px;line-height:1.7;color:#869ba2}.more-presets{margin-top:10px}.more-presets summary{font-size:10px;color:#879da5}.more-presets[open] .preset-list{margin-top:9px}.division-panel{padding:14px 18px}.division-name{min-height:20px}.division-amount{font-size:20px;margin:6px 0 10px}.division-card{padding:11px 13px}.division-heading{margin-bottom:11px}.division-help{margin-top:9px}.board-card-list{height:calc(100vh - 540px);min-height:280px}.estimate-lane .board-card-list{height:calc(100vh - 496px);min-height:324px}@media(max-width:720px){.primary-cases{grid-template-columns:1fr}.primary-case .case-description{display:none}.primary-case{padding:11px 13px}.primary-cases{gap:6px}.board-card-list,.estimate-lane .board-card-list{height:auto;min-height:140px}.division-name{min-height:32px}}
.primary-case.case-selected{color:#246e5b;border-color:#449978;background:#eaf6ef;box-shadow:0 0 0 1px #44997825}.primary-case .case-price{display:block;color:#416e70;font-size:14px;line-height:1.6;font-variant-numeric:tabular-nums}.case-price small{font-size:8px;font-weight:400;color:#8ca2a7;display:block}.primary-case .case-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:720px){.primary-case .case-description{display:none}.primary-case .case-price{font-size:13px}.case-price small{display:inline;margin-left:6px}.primary-cases{grid-template-columns:1fr}}
@media(min-width:1600px){.main-workspace{padding:36px 45px}.workspace-grid{grid-template-columns:minmax(0,1fr) 300px;gap:28px}.feature-board{gap:22px}.cost-total{font-size:38px}.board-lane{padding:21px 19px 0}.feature-card{padding:16px 18px}.bank-filters{grid-template-columns:minmax(0,1fr) 130px}}
@media(max-width:1250px){.app-layout{grid-template-columns:175px minmax(0,1fr)}.app-rail{padding:27px 12px}.rail-brand{font-size:10px}.rail-brand small{font-size:7px}.rail-link{font-size:10px;gap:8px}.main-workspace{padding:25px 22px}.workspace-grid{grid-template-columns:minmax(0,1fr) 230px;gap:16px}.feature-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.cost-card{padding:20px 16px}.cost-total{font-size:28px}.bank-filters{grid-template-columns:1fr}.bank-filters select{padding:5px 7px}.board-lane{padding:14px 10px 0}.board-card-list{height:calc(100vh - 394px)}.feature-card{padding:11px}.top-actions{gap:6px}.save-state{display:none}h1{font-size:23px}.button{padding:10px 12px}.category-label{font-size:8px}}
@media(max-width:1050px){.app-layout{grid-template-columns:145px minmax(0,1fr)}.rail-brand{white-space:normal;line-height:1.8}.rail-brand small{display:none}.brand-icon{width:28px;flex-shrink:0}.rail-project{margin:25px 5px}.rail-link{white-space:normal}.main-workspace{padding:22px 18px}.workspace-grid{grid-template-columns:1fr}.cost-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr;gap:15px}.operation-summary{margin-top:0;height:fit-content}.check-summary{grid-column:1/-1}.feature-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bank-filters{grid-template-columns:minmax(0,1fr) 105px}.board-card-list{height:490px;min-height:0}.estimate-lane .board-card-list{height:534px}.cost-total{font-size:32px}}
@media(max-width:720px){.app-layout{display:block}.app-rail{position:static;height:auto;min-height:0;padding:15px 16px;display:block}.rail-brand{font-size:12px;white-space:nowrap}.rail-brand small{display:block}.rail-project{display:none}.app-rail nav{display:flex;gap:5px;overflow-x:auto;margin-top:13px}.rail-link{font-size:10px;white-space:nowrap;width:auto;flex-shrink:0;padding:9px 10px;margin:0;gap:5px}.rail-link>span{font-size:14px}.main-workspace{padding:22px 16px 35px}.workspace-top{align-items:start;gap:12px}h1{font-size:21px}.workspace-subtitle{font-size:10px}.top-actions{flex-wrap:wrap;justify-content:flex-end;max-width:130px}.top-actions .button{font-size:10px;padding:8px 10px}.top-actions .primary{order:-1}.breadcrumb{font-size:9px}.version-bar{gap:8px}.saved-picker{gap:6px;font-size:9px}.saved-picker>span{display:none}.saved-picker select{max-width:230px;font-size:10px}.file-menu{font-size:10px}.feature-board{grid-template-columns:1fr}.board-card-list,.estimate-lane .board-card-list{height:auto;max-height:470px;min-height:140px}.estimate-lane{order:-1}.bank-filters{grid-template-columns:1fr 130px}.cost-sidebar{grid-template-columns:1fr}.cost-total{font-size:35px}.cost-card{padding:25px}.operation-summary{padding:22px}.feature-card{padding:14px 16px}.panel{padding:20px 16px}.field-grid,.comparison-grid{grid-template-columns:1fr}.preset-list{gap:5px}.preset-button{font-size:9px;padding:7px 9px}.check-summary{grid-column:auto}.category-label{font-size:9px}.feature-card h3{font-size:15px}.change-status{font-size:10px}.rail-data{margin:12px 5px 0}.rail-data .eyebrow{display:none}.rail-data button{display:inline-block;font-size:9px;margin-right:17px;padding:2px 0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@page{size:A4;margin:14mm}@media print{body{background:white;color:#111;font-size:10pt}.app-layout,.skip-link,#toast,.no-print{display:none!important}.print-document{display:block}.print-document h1{font-size:19pt;margin:0 0 8mm}.print-document h2{font-size:13pt;border-bottom:1px solid #bbb;padding-bottom:2mm;margin:7mm 0 3mm}.print-document h3{font-size:10pt;margin:3mm 0 1mm}.print-document p,.print-document li{font-size:9pt;line-height:1.6;margin:2mm 0}.print-feature{break-inside:avoid;border-bottom:1px solid #ddd;padding:2mm 0}.print-section{margin-top:5mm}a{color:inherit}}
.investment-summary{border-top:1px solid #dbe5df;margin-top:14px;padding-top:14px}.investment-payable{font-size:1.08rem;color:#174e38;font-weight:700}.investment-note{font-size:.72rem;line-height:1.65;color:#536158;margin:10px 0 0}.prototype-price-box{background:#f6f8fc;border:1px solid #dde3ec;border-radius:16px;padding:18px;margin-top:14px}.prototype-price-box h3{font-size:.93rem;margin:0 0 12px}.prototype-price-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.prototype-price-line strong{font-size:1.35rem;color:#233e62}.prototype-price-line label{font-size:.78rem;white-space:nowrap}.prototype-price-line input{width:60px;padding:5px;border:1px solid #b7c7d7;border-radius:6px;background:white;font:inherit}.prototype-price-box .muted{font-size:.75rem;line-height:1.7}.prototype-price-box .warning{font-size:.75rem;padding:9px}.prototype-price-box .button{width:100%;font-size:.75rem}
.expansion-price-box{margin-top:14px;background:#fff8ed;border:1px solid #e3ceb0;border-radius:16px;padding:18px}.expansion-price-box h3{font-size:.93rem;margin:0 0 12px}.expansion-price-box .field{font-size:.75rem}.expansion-price-box select{width:100%}.expansion-price-box .summary-row{font-size:.79rem}.expansion-cumulative{border-top:1px solid #e3ceb0;padding-top:10px;margin-top:8px;font-weight:700}.expansion-price-box .muted,.expansion-price-box .warning{font-size:.75rem;line-height:1.65}

.baseline-scope { margin-top: 14px; font-size: 12px; }
.baseline-scope summary { cursor: pointer; font-weight: 700; }
.baseline-scope-item { padding: 9px 0; border-bottom: 1px solid #e2e8f0; }
.baseline-scope-item strong, .baseline-scope-item span { display: block; }
.baseline-scope-item span { margin-top: 4px; color: #64748b; }

.app-rail { overflow-y: auto; }


/* Saved estimates use a quiet, name-first sidebar. */
.app-layout{grid-template-columns:240px minmax(0,1fr)}
.app-rail{background:#f7f7f7;color:#444;border-right:1px solid #e5e5e5;padding:24px 14px;min-height:0}
.app-rail>:not(.saved-estimates){flex-shrink:0}
.rail-brand{color:#242424;font-size:13px;gap:8px}
.brand-icon{background:transparent;color:#555;width:28px;height:30px;font-size:23px}
.rail-brand small,.rail-project .eyebrow,.rail-data .eyebrow{display:none}
.rail-project{margin:22px 8px 16px;padding:0;border:0}
.rail-project strong{color:#666;font-size:12px;font-weight:400;margin:0}
.rail-link{color:#555;font-size:12px;padding:10px;margin-bottom:3px}
.rail-link:hover{background:#ededed;color:#222;box-shadow:none}.rail-link.active{background:transparent;color:#555;box-shadow:none;font-weight:600}.rail-data button{color:#666;border-radius:6px}.rail-data button:hover{color:#222;background:#ededed}
.rail-data{margin:12px 8px 16px}
.rail-data button{padding:9px 6px;font-size:11px}

.saved-estimates{margin:20px 0 0;padding:0;border:0;flex:1;min-height:0;display:flex;flex-direction:column}
.new-estimate-menu>summary{display:flex;align-items:center;gap:8px;list-style:none;padding:10px;border-radius:8px;color:#333;font-size:13px}
.new-estimate-menu>summary:hover{background:#ededed}
.new-estimate-menu>summary>span{font-size:19px;line-height:20px}.new-estimate-menu>summary::-webkit-details-marker{display:none}
.estimate-type-actions{display:flex;flex-direction:column;gap:2px;margin:5px 4px 0;padding:4px;background:#fff;border:1px solid #e3e3e3;border-radius:8px}
.estimate-type-actions button{background:transparent;border:0;border-radius:5px;color:#444;text-align:left;padding:9px 10px;font-size:12px}
.estimate-type-actions button:hover{background:#f1f1f1}
.saved-estimates h2{font-size:11px;font-weight:400;letter-spacing:0;color:#888;margin:12px 0 4px;padding:10px 8px}
.saved-estimate-list{display:block;min-height:0;max-height:45vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#ccc transparent}
.saved-estimate-entry{position:relative;display:block;border:0;border-radius:8px;margin:2px 0;background:transparent;min-width:0}
.saved-estimate-entry:hover{background:#efefef}
.saved-estimate-entry.active{background:transparent}.saved-estimate-entry.active:hover{background:#efefef}
.saved-estimate-select{display:block;width:100%;min-width:0;background:transparent;border:0;border-radius:8px;text-align:left;padding:9px 36px 9px 10px;color:#333;font-size:12.5px;line-height:20px}
.saved-estimate-select>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-empty{font-size:11px;color:#888;padding:8px;line-height:1.7}
.estimate-name-form{display:flex;align-items:center;gap:4px;margin:0;padding:6px}
.estimate-name-form label{display:block;min-width:0;flex:1}
.estimate-name-form input{width:100%;margin:0;padding:7px;border:1px solid #bbb;border-radius:5px;background:#fff;color:#333;font-size:12px}
.estimate-name-form button{flex-shrink:0;padding:7px 5px;border:0;border-radius:5px;background:transparent;color:#555;font-size:14px}
.estimate-name-form button:hover{background:#dcdcdc;color:#222}
.app-rail button:focus-visible,.app-rail summary:focus-visible{outline:2px solid #888;outline-offset:-2px}
.app-rail input:focus{outline:2px solid #aaa;border-color:#888}
@media(hover:none){}
@media(max-width:1250px){.app-layout{grid-template-columns:210px minmax(0,1fr)}.app-rail{padding:24px 12px}.rail-brand{font-size:12px}}
@media(max-width:1050px){.app-layout{grid-template-columns:190px minmax(0,1fr)}.rail-brand{font-size:11px}}
@media(max-width:720px){.app-layout{display:block}.app-rail{padding:16px;border-right:0;border-bottom:1px solid #e5e5e5}.rail-brand{font-size:13px}.rail-link{font-size:11px;padding:9px 10px}.saved-estimates{margin-top:12px}.saved-estimate-list{max-height:210px}.saved-estimate-entry{max-width:none;min-width:0}.rail-data{margin:10px 8px 0}.rail-data button{font-size:11px}.estimate-name-form input{font-size:16px}}

/* Data administration stays separate from the estimating workspace. */
.rail-data .data-admin-link{padding:10px 6px;width:100%;font-size:12px}
.rail-data .data-admin-link.active{color:#686868;background:transparent;font-weight:600}
.managing-data .top-actions,.managing-data .version-bar{display:none}
.managing-data .workspace-top{margin-bottom:8px}
.managing-data .workspace-grid.is-admin{grid-template-columns:minmax(0,1fr);max-width:1100px}
.data-separation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.data-separation>div{padding:20px;border:1px solid #ddd;border-radius:10px;background:#fafafa;min-width:0}
.admin-caption{display:block;color:#888;font-size:10px;margin-bottom:9px}
.data-separation h2{font-size:15px;color:#333}
.data-separation p{font-size:12px;color:#666;margin:9px 0 14px}
.data-separation small{display:block;font-size:10px;color:#777;overflow-wrap:anywhere}
.data-admin .panel{border-color:#ddd}
.data-admin .panel-heading{margin-bottom:12px}
.data-admin .panel-heading h2{font-size:16px;color:#333}
.data-admin .muted{font-size:11px;color:#777;line-height:1.8;margin:12px 0 0}
.data-identities{margin:16px 0;border:1px solid #e5e5e5;border-radius:8px}
.data-identities>div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;padding:13px 16px}
.data-identities>div+div{border-top:1px solid #e5e5e5}
.data-identities dt{font-size:11px;color:#777;line-height:1.8}
.data-identities dd{margin:0;font-size:12px;color:#333;overflow-wrap:anywhere}
.data-identities small{display:block;color:#888;font-size:10px;line-height:1.7;margin-top:4px}
.data-counts{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#666}
.data-transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.data-transfer-grid article{min-width:0;border:1px solid #e5e5e5;border-radius:8px;padding:16px}
.data-transfer-grid h3{font-size:14px;color:#333}
.data-transfer-grid p{font-size:12px;color:#666;margin-top:9px}
.data-transfer-grid small{display:block;color:#888;font-size:10px;line-height:1.8}
.data-admin .button{border-color:#ddd;color:#444;background:#fff}
.data-admin .button:hover{background:#f1f1f1}
.data-admin .button.primary{background:#333;color:#fff;border-color:#333}
.data-admin .button.primary:hover{background:#555}
.data-admin .toolbar{align-items:center}
.document-list{list-style:none;margin:0;padding:0;border-top:1px solid #e5e5e5}
.document-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid #e5e5e5}
.document-row>div:first-child{min-width:0;flex:1}
.document-row strong{font-size:12px;font-weight:500;color:#333;overflow-wrap:anywhere}
.document-row small{display:block;font-size:10px;color:#888;margin-top:4px}
.document-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.document-remove{background:none;border:0;color:#888;padding:8px 6px;font-size:11px}
.document-remove:hover{color:#333}
.document-empty{border:1px dashed #ddd;border-radius:8px;padding:20px;color:#888;font-size:12px}
.admin-working{font-size:12px;color:#666;margin-bottom:12px}
@media(max-width:1050px){.data-separation{gap:10px}.data-separation>div{padding:16px}}
@media(max-width:720px){.data-separation,.data-transfer-grid{grid-template-columns:1fr}.data-identities>div{grid-template-columns:1fr;gap:6px;padding:12px}.document-row{align-items:flex-start;flex-direction:column;gap:10px}.document-actions{flex-wrap:wrap}.data-counts{gap:10px}}

/* White cards and green accents, following the local training simulator reference. */
@media screen {
  :root { color:#303030; background:#f2f5f3; font-size:13px; --accent:#16813d; --accent-strong:#08743a; --accent-line:#279950; --accent-soft:#f0faf3; --accent-border:#91c8a2; --amount:#136f36; --focus:#16813d; --warning:#72581b; --warning-soft:#fff8e6; --warning-border:#e6d8b9; --teal:var(--accent); --border:#e2e2e2; --muted:#686868; }
  body { background:#f2f5f3; font-weight:400; }
  h1 { font-size:20px; letter-spacing:0; font-weight:600; }
  h2 { font-size:14px; font-weight:500; }
  h3 { font-size:13px; font-weight:500; }
  strong,b { font-weight:500; }
  button,summary { font-weight:500; }
  label { font-weight:400; }
  small { font-size:11px; font-weight:400; }
  p,li { line-height:1.65; }
  input,select,textarea { color:#333; border-color:#d8d8d8; border-radius:5px; padding:8px 10px; font-size:12px; font-weight:400; }
  input:focus,select:focus,textarea:focus { outline:2px solid var(--focus); outline-offset:1px; border-color:var(--accent); }
  input[type="checkbox"],input[type="radio"] { accent-color:var(--accent); }
  button:focus-visible,summary:focus-visible,a:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
  .app-rail button:focus-visible,.app-rail summary:focus-visible { outline:2px solid var(--focus); outline-offset:-2px; }
  .app-rail input:focus { outline:2px solid var(--focus); border-color:var(--accent); }
  .muted,.workspace-subtitle,.breadcrumb,.breadcrumb span,.change-status,.card-description,.card-scope,.manual-work,.empty { color:#686868; }
  .workspace-top { margin-bottom:16px; gap:14px; }
  .workspace-top>div:first-child { min-width:0; }
  #app-heading { overflow-wrap:anywhere; }
  .compact-toolbar { align-items:center; margin-bottom:12px; gap:12px; }
  .top-actions.compact-toolbar { flex-wrap:wrap; margin-bottom:0; }
  .workspace-subtitle { font-size:12px; }
  .top-actions { gap:7px; }
  .save-state { color:#686868; font-size:11px; margin-right:4px; }
  .button { border-radius:5px; padding:9px 12px; font-size:12px; font-weight:500; }
  .button:hover { background:#f2f2f2; }
  .button.primary,.data-admin .button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
  .button.primary:hover,.data-admin .button.primary:hover { background:var(--accent-strong); border-color:var(--accent-strong); }
  .button.small { padding:7px 9px; font-size:11px; }
  .file-menu,.file-menu>summary { font-size:12px; }
  .file-menu>summary:hover,.file-menu-items button:hover { background:#f2f2f2; }
  .file-menu-items { box-shadow:none; border-color:#ddd; border-radius:6px; }
  .file-menu-items .saved-picker { display:block; padding:10px 12px; border-bottom:1px solid #e5e5e5; }
  .file-menu-items .saved-picker>span { display:block; margin-bottom:6px; color:#666; font-size:11px; }
  .file-menu-items .saved-picker select { width:100%; min-width:0; max-width:100%; color:#333; font-size:12px; }
  .board-help { color:#686868; font-size:11px; margin:0 0 10px; }
  .support-detail { color:#686868; font-size:12px; margin:10px 0; }
  .support-detail>summary { cursor:pointer; line-height:1.65; }
  .support-detail[open]>summary { margin-bottom:10px; }
  .support-detail p,.support-detail li { color:#686868; font-size:12px; margin:8px 0; }
  .change-status { min-height:30px; padding:8px 0; font-size:11px; }
  .change-status:empty { display:none; }
  .app-rail { background:#f8f8f8; border-color:#e5e5e5; }
  .rail-brand { font-size:12px; font-weight:500; }
  .brand-icon { color:var(--accent); background:var(--accent-soft); }.rail-brand small,.eyebrow,.rail-project strong{ font-size:11px; color:#686868; letter-spacing:0; font-weight:400; }.rail-data button{ font-size:11px; color:#686868; letter-spacing:0; font-weight:500; }
  .rail-link,.rail-data .data-admin-link { font-size:12px; }
  .rail-link:hover,.rail-link.active:hover { color:#303030; background:#f0f3f2; box-shadow:none; }
  .rail-link.active { color:#555; background:transparent; box-shadow:none; font-weight:600; }
  .rail-data .data-admin-link.active { color:#686868; background:transparent; box-shadow:none; font-weight:600; }
  .rail-data .data-admin-link.active:hover { color:#222; background:#ededed; }
  .new-estimate-button { display:flex; align-items:center; gap:8px; width:100%; padding:10px; margin:0 0 12px; border:0; border-radius:6px; background:transparent; color:#444; font-size:12px; font-weight:500; text-align:left; }
  .new-estimate-button:hover { background:#ededed; }
  .panel,.operation-card,.compare-card,.diff-item,.division-panel,.operation-summary,.cost-card,.prototype-price-box,.expansion-price-box { border:1px solid #e2e2e2; border-radius:7px; background:#fff; color:#333; box-shadow:none; }
  .panel { padding:20px; margin-bottom:16px; }
  .panel-heading { margin-bottom:14px; }
  .operation-card h3,.compare-card h3,.diff-item h3 { overflow-wrap:anywhere; font-weight:500; }
  .operation-card .impact { color:#686868; }
  .feature-head>h3 { min-width:0; }
  .feature-head>.badge { flex-shrink:0; }
  .notice,.warning { border:1px solid #e0e0e0; border-radius:5px; background:#f7f7f7; color:#555; padding:10px 12px; font-size:12px; }
  .warning { border-color:var(--warning-border); background:var(--warning-soft); color:var(--warning); }
  .badge,.badge.unknown,.badge.provisional { background:#f5f5f5; color:#666; border:1px solid #e3e3e3; border-radius:4px; font-size:11px; font-weight:400; }
  .badge.unknown { background:var(--warning-soft); border-color:var(--warning-border); color:var(--warning); }
  .badge { padding:3px 6px; }
  .field>span { color:#686868; font-size:12px; }
  .division-panel { padding:12px 14px; margin-bottom:16px; }
  .division-heading { margin-bottom:10px; gap:10px; }
  .division-heading h2 { font-size:13px; font-weight:500; }
  .division-heading>span,.division-help { font-size:11px; color:#686868; }
  .division-all { font-size:11px; padding:6px 9px; color:#555; background:#fff; border-color:#ddd; border-radius:5px; }
  .division-all.selected { color:var(--accent); background:var(--accent-soft); border-color:var(--accent-border); }
  .division-grid { gap:9px; }
  .division-card { background:#fafafa; border-color:#e2e2e2; border-radius:5px; padding:10px 12px; box-shadow:none; }
  .division-card:hover { background:#f5f5f5; border-color:#bdbdbd; }
  .division-card.selected { background:var(--accent-soft); border-color:var(--accent-line); box-shadow:inset 0 0 0 1px var(--accent-line); }
  .division-name { color:#555; font-size:12px; min-height:20px; font-weight:400; }
  .division-amount { color:#333; font-size:18px; font-weight:600; letter-spacing:0; margin:5px 0 9px; }
  .division-track { height:4px; background:#e8e8e8; }
  .division-meta,.division-meta em { color:#686868; font-size:11px; line-height:1.6; font-weight:400; }
  .division-meta em { color:var(--warning); }
  .group-color-0,.division-card .group-color-0 { background:#279950; }
  .group-color-1,.division-card .group-color-1 { background:#6b87a0; }
  .group-color-2,.division-card .group-color-2 { background:#897b9c; }
  .group-color-3,.division-card .group-color-3 { background:#97825f; }
  .group-color-4,.division-card .group-color-4 { background:#73886f; }
  .division-tabs { padding:0; border:0; background:transparent; }
  .division-tabs .division-heading { margin-bottom:8px; }
  .division-tabs .division-grid { gap:0; overflow:hidden; border:1px solid #e2e2e2; border-radius:6px; background:#fff; }
  .division-tabs .division-card { border:0; border-bottom:2px solid transparent; border-radius:0; padding:10px 12px; background:#fff; box-shadow:none; }
  .division-tabs .division-card+.division-card { border-left:1px solid #e7e7e7; }
  .division-tabs .division-card:hover { background:#f5f5f5; }
  .division-tabs .division-card.selected { background:var(--accent-soft); border-bottom-color:var(--accent); box-shadow:none; }
  .division-tabs .division-card.selected .division-name { color:var(--accent); }
  .division-tabs .division-name { min-height:20px; font-size:11px; }
  .division-tabs .division-amount { margin:4px 0 2px; font-size:15px; font-weight:500; }
  .division-tabs .division-meta { margin-top:3px; font-size:10px; }
  .preset-strip { margin-bottom:14px; }
  .preset-title,.more-presets summary { color:#686868; font-size:11px; }
  .preset-button { color:#555; border-color:#ddd; border-radius:5px; padding:8px 10px; font-size:11px; background:#fff; }
  .preset-button:hover { background:#f4f4f4; border-color:#aaa; color:#333; }
  .primary-case { color:#444; border-color:#ddd; background:#fff; padding:10px 12px; }
  .primary-case.case-selected { color:var(--accent); border-color:var(--accent-line); background:var(--accent-soft); box-shadow:inset 0 0 0 1px var(--accent-line); }
  .primary-case strong { font-size:12px; font-weight:500; }
  .primary-case span,.primary-case .case-description,.case-price small { color:#686868; font-size:11px; line-height:1.6; font-weight:400; }
  .primary-case .case-price { color:#444; font-size:13px; font-weight:500; }
  .board-lane,.estimate-lane { background:#fff; border-color:#e2e2e2; border-radius:7px; padding:14px 12px 0; }
  
  .lane-heading h2 { font-size:14px; font-weight:500; }
  .lane-help,.lane-footer { color:#686868; font-size:11px; }
  .lane-footer,.estimate-lane .lane-footer { border-color:#e2e2e2; padding:10px 0; }
  .count,.estimate-lane .count { background:transparent; color:#555; font-size:11px; font-weight:400; border-radius:4px; }
  .lane-dot { background:var(--accent-line); }
  .bank-filters input,.bank-filters select { color:#333; font-size:12px; border-color:#d8d8d8; }
  .board-card-list { gap:8px; scrollbar-color:#ccc transparent; }
  .feature-card { border-color:#e1e1e1; border-radius:6px; padding:12px; box-shadow:none; }
  .selected-card { border-color:#b4d6bf; }
  .feature-card h3 { color:#333; font-size:14px; font-weight:500; margin-bottom:8px; }
  .category-label { color:#686868; font-size:11px; font-weight:400; letter-spacing:0; }
  .drag-handle { color:#888; padding:5px; }
  .icon-button,.remove-feature { background:#fff; border-color:#ddd; color:#666; width:28px; height:28px; border-radius:4px; }
  .icon-button:hover,.remove-feature:hover { background:#eee; border-color:#aaa; color:#333; }
  .icon-button:not(.remove-feature) { color:var(--accent); border-color:#b4d6bf; background:var(--accent-soft); }
  .icon-button:not(.remove-feature):hover { color:var(--accent-strong); border-color:var(--accent-border); background:var(--accent-soft); }
  .selected-card>.field>span { font-size:11px; color:#686868; }
  .selected-card>.field>select { font-size:12px; background:#fff; border-color:#d8d8d8; }
  .card-price { margin:10px 0 8px; }
  .card-price strong,.selected-card .card-price strong { color:#333; font-size:14px; font-weight:500; }
  .card-price>span,.card-scope,.manual-work>span { font-size:11px; color:#686868; }
  .manual-work { border:0; padding:0; margin:8px 0; background:transparent; color:#686868; font-size:11px; }
  .card-scope { border-color:#ededed; }
  .feature-card details { border-color:#e7e7e7; padding-top:8px; margin-top:8px; }
  .feature-card summary,.feature-card details .field>span { color:#666; font-size:12px; }
  .feature-card details input,.feature-card details textarea,.feature-card details select { font-size:12px; }
  .feature-card .card-detail>summary { font-weight:500; }
  .feature-card .card-detail[open]>summary { margin-bottom:9px; }
  .feature-card .card-detail .card-description { margin:8px 0; }
  .feature-card .card-detail .card-scope { padding-top:7px; }
  .add-candidate>summary,.lane-empty { color:#686868; }
  .lane-empty { border-color:#ccc; }
  .drop-active { border-color:var(--accent); background:var(--accent-soft); box-shadow:none; }
  .feature-card.drop-before:before,.feature-card.drop-after:after { background:var(--accent); }
  .drag-preview { color:#333; border-color:var(--accent); border-radius:6px; box-shadow:none; }
  .cost-card { padding:18px; }
  .cost-caption { color:#555; font-size:12px; }
  .cost-caption>span:first-child { font-weight:600; }
  .cost-total { color:#242424; background:transparent; border-radius:0; padding:0; font-size:28px; font-weight:700; letter-spacing:0; margin:15px 0 5px; }
  .cost-total small { color:#686868; font-size:12px; }
  .cost-note,.cost-footnote { color:#686868; font-size:11px; }
  .cost-tax,.cost-tax strong,.breakdown-row,.breakdown-row strong { color:#555; font-size:11px; font-weight:400; }
  .cost-unknown,.cost-unknown.complete { background:#f7f7f7; border:1px solid #e3e3e3; border-radius:5px; color:#555; padding:9px 10px; margin:13px 0; font-size:11px; }
  .cost-unknown:not(.complete) { background:var(--warning-soft); border-color:var(--warning-border); color:var(--warning); }
  .cost-unknown strong,.cost-unknown span { color:#555; font-size:11px; font-weight:400; }
  .cost-unknown:not(.complete) strong,.cost-unknown:not(.complete) span { color:var(--warning); }
  .cost-breakdown { margin:12px 0; }
  .breakdown-caption,.breakdown-unknown { color:#686868; font-size:11px; font-weight:400; line-height:1.6; }
  .breakdown-caption { margin:0 0 8px; }
  .breakdown-unknown { display:block; color:var(--warning); margin-top:3px; }
  .breakdown-track { background:#ededed; }
  .cost-adjust { color:#444; background:#fff; border-color:#ddd; font-size:12px; }
  .cost-adjust:hover { background:#f2f2f2; }
  .cost-footnote { margin-top:10px; }
  .mvp-cost-allocation { margin-top:14px; padding-top:12px; border-top:1px solid #e4e4e4; }
  .mvp-cost-allocation h3 { margin:0 0 6px; color:#555; font-size:12px; font-weight:500; }
  .mvp-cost-allocation .summary-row { gap:8px; font-size:11px; }
  .mvp-cost-allocation label { display:block; min-width:0; color:#555; }
  .mvp-cost-allocation strong { align-self:center; flex-shrink:0; font-size:12px; font-weight:500; }
  .allocation-rate { display:inline-flex; align-items:center; gap:4px; margin-top:4px; }
  .allocation-rate input { width:48px; min-width:0; padding:4px; border:1px solid #d8d8d8; border-radius:4px; font-size:11px; font-weight:400; }
  .allocation-note { margin:6px 0 0; color:#686868; font-size:10px; font-weight:400; line-height:1.6; }
  .discount-editor { margin-top:14px; padding-top:12px; border-top:1px solid #e4e4e4; }
  .discount-entry { display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .discount-entry label { color:#555; font-size:11px; font-weight:500; }
  .discount-controls { display:flex; align-items:center; gap:4px; min-width:0; }
  .discount-controls input,.discount-controls select { min-width:0; padding:5px; background:#fff; color:#333; border:1px solid #d8d8d8; border-radius:4px; font-size:11px; font-weight:400; }
  .discount-controls input { width:96px; }
  .discount-controls select { width:48px; }
  .discount-result { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; color:#686868; font-size:10px; }
  .discount-result strong { color:#333; font-size:12px; font-weight:500; }
  .discount-result small { font-size:10px; font-weight:400; }
  .investment-summary,.expansion-cumulative { border-color:#e3e3e3; padding-top:10px; margin-top:10px; }
  .expansion-cumulative { font-weight:400; }
  .expansion-cumulative strong { font-weight:600; }
  .investment-payable { color:#333; font-size:13px; font-weight:500; }
  .investment-note { color:#686868; font-size:11px; }
  .operation-summary,.prototype-price-box,.expansion-price-box { padding:16px 18px; border-radius:7px; }
  .summary-heading h2,.prototype-price-box h3,.expansion-price-box h3 { color:#444; font-size:13px; font-weight:500; }
  .text-button { color:#666; font-size:12px; }
  .text-button:hover { color:#222; text-decoration:underline; }
  .monthly-cost,.prototype-price-line strong { color:var(--amount); font-size:18px; font-weight:600; }
  .operation-summary .muted,.prototype-price-box .muted,.expansion-price-box .muted { color:#686868; font-size:11px; }
  .prototype-price-box .warning,.expansion-price-box .warning { color:var(--warning); font-size:11px; }
  .prototype-price-line label,.prototype-price-line input,.prototype-price-box .button,.expansion-price-box .field,.expansion-price-box .summary-row { font-size:12px; }
  .prototype-price-line input { border-color:#ccc; border-radius:4px; }
  .summary-row { border-color:#e7e7e7; font-size:12px; padding:9px 0; }
  .summary-row>span { min-width:0; overflow-wrap:anywhere; }
  .choice-option { color:#444; align-items:flex-start; line-height:1.65; }
  .choice-option input { flex-shrink:0; margin-top:2px; }
  .amount-detail { margin-top:13px; padding-top:10px; border-top:1px solid #e4e4e4; }
  .amount-detail>summary { color:#666; font-size:12px; line-height:1.6; }
  .amount-detail[open]>summary { margin-bottom:10px; }
  .check-summary { color:#686868; font-size:11px; padding:12px 0; }
  .check-summary.warning { color:var(--warning); }
  .compact-checks { color:#666; margin-top:14px; padding-top:11px; border-top:1px solid #e2e2e2; font-size:11px; }
  .compact-checks>summary { font-size:12px; line-height:1.6; }
  .compact-checks .check-summary { padding:9px 0; margin:0; }
  .compact-checks .warning { background:transparent; border:0; border-bottom:1px solid #e2e2e2; }
  .compact-checks li { margin:6px 0; }
  .baseline-scope summary { font-weight:500; }
  .baseline-scope-item { border-color:#e5e5e5; }
  .baseline-scope-item span { color:#686868; }
  .admin-caption,.data-separation small,.data-identities small,.data-transfer-grid small,.document-row small { font-size:11px; color:#686868; }
  .data-separation>div,.data-transfer-grid article,.data-identities,.document-empty { border-color:#e2e2e2; border-radius:6px; background:#fff; }
  .data-admin .panel-heading h2 { font-size:14px; font-weight:500; }
  .data-separation h2 { font-size:14px; font-weight:500; }
  .source-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-bottom:18px; }
  .source-flow>div { position:relative; min-width:0; border:1px solid #e2e2e2; border-radius:6px; padding:14px; background:#fff; }
  .source-flow>div:not(:last-child)::after { content:'→'; position:absolute; right:-21px; top:50%; transform:translateY(-50%); color:#999; font-size:13px; font-weight:400; }
  .source-flow h2,.source-flow h3,.source-flow strong { color:#333; font-size:13px; font-weight:500; }
  .source-flow small,.source-flow p { display:block; color:#686868; font-size:11px; font-weight:400; margin:6px 0 0; overflow-wrap:anywhere; }
  .source-link-list { list-style:none; margin:0; padding:0; border-top:1px solid #e2e2e2; }
  .source-link-row { display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:0; padding:14px 0; border-bottom:1px solid #e2e2e2; }
  .source-link-row>div:first-child { min-width:0; flex:1; }
  .source-link-row a { display:block; color:var(--accent); font-size:12px; font-weight:500; overflow-wrap:anywhere; text-decoration:underline; text-decoration-color:var(--accent-border); text-underline-offset:3px; }
  .source-link-row a:hover { color:var(--accent-strong); text-decoration-color:var(--accent); }
  .source-link-row small { display:block; color:#686868; font-size:11px; font-weight:400; margin-top:4px; overflow-wrap:anywhere; }
  .source-link-actions { display:flex; align-items:center; flex-shrink:0; flex-wrap:wrap; gap:8px; }
  .source-link-form { min-width:0; margin:14px 0 16px; }
  .source-link-form .field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .source-link-form .field>span { color:#686868; font-size:12px; font-weight:400; }
  .source-link-form input { width:100%; min-width:0; color:#333; font-size:12px; font-weight:400; }
  .source-link-form .toolbar { margin:12px 0 0; }
  #toast { background:#333; border-radius:6px; box-shadow:none; }
}
@media screen and (min-width:1051px) {
  .board-card-list { height:calc(100vh - 400px); }
  .estimate-lane .board-card-list { height:calc(100vh - 356px); }
}
@media screen and (max-width:720px) {
  .workspace-top { gap:10px; }
  .compact-toolbar { flex-wrap:wrap; }
  .top-actions.compact-toolbar { max-width:none; justify-content:flex-start; width:auto; }
  .top-actions.compact-toolbar .primary { order:initial; }
  .top-actions .button { font-size:12px; padding:8px 10px; }
  .breadcrumb,.workspace-subtitle,.change-status,.division-heading>span,.division-help,.division-meta,.division-name,.primary-case .case-price,.preset-button { font-size:11px; }
  .division-name { min-height:32px; }
  .division-amount { font-size:18px; }
  .division-panel { padding:12px; }
  .division-card { padding:10px; }
  .rail-brand { font-size:12px; }
  .rail-link { font-size:12px; }
  .board-lane,.estimate-lane { padding:13px 11px 0; }
  .feature-card { padding:12px; }
  .feature-card h3 { font-size:14px; }
  .panel { padding:18px 16px; }
  .feature-card .icon-button { width:32px; height:32px; }
  .cost-card,.operation-summary,.prototype-price-box,.expansion-price-box { padding:16px; }
  .cost-total { font-size:26px; }
  .monthly-cost { font-size:18px; }
  .estimate-name-form input { font-size:16px; }
  .file-menu-items { top:36px; }
  .source-flow { grid-template-columns:1fr; gap:26px; }
  .source-flow>div:not(:last-child)::after { content:'↓'; right:auto; left:50%; top:auto; bottom:-23px; transform:translateX(-50%); }
  .source-link-row { align-items:flex-start; flex-direction:column; gap:10px; }
  .source-link-row>div:first-child { width:100%; }
  .source-link-form .field-grid { grid-template-columns:1fr; }
}
@media print {
  body { font-weight:400; }
  .print-document h1 { font-weight:600; }
  .print-document h2,.print-document h3,.print-document strong,.print-document b { font-weight:500; }
}

/* Keep both card lists and their movement controls visible. */
@media screen {
  .feature-board { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
  .lane-heading { min-height:30px; margin-bottom:10px; }
  .lane-heading h2 { margin:0; font-size:13px; font-weight:600; }
  .lane-heading .count { display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:34px; padding:0 10px; background:transparent; color:#315568; border-radius:0; white-space:nowrap; font-size:24px; font-weight:750; line-height:1; font-variant-numeric:tabular-nums; }
  .feature-card[draggable="true"] { cursor:grab; }
  .feature-card:focus-within { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent-border); }
  .feature-card .card-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0; font-size:11px; line-height:1.6; }
  .card-transfer { margin-top:10px; }
  .transfer-button { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:36px; padding:8px 10px; border:1px solid #d8d8d8; border-radius:5px; background:#fff; color:#555; font-size:11px; font-weight:500; cursor:pointer; }
  .transfer-button.add-feature { background:var(--accent-soft); color:var(--accent-strong); border-color:var(--accent-border); }
  .transfer-button.add-feature:hover { background:#e3f3e8; border-color:var(--accent); }
  .transfer-button.remove-feature:hover { background:#f1f1f1; border-color:#aaa; color:#333; }
  .transfer-button:disabled { cursor:default; }
}
@media screen and (min-width:1051px) {
  .board-card-list { height:calc(100vh - 434px); min-height:280px; }
  .estimate-lane .board-card-list { height:calc(100vh - 390px); min-height:280px; }
}
@media screen and (max-width:720px) {
  .feature-board { grid-template-columns:minmax(0,1fr); gap:14px; }
  .estimate-lane { order:initial; }
  .transfer-button { min-height:44px; font-size:12px; }
  .board-card-list,.estimate-lane .board-card-list { height:auto; min-height:140px; max-height:470px; }
}

/* Distinct cost-category colors shared by tabs and both card lanes. */
@media screen {
  [data-feature-group="0"] { --group-accent:#237348; --group-ink:#26323b; --group-soft:#d4e8dc; --group-hover:#c4decf; --group-border:#a9cbb8; }
  [data-feature-group="1"] { --group-accent:#2d5fa8; --group-ink:#26323b; --group-soft:#d5e4f7; --group-hover:#c2d7f2; --group-border:#aec5e6; }
  [data-feature-group="2"] { --group-accent:#71549b; --group-ink:#26323b; --group-soft:#e6daf2; --group-hover:#d8c7e9; --group-border:#c6aedc; }
  [data-feature-group="3"] { --group-accent:#956421; --group-ink:#26323b; --group-soft:#f5e1ba; --group-hover:#eed3a1; --group-border:#d9bb85; }
  [data-feature-group="4"] { --group-accent:#9a415c; --group-ink:#26323b; --group-soft:#f2d6df; --group-hover:#e8becd; --group-border:#d9a6b7; }
  .feature-card[data-feature-group] { border:1px solid #e1e1e1; border-radius:3px; }
  .feature-card[data-feature-group] .category-label { flex:0 1 auto; display:inline-flex; max-width:100%; padding:3px 7px; border:0; border-radius:0; background:transparent; color:var(--group-ink); font-size:11px; font-weight:600; line-height:1.5; }
  .division-tabs { --division-border:#85909b; }
  .division-tabs .division-card[data-feature-group] { align-items:center; text-align:center; cursor:pointer; transition:background-color .14s ease; background:transparent; border:0; border-bottom:1px solid var(--division-border); border-radius:4px 4px 0 0; margin-block-end:0; }
  .division-tabs .division-card[data-feature-group] .division-name { justify-content:center; }
  .division-tabs .division-card[data-feature-group] .division-name,.division-tabs .division-card[data-feature-group] .division-amount { color:var(--group-ink); }
  .division-tabs .division-card[data-feature-group] .division-meta,.division-tabs .division-card[data-feature-group] .division-meta em { color:#46515b; }
  .group-icon[data-feature-group] { color:var(--group-accent); }

  .division-tabs .division-card[data-feature-group] .group-dot { background:var(--group-accent); }
  .division-tabs .division-grid { align-items:end; overflow:visible; border:0; border-radius:0; background:transparent; padding-top:16px; row-gap:16px; column-gap:0; }
  .division-tabs .division-card[data-feature-group].selected { background:transparent; color:var(--group-ink); border:1px solid var(--division-border); border-bottom:0; box-shadow:none; padding-block:18px; margin-block-start:-16px; position:relative; z-index:1; border-radius:4px 4px 0 0; }
  .division-tabs .division-card[data-feature-group].selected .division-name { color:var(--group-ink); font-weight:700; }
  .division-tabs .division-card[data-feature-group].selected .division-amount { font-weight:700; }
  .division-tabs .division-all { background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0; font-weight:400; }
  .division-tabs .division-all.selected { background:transparent; color:#333; border-bottom-color:#777; font-weight:700; }
}

/* Interactive feedback leaves the connected tab outline in place. */
@media screen and (hover:hover) {
  .division-tabs .division-card[data-feature-group]:hover { background:#edf0f2; }
  .division-tabs .division-all:hover { background:#edf0f2; }
}
@media screen {
  .division-tabs .division-card[data-feature-group]:active,.division-tabs .division-all:active { background:#e1e5e8; }
  .division-tabs .division-card[data-feature-group]:active>* { transform:translateY(1px); }
  .division-tabs .division-card[data-feature-group]:focus-visible,.division-tabs .division-all:focus-visible { outline:2px solid #59636d; outline-offset:-3px; }
}
@media screen and (prefers-reduced-motion:reduce) {
  .division-tabs .division-card[data-feature-group] { transition:none; }
  .division-tabs .division-card[data-feature-group]:active>* { transform:none; }
}

/* Per-estimate overview below its title. */
.workspace-heading { flex:1; min-width:0; }
.estimate-title-button { display:inline-flex; align-items:center; gap:8px; max-width:100%; padding:0; border:0; background:none; color:inherit; font:inherit; line-height:inherit; text-align:left; overflow-wrap:anywhere; }
.estimate-title-button .action-icon { flex-shrink:0; width:16px; height:16px; color:#9199a1; }
.estimate-title-button:hover { color:#4b5563; }
.estimate-title-form { padding:0; min-height:36px; }
.estimate-title-form input { font-size:24px; font-weight:700; padding:2px 6px; }
.estimate-title-form button { min-width:32px; min-height:36px; }
@media screen and (max-width:720px) { .estimate-title-button,.estimate-title-form button { min-height:44px; } .estimate-title-form input { font-size:20px; } }
.estimate-overview { display:block; margin-top:6px; }
.estimate-overview textarea { width:100%; min-height:35px; padding:6px 0; border:1px solid transparent; border-radius:0; background:transparent; color:#686868; font-size:12px; font-weight:400; line-height:1.75; resize:none; overflow:hidden; }
.estimate-overview textarea:hover { border-bottom-color:#ddd; }
.estimate-overview textarea:focus { border-color:transparent; border-bottom-color:#aaa; outline:none; box-shadow:none; color:#333; }
.estimate-overview-text { margin-top:6px; color:#686868; font-size:12px; font-weight:400; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; }
@media print { .print-document .estimate-overview-text { color:#333; margin:8px 0 12px; } }

/* Cost-category filter in the selected-feature lane. */
.estimate-filters { margin-bottom:12px; }
.estimate-filters label { display:flex; align-items:center; gap:8px; color:#686868; font-size:12px; }
.estimate-filters label>span { flex-shrink:0; }
.estimate-filters select { width:auto; min-width:0; max-width:100%; flex:1; padding:8px 7px; color:#333; font-size:12px; border-color:#d8d8d8; }
@media screen and (min-width:1051px) { .estimate-lane .board-card-list { height:calc(100vh - 434px); } }
@media screen and (min-width:721px) and (max-width:1050px) { .board-card-list,.estimate-lane .board-card-list { height:578px; } }

/* Scope names describe alternatives without implying numeric quality levels. */
.card-top { flex-wrap:wrap; }

/* Compact cards keep the scope and cost visible; editing opens below. */
@media screen {
  .board-card-list { gap:6px; }
  .feature-card { padding:8px 10px; }
  .feature-card .card-top { gap:5px; margin:0 0 5px; }
  .feature-card .card-top h3 { flex:1; min-width:0; margin:0; font-size:13px; font-weight:600; line-height:1.45; }
  .feature-card .drag-handle { padding:2px 3px; margin-left:-3px; line-height:1; }
  .feature-card .card-description { -webkit-line-clamp:1; margin:0 0 5px; }
  .feature-card .card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; margin:5px 0; }
  .feature-card[data-feature-group] .category-label { padding:1px 5px; font-size:10px; }
  .feature-card .card-price { flex:1; min-width:120px; flex-wrap:wrap; justify-content:flex-end; gap:0 6px; margin:0; }
  .feature-card .card-price strong { font-size:13px; }
  .feature-card .card-price>span { font-size:10px; line-height:1.5; }
  .selected-card>.field { margin:5px 0; }
  .selected-card>.field>span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .selected-card>.field>select { padding:5px 7px; font-size:12px; }
  .card-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:4px 8px; margin-top:5px; padding-top:5px; border-top:1px solid #e7e7e7; }
  .feature-card .card-detail { grid-column:1; min-width:0; margin:0; padding:0; border:0; }
  .feature-card .card-detail>summary { padding:5px 0; font-size:11px; line-height:1.5; }
  .feature-card .card-detail[open] { grid-column:1/-1; }
  .feature-card .card-detail[open]>summary { margin-bottom:7px; }
  .feature-card .card-transfer { grid-column:2; margin:0; }
  .feature-card .transfer-button { width:auto; min-height:28px; padding:4px 9px; font-size:11px; }
}
@media screen and (max-width:720px) {
  .feature-card .drag-handle { min-width:36px; min-height:36px; }
  .selected-card>.field>select { min-height:44px; }
  .feature-card .card-detail>summary { min-height:44px; padding:12px 0; }
  .feature-card .transfer-button { min-height:44px; padding:9px 12px; }
}

/* Read-only explanations use one native modal, outside the card list. */
.card-actions { grid-template-columns:auto minmax(0,1fr) auto; }
.feature-card .description-button { min-height:28px; padding:4px 7px; border:1px solid #ddd; border-radius:4px; background:#fff; color:#555; font-size:11px; }
.feature-card .card-detail { grid-column:2; }
.feature-card .card-detail[open] { grid-column:1/-1; }
.feature-card .card-transfer { grid-column:3; }
.feature-description { width:min(620px,calc(100vw - 32px)); max-height:calc(100vh - 48px); padding:0; border:1px solid #ddd; border-radius:8px; background:#fff; color:#333; box-shadow:0 16px 60px #0003; }
.feature-description::backdrop { background:#0006; }
.description-panel header { display:flex; align-items:center; gap:16px; padding:16px 20px; border-bottom:1px solid #e7e7e7; }
.description-panel h2 { flex:1; margin:0; font-size:16px; font-weight:600; line-height:1.5; }
.description-body { max-height:calc(100vh - 150px); overflow:auto; padding:16px 20px 20px; font-size:13px; line-height:1.75; overflow-wrap:anywhere; white-space:normal; }
.description-body p { margin:0 0 12px; white-space:pre-wrap; }
.description-choice { color:#666; font-size:12px; font-weight:500; }
.description-body section { margin-top:16px; }
.description-body h3 { margin:0 0 6px; font-size:13px; font-weight:600; }
.description-body ul { margin:0; padding-left:20px; }
.description-body li { margin:3px 0; }
.feature-wireframe { margin:16px 0 20px; }
.feature-wireframe figcaption { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; color:#555; font-size:12px; font-weight:500; }
.feature-wireframe figcaption small { color:#888; font-size:10px; font-weight:400; }
.wireframe-screen { max-width:360px; margin:auto; border:1px solid #cdd1d5; border-radius:5px; overflow:hidden; background:#fff; }
.feature-wireframe[data-wireframe-audience="admin"] .wireframe-screen { max-width:none; }
.wireframe-window { display:flex; gap:4px; padding:8px 10px; border-bottom:1px solid #d8dbdf; background:#f7f7f7; }
.wireframe-window i { width:4px; height:4px; border:1px solid #b8bec5; border-radius:50%; }
.wireframe-layout { display:flex; }
.wireframe-rail { display:flex; flex-direction:column; gap:12px; flex:0 0 52px; padding:18px 8px; border-right:1px solid #e0e2e5; background:#fafafa; }
.wireframe-content { min-width:0; flex:1; padding:14px; }
.wireframe-title { color:#454b52; font-size:12px; font-weight:650; line-height:1.5; }
.wireframe-choice { margin:3px 0 12px; color:#80868d; font-size:10px; line-height:1.5; }
.wireframe-items { display:flex; flex-direction:column; gap:10px; }
.wireframe-item { min-width:0; }
.wireframe-item-label { display:block; color:#686e75; font-size:10px; line-height:1.5; }
.wireframe-placeholder { display:flex; align-items:center; gap:8px; min-height:25px; padding:6px 8px; margin-top:4px; border:1px solid #d7dbe0; border-radius:2px; }
.wireframe-line { display:block; flex:1; height:3px; background:#e3e6e9; border-radius:1px; }
.wireframe-line.short { flex:.4; }
.feature-wireframe[data-wireframe-layout="list"] .wireframe-item { padding:0 0 8px; border-bottom:1px solid #e6e8eb; }
.feature-wireframe[data-wireframe-layout="list"] .wireframe-placeholder { border:0; padding:3px 0; min-height:12px; }
.feature-wireframe[data-wireframe-layout="conversation"] .wireframe-item { width:84%; padding:8px 10px; border:1px solid #d7dbe0; border-radius:5px; }
.feature-wireframe[data-wireframe-layout="conversation"] .wireframe-item:nth-child(even) { align-self:flex-end; background:#f8f8f8; }
.feature-wireframe[data-wireframe-layout="conversation"] .wireframe-placeholder { border:0; padding:3px 0; min-height:12px; }
.wireframe-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; margin:0 0 12px; }
.wireframe-calendar span { height:19px; border:1px solid #e0e3e6; }
.wireframe-calendar span.marked { background:#e9ecef; border-color:#bcc3ca; }
.wireframe-upload { display:grid; place-items:center; min-height:64px; margin-bottom:12px; border:1px dashed #c5cbd1; color:#adb4bc; }
@media screen and (max-width:720px) { .wireframe-content { padding:10px; } .wireframe-rail { flex-basis:36px; padding:14px 6px; } }
.feature-explanation-diagram { margin:16px 0 20px; }
.feature-explanation-diagram figcaption { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; color:#555; font-size:12px; font-weight:500; }
.feature-explanation-diagram figcaption small { color:#888; font-size:10px; font-weight:400; }
.explanation-diagram-content { padding:14px; border:1px solid #d7dbe0; border-radius:5px; background:#fafafa; }
.explanation-diagram-node { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; padding:9px 12px; border:1px solid #d2d7dc; border-radius:4px; background:#fff; text-align:center; font-size:11px; line-height:1.5; }
.explanation-diagram-node strong { font-size:12px; font-weight:600; }
.explanation-diagram-node.main { max-width:360px; margin:auto; border-color:#aeb7c0; }
.explanation-diagram-node small,.explanation-diagram-choice { display:block; margin-top:4px; color:#777; font-size:10px; }
.explanation-diagram-reason { margin-top:5px; color:#777; font-size:10px; }
.explanation-diagram-arrow { display:flex; justify-content:center; margin:6px 0; color:#9aa4ae; }
.explanation-diagram-label { color:#777; font-size:10px; text-align:center; margin:0 0 6px; }
.explanation-diagram-prerequisites,.explanation-diagram-parts,.explanation-diagram-dependents { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); gap:8px; }
.explanation-diagram-branch { height:14px; width:1px; margin:0 auto; background:#bfc6cd; }
.explanation-diagram-part { padding:9px 10px; border:1px solid #d7dbe0; border-radius:3px; background:#fff; color:#686e75; text-align:center; font-size:11px; line-height:1.6; }
.explanation-diagram-related { border:1px solid #d7dbe0; border-radius:4px; background:#fff; font-size:11px; }
.explanation-diagram-related summary { padding:9px 10px; color:#555; font-weight:500; }
.explanation-diagram-related summary>span { color:#888; font-size:10px; font-weight:400; }
.description-body .explanation-diagram-related ul { margin:0; padding:0 10px 10px; list-style:none; }
.explanation-diagram-related li { display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:10px; line-height:1.6; }
.explanation-diagram-related li>small { flex-shrink:0; color:#888; font-size:9px; }
.explanation-diagram-base { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:5px; }
.explanation-diagram-base .explanation-diagram-node { flex:1; padding:8px; }
.explanation-diagram-base .explanation-diagram-node strong { font-size:11px; }
.explanation-diagram-plus { color:#888; font-size:12px; }
.explanation-diagram-multiply { margin-top:10px; text-align:center; font-size:14px; font-weight:650; }
.explanation-diagram-price { margin-top:4px; color:#444; font-size:15px; font-weight:650; font-variant-numeric:tabular-nums; }
.description-body .explanation-diagram-note { margin:10px 0 0; text-align:center; color:#777; font-size:10px; line-height:1.6; }
@media screen and (max-width:720px) { .explanation-diagram-content { padding:10px; } .explanation-diagram-related summary { min-height:44px; } }
@media screen and (max-width:720px) { .feature-card .description-button { min-height:44px; padding:9px 10px; } .description-panel header,.description-body { padding-left:16px; padding-right:16px; } }
@media print { .feature-description { display:none; } }

@media screen and (max-width:720px) { .description-panel header .button { min-height:44px; min-width:64px; } }

/* v1.8.23: compact semantic category icons, using the existing category ink. */
.group-icon { display:inline-block; flex:0 0 auto; vertical-align:middle; }
.division-name .group-icon { width:18px; height:18px; }
.feature-card[data-feature-group] .category-label { align-items:center; gap:4px; }
.category-label .group-icon { width:12px; height:12px; }

/* v1.8.24: center the main area beside the sidebar on wide screens. */
@media screen {
  .main-workspace { width:100%; max-width:1280px; min-width:0; margin-inline:auto; }
}

/* v1.8.25: keep the sidebar header focused on the current project. */
.app-rail .rail-project { display:block; margin:0 8px 14px; }
.app-rail .rail-project strong { display:block; color:#333; font-size:13px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }
.app-rail nav { margin:0 0 6px; }
.app-rail nav .rail-link { width:100%; margin:0; padding:8px 10px; text-align:left; }
@media screen and (max-width:720px) { .app-rail nav .rail-link { min-height:44px; } }

/* Selected names use medium weight; unsaved names remain bold. */
.saved-estimate-select>span { font-weight:400; }
.saved-estimate-entry.active .saved-estimate-select>span { font-weight:600; }
.saved-estimate-entry.unsaved .saved-estimate-select>span { font-weight:700; }

/* v1.8.27: a plain home link and a small dashboard. */
.rail-home { display:block; width:100%; border:0; border-radius:5px; background:transparent; color:#555; text-align:left; font-size:12px; font-weight:500; line-height:1.6; padding:8px; margin:0 0 6px; }
.rail-home:hover { background:#ededed; color:#222; }
.rail-home[aria-current="page"] { color:#555; font-weight:600; }
.rail-home[aria-current="page"]:hover { color:#222; }
.dashboard-view .top-actions { display:none; }
.workspace-grid.is-dashboard { grid-template-columns:minmax(0,1fr); }
.dashboard { max-width:820px; }
.dashboard-current { border:1px solid #e2e2e2; border-radius:7px; background:#fff; padding:20px; }
.dashboard-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.dashboard h2 { font-size:12px; font-weight:500; color:#686868; }
.dashboard-status { font-size:11px; color:#686868; }
.dashboard-estimate-name { font-size:20px; font-weight:600; margin-bottom:8px; overflow-wrap:anywhere; }
.dashboard-overview { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:#686868; font-size:12px; white-space:pre-wrap; }
.dashboard-amount { font-size:22px; font-weight:600; margin:16px 0 4px; }
.dashboard-amount>span { display:block; font-size:11px; font-weight:400; color:#686868; }
.dashboard-counts { color:#686868; font-size:12px; margin-bottom:18px; }
.dashboard-recent { margin-top:28px; }
.dashboard-recent h2 { margin-bottom:10px; }
.dashboard-estimate-link { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; padding:14px 4px; background:transparent; border:0; border-bottom:1px solid #e5e5e5; text-align:left; }
.dashboard-estimate-link:hover { background:#f2f2f2; }
.dashboard-estimate-link strong { font-size:13px; font-weight:400; overflow-wrap:anywhere; }
.dashboard-estimate-link>span { color:#686868; font-size:11px; white-space:nowrap; }
.dashboard-empty { color:#888; font-size:12px; }
@media screen and (max-width:720px) { .rail-home { min-height:44px; } .dashboard-current { padding:16px; } .dashboard-estimate-link { min-height:44px; } }

/* v1.8.28: category color belongs to the small label, with quiet card edges. */
@media screen {
  .feature-card[data-feature-group]:is(:focus-within,:active,.is-dragging) { border-color:#333; outline:1px solid #333; outline-offset:0; box-shadow:none; }
}


/* v1.8.33: an immediate card move can be undone in place. */
@media screen {
  .change-status .move-undo { margin-left:10px; border:0; border-radius:3px; background:#efefef; color:#333; padding:5px 9px; font-size:11px; font-weight:600; white-space:nowrap; }
  .move-undo:hover { background:#e3e3e3; }
}
@media screen and (prefers-reduced-motion:reduce) { .feature-card.recent-move { animation:none; outline:1px solid #9ca3ab; outline-offset:1px; } }
@media screen and (max-width:720px) { .change-status .move-undo { min-height:44px; } }


/* v1.8.35: keep feature editing in management and cards focused on selection. */
@media screen {
  .feature-card .card-actions { grid-template-columns:auto minmax(0,1fr); }
  .feature-card .card-transfer { grid-column:2; justify-self:end; }
  .admin-feature-group { margin:16px 0 24px; }
  .admin-feature-group>h3 { display:flex; align-items:center; gap:6px; margin-bottom:8px; font-size:12px; font-weight:600; color:#555; }
  .feature-editor { margin:0; padding:0; border:0; border-bottom:1px solid #e4e4e4; }
  .feature-editor>summary { padding:11px 4px; font-size:12px; }
  .feature-editor>summary strong { font-weight:500; }
  .feature-editor>summary span { margin-left:10px; color:#777; font-size:11px; }
  .feature-editor-body { padding:8px 4px 16px; }
}
@media screen and (max-width:720px) { .feature-editor>summary { min-height:44px; } .feature-editor>summary span { display:block; margin:4px 0 0 18px; } }

/* v1.8.39: distinguish titles, amounts and supporting text by size and weight. */
@media screen {
  #app-heading { font-size:26px; font-weight:700; line-height:1.35; letter-spacing:-.3px; }
  .panel-heading h2,.data-admin .panel-heading h2,.data-separation h2 { font-size:16px; font-weight:650; }
  .lane-heading h2 { font-size:15px; font-weight:650; }
  .feature-card .card-top h3 { font-size:14px; font-weight:650; line-height:1.45; }
  .feature-card .card-price strong { font-size:15px; font-weight:700; line-height:1.4; font-variant-numeric:tabular-nums; }
  .feature-card[data-feature-group] .category-label { font-weight:500; }
  .feature-card .card-price>span { font-weight:400; }
  .division-tabs .division-name { font-size:12px; font-weight:600; }
  .division-tabs .division-amount { font-size:17px; font-weight:700; line-height:1.4; }
  .division-tabs .division-meta,.division-tabs .division-meta em { font-size:10px; font-weight:400; }
  .cost-caption>span:first-child { font-size:13px; font-weight:650; }
  .cost-total { font-size:32px; font-weight:750; line-height:1.3; letter-spacing:-.4px; }
  .cost-total small { font-size:12px; font-weight:400; letter-spacing:0; }
  .summary-row strong { font-weight:600; font-variant-numeric:tabular-nums; }
  .monthly-cost { font-size:22px; font-weight:700; }
  .dashboard-estimate-name { font-size:24px; font-weight:700; line-height:1.4; }
  .dashboard-amount { font-size:30px; font-weight:750; line-height:1.4; font-variant-numeric:tabular-nums; }
  .dashboard-amount>span { font-size:11px; font-weight:400; }
  .description-panel h2 { font-size:18px; font-weight:650; }
  .description-body h3 { font-size:14px; font-weight:650; }
  .admin-feature-group>h3 { font-size:14px; font-weight:650; }
  .feature-editor>summary strong { font-weight:600; }
}
@media screen and (max-width:720px) {
  #app-heading { font-size:22px; }
  .cost-total { font-size:30px; }
  .dashboard-estimate-name { font-size:22px; }
  .dashboard-amount { font-size:28px; }
}

/* v1.8.42: compact relationship badges and a focused review of set changes. */
@media screen {
  .feature-card .card-actions { grid-template-columns:auto auto minmax(0,1fr); }
  .feature-card .card-transfer { grid-column:3; }
  .feature-card .relations-button { min-height:28px; padding:4px 7px; border:0; border-radius:4px; background:#f0f0f0; color:#555; font-size:11px; font-weight:500; }
  .feature-card .relations-button:hover { background:#e6e6e6; }
  .feature-card .relations-button.needs-attention { background:var(--warning-soft); color:var(--warning); }
  .feature-relations { width:min(680px,calc(100vw - 32px)); }
  .feature-relations .description-panel h2 { min-width:0; overflow-wrap:anywhere; }
  .feature-relations .description-body { max-height:calc(100vh - 220px); }
  .feature-relations .description-body>section:first-child { margin-top:0; }
  .relation-items { list-style:none; padding:0; margin:0; }
  .relation-items li { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #e7e7e7; }
  .relation-items li>div { min-width:0; flex:1; }
  .relation-item-link { padding:0; border:0; background:none; color:#333; text-align:left; font-size:13px; font-weight:600; text-decoration:underline; text-decoration-color:#bbb; text-underline-offset:3px; overflow-wrap:anywhere; }
  .relation-items li p { margin:4px 0 0; font-size:11px; line-height:1.65; color:#686868; }
  .relation-state { flex-shrink:0; font-size:11px; color:#555; white-space:nowrap; }
  .relation-row-actions { display:inline-flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; flex-shrink:0; }
  .relation-add { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-height:28px; white-space:nowrap; }
  .relation-add .action-icon { width:14px; height:14px; }
  .relation-total { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:20px; }
  .relation-total>span { font-size:12px; color:#686868; }
  .relation-total strong { font-size:20px; font-weight:700; font-variant-numeric:tabular-nums; }
  .relation-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; padding:12px 20px; border-top:1px solid #e7e7e7; }
  .relation-actions:empty { display:none; }
}
@media screen and (max-width:720px) {
  .feature-card .relations-button { min-height:44px; padding:9px 7px; }
  .relation-item-link,.relation-actions .button,.relation-add { min-height:44px; }
  .relation-items li { flex-wrap:wrap; gap:4px; }
  .relation-actions { padding:12px 16px; }
}
@media print { .feature-relations { display:none; } }

/* Mandatory scope stays in the estimate; optional cards retain movement controls. */
.required-badge { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:16px; height:16px; padding:0; color:#9199a1; background:none; border:0; }
.card-lock { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:18px; color:#64748b; }
.required-fixed { display:inline-flex; align-items:center; min-height:28px; color:#777; font-size:10px; }

.preview-status { position:static; max-width:1100px; margin:0 auto; padding:0 20px 12px; color:#777; font-size:11px; font-weight:400; line-height:1.5; text-align:right; overflow-wrap:anywhere; }
.preview-status:empty { display:none; }

/* Administrator checks are docked separately from the estimate workspace. */
@media screen {
 body { --admin-check-height:44px; padding-bottom:var(--admin-check-height); }
 body:has(.admin-check-dock[open]) { --admin-check-height:min(40vh,320px); }
 .app-layout { min-height:calc(100vh - var(--admin-check-height)); }
 .admin-check-dock { position:fixed; inset:auto 0 0; height:var(--admin-check-height); z-index:25; margin:0; background:#fafafa; border-top:1px solid #d4d4d4; color:#444; }
 .admin-check-dock > summary { height:44px; display:flex; align-items:center; gap:9px; padding:0 18px; cursor:pointer; list-style:none; font-size:12px; }
 .admin-check-dock > summary::-webkit-details-marker { display:none; }
 .admin-check-dock > summary strong { font-weight:650; }
 .admin-check-count { font-size:11px; color:#777; }
 .admin-check-toggle-label { margin-left:auto; color:#777; font-size:11px; }
 .admin-check-content { height:calc(var(--admin-check-height) - 44px); overflow:auto; overscroll-behavior:contain; padding:0 18px 12px; }
 .admin-check-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:6px 0 10px; }
 .admin-check-toolbar nav,.admin-check-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
 .admin-check-filter { border:0; border-radius:4px; padding:5px 9px; background:transparent; color:#666; font-size:11px; }
 .admin-check-filter.active { background:#444; color:white; }
 .admin-check-filter span { margin-left:4px; font-size:10px; }
 .admin-check-table { width:100%; border-collapse:collapse; font-size:11px; text-align:left; }
 .admin-check-table th { color:#777; font-weight:500; }
 .admin-check-table th,.admin-check-table td { padding:7px 10px 7px 0; border-bottom:1px solid #e5e5e5; vertical-align:top; }
 .admin-check-table td:first-child { width:45px; white-space:nowrap; color:#777; }
 .admin-check-table td:nth-child(2) { width:180px; font-weight:550; }
 .admin-check-table td:last-child { width:75px; white-space:nowrap; padding-right:0; }
 .admin-check-link { border:0; padding:4px; background:transparent; color:#555; font-size:11px; text-decoration:underline; text-underline-offset:3px; }
 .admin-check-empty { padding:12px 0; font-size:12px; color:#777; }
}
@media screen and (min-width:721px) {
 .app-rail { height:calc(100vh - var(--admin-check-height)); min-height:0; overflow-y:auto; }
}
@media screen and (min-width:1051px) {
 .board-card-list,.estimate-lane .board-card-list { height:max(180px,calc(100vh - 346px - var(--admin-check-height))); min-height:180px; }
}
@media screen and (max-width:720px) {
 body:has(.admin-check-dock[open]) { --admin-check-height:min(45vh,300px); }
 .admin-check-dock > summary { padding:0 12px; }
 .admin-check-content { padding:0 12px 12px; }
 .admin-check-table td:nth-child(2) { width:110px; }
 .admin-check-filter,.admin-check-link { min-height:36px; }
}
@media print { body { padding-bottom:0; } .admin-check-dock { display:none!important; } }

.admin-check-dock [hidden]{display:none!important}

/* Client-facing conditions and author-side issues have distinct purposes. */
.quote-conditions { margin-top:16px; padding:18px 20px; border:1px solid #e2e2e2; border-radius:7px; background:#fff; }
.quote-conditions h2 { font-size:12px; }
.quote-conditions .condition-status { font-size:11px; color:#686868; margin-bottom:8px; }
.quote-conditions .summary-row { align-items:start; }
.quote-conditions .summary-row strong { text-align:right; overflow-wrap:anywhere; }
.quote-conditions .support-detail { font-size:11px; margin-top:10px; }
.quote-conditions .support-detail p,.quote-conditions .support-detail li { font-size:11px; }
.quote-condition-note { font-size:11px; margin-top:10px; }
.quote-condition-note strong { font-weight:600; }
.quote-condition-note p { white-space:pre-wrap; overflow-wrap:anywhere; }
.admin-check-required { font-size:11px; font-weight:600; color:#555; }
.admin-check-resolution { margin-top:3px; font-weight:550; }
@media(max-width:720px) { .admin-check-required { display:none; } }

/* Compact actions keep native tooltips, accessible names and visible controls. */
.action-icon { display:inline-block; flex:none; width:18px; height:18px; vertical-align:middle; pointer-events:none; }
.feature-card .card-actions { grid-template-columns:auto minmax(0,1fr) auto; align-items:center; }
.feature-card .description-button,.feature-card .transfer-button,.text-button.icon-edit { display:inline-flex; align-items:center; justify-content:center; width:32px; min-width:32px; min-height:32px; padding:0; }
.feature-card .relations-button { display:inline-flex; align-items:center; justify-self:start; gap:4px; min-height:32px; padding:0 7px; color:#46515b; }
.feature-card .relations-button>span { font-size:10px; font-weight:600; font-variant-numeric:tabular-nums; }
.text-button.icon-edit { border-radius:4px; color:#46515b; }
.text-button.icon-edit:hover { background:#f0f0f0; text-decoration:none; }
.rail-data .data-admin-link { display:flex; align-items:center; gap:8px; }
.rail-data .data-admin-link .action-icon { width:16px; height:16px; }
@media screen and (max-width:720px) {
 .feature-card .description-button,.feature-card .transfer-button,.text-button.icon-edit { width:44px; min-width:44px; min-height:44px; }
 .feature-card .relations-button { min-width:44px; min-height:44px; padding:0 10px; }
}

/* Card categories are symbols; the shared filter tabs retain their names. */
.feature-card[data-feature-group] .category-label { flex:0 0 22px; justify-content:center; width:22px; height:22px; padding:0; gap:0; }
.feature-card .category-label .group-icon { width:16px; height:16px; }

/* Scope levels stay visible beside the concrete implementation selector. */
.feature-card .card-choice { display:flex; align-items:center; gap:6px; margin:5px 0; }
.feature-card .scope-single { flex:none; font-size:11px; font-weight:600; color:#555; white-space:nowrap; }
.feature-card .scope-switch { display:inline-flex; flex:none; border:1px solid #d8d8d8; border-radius:4px; }
.feature-card .scope-option { min-height:28px; padding:3px 8px; border:0; background:#fff; color:#555; font-size:11px; line-height:1.5; white-space:nowrap; }
.feature-card .scope-option:first-child { border-radius:3px 0 0 3px; }
.feature-card .scope-option:last-child { border-left:1px solid #d8d8d8; border-radius:0 3px 3px 0; }
.feature-card .scope-option.selected { background:#e8ebee; color:#26323b; font-weight:700; }
.feature-card .scope-option:hover:not(:disabled) { background:#f0f0f0; }
.feature-card .card-choice>.field { flex:1; min-width:0; margin:0; }
.feature-card .card-choice>.field>span { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.feature-card .card-choice select { padding:5px 7px; font-size:12px; background:#fff; border-color:#d8d8d8; }
@media screen and (max-width:720px) { .feature-card .scope-option,.feature-card .card-choice select { min-height:44px; } }

/* The title-side handle shows the configured cost category. */
.feature-card .card-top .group-icon { display:block; flex:none; pointer-events:none; }
.feature-card .drag-handle { display:inline-flex; align-items:center; justify-content:center; flex:none; min-width:24px; min-height:24px; padding:1px; margin-left:0; color:#56616b; }
.feature-card .card-lock { width:24px; min-height:24px; color:#56616b; }
.required-lock-icon { display:block; width:14px; height:14px; pointer-events:none; }
.required-badge[data-lock-kind="dependency"] { cursor:pointer; }
.required-badge[data-lock-kind="dependency"]:hover { color:#596573; }
.required-badge[data-lock-kind="dependency"]:focus-visible { outline:1px solid #596573; outline-offset:3px; border-radius:2px; }
@media screen and (max-width:720px) { .feature-card .drag-handle { min-width:36px; min-height:36px; } }

/* Quote options and comparison belong to Settings. */
.settings-navigation { display:flex; flex-wrap:wrap; gap:4px 14px; margin:0 0 22px; border-bottom:1px solid #d8dde1; }
.settings-navigation button { padding:10px 2px; border:0; border-bottom:2px solid transparent; background:transparent; color:#727a82; font-size:12px; line-height:1.6; }
.settings-navigation button:hover { color:#26323b; }
.settings-navigation button.selected { border-bottom-color:#56616b; color:#26323b; font-weight:700; }
.settings-navigation button:focus-visible { outline:2px solid #68727e; outline-offset:2px; }
@media screen and (max-width:720px) { .settings-navigation { gap:2px 12px; }.settings-navigation button { min-height:44px; } }

/* Saved estimates occupy one row, including inline rename. */
.saved-estimate-list { display:flex; flex-direction:column; align-items:stretch; gap:2px; }
.saved-estimate-entry { display:flex; align-items:center; flex:none; width:100%; height:38px; margin:0; }
.saved-estimate-select { flex:1; width:auto; min-width:0; height:100%; padding:9px 0 9px 10px; }
.saved-estimate-entry>.estimate-name-form { flex:1; width:100%; min-width:0; height:100%; padding:4px; flex-wrap:nowrap; }
.saved-estimate-entry .estimate-name-form input { height:30px; padding:4px 6px; }
.saved-estimate-entry .estimate-name-form button { height:30px; padding:3px 5px; }

@media screen and (max-width:720px) { .saved-estimate-entry { height:44px; }.saved-estimate-select { padding-top:12px; padding-bottom:12px; }.saved-estimate-entry .estimate-name-form input,.saved-estimate-entry .estimate-name-form button { height:36px; } }


/* Itemized rate costs sit directly below the development total. */
.rate-cost-summary { margin-top:16px; padding:16px 18px; border:1px solid #e2e2e2; border-radius:7px; background:#fff; }
.rate-cost-summary .summary-heading h2 { font-size:13px; font-weight:600; color:#444; }
.rate-cost-amount { display:block; margin-top:8px; color:var(--amount); font-size:22px; font-weight:700; }
.rate-cost-amount small { font-size:11px; font-weight:500; }
.rate-cost-summary .rate-cost-discount { margin-top:14px; padding-bottom:0; align-items:baseline; }
.rate-cost-discount>strong { font-size:18px; font-weight:600; white-space:nowrap; }
@media(max-width:1050px) { .cost-sidebar:has(.rate-cost-summary) { grid-template-columns:1fr; }.rate-cost-summary { margin-top:0; } }

/* Funding explanations are quiet footnotes at the bottom of the page. */
.quote-footnotes { margin-top:24px; padding-top:12px; border-top:1px solid #e2e2e2; color:#686868; font-size:11px; line-height:1.7; }
.quote-footnotes strong { font-size:11px; font-weight:500; }
.quote-footnotes p { margin-top:4px; }



/* Product-page footnotes span the content width, outside the price cards. */
.quote-footnote-list { display:flex; flex-direction:column; gap:8px; margin:0; padding:0; list-style:none; }
.quote-footnote { display:grid; grid-template-columns:16px minmax(0,1fr); gap:6px; align-items:start; }
.quote-footnote p { margin:0; font-size:11px; line-height:1.7; }
.footnote-marker { color:#686868; font-size:11px; line-height:1.7; }
.quote-footnotes .quote-conditions { margin:0; padding:0; border:0; border-radius:0; background:transparent; }
.quote-footnotes .summary-heading { justify-content:start; gap:8px; margin:0 0 3px; }
.quote-footnotes .summary-heading h2 { font-size:11px; font-weight:500; color:inherit; }
.quote-footnotes .summary-heading .icon-edit { width:20px; height:20px; padding:2px; min-height:0; }
.quote-footnotes .summary-heading .action-icon { width:13px; height:13px; }
.investment-conditions ul { margin:4px 0; padding-left:18px; }
.investment-conditions li { font-size:11px; line-height:1.7; }
.footnote-fields textarea[name="footnoteFundingConditions"] { min-height:180px; }
.quote-footnotes .condition-status { margin:0; color:inherit; }
.quote-footnotes .summary-row { display:inline-flex; justify-content:start; gap:6px; border:0; padding:0; margin:0 14px 0 0; font-size:11px; }
.quote-footnotes .summary-row strong { font-weight:400; text-align:left; }
.quote-footnotes .quote-condition-note { margin-top:4px; font-size:11px; }
.quote-footnotes .support-detail { margin:0; font-size:11px; }
.quote-footnotes .support-detail>summary { font-weight:500; }
.quote-footnotes .support-detail p,.quote-footnotes .support-detail li { font-size:11px; }

/* Footnote prose is editable per quote; calculated values remain live. */
.quote-footnotes { position:relative; padding-right:28px; }
.footnote-editable-text { white-space:pre-line; overflow-wrap:anywhere; }
.footnote-editor>summary { position:absolute; top:12px; right:0; display:flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:4px; color:#737373; cursor:pointer; list-style:none; }
.footnote-editor>summary::-webkit-details-marker { display:none; }
.footnote-editor>summary:hover,.footnote-editor[open]>summary { background:#e9e9e9; color:#333; }
.footnote-editor .action-icon { width:15px; height:15px; }
.footnote-editor form { margin-top:16px; padding:16px; border:1px solid #dedede; border-radius:6px; background:#fff; }
.footnote-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:10px; }
.footnote-fields textarea { font-size:12px; resize:vertical; }
.footnote-field-wide { grid-column:1/-1; }
.footnote-editor-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:12px; }
.footnote-editor-actions .text-button { font-size:11px; color:#686868; }
@media(max-width:720px) { .footnote-fields { grid-template-columns:1fr; } .footnote-editor>summary { width:32px; height:32px; } .quote-footnotes { padding-right:36px; } }
@media print { .footnote-editor { display:none !important; } }

.quote-footnotes .quote-condition-note p,.quote-footnotes .summary-row strong { white-space:pre-line; }

/* One-line quote rows expose a quiet contextual menu. Fixed panels escape list scrolling. */
.saved-estimate-menu { flex:0 0 30px; margin:0 4px; }
.saved-estimate-menu>summary { display:flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:5px; color:#737373; cursor:pointer; list-style:none; opacity:0; }
.saved-estimate-menu>summary::-webkit-details-marker { display:none; }
.saved-estimate-menu>summary span { font-size:20px; line-height:1; }
.saved-estimate-entry.active .saved-estimate-menu>summary,.saved-estimate-entry:hover .saved-estimate-menu>summary,.saved-estimate-entry:focus-within .saved-estimate-menu>summary,.saved-estimate-menu[open]>summary { opacity:1; }
.saved-estimate-menu>summary:hover,.saved-estimate-menu[open]>summary { background:#ddd; color:#222; }
.saved-estimate-menu-items { position:fixed; left:210px; top:80px; z-index:50; width:180px; padding:5px; background:#fff; border:1px solid #ddd; border-radius:8px; box-shadow:0 5px 18px #00000012; }
.saved-estimate-menu-items button { display:block; width:100%; padding:9px 10px; border:0; border-radius:5px; background:transparent; text-align:left; color:#333; font-size:12px; }
.saved-estimate-menu-items button:hover { background:#f0f0f0; }
.saved-estimate-menu-items .estimate-delete { color:#a33; }
@media(hover:none) { .saved-estimate-menu>summary { opacity:1; } }
@media(max-width:720px) { .saved-estimate-menu>summary { height:44px; } .saved-estimate-menu-items button { min-height:44px; } }

/* Quantities sit beside a quiet per-unit rate; the total retains emphasis. */
.card-quantity { display:flex; flex-basis:100%; align-items:center; justify-content:flex-end; gap:6px; margin-top:3px; font-size:12px; color:#666; }
.card-quantity label { display:flex; align-items:center; gap:5px; }
.card-quantity input { width:70px; padding:3px 5px; border:1px solid #d5d5d5; border-radius:4px; background:#fff; text-align:right; font:inherit; color:#222; }
.card-quantity input:focus { outline:2px solid #555; outline-offset:1px; }

/* Feedback does not move the board; redraws restore page and card positions. */
@media screen {
  #app { overflow-anchor:none; }
  .change-status { position:fixed; right:20px; bottom:calc(var(--admin-check-height,0px) + 16px + env(safe-area-inset-bottom,0px)); z-index:26; display:flex; align-items:center; gap:12px; max-width:min(560px,calc(100vw - 40px)); max-height:calc(100vh - var(--admin-check-height,0px) - 40px - env(safe-area-inset-bottom,0px)); max-height:calc(100dvh - var(--admin-check-height,0px) - 40px - env(safe-area-inset-bottom,0px)); min-height:0; margin:0; padding:10px 14px; border:1px solid #ddd; border-radius:6px; background:#fff; color:#555; box-shadow:0 3px 12px #00000012; }
  .change-status-message { min-width:0; overflow-wrap:anywhere; max-height:calc(100vh - var(--admin-check-height,0px) - 64px - env(safe-area-inset-bottom,0px)); max-height:calc(100dvh - var(--admin-check-height,0px) - 64px - env(safe-area-inset-bottom,0px)); overflow-y:auto; }
  .change-status .move-undo { flex:none; margin-left:0; }
}

/* Scope explanations can be compared without changing the quote. */
.description-body .description-scope-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:0; padding-bottom:16px; border-bottom:1px solid #e2e2e2; }
.description-body .description-scope-single { margin-top:0; padding-bottom:16px; border-bottom:1px solid #e2e2e2; }
.description-scope-column { min-width:0; }
.description-scope-column h3 { color:#555; }
.description-scope-option { margin-top:8px; }
.description-scope-option strong { display:block; font-size:12px; font-weight:600; }
.description-scope-option small { margin-left:7px; color:#777; font-size:10px; font-weight:400; white-space:nowrap; }
.description-scope-option p { margin:4px 0 0; font-size:12px; color:#666; }
.description-selected { margin-top:16px; }
.description-alternative { border-top:1px solid #e2e2e2; margin-top:8px; }
.description-alternative>summary { padding:10px 0; color:#444; font-size:12px; font-weight:500; }
.description-alternative>summary:hover { color:#111; }
.description-alternative>div { padding:0 0 12px; }
@media screen and (max-width:520px) { .description-body .description-scope-comparison { grid-template-columns:1fr; gap:12px; } .description-alternative>summary { min-height:44px; } }

.rail-data-version{margin:4px 0 0;padding:0 10px;color:#6c7278;font-size:10px;line-height:1.6;font-weight:400;overflow-wrap:anywhere}
.rail-data-version>span{display:block}

.saved-estimate-menu-items button:disabled,.saved-estimate-menu-items button:disabled:hover{color:#9a9a9a;background:transparent;cursor:not-allowed;opacity:1}

.saved-estimate-select{display:flex;align-items:center;gap:7px}
.saved-estimate-select>.action-icon{flex:0 0 16px;width:16px;height:16px;color:#777}
.saved-estimate-select>[data-action-icon="template"]{color:#566b78}
.saved-estimate-select>span{flex:1;min-width:0}

/* v1.8.145: overview of every available feature, without group disclosures. */
.catalog-view .top-actions { display:none; }
.workspace-grid.is-catalog { grid-template-columns:minmax(0,1fr); }
.feature-catalog { max-width:1080px; }
.catalog-search { margin-bottom:16px; max-width:360px; }
.catalog-search input { width:100%; font-size:13px; }
.feature-catalog-item[hidden], .feature-catalog-group[hidden], .catalog-empty[hidden] { display:none; }
.catalog-intro { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; margin-bottom:20px; color:#737373; font-size:12px; }
.catalog-total { margin:0; }
.catalog-legend { display:flex; align-items:center; gap:6px; margin:0; }
.catalog-legend .required-lock-icon { flex-shrink:0; }
.catalog-required-note { flex-basis:100%; margin:0; line-height:1.7; }
.catalog-detail-actions { display:flex; flex-wrap:wrap; gap:8px 16px; margin-left:auto; }
.catalog-detail-actions .text-button { font-size:12px; }
.feature-catalog-group { margin-bottom:32px; }
.feature-catalog-group>h2 { display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:16px; font-weight:700; }
.feature-catalog-group>h2>span { margin-left:auto; color:#737373; font-size:12px; font-weight:500; }
.feature-catalog-items { border:1px solid #e2e2e2; border-radius:7px; background:#fff; }
.feature-catalog-item { display:grid; grid-template-columns:minmax(180px,1fr) minmax(0,2fr); column-gap:24px; row-gap:4px; padding:16px 20px 10px; }
.feature-catalog-item+.feature-catalog-item { border-top:1px solid #ededed; }
.feature-catalog-item>header { display:flex; align-items:baseline; gap:8px; }
.feature-catalog-item h3 { margin:0; font-size:14px; font-weight:600; line-height:1.7; overflow-wrap:anywhere; }
.feature-catalog-item>header>h3 { color:#26323b; font-size:15px; font-weight:700; }
.feature-catalog-options { min-width:0; }
.feature-catalog-option+.feature-catalog-option { margin-top:12px; }
.catalog-option-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; font-size:12px; color:#555; }
.catalog-option-heading>strong { margin-left:auto; font-weight:600; white-space:nowrap; color:#333; }
.catalog-scope { font-weight:600; color:#333; }
.feature-catalog-option p { margin:4px 0 0; color:#777; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.feature-catalog-option.is-selected .catalog-option-heading>span { color:#222; font-weight:600; }

.catalog-detail { grid-column:1 / -1; min-width:0; }
.catalog-detail>summary { display:flex; align-items:center; justify-content:center; min-height:32px; color:#777; cursor:pointer; list-style:none; }
.catalog-detail>summary::-webkit-details-marker { display:none; }
.catalog-detail>summary:hover { color:#222; }
.catalog-detail>summary:focus-visible { outline:2px solid #555; outline-offset:2px; border-radius:3px; }
.catalog-chevron { display:block; pointer-events:none; }
.catalog-detail[open]>summary .catalog-chevron { transform:rotate(180deg); }
.catalog-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; margin-top:4px; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.catalog-choice-detail { min-width:0; }
.catalog-detail-grid>.catalog-scope-details { min-width:0; margin-top:0; padding:16px; border:1px solid #e0e4e8; border-radius:5px; background:#fff; }
.catalog-scope-heading { margin:0 0 12px; color:#303840; font-size:14px; font-weight:700; }
.catalog-scope-details>.catalog-choice-detail { margin-top:0; }
.catalog-scope-details>.catalog-choice-detail+.catalog-choice-detail { margin-top:20px; padding-top:16px; border-top:1px solid #e2e5e8; }
.catalog-scope-details section { margin-top:16px; }
.catalog-scope-details h3 { margin:0 0 6px; font-size:12px; font-weight:600; }
.catalog-scope-details p { color:#555; white-space:pre-wrap; }
.catalog-scope-details ul { margin:0; padding-left:20px; }
.catalog-scope-details li { margin:3px 0; }
.catalog-scope-details .description-choice { margin:0; font-weight:600; color:#333; }

@media(max-width:720px) {
 .catalog-detail-grid { grid-template-columns:minmax(0,1fr); }
 .catalog-detail-grid>.catalog-scope-details { padding:14px; }
 .feature-catalog-item { grid-template-columns:minmax(0,1fr); row-gap:10px; padding:14px 14px 8px; }
 .feature-catalog-group { margin-bottom:24px; }
}

/* Scope guidance describes optional improvements without adding implementation promises. */
.description-scope-column>.scope-description { margin:4px 0 10px; font-size:11px; line-height:1.7; color:#6b7279; }
.catalog-scope-details>.scope-description { margin:-6px 0 14px; font-size:11px; line-height:1.7; color:#6b7279; }

/* Explanation tabs connect the selected scope to its content panel. */
.description-scope-tabs { display:flex; align-items:flex-end; gap:4px; margin:0; padding-top:4px; border-bottom:1px solid #b9c0c7; }
.description-scope-tab { position:relative; min-width:100px; min-height:38px; margin-bottom:-1px; padding:7px 22px; border:1px solid transparent; border-bottom-color:#b9c0c7; border-radius:5px 5px 0 0; background:transparent; color:#69727b; font:inherit; font-size:13px; white-space:nowrap; cursor:pointer; }
.description-scope-tab.selected { min-height:42px; border-color:#b9c0c7; border-bottom-color:#fff; background:#fff; color:#26323b; font-weight:700; z-index:1; }
.description-scope-tab:hover { color:#26323b; }
.description-scope-tab:focus-visible { outline:2px solid #555; outline-offset:-4px; }
.description-scope-tabs+#description-scope-panel { padding-top:16px; }
.description-variant { display:block; margin:0 0 16px; }
.description-variant>select { max-width:100%; padding:5px 8px; border:1px solid #d8d8d8; border-radius:4px; font:inherit; font-size:12px; background:#fff; color:#333; }
@media(max-width:720px) { .description-scope-tab,.description-variant>select { min-height:44px; } .description-scope-tab.selected { min-height:48px; } }

/* v1.8.171: quiet surfaces, a clear price hierarchy, and consistent spacing. */
@media screen {
 :root { --surface:#fff; --canvas:#f6f7f8; --text:#252d36; --text-secondary:#626d79; --line:#e1e5e9; --line-strong:#b9c2cc; --number-font:"Segoe UI",Arial,"Noto Sans JP",sans-serif; --accent:#27754c; --accent-strong:#1e613e; --accent-soft:#f0f7f3; --accent-border:#b8d2c2; --amount:#252d36; --border:var(--line); --muted:var(--text-secondary); color:var(--text); background:var(--canvas); }
 body { background:var(--canvas); }
 h1,h2,h3 { color:var(--text); }
 input,select,textarea { border-color:#ccd3da; color:var(--text); border-radius:5px; }
 input::placeholder,textarea::placeholder { color:#78818b; opacity:1; }
 .button { border-color:#d5dbe1; border-radius:6px; font-weight:600; }
 .button.primary,.data-admin .button.primary { background:var(--accent); border-color:var(--accent); }
 .button.primary:hover,.data-admin .button.primary:hover { background:var(--accent-strong); border-color:var(--accent-strong); }
 .main-workspace { max-width:1280px; padding:28px 28px 36px; }
 .workspace-top { align-items:flex-start; gap:20px; margin-bottom:24px; }
 .workspace-heading { min-width:0; }
 #app-heading,.estimate-title-form input { font-size:25px; font-weight:700; line-height:1.45; letter-spacing:-.02em; }
 .estimate-title-button { gap:10px; }
 .estimate-title-button .action-icon { width:15px; height:15px; color:#7b858f; }
 .estimate-overview { margin-top:8px; }
 .estimate-overview textarea,.estimate-overview-text { color:var(--text-secondary); font-size:12px; line-height:1.8; }
 .top-actions { gap:8px; padding-top:4px; }
 .save-state { color:var(--text-secondary); font-size:11px; }
 .app-rail { background:#f0f2f4; border-right-color:var(--line); }
 .rail-home { padding-block:10px; color:#424b55; font-weight:600; }
 .app-rail .rail-project strong { color:#65707c; font-size:11px; line-height:1.7; }
 .saved-list-heading { color:#697481; }
 .saved-estimate-select { color:#444d57; font-size:12px; }
 .saved-estimate-entry.active,.saved-estimate-select[aria-current="true"] { background:transparent; }
 .saved-estimate-select[aria-current="true"] { color:#444d57; }
 .saved-estimate-entry.active:hover { background:#e7ebef; }
 .saved-estimate-select:hover { background:#e7ebef; }
 .rail-data .data-admin-link,.rail-data .data-admin-link.active { color:#626d79; }
 .rail-data-version { color:#737d88; font-size:10px; line-height:1.7; }
 .cost-total,.division-tabs .division-amount,.lane-heading .count,.feature-card .card-price strong,.monthly-cost,.rate-cost-amount,.prototype-price-line strong,.investment-payable strong,.discount-result strong,.summary-row>strong,.catalog-option-heading>strong,.description-price strong { font-family:var(--number-font); font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1,"tnum" 1; }
 .division-tabs { --division-border:var(--line-strong); margin-bottom:22px; }
 .division-tabs .division-heading { margin-bottom:10px; }
 .division-tabs .division-name { gap:8px; font-size:12px; font-weight:500; }
 .division-tabs .division-amount { margin:7px 0 5px; font-size:21px; font-weight:600; line-height:1.25; letter-spacing:-.025em; }
 .division-tabs .division-card[data-feature-group].selected .division-amount { font-weight:650; }
 .division-tabs .division-card[data-feature-group] .division-meta,.division-tabs .division-card[data-feature-group] .division-meta em { font-size:10px; color:var(--text-secondary); }
 .division-tabs .division-card[data-feature-group] { padding:12px 10px; }
 .division-tabs .division-card[data-feature-group].selected { padding-block:20px; }
 .division-tabs .division-card[data-feature-group]:hover { background:#eef1f4; }
 .division-tabs .division-card[data-feature-group].selected:hover { background:transparent; }
 .feature-board { gap:16px; }
 .board-lane,.estimate-lane { padding:14px 12px 0; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
 .lane-heading { margin-bottom:12px; min-height:34px; }
 .lane-heading h2 { gap:10px; font-size:13px; font-weight:600; }
 .lane-heading .count,.estimate-lane .lane-heading .count { height:32px; min-width:32px; padding:0; background:transparent; color:#425a70; font-size:27px; font-weight:600; letter-spacing:-.04em; }
 .board-card-list { gap:8px; padding:2px 2px 12px; scrollbar-color:#c6cdd5 transparent; }
 .feature-card[data-feature-group] { border-color:#e0e5ea; border-radius:6px; background:var(--surface); padding:10px 11px; }
 .feature-card[data-feature-group]:hover:not(:focus-within,.is-dragging) { border-color:#aeb8c2; }
 .feature-card[data-feature-group]:is(:focus-within,.is-dragging) { border-color:#333; outline:1px solid #333; box-shadow:none; }
 .feature-card .card-top { gap:7px; margin-bottom:6px; }
 .feature-card .card-top h3 { color:var(--text); font-size:13px; font-weight:600; line-height:1.5; }
 .feature-card .card-price strong { color:var(--text); font-size:16px; font-weight:600; line-height:1.3; letter-spacing:-.015em; }
 .feature-card .card-price>span,.card-quantity { color:var(--text-secondary); }
 .feature-card .card-choice { gap:7px; margin-block:6px; }
 .feature-card .card-choice select { border-color:#d4dbe2; font-size:11px; padding:5px 7px; }
 .feature-card .scope-switch { border-color:#d4dbe2; }
 .feature-card .scope-option:last-child { border-left-color:#d4dbe2; }
 .feature-card .scope-option.selected { background:#edf0f3; color:var(--text); }
 .feature-card .description-button,.feature-card .relations-button { background:transparent; border-color:transparent; color:#64707c; }
 .feature-card .description-button:hover,.feature-card .relations-button:hover { background:#f0f2f4; color:#303a44; }
 .feature-card .transfer-button { border-color:#d5dbe1; color:#586470; }
 .feature-card .transfer-button.add-feature { background:var(--accent-soft); border-color:var(--accent-border); color:var(--accent-strong); }
 .feature-card .transfer-button.add-feature:hover { border-color:var(--accent); background:#e7f2ec; }
 .feature-card .card-transfer { margin-top:5px; }
 .card-quantity input { border-color:#ccd3da; font-family:var(--number-font); font-variant-numeric:tabular-nums; }
 .lane-empty { border:0; min-height:120px; color:var(--text-secondary); font-size:12px; }
 .board-lane.drop-active { border-color:var(--accent); background:var(--accent-soft); }
 .cost-card,.rate-cost-summary,.operation-summary,.prototype-price-box,.expansion-price-box { padding:20px; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:none; }
 .cost-caption { color:#535e6a; font-size:12px; }
 .cost-caption>span:first-child { font-weight:600; }
 .cost-total { color:var(--text); font-size:34px; font-weight:650; line-height:1.15; letter-spacing:-.035em; margin:18px 0 8px; }
 .cost-total small { margin-left:5px; color:#626d79; font-size:12px; font-weight:400; letter-spacing:0; }
 .cost-note,.cost-footnote { color:var(--text-secondary); font-size:11px; line-height:1.65; }
 .cost-footnote { margin-top:2px; }
 .discount-editor { border:0; margin-top:20px; padding-top:0; }
 .discount-entry label { color:#535e6a; font-size:12px; }
 .discount-controls input,.discount-controls select { padding:6px; border-color:#cdd5dd; border-radius:5px; font-size:12px; }
 .discount-controls input { width:88px; font-family:var(--number-font); font-variant-numeric:tabular-nums; }
 .discount-result { margin-top:9px; color:var(--text-secondary); }
 .discount-result strong { color:#4d5864; font-size:13px; font-weight:600; }
 .amount-detail { border:0; padding-top:0; margin-top:14px; }
 .amount-detail>summary { color:var(--text-secondary); font-size:11px; }
 .investment-summary { border-top:1px solid var(--line); margin-top:18px; padding-top:14px; }
 .investment-summary .investment-payable { gap:6px 12px; align-items:center; flex-wrap:wrap; padding:0; border:0; color:#46515d; }
 .investment-summary .investment-payable>span { flex:1 1 90px; font-size:11px; }
 .investment-summary .investment-payable>strong { flex:none; margin-left:auto; white-space:nowrap; color:var(--accent-strong); font-size:23px; font-weight:650; letter-spacing:-.025em; }
 .investment-summary .muted { margin-top:7px; font-size:10px; color:var(--text-secondary); }
 .rate-cost-summary,.operation-summary { margin-top:14px; }
 .rate-cost-summary .summary-heading h2,.operation-summary .summary-heading h2,.prototype-price-box h3 { color:#626d79; font-size:12px; font-weight:500; }
 .rate-cost-amount { margin-top:12px; color:#394653; font-size:25px; font-weight:600; line-height:1.25; letter-spacing:-.025em; }
 .rate-cost-amount small { color:var(--text-secondary); font-size:11px; font-weight:400; }
 .monthly-cost,.prototype-price-line strong { color:#394653; font-size:24px; font-weight:600; line-height:1.25; letter-spacing:-.025em; }
 .monthly-cost { display:block; margin:12px 0 8px; }
 .operation-summary .muted,.prototype-price-box .muted { color:var(--text-secondary); font-size:11px; line-height:1.75; }
 .operation-summary .support-detail { margin-top:16px; font-size:11px; }
 .summary-row { border-color:#edf0f3; padding:9px 0; }
 .summary-row>strong { color:#394653; font-weight:600; }
 .panel,.operation-card,.compare-card,.diff-item { border-color:var(--line); border-radius:8px; box-shadow:none; }
 .panel { padding:22px; }
 .panel-heading { margin-bottom:18px; }
 .panel-heading h2,.data-admin .panel-heading h2 { font-size:15px; font-weight:600; }
 .settings-navigation { border-bottom-color:var(--line); }
 .settings-navigation button.selected { border-bottom-color:#596673; }
 .quote-footnotes { margin-top:28px; padding-top:16px; border-top-color:var(--line); color:#636e7a; font-size:11px; line-height:1.8; }
 .quote-footnote-list { gap:8px; }
 .feature-catalog-items { border-color:var(--line); border-radius:8px; }
 .feature-catalog-item { border-bottom-color:#edf0f3; }
 .feature-catalog-group>h2 { font-size:16px; font-weight:600; }
 .catalog-detail-grid>.catalog-scope-details { background:#fff; border-color:var(--line); border-radius:6px; }
 .catalog-option-heading>strong { font-weight:600; color:#394653; }
 .feature-description { border-color:#d1d8e0; border-radius:10px; box-shadow:0 18px 60px #17273726; }
 .description-panel header { padding:18px 22px; border-bottom-color:var(--line); }
 .description-panel h2 { font-size:17px; font-weight:600; }
 .description-body { padding:18px 22px 22px; }
 .description-body h3 { font-size:13px; font-weight:600; }
 .description-body .description-scope-single { border-bottom-color:var(--line); padding-bottom:18px; }
 .description-scope-tabs { border-bottom-color:var(--line-strong); }
 .description-scope-tab { border-bottom-color:var(--line-strong); color:var(--text-secondary); }
 .description-scope-tab.selected { border-color:var(--line-strong); border-bottom-color:#fff; color:var(--text); }
 .description-selected { margin-top:18px; }
 .admin-check-console { border-top-color:var(--line-strong); background:#fafbfc; }
 .admin-check-toolbar { color:#535e6a; }
 .change-status { border-color:var(--line); color:var(--text-secondary); border-radius:8px; }
}
@media screen and (min-width:1200px) { .workspace-grid.is-board { grid-template-columns:minmax(0,1fr) 286px; gap:24px; } }
@media screen and (max-width:1050px) { .rate-cost-summary { margin-top:0; } .cost-sidebar .operation-summary { margin-top:0; } }
@media screen and (max-width:720px) {
 .main-workspace { padding:20px 16px 28px; }
 .workspace-top { gap:12px; margin-bottom:18px; }
 #app-heading,.estimate-title-form input { font-size:21px; }
 .top-actions { padding-top:0; }
 .feature-board { gap:14px; }
 .feature-card[data-feature-group] { padding:10px 11px; }
 .feature-card .scope-option,.feature-card .card-choice select { min-height:44px; }
 .feature-card .description-button,.feature-card .transfer-button { min-width:44px; width:44px; min-height:44px; }
 .feature-card .relations-button { min-width:44px; min-height:44px; }
 .cost-card,.rate-cost-summary,.operation-summary { padding:18px; }
 .cost-total { font-size:32px; }
 .division-tabs .division-amount { font-size:18px; }
 .division-tabs .division-card[data-feature-group] { padding-inline:8px; }
 .investment-summary .investment-payable>strong { font-size:22px; }
 .panel { padding:18px; }
 .description-panel header { padding:16px; }
 .description-body { padding:16px; }
}

/* Numbers switch between exact old/new values without affecting layout or calculation. */
@media screen {
 .number-transition { position:relative; overflow:hidden; isolation:isolate; }
 .number-current { display:inline-block; vertical-align:baseline; }
 .number-previous { position:absolute; inset:0 auto auto 0; display:block; white-space:nowrap; pointer-events:none; user-select:none; }
 .lane-heading .count>.number-previous { inset:0; display:flex; align-items:center; justify-content:center; }
}
@media print { .number-previous { display:none !important; } .number-current { opacity:1 !important; transform:none !important; } }

/* Compact independent sort menus beside both lane counts. */
@media screen {
 .lane-heading { gap:8px; }
 .lane-heading h2 { min-width:0; }
 .board-sort-menu { flex:0 0 auto; margin:0 0 0 auto; }
 .board-sort-menu>summary { width:32px; height:32px; opacity:1; background:transparent; color:#707b86; }
 .board-sort-menu>summary:hover,.board-sort-menu[open]>summary { background:#f0f2f4; color:#283b4d; }
 .board-sort-menu>summary.is-sorted { color:#283b4d; }
 .board-sort-menu>summary.is-sorted .action-icon { stroke-width:2.4; }
 .board-sort-options { max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); overflow-y:auto; }
 .board-sort-options button[aria-pressed="true"] { font-weight:700; background:#f0f2f4; }
}
@media screen and (max-width:720px) { .board-sort-menu>summary { width:44px; height:44px; } }

/* Both lanes acknowledge a grab from any non-control part of a movable card. */
@media screen {
 .feature-card[draggable="true"]:is(.is-grabbed,.is-dragging) { cursor:grabbing; user-select:none; border-color:#333; outline:1px solid #333; outline-offset:0; }
 .feature-card:is(.is-grabbed,.is-dragging) .drag-handle { cursor:grabbing; }
 .feature-card input,.feature-card textarea { cursor:text; }
 .feature-card select,.feature-card label { cursor:default; }
}


/* Keep the development card focused on total, discount input and payable. */
@media screen {
 .cost-card { padding:18px; }
 .cost-card .cost-caption { gap:12px; }
 .cost-card .cost-caption .cost-note { flex:none; font-size:10px; font-weight:400; }
 .cost-card .cost-total { margin:12px 0 0; font-size:32px; white-space:nowrap; }
 .cost-card>.discount-editor { margin-top:16px; }
 .cost-card>.investment-summary { margin-top:14px; padding-top:12px; }
 .cost-card>.amount-detail { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
 .cost-card>.amount-detail>summary { font-size:11px; }
 .cost-card .amount-detail .discount-result { margin-top:12px; }
 .cost-card .amount-detail .cost-tax { color:var(--text-secondary); }
 .cost-card .amount-detail .cost-tax strong { color:var(--text); white-space:nowrap; }
 .cost-card .amount-detail .cost-breakdown { margin:12px 0 0; }
 .cost-card .amount-detail .cost-unknown { margin:12px 0 0; }
}


/* Annual maintenance and its monthly equivalent, without operating-cost clutter. */
@media screen {
 .maintenance-summary .summary-heading { gap:8px; margin-bottom:12px; }
 .maintenance-summary .summary-heading h2 { color:var(--text-secondary); font-size:12px; font-weight:500; }
 .maintenance-tax { margin-left:auto; color:var(--text-secondary); font-size:10px; }
 .maintenance-year,.maintenance-month { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
 .maintenance-month>strong { display:inline; margin:0; color:var(--text); font-family:var(--number-font); font-variant-numeric:tabular-nums; font-size:26px; font-weight:600; line-height:1.3; white-space:nowrap; }
 .maintenance-year>span,.maintenance-month>span { color:var(--text-secondary); font-size:11px; }
 .maintenance-year { margin-top:8px; }
 .maintenance-summary .maintenance-annual { display:inline; margin:0; color:var(--text-secondary); font-family:var(--number-font); font-variant-numeric:tabular-nums; font-size:15px; font-weight:500; white-space:nowrap; }
}

/* A short, steady cue on the most recently transferred card's existing control. */
@media screen {
 .feature-card .transfer-button.recent-transfer,.feature-card .transfer-button.recent-transfer:hover { background:#334155; border-color:#334155; color:#fff; }
}

/* Show the exact latest change beside the displayed development amount. */
@media screen {
 .cost-total-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; }
 .cost-change { color:#475569; font-family:var(--number-font); font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
}
@media print { .cost-change { display:none; } }

/* Filtering must not recenter the catalogue or shift its width with the page scrollbar. */
@media screen {
 html { scrollbar-gutter:stable; }
 .main-workspace.catalog-view { margin-block:0; align-self:start; }
}

/* Optional, read-only walkthrough: the highlighted area stays visible. */
.app-rail>.guide-launch { display:inline-flex; align-items:center; gap:6px; margin:0 0 6px; padding:6px 8px; border:0; background:transparent; color:#63707e; font:inherit; font-size:11px; cursor:pointer; }
.guide-launch .action-icon { width:15px; height:15px; }
.guide-launch:hover { color:#26323b; }
.guide-launch:focus-visible,.usage-guide button:focus-visible { outline:2px solid #60758a; outline-offset:3px; }
.usage-guide { position:fixed; inset:0; z-index:300; isolation:isolate; overflow:hidden; }
.guide-spotlight { position:fixed; box-sizing:border-box; border:2px solid #fff; border-radius:8px; background:transparent; box-shadow:0 0 0 100vmax #14202eb3; pointer-events:none; transition:top .16s ease,left .16s ease,width .16s ease,height .16s ease; }
.guide-panel { position:fixed; box-sizing:border-box; display:flex; flex-direction:column; width:336px; overflow:hidden; padding:18px 20px; border:1px solid #dbe1e7; border-radius:10px; background:#fff; color:#26323b; box-shadow:0 12px 44px #07111e38; animation:guide-enter .16s ease-out; }
.guide-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.guide-progress { color:#737e89; font-size:11px; font-variant-numeric:tabular-nums; }
.guide-skip { padding:4px 0; border:0; background:transparent; color:#697583; font:inherit; font-size:11px; cursor:pointer; }
.guide-skip:hover { color:#26323b; }
.guide-header,.guide-actions { flex-shrink:0; }
.guide-copy { min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.guide-copy h2 { margin:0 0 8px; color:#26323b; font-size:16px; font-weight:700; line-height:1.6; }
.guide-copy p { margin:0; color:#596572; font-size:12px; line-height:1.9; }
.guide-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.guide-actions .button { flex:0 1 80px; min-width:0; min-height:36px; padding:7px 14px; font-size:12px; }
.guide-actions .button:disabled { opacity:.4; cursor:default; }
@keyframes guide-enter { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:720px) {
 .app-rail .rail-project { display:none; }
 .app-rail>.guide-launch { margin:0 0 4px; min-height:36px; }
 .guide-panel { padding:16px 18px; }
 .guide-actions .button,.guide-skip { min-height:44px; }
}
@media(max-height:360px) {
 .guide-panel { padding:12px 16px; }
 .guide-header { margin-bottom:8px; }
 .guide-skip { min-height:32px; }
 .guide-actions { margin-top:12px; }
 .guide-actions .button { min-height:36px; }
}
@media(prefers-reduced-motion:reduce) { .guide-panel { animation:none; } .guide-spotlight { transition:none; } }
@media print { .usage-guide,.guide-launch { display:none!important; } }

/* One card represents a functional unit, with its cost categories kept as detail. */
.feature-card .card-top { flex-wrap:nowrap; align-items:flex-start; }
.card-category-icons { display:inline-grid; grid-auto-flow:column; grid-auto-columns:24px; align-items:center; gap:3px; flex:none; }
.category-filter-button { display:inline-flex; align-items:center; justify-content:center; flex:none; width:24px; min-height:24px; margin:0; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; }
.category-filter-button[data-drag-handle],.card-category-icons[data-drag-handle] { touch-action:none; }
.category-filter-button .category-label { pointer-events:none; }
.category-filter-button:not(:disabled):hover .group-icon { opacity:.75; }
.category-filter-button:disabled { color:#c3c8cd; cursor:inherit; pointer-events:none; }
.category-filter-button:disabled .group-icon[data-feature-group] { color:#c3c8cd; }
.category-filter-button:focus-visible { outline:1px solid #333; outline-offset:2px; border-radius:3px; }
.functional-card .drag-handle,.functional-card .card-lock { display:flex; align-items:center; gap:5px; width:auto; min-width:24px; flex-shrink:0; }
.unit-cost-row { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:8px 0; border-bottom:1px solid #e8ebef; }
.unit-cost-row>span { display:flex; align-items:center; gap:7px; }
.unit-cost-row strong { white-space:nowrap; font-family:var(--number-font); }
.unit-part-description { margin-top:24px; padding-top:16px; border-top:1px solid #dbe1e7; }
.unit-part-description>h3 { display:flex; align-items:center; gap:8px; font-size:15px; }
.unit-part-choice { display:flex; align-items:center; gap:10px; margin:12px 0; font-size:12px; }
.unit-part-choice select { min-width:0; max-width:100%; }
.functional-unit-list { display:grid; gap:14px; }
.functional-unit-list article>strong { display:block; margin-bottom:4px; }
.functional-unit-list p { margin:0; color:#697583; font-size:12px; }
/* Compact per-function settings; plain prices and native keyboard-accessible radios. */
.configuration-button { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-width:0; margin:10px 0 4px; padding:7px 10px; border:1px solid #dce1e6; border-radius:5px; background:#fff; color:#475563; font:inherit; font-size:12px; text-align:left; cursor:pointer; }
.configuration-button>span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.configuration-button .configuration-alternatives { flex:none; color:#697583; font-size:10.5px; font-weight:400; white-space:nowrap; }
.configuration-button .action-icon { flex-shrink:0; width:15px; height:15px; color:#77818b; }
.configuration-button:hover { border-color:#8b98a4; background:#f6f8fa; color:#26323b; }
.configuration-button:active { background:#eef1f4; }
.configuration-button:focus-visible { outline:2px solid #60758a; outline-offset:2px; }
.feature-card .card-price.card-price-filtered { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:2px 8px; }
.feature-card .card-price-filtered .card-category-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.feature-card .card-price-filtered>strong { white-space:nowrap; }
.feature-card .card-function-total { grid-column:1/-1; text-align:right; line-height:1.4; }
.feature-card .card-function-total b { font-family:var(--number-font); font-size:11px; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.configuration-field { min-width:0; margin:0 0 22px; padding:0; border:0; }
.configuration-field legend { margin-bottom:9px; padding:0; font-size:13px; font-weight:700; }
.configuration-option { display:grid; grid-template-columns:16px minmax(0,1fr) auto; align-items:start; gap:10px; margin:8px 0; padding:12px; border:1px solid #dce1e6; border-radius:6px; background:#fff; cursor:pointer; }
.configuration-option.selected { border-color:#586776; }
.configuration-option:focus-within { outline:2px solid #60758a; outline-offset:2px; }
.configuration-option input { width:15px; height:15px; margin:4px 0 0; accent-color:#475563; }
.configuration-option-copy { display:grid; gap:5px; min-width:0; }
.configuration-option-copy>strong { color:#26323b; font-size:13px; font-weight:650; }
.configuration-option-copy>span { color:#697583; font-size:11px; line-height:1.8; }
.configuration-option-fee { display:grid; gap:5px; text-align:right; white-space:nowrap; }
.configuration-option-fee>strong,.configuration-total>strong { font-family:var(--number-font); font-variant-numeric:tabular-nums; color:#26323b; }
.configuration-option-fee>strong { font-size:15px; font-weight:600; }
.configuration-option-fee>small { color:#697583; font-size:11px; }
.configuration-option.unavailable { cursor:default; border-style:dashed; }
.configuration-unavailable { color:#697583; font-size:11px; line-height:1.8; }
.configuration-total { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-top:8px; padding-top:14px; border-top:1px solid #dce1e6; }
.configuration-total>span { color:#475563; font-size:12px; }
.configuration-total small { margin-left:5px; color:#77818b; font-size:10px; }
.configuration-total>strong { font-size:24px; font-weight:650; white-space:nowrap; }
.configuration-note { margin:9px 0 20px; color:#77818b; font-size:10px; }
.configuration-details>summary { color:#475563; font-size:12px; cursor:pointer; }
@media(max-width:480px) { .configuration-option { grid-template-columns:16px minmax(0,1fr); } .configuration-option-fee { grid-column:2; display:flex; justify-content:space-between; gap:10px; text-align:left; flex-wrap:wrap; } }

/* Shared typography and surfaces for development, prototype and maintenance fees. */
@media screen {
 .cost-sidebar { --number-font:"Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif; font-family:var(--number-font); }
 .cost-sidebar>.cost-card,.cost-sidebar>.rate-cost-summary,.cost-sidebar>.maintenance-summary,.cost-sidebar>.prototype-price-box { padding:18px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--text); box-shadow:none; }
 .cost-sidebar .cost-caption,.cost-sidebar .rate-cost-summary .summary-heading h2,.cost-sidebar .maintenance-summary .summary-heading h2,.cost-sidebar .prototype-price-box h3 { font-family:inherit; color:var(--text); font-size:13px; font-weight:600; line-height:1.5; }
 .cost-sidebar .summary-heading,.cost-sidebar .prototype-price-box h3 { margin-bottom:0; }
 .cost-sidebar .cost-card .cost-total,.cost-sidebar .rate-cost-summary .rate-cost-amount,.cost-sidebar .maintenance-summary .monthly-cost,.cost-sidebar .prototype-price-line>strong { font-family:var(--number-font); color:var(--text); font-size:28px; font-weight:650; line-height:1.25; letter-spacing:-.025em; font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1,"tnum" 1; white-space:nowrap; }
 .cost-sidebar .cost-card .cost-total,.cost-sidebar .rate-cost-summary .rate-cost-amount { margin:12px 0 0; }
 .cost-sidebar .maintenance-month,.cost-sidebar .prototype-price-line { margin-top:12px; }
 .cost-sidebar .maintenance-summary .monthly-cost { margin:0; }
 .cost-sidebar .cost-card .cost-total small { margin-left:0; font:inherit; color:inherit; letter-spacing:inherit; }
 .cost-sidebar .investment-summary .investment-payable>strong,.cost-sidebar .rate-cost-summary .rate-cost-discount>strong { font-family:var(--number-font); color:var(--accent-strong); font-size:22px; font-weight:600; line-height:1.35; letter-spacing:-.025em; font-variant-numeric:lining-nums tabular-nums; }
 .cost-sidebar .investment-payable>span,.cost-sidebar .rate-cost-discount>span { font-size:11px; font-weight:400; color:var(--text-secondary); }
 .cost-sidebar .rate-cost-summary .rate-cost-discount { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); border-bottom:0; }
 .cost-sidebar .maintenance-summary .maintenance-annual { font-family:var(--number-font); color:var(--text-secondary); font-size:15px; font-weight:500; font-variant-numeric:lining-nums tabular-nums; }
 .cost-sidebar .cost-note,.cost-sidebar .maintenance-tax { font-family:inherit; color:var(--text-secondary); font-size:10px; font-weight:400; }
}

.annotation-content{min-width:0;position:relative;padding-right:26px}.annotation-editor>summary{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;width:22px;height:22px;cursor:pointer;list-style:none;color:#737373;border-radius:4px}.annotation-editor>summary::-webkit-details-marker{display:none}.annotation-editor>summary:hover{background:#e9e9e9}.annotation-editor .action-icon,.annotation-add .action-icon{width:14px;height:14px}.annotation-editor form{margin-top:8px;padding:12px;border:1px solid #dedede;border-radius:6px;background:#fff}.annotation-editor textarea{width:100%;box-sizing:border-box}.annotation-edit-actions{display:flex;align-items:center;gap:14px}.annotation-row .footnote-editable-text{white-space:pre-wrap;overflow-wrap:anywhere}.annotation-row[draggable="true"], [data-annotation-handle]{cursor:grab}.annotation-row.is-annotation-dragging{opacity:.45}.annotation-row.annotation-drop-before{box-shadow:0 -2px #63717b}.annotation-row.annotation-drop-after{box-shadow:0 2px #63717b}[data-annotation-handle]{touch-action:none}.quote-footnotes{padding-right:0}.annotation-add{padding:2px;min-height:0}

.admin-access-dialog{width:min(440px,calc(100% - 40px));padding:24px;border:1px solid #d9dfe3;border-radius:14px;background:white;color:#20333d}.admin-access-dialog::backdrop{background:rgba(20,30,40,.45)}.admin-access-dialog input{width:100%;box-sizing:border-box}.admin-access-actions{display:flex;gap:10px;justify-content:flex-end}.admin-access-dialog [role="alert"]{color:#b32929;min-height:1.5em}
