@charset "UTF-8";
:root{--paper:#fff;--canvas:#f4f6fa;--ink:#17243b;--blue:#2563eb;--amber:#a86105;--muted:rgb(23 36 59 / .65);--line:rgb(23 36 59 / .1);--blue-soft:rgb(37 99 235 / .07);--amber-soft:rgb(168 97 5 / .08);--shadow:0 5px 22px rgb(23 36 59 / .035);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none;font-size:14px;line-height:1.55;font-weight:400;background:var(--canvas)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgb(37 99 235 / .3);outline-offset:3px}button{color:inherit}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}svg{display:block;flex:none}button svg{width:17px;height:17px}h1,h2,h3,p{margin:0}h1{font-size:29px;line-height:1.35;letter-spacing:-.8px;font-weight:690}h2{font-size:17px;letter-spacing:-.25px;font-weight:650}h3{font-size:14px;font-weight:650}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}.app-layout{min-height:100vh;display:grid;grid-template-columns:218px minmax(0,1fr)}
.sidebar{background:var(--paper);border-right:1px solid var(--line);padding:29px 18px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:218px;z-index:20}.brand{display:flex;gap:10px;align-items:center;padding:0 12px;margin-bottom:35px}.brand-mark{width:34px;height:34px;border-radius:10px;color:var(--paper);background:var(--ink);display:grid;place-items:center;font-size:18px;font-weight:600;box-shadow:0 3px 7px rgb(23 36 59 / .12)}.brand-name{font-size:17px;font-weight:700;letter-spacing:.2px}.brand-sub{font-size:10px;color:var(--muted);letter-spacing:1.5px}.nav-label{font-size:10px;letter-spacing:1.5px;color:var(--muted);padding:0 14px;margin-bottom:10px}.nav{display:grid;gap:6px}.nav-button{border:0;background:none;padding:12px 14px;border-radius:10px;display:flex;align-items:center;gap:12px;text-align:left;font-size:13px;color:var(--muted);font-weight:550}.nav-button svg{width:18px;height:18px}.nav-button:hover{background:var(--canvas);color:var(--ink)}.nav-button.active{background:var(--blue-soft);color:var(--blue)}.nav-count{margin-left:auto;display:grid;place-items:center;min-width:20px;height:19px;padding:0 5px;border-radius:5px;background:rgb(23 36 59 / .06);font-size:10px}.sidebar-divider{height:1px;background:var(--line);margin:24px 14px}.project-mini{padding:0 14px}.project-mini strong{font-size:12px;font-weight:600;display:block;margin:8px 0 3px}.mini-dot{width:6px;height:6px;display:inline-block;background:var(--blue);border-radius:50%;margin-right:7px}.sidebar-bottom{margin-top:auto;padding:16px 12px 0}.local-badge{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:600}.local-badge svg{width:15px;height:15px;color:var(--blue)}.sidebar-bottom p{font-size:10px;line-height:1.7;color:var(--muted);margin:7px 0 15px}.profile{padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:9px}.avatar{width:29px;height:29px;display:grid;place-items:center;border:1px solid var(--line);background:var(--canvas);border-radius:50%;font-size:11px}.profile strong{font-size:11px;font-weight:600}.profile .small{font-size:10px}.main-shell{grid-column:2;min-width:0}.topbar{height:69px;background:rgb(255 255 255 / .8);border-bottom:1px solid var(--line);padding:0 36px;display:flex;justify-content:space-between;align-items:center;gap:20px;backdrop-filter:blur(16px);position:sticky;top:0;z-index:15}.crumb{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted)}.crumb strong{color:var(--ink);font-weight:550}.top-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:31px;height:31px;border:1px solid var(--line);border-radius:8px;background:var(--paper);display:grid;place-items:center}.button{border:1px solid var(--line);padding:9px 14px;border-radius:8px;background:var(--paper);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;line-height:1.4;font-weight:560;white-space:nowrap;transition:background .15s,box-shadow .15s}.button:hover{background:var(--canvas)}.button.primary{color:var(--paper);background:var(--blue);border-color:var(--blue);box-shadow:0 2px 4px rgb(37 99 235 / .1)}.button.primary:hover{background:color-mix(in srgb,var(--blue) 90%,var(--ink))}.button.ghost{border-color:transparent;background:none}.button.small-btn{padding:6px 10px;font-size:11px}.button.full{width:100%}.content{max-width:1440px;margin:auto;padding:31px 36px 36px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:var(--blue);margin-bottom:8px}.page-heading p{margin-top:8px;font-size:12px;color:var(--muted);line-height:1.7}.version-pill{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:20px;font-size:10px;color:var(--muted);margin-top:11px;white-space:nowrap}.version-pill .mini-dot{margin:0;width:5px;height:5px}.demo-banner{border:1px solid rgb(168 97 5 / .15);background:var(--amber-soft);padding:10px 13px;border-radius:9px;display:flex;align-items:center;gap:10px;font-size:11px;margin-bottom:23px;color:var(--amber)}.demo-banner svg{width:15px;height:15px}.demo-banner strong{font-weight:650}.demo-banner .text-link{margin-left:auto;color:var(--amber);flex:none}.text-link{border:0;padding:0;background:none;color:var(--blue);font-size:11px;font-weight:600;display:inline-flex;gap:5px;align-items:center}.text-link:hover{text-decoration:underline}.text-link svg{width:13px;height:13px}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:23px;align-items:start}.steps{display:flex;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:14px 18px;margin-bottom:18px}.step{display:flex;gap:9px;align-items:center;background:none;border:0;white-space:nowrap;font-size:11px;color:var(--muted);padding:0}.step-number{width:25px;height:25px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:11px;font-weight:600;background:var(--paper)}.step.active{color:var(--ink);font-weight:650}.step.active .step-number{background:var(--blue);border-color:var(--blue);color:var(--paper)}.step.done .step-number{color:var(--blue);background:var(--blue-soft);border-color:transparent}.step-line{height:1px;background:var(--line);flex:1;margin:0 14px;min-width:14px}.panel{border:1px solid var(--line);background:var(--paper);border-radius:12px;box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.panel-body{padding:23px 24px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:23px;gap:15px}.section-title{display:flex;align-items:center;gap:8px}.section-title>svg{width:18px;height:18px;color:var(--blue)}.panel-heading p{font-size:11px;color:var(--muted);margin-top:5px}.section-code{font-size:10px;letter-spacing:1px;color:var(--muted);padding-top:3px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.wide{grid-column:1/-1}.field label{font-size:11px;font-weight:550;display:flex;align-items:center;gap:4px}.required{color:var(--blue);font-size:11px}.field .hint{font-size:10px;color:var(--muted);line-height:1.5}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap input,.field select,.field textarea{background:var(--paper);border:1px solid rgb(23 36 59 / .15);color:var(--ink);padding:10px 12px;min-height:40px;border-radius:7px;width:100%;min-width:0;outline:none;font-size:12px;transition:border-color .15s,box-shadow .15s}.input-wrap input:hover,.field select:hover{border-color:rgb(23 36 59 / .3)}.input-wrap input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgb(37 99 235 / .07)}.input-wrap.has-suffix input{padding-right:55px}.input-suffix{position:absolute;right:12px;pointer-events:none;font-size:11px;color:var(--muted)}input[type=number]{font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{appearance:none;margin:0}.field input[aria-invalid=true]{border-color:var(--amber)}.imported-label{font-size:9px;color:var(--blue);font-weight:400;margin-left:auto}.subdivider{height:1px;background:var(--line);margin:22px 0}.small-heading{font-size:12px;font-weight:650;margin-bottom:16px;display:flex;gap:8px;align-items:center}.tiny-label{font-size:10px;padding:2px 6px;background:var(--canvas);border-radius:4px;color:var(--muted);font-weight:400}.section-note{font-size:10px;color:var(--muted);padding:11px 13px;background:var(--canvas);border-radius:7px;margin-top:17px;line-height:1.7}.drop-zone{border:1.5px dashed rgb(23 36 59 / .18);border-radius:9px;background:var(--canvas);padding:23px;text-align:center;transition:background .15s,border-color .15s}.drop-zone.dragging{border-color:var(--blue);background:var(--blue-soft)}.drop-icon{width:36px;height:36px;border-radius:10px;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 10px;color:var(--blue)}.drop-icon svg{width:18px;height:18px}.drop-title{font-size:12px;font-weight:550}.drop-title button{background:none;border:0;color:var(--blue);font-weight:600;font-size:12px;padding:0 2px}.drop-zone p{font-size:10px;color:var(--muted);margin-top:5px}.format-tags{display:flex;gap:5px;justify-content:center;margin-top:12px}.format-tag{font-size:9px;padding:2px 6px;background:var(--paper);border:1px solid var(--line);border-radius:4px;color:var(--muted);letter-spacing:.4px}.evidence-mini{margin-top:11px;display:flex;gap:8px;flex-wrap:wrap}.file-chip{display:flex;gap:6px;align-items:center;background:var(--canvas);border-radius:6px;padding:6px 8px;font-size:10px;max-width:100%}.file-chip svg{width:13px;height:13px;color:var(--blue)}.file-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 9px}.autosave{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}.autosave svg{width:13px;height:13px}.next-buttons{display:flex;gap:8px}.summary-column{position:sticky;top:91px}.summary{padding:23px 22px}.summary-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.summary-top h2{font-size:13px}.badge{font-size:9px;color:var(--blue);background:var(--blue-soft);padding:3px 7px;border-radius:5px;display:inline-flex;align-items:center;gap:4px;font-weight:550;white-space:nowrap}.badge.amber{color:var(--amber);background:var(--amber-soft)}.summary-caption{font-size:10px;color:var(--muted);margin-top:23px}.price{font-size:43px;line-height:1.1;font-weight:660;letter-spacing:-1.8px;margin:7px 0 5px;font-variant-numeric:tabular-nums}.price .currency{font-size:24px;vertical-align:top;display:inline-block;line-height:1.8;margin-right:4px;letter-spacing:0}.price-unit{font-size:11px;color:var(--muted)}.monthly-line{padding:13px 0;margin-top:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:11px}.monthly-line strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.metrics-list{display:grid;gap:12px;margin:18px 0}.metric-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;gap:6px;color:var(--muted)}.metric-row strong{font-size:12px;color:var(--ink);font-weight:550}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:2px;margin-right:6px;background:var(--ink);opacity:.35}.legend-dot.blue{background:var(--blue);opacity:1}.legend-dot.amber{background:var(--amber);opacity:1}.range-bar{height:5px;border-radius:5px;background:var(--canvas);position:relative;margin-top:22px}.range-band{position:absolute;left:20%;right:22%;height:5px;border-radius:5px;background:rgb(37 99 235 / .22)}.range-point{width:9px;height:9px;border:2px solid var(--paper);border-radius:50%;background:var(--blue);position:absolute;left:50%;top:-2px;box-shadow:0 0 0 1px var(--blue)}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin:7px 0 18px}.summary-foot{font-size:10px;color:var(--muted);line-height:1.8;margin:12px 0 0}.mini-panel{padding:18px 20px}.mini-panel h3{font-size:11px;margin-bottom:10px;display:flex;align-items:center;gap:7px}.mini-panel h3 svg{width:14px;height:14px;color:var(--blue)}.mini-panel p{font-size:10px;color:var(--muted);line-height:1.8}.completion-top{display:flex;justify-content:space-between;font-size:10px;margin:8px 0}.progress-track{height:4px;border-radius:4px;background:var(--canvas);overflow:hidden}.progress-fill{height:100%;background:var(--blue);transition:width .3s;border-radius:4px}.check-list{list-style:none;padding:0;display:grid;gap:7px;margin:13px 0 0;font-size:10px;color:var(--muted)}.check-list li{display:flex;gap:7px;align-items:center}.check-list svg{width:12px;height:12px;color:var(--blue)}.callout{display:flex;gap:9px;padding:12px 14px;border-radius:8px;background:var(--blue-soft);font-size:11px;line-height:1.7;color:var(--blue);margin:0 0 18px}.callout svg{width:16px;height:16px;margin-top:1px}.callout.warning{background:var(--amber-soft);color:var(--amber)}.page-foot{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;padding-top:16px;margin-top:12px;border-top:1px solid var(--line)}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}.data-table th{font-size:10px;color:var(--muted);font-weight:500;background:var(--canvas);padding:10px 12px;text-align:left}.data-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table input{width:75px;border:1px solid var(--line);border-radius:5px;padding:7px 8px;font-size:11px}.data-table input.name-input{width:145px}.data-table input.source-input{width:190px}.data-table .delete-btn{background:none;border:0;color:var(--muted);padding:6px}.delete-btn svg{width:14px;height:14px}.table-bottom{padding:13px 20px;display:flex;gap:12px;align-items:center;border-top:1px solid var(--line)}.files-list{display:grid;gap:10px}.file-row{display:flex;gap:13px;align-items:center;padding:15px 18px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.file-symbol{width:37px;height:43px;border:1px solid var(--line);background:var(--canvas);border-radius:7px;display:grid;place-items:center;font-size:8px;color:var(--blue);font-weight:700;letter-spacing:.5px;flex:none}.file-info{min-width:0;flex:1}.file-info h3{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.file-info p{font-size:10px;color:var(--muted);margin-top:4px}.file-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.empty-state{text-align:center;padding:35px 20px}.empty-state svg{margin:0 auto 12px;color:var(--muted);width:26px;height:26px}.empty-state h3{font-size:13px;margin-bottom:6px}.empty-state p{font-size:11px;color:var(--muted)}.report-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:20px}.report-card{background:var(--paper);border:1px solid var(--line);border-radius:13px;overflow:hidden}.report-cover{padding:27px 28px;background:var(--blue-soft);height:192px;display:flex;align-items:center;justify-content:center}.report-card.internal .report-cover{background:rgb(23 36 59 / .04)}.paper-mini{height:147px;width:175px;background:var(--paper);box-shadow:0 7px 15px rgb(23 36 59 / .1);padding:16px;border-radius:3px;transform:rotate(-4deg);position:relative}.internal .paper-mini{transform:rotate(4deg)}.paper-mini-brand{font-size:5px;letter-spacing:1px;font-weight:600}.paper-mini h4{font-size:11px;margin:13px 0 8px}.paper-mini-price{font-size:20px;color:var(--blue);font-weight:700}.paper-line{height:3px;background:var(--line);margin-top:7px;border-radius:3px}.paper-line.short{width:60%}.mini-chart{height:40px;display:flex;align-items:flex-end;gap:7px;padding-top:4px}.mini-chart i{width:23px;background:rgb(37 99 235 / .3);border-radius:2px 2px 0 0}.mini-chart i:nth-child(2){background:var(--blue)}.report-card-body{padding:24px}.report-card h2{font-size:19px;margin:9px 0 7px}.report-card p{font-size:11px;color:var(--muted);line-height:1.8}.report-content-list{display:grid;gap:8px;padding:18px 0;margin:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);list-style:none;font-size:11px}.report-content-list li{display:flex;gap:8px;align-items:center}.report-content-list svg{width:13px;height:13px;color:var(--blue)}.report-buttons{display:flex;gap:8px;flex-wrap:wrap}.report-privacy{font-size:10px;padding:12px 14px;background:var(--canvas);border-radius:7px;color:var(--muted);margin-top:15px;line-height:1.7}.result-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px;background:var(--blue-soft);border-bottom:1px solid var(--line)}.result-hero .price{font-size:47px;margin:8px 0}.result-hero .badge{background:var(--paper)}.result-hero-detail{text-align:right;max-width:210px}.result-hero-detail strong{font-size:20px;font-weight:600}.result-hero-detail p{font-size:10px;color:var(--muted);margin-top:7px;line-height:1.6}.chart-wrap{padding:20px 22px}.chart-wrap svg{width:100%;height:auto}.chart-caption{font-size:10px;color:var(--muted);margin-top:8px;line-height:1.7}.formula-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.formula-card{padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:10px}.formula-card .number{font-size:22px;font-weight:600;margin:5px 0}.formula-card p{font-size:10px;color:var(--muted);line-height:1.8}.formula-card h3{font-size:11px}.sources-list{padding:0;list-style:none;margin:0;display:grid;gap:11px}.sources-list li{padding:15px;border:1px solid var(--line);border-radius:8px}.sources-list strong{font-size:12px}.sources-list p{font-size:11px;line-height:1.8;color:var(--muted);margin:5px 0}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.method-num{font-size:11px;font-weight:700;color:var(--blue);margin-bottom:9px}.method-grid p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:8px}#toast{position:fixed;bottom:28px;left:calc(50% + 80px);transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--paper);font-size:12px;line-height:1.7;padding:11px 19px;border-radius:10px;box-shadow:0 6px 20px rgb(23 36 59 / .2);z-index:100;opacity:0;pointer-events:none;transition:transform .2s,opacity .2s;max-width:min(520px,90vw)}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.modal-backdrop{position:fixed;inset:0;background:rgb(23 36 59 / .35);backdrop-filter:blur(5px);z-index:60;display:flex;align-items:center;justify-content:center;padding:25px}.modal{width:min(960px,95vw);max-height:92vh;background:var(--paper);border-radius:15px;box-shadow:0 18px 70px rgb(23 36 59 / .2);display:flex;flex-direction:column;overflow:hidden}.modal.narrow{width:min(560px,95vw)}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:15px}.modal-head p{font-size:10px;color:var(--muted);margin-top:3px}.modal-body{padding:23px;overflow:auto}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line)}.modal iframe{height:64vh;border:0;width:100%;background:var(--canvas)}.modal .text-preview{font:12px/1.8 inherit;white-space:pre-wrap;word-break:break-word;background:var(--canvas);border:1px solid var(--line);padding:16px;border-radius:8px;max-height:330px;overflow:auto}.mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.mapping-grid .field label{font-size:11px}.mapping-grid select{font-size:11px}.modal-help{font-size:12px;line-height:1.9;color:var(--muted)}.modal-help ol{padding-left:20px}.modal-help li{margin-bottom:12px}.history-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border:1px solid var(--line);background:var(--paper);border-radius:10px;margin-top:22px}.history-bar p{font-size:11px;color:var(--muted);margin-top:4px}.history-bar h3{font-size:12px}.error-list{padding:13px 18px;margin:0 0 16px;background:var(--amber-soft);color:var(--amber);border-radius:8px;font-size:11px}.error-list ul{margin:5px 0;padding-left:16px}.hidden{display:none!important}.readonly-tip{font-size:10px;color:var(--muted);margin-top:14px}.fade-in{animation:fade-in .2s ease-out}@keyframes fade-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:1500px){.content{padding:37px 48px}.workspace-grid{grid-template-columns:minmax(0,1fr) 325px;gap:28px}.panel-body{padding:26px 28px}.topbar{padding:0 48px}.summary{padding:26px}}
@media(max-width:1150px){.app-layout{grid-template-columns:185px minmax(0,1fr)}.sidebar{width:185px;padding-left:12px;padding-right:12px}.brand{padding:0 7px}.brand-name{font-size:16px}.content{padding:27px 24px}.topbar{padding:0 24px}.workspace-grid{grid-template-columns:minmax(0,1fr) 260px;gap:17px}.panel-body{padding:20px}.steps{padding:13px}.step{font-size:10px;gap:6px}.step-line{margin:0 7px}.summary{padding:19px}.price{font-size:38px}.version-pill{display:none}.formula-grid{grid-template-columns:1fr}.formula-card{display:grid;grid-template-columns:1fr 100px;gap:6px}.formula-card p{grid-column:1/-1}.formula-card .number{font-size:19px;text-align:right;margin:0}}
@media(max-width:950px){.workspace-grid{grid-template-columns:1fr}.summary-column{position:static;display:grid;grid-template-columns:1fr 1fr;gap:16px}.summary-column .panel{margin-bottom:0}.summary-column .completion-panel{display:none}.summary-caption{margin-top:16px}.summary .price{font-size:37px}.metrics-list{gap:8px}.range-bar,.range-labels{display:none}.summary .button.full{margin-top:5px}.summary-foot{margin-top:9px}.summary-top h2{font-size:12px}.topbar .button.ghost{display:none}.report-cards{gap:16px}.report-card-body{padding:20px}.report-cover{padding:20px}.method-grid{grid-template-columns:1fr}.file-row{flex-wrap:wrap}.file-actions{margin-left:50px}.page-heading h1{font-size:26px}.formula-grid{grid-template-columns:repeat(3,1fr)}.formula-card{display:block}.formula-card .number{text-align:left;font-size:22px;margin:5px 0}}
@media(max-width:650px){.app-layout{display:block}.sidebar{position:sticky;top:0;width:100%;height:auto;inset:auto;display:block;padding:10px 14px 0;border-right:0;border-bottom:1px solid var(--line);background:rgb(255 255 255 / .96);backdrop-filter:blur(14px)}.brand{margin:0 0 10px;padding:0 3px}.brand-mark{width:28px;height:28px;font-size:15px;border-radius:8px}.brand-name{font-size:15px}.brand-sub{display:none}.nav{display:flex;gap:4px;justify-content:space-between}.nav-button{flex:1;padding:9px 5px;gap:4px;border-radius:7px 7px 0 0;font-size:10px;justify-content:center}.nav-button svg{width:14px;height:14px}.nav-label,.sidebar-divider,.project-mini,.sidebar-bottom,.nav-count{display:none}.main-shell{width:100%}.topbar{position:static;height:52px;padding:0 17px}.crumb{font-size:10px}.top-actions{gap:3px}.top-actions .button{font-size:10px;padding:6px 8px}.top-actions .button svg{width:13px;height:13px}.top-actions .icon-btn{width:28px;height:28px}.content{padding:23px 16px 28px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:24px}.page-heading p{font-size:11px;max-width:310px}.eyebrow{font-size:9px}.demo-banner{font-size:10px;padding:10px;gap:7px;align-items:flex-start;margin-bottom:18px}.demo-banner .text-link{font-size:9px;margin-top:2px}.demo-banner strong{display:block}.demo-banner .banner-copy{flex:1}.steps{padding:12px}.step{font-size:10px;gap:5px}.step-number{width:22px;height:22px;font-size:10px}.step-line{margin:0 7px;min-width:7px}.panel-body{padding:19px 17px}.panel-heading{margin-bottom:18px}.panel-heading h2{font-size:15px}.panel-heading p{font-size:10px}.form-grid{gap:16px 12px}.input-wrap input,.field select{font-size:12px;padding:10px;min-height:42px}.input-wrap.has-suffix input{padding-right:45px}.input-suffix{right:10px;font-size:10px}.field label{font-size:10px}.section-code{font-size:9px}.summary-column{grid-template-columns:1fr}.summary-column .mini-panel{display:none}.summary{padding:20px}.summary .price{font-size:40px}.summary-caption{margin-top:16px}.summary .metrics-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric-row{display:block;font-size:9px}.metric-row strong{display:block;margin-top:5px;font-size:12px}.metric-row .legend-dot{margin-right:3px;width:5px;height:5px}.summary .monthly-line{padding:10px 0;margin-top:10px}.summary-foot{font-size:9px}.step-footer{gap:8px;flex-wrap:wrap}.step-footer .button{padding:9px 12px}.autosave{font-size:9px}.page-foot{font-size:9px;gap:10px}.page-foot span:last-child{display:none}.report-cards{grid-template-columns:1fr}.report-cover{height:177px}.report-card-body{padding:22px}.file-row{padding:12px;gap:10px}.file-actions{margin-left:0;width:100%;justify-content:flex-start}.file-info h3{max-width:240px}.history-bar{align-items:flex-start;flex-direction:column;padding:17px}.history-bar>.top-actions{width:100%}.formula-grid{grid-template-columns:1fr}.formula-card{display:grid;grid-template-columns:1fr 100px}.formula-card .number{text-align:right;margin:0;font-size:20px}.formula-card p{grid-column:1/-1}.result-hero{padding:22px;align-items:flex-start}.result-hero .price{font-size:39px}.result-hero-detail{max-width:130px}.result-hero-detail strong{font-size:17px}.result-hero-detail p{font-size:9px}.chart-wrap{padding:17px 12px}.modal-backdrop{padding:10px}.modal{width:100%;max-height:95dvh}.modal-body{padding:16px}.modal-head{padding:15px 16px}.modal-foot{padding:12px 16px;flex-wrap:wrap}.mapping-grid{grid-template-columns:1fr}.modal iframe{height:65vh}#toast{left:50%;bottom:20px}.drop-zone{padding:20px 12px}.drop-zone p{font-size:9px}.section-note{font-size:9px}.button,.text-link{min-height:32px}}
/* Readable form text and compact utility icons across desktop and touch screens. */
.report-privacy{display:flex;align-items:flex-start;gap:8px}
.report-privacy>svg{width:16px;height:16px;margin-top:1px}
.field label{font-size:12px}.input-wrap input,.field select{font-size:14px}.input-wrap.has-suffix input{padding-right:76px}.field .hint{font-size:11px}.panel-heading p{font-size:12px}.nav-button{font-size:14px}.report-card p,.report-content-list{font-size:12px}
@media(max-width:650px){.field label{font-size:12px}.input-wrap input,.field select{font-size:16px}.nav-button{font-size:10px}.panel-heading p{font-size:11px}.report-privacy{font-size:11px}}

/* v0.2: quiet surfaces, strong numeric hierarchy, restrained motion.
   Five base families: white, neutral grey, ink, blue, amber. */
:root {
  --paper: #fff;
  --canvas: #f3f5f8;
  --ink: #151e30;
  --blue: #2563eb;
  --amber: #a86105;
  --muted: rgb(21 30 48 / .6);
  --line: rgb(21 30 48 / .09);
  --shadow: 0 4px 24px rgb(21 30 48 / .035);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body { background: linear-gradient(125deg, #f7f8fa, var(--canvas) 58%); }
h1 { font-size: 36px; font-weight: 670; letter-spacing: -1.15px; line-height: 1.3; }
h2 { font-size: 18px; font-weight: 630; }
.app-layout { grid-template-columns: 226px minmax(0, 1fr); }
.sidebar { width: 226px; padding: 32px 17px 22px; background: rgb(255 255 255 / .82); backdrop-filter: blur(24px); }
.brand { gap: 10px; padding: 0 10px; margin-bottom: 28px; }
.brand-mark { width: 39px; height: 39px; border-radius: 12px; background: var(--ink); box-shadow: 0 3px 8px rgb(21 30 48 / .12); }
.brand-mark svg { width: 23px; height: 23px; }
.brand-name { font-size: 19px; letter-spacing: -.45px; white-space: nowrap; }
.brand-name span { font-weight: 420; font-size: 14px; letter-spacing: -.25px; }
.brand-sub { margin-top: 2px; font-size: 10px; letter-spacing: .15px; }
.location-meta { margin: 0 10px 27px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: rgb(243 245 248 / .55); }
.location-meta>span { display: block; font-size: 10px; color: var(--muted); margin-bottom: 6px; }
.location-meta strong { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 570; }
.location-meta svg { width: 14px; height: 14px; color: var(--blue); }
.nav-label { font-size: 10px; letter-spacing: .5px; }
.nav { gap: 7px; }
.nav-button { font-size: 13px; font-weight: 540; min-height: 46px; border-radius: 12px; padding: 12px 15px; border: 1px solid transparent; transition: background .18s, box-shadow .18s, color .18s; }
.nav-button.active { color: var(--ink); background: var(--paper); border-color: var(--line); box-shadow: 0 3px 10px rgb(21 30 48 / .035); }
.nav-button.active svg { color: var(--blue); }
.nav-button:hover { color: var(--ink); background: rgb(21 30 48 / .025); }
.nav-button.active:after { content: ''; width: 5px; height: 5px; margin-left: auto; border-radius: 50%; background: var(--blue); }
.nav-button:has(.nav-count):after { display: none; }
.project-mini { padding: 0 13px; }
.project-mini strong { font-size: 12px; line-height: 1.65; }
.project-mini>.muted { font-size: 10px; }
.sidebar-divider { margin: 26px 13px; }
.sidebar-bottom { padding-inline: 11px; }
.profile { padding-top: 18px; }
.avatar { border-radius: 9px; }
.topbar { height: 72px; padding: 0 42px; background: rgb(255 255 255 / .62); backdrop-filter: blur(22px); }
.content { padding: 36px 42px; max-width: 1510px; }
.page-heading { margin-bottom: 28px; align-items: center; }
.page-heading p { font-size: 13px; margin-top: 11px; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; color: var(--muted); font-size: 10px; font-weight: 550; letter-spacing: 1.3px; }
.eyebrow>span { width: 18px; height: 2px; border-radius: 2px; background: var(--blue); }
.version-pill { margin: 0; padding: 7px 11px; background: rgb(255 255 255 / .45); color: var(--muted); }
.demo-banner { padding: 11px 14px; border: 1px solid rgb(168 97 5 / .14); border-radius: 11px; margin-bottom: 26px; background: rgb(168 97 5 / .045); font-size: 11px; }
.banner-copy { display: flex; align-items: center; gap: 11px; }
.banner-copy strong { flex: none; font-weight: 650; padding-right: 11px; border-right: 1px solid rgb(168 97 5 / .22); }
.workspace-grid { grid-template-columns: minmax(0, 1fr) 310px; gap: 26px; }
.steps { padding: 6px; border-radius: 16px; gap: 6px; margin-bottom: 22px; background: rgb(255 255 255 / .72); }
.step { flex: 1; justify-content: center; border-radius: 11px; padding: 11px 8px; gap: 9px; font-size: 12px; font-weight: 520; transition: background .18s, color .18s; }
.step.active { background: var(--ink); color: var(--paper); box-shadow: 0 3px 8px rgb(21 30 48 / .09); }
.step-number { width: 23px; height: 23px; font-size: 10px; background: transparent; border-color: var(--line); }
.step.active .step-number { border-color: rgb(255 255 255 / .2); color: var(--paper); background: rgb(255 255 255 / .1); }
.step.done .step-number { background: var(--blue-soft); }
.step-line { display: none; }
.panel { border-radius: 18px; margin-bottom: 20px; }
.panel-body { padding: 26px; }
.panel-heading { margin-bottom: 23px; }
.panel-heading p { font-size: 12px; margin-top: 7px; line-height: 1.7; }
.section-title { gap: 9px; }
.section-title>svg { color: var(--ink); width: 18px; height: 18px; }
.section-code { color: rgb(21 30 48 / .38); font-size: 10px; letter-spacing: .5px; }
.form-grid { gap: 19px 20px; }
.field { gap: 8px; }
.field label { font-size: 12px; font-weight: 550; }
.field:focus-within label { color: var(--blue); }
.input-wrap input,.field select,.field textarea { border-radius: 10px; padding: 11px 12px; min-height: 45px; font-size: 14px; border-color: rgb(21 30 48 / .13); background: rgb(243 245 248 / .23); }
.input-wrap input:hover,.field select:hover { border-color: rgb(21 30 48 / .27); background: var(--paper); }
.input-wrap input:focus,.field select:focus { background: var(--paper); box-shadow: 0 0 0 4px rgb(37 99 235 / .065); }
.field .hint { font-size: 10px; color: rgb(21 30 48 / .5); }
.input-suffix { color: var(--muted); }
.context-details { margin-top: 23px; border-top: 1px solid var(--line); }
.context-details summary { list-style: none; display: flex; align-items: center; justify-content: space-between; padding: 18px 0 0; gap: 12px; cursor: pointer; font-size: 12px; font-weight: 550; }
.context-details summary::-webkit-details-marker { display: none; }
.context-details summary>span { display: flex; align-items: center; gap: 7px; }
.context-details summary svg { width: 14px; height: 14px; color: var(--muted); }
.context-details .details-hint { color: var(--muted); font-size: 10px; font-weight: 400; }
.context-details .details-hint svg { transition: transform .18s; }
.context-details[open] .details-hint svg { transform: rotate(180deg); }
.context-details-body { padding-top: 18px; }
.context-note { font-size: 11px; line-height: 1.7; color: var(--muted); margin-bottom: 18px; }
.button { min-height: 40px; padding: 10px 16px; border-radius: 11px; font-size: 12px; font-weight: 570; transition: background .18s, border-color .18s, transform .18s, box-shadow .18s; }
.button:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 3px 10px rgb(21 30 48 / .06); }
.button:active:not(:disabled) { transform: translateY(0) scale(.985); box-shadow: none; }
.button.primary { box-shadow: 0 3px 8px rgb(37 99 235 / .13); }
.button.ghost { color: var(--muted); }
.icon-btn { width: 36px; height: 36px; border-radius: 50%; }
.text-link { font-size: 11px; }
.drop-zone { border-color: rgb(21 30 48 / .16); border-radius: 13px; padding: 23px 18px; background: linear-gradient(130deg, rgb(243 245 248 / .4), rgb(243 245 248 / .8)); }
.drop-zone:hover { background: rgb(37 99 235 / .025); border-color: rgb(37 99 235 / .4); }
.drop-icon { width: 42px; height: 42px; border-radius: 13px; border-color: rgb(21 30 48 / .07); box-shadow: 0 3px 10px rgb(21 30 48 / .035); }
.drop-icon svg { width: 21px; height: 21px; }
.drop-title { font-size: 13px; }
.drop-zone p { font-size: 11px; margin-top: 6px; }
.format-tag { font-size: 9px; padding: 3px 7px; border-radius: 5px; }
.readonly-tip { font-size: 10px; line-height: 1.7; }
.summary-column { top: 96px; }
.summary { padding: 26px; background: linear-gradient(145deg, #202c43, #151e30 64%); color: var(--paper); border: 1px solid rgb(255 255 255 / .05); border-radius: 21px; box-shadow: 0 12px 25px rgb(21 30 48 / .11); }
.summary .summary-top h2 { color: rgb(255 255 255 / .85); font-size: 12px; font-weight: 500; }
.summary .badge { background: rgb(255 255 255 / .1); color: rgb(255 255 255 / .8); font-size: 9px; }
.summary .badge.amber { color: #fff; background: rgb(168 97 5 / .38); }
.summary .summary-caption { margin-top: 27px; font-size: 11px; color: rgb(255 255 255 / .56); }
.summary .price { font-size: 58px; font-weight: 520; line-height: 1.05; letter-spacing: -2px; margin: 11px 0 8px; }
.summary .price .currency { font-size: 25px; margin-right: 7px; line-height: 1.9; color: rgb(255 255 255 / .8); }
.summary .price-unit { color: rgb(255 255 255 / .6); font-size: 10px; }
.summary .monthly-line { margin-top: 23px; padding: 17px 0; border-color: rgb(255 255 255 / .12); }
.summary .monthly-line .muted { color: rgb(255 255 255 / .56); }
.summary .monthly-line strong { font-size: 17px; font-weight: 510; }
.summary .metrics-list { margin: 20px 0; gap: 13px; }
.summary .metric-row { color: rgb(255 255 255 / .6); font-size: 10px; }
.summary .metric-row strong { color: var(--paper); font-size: 12px; font-weight: 500; }
.summary .legend-dot:not(.blue):not(.amber) { background: var(--paper); opacity: .55; }
.summary .range-bar { background: rgb(255 255 255 / .12); height: 3px; margin-top: 25px; }
.summary .range-band { background: rgb(255 255 255 / .5); height: 3px; }
.summary .range-point { background: var(--blue); border-color: var(--paper); top: -3px; box-shadow: none; }
.summary .range-labels { color: rgb(255 255 255 / .44); font-size: 8px; margin: 9px 0 22px; }
.summary .button.primary { background: var(--paper); color: var(--ink); border-color: var(--paper); min-height: 43px; font-size: 12px; box-shadow: 0 3px 10px rgb(0 0 0 / .08); }
.summary .button.primary:hover { background: #f3f5f8; }
.summary .summary-foot { font-size: 10px; color: rgb(255 255 255 / .52); line-height: 1.8; margin-top: 15px; }
.mini-panel { padding: 21px; border-radius: 16px; }
.mini-panel h3 { font-size: 12px; font-weight: 600; margin-bottom: 12px; }
.mini-panel p { font-size: 11px; }
.completion-top { font-size: 10px; margin: 12px 0; }
.progress-track { height: 5px; }
.check-list { font-size: 11px; gap: 10px; margin-top: 16px; }
.report-cards { gap: 26px; }
.report-card { border-radius: 21px; box-shadow: var(--shadow); transition: box-shadow .2s; }
.report-card:hover { box-shadow: 0 12px 32px rgb(21 30 48 / .065); }
.report-cover { height: 226px; background: linear-gradient(135deg, #f3f5f8, rgb(37 99 235 / .085)); }
.report-card.internal .report-cover { background: linear-gradient(140deg, #202c43, #151e30); }
.paper-mini { width: 186px; height: 156px; padding: 18px; box-shadow: 0 9px 24px rgb(21 30 48 / .14); border-radius: 4px; }
.report-card-body { padding: 27px; }
.report-card h2 { font-size: 22px; letter-spacing: -.4px; margin-top: 12px; }
.report-card p { font-size: 12px; }
.report-content-list { font-size: 12px; gap: 12px; padding: 21px 0; }
.report-privacy { border-radius: 10px; font-size: 11px; }
.report-privacy>svg { color: var(--muted); }
.history-bar { padding: 22px 24px; border-radius: 17px; }
.history-bar h3 { font-size: 13px; }
.history-bar p { font-size: 12px; }
.result-hero { padding: 30px; background: linear-gradient(135deg, rgb(37 99 235 / .055), rgb(37 99 235 / .02)); }
.result-hero .price { font-size: 56px; font-weight: 560; }
.chart-wrap { padding: 25px; }
.chart-wrap h3 { font-size: 15px; }
.formula-card { border-radius: 14px; padding: 20px; }
.formula-card .number { font-size: 28px; font-weight: 550; }
.formula-card h3 { font-size: 12px; }
.formula-card p,.chart-caption { font-size: 11px; }
.file-row { border-radius: 14px; padding: 18px 20px; }
.file-symbol { border-radius: 9px; }
.file-info h3 { font-size: 13px; }
.file-info p { font-size: 11px; }
.file-chip { border: 1px solid var(--line); border-radius: 7px; }
.callout { font-size: 12px; border-radius: 12px; padding: 14px 16px; }
.modal-backdrop { backdrop-filter: blur(8px); background: rgb(21 30 48 / .32); }
.modal { border-radius: 23px; box-shadow: 0 25px 100px rgb(21 30 48 / .23); }
.modal-head { padding: 22px 25px; }
.modal-head h2 { font-size: 17px; }
.modal-head p { font-size: 11px; margin-top: 5px; }
.modal-body { padding: 26px; }
.modal-foot { padding: 18px 25px; background: rgb(243 245 248 / .5); }
.data-table { font-size: 12px; }
.data-table td { padding: 13px; }
.data-table th { font-size: 11px; }
.data-table input { border-radius: 7px; min-height: 35px; }
.sources-list li { border-radius: 12px; padding: 18px; }
.page-foot { padding-top: 20px; margin-top: 17px; color: rgb(21 30 48 / .45); }
#toast { border: 1px solid rgb(255 255 255 / .15); border-radius: 13px; }

@media (min-width: 1600px) {
  .content { padding: 42px 52px; }
  .workspace-grid { grid-template-columns: minmax(0, 1fr) 328px; gap: 30px; }
}
@media (max-width: 1200px) {
  .app-layout { grid-template-columns: 201px minmax(0, 1fr); }
  .sidebar { width: 201px; padding-inline: 12px; }
  .brand { padding-inline: 7px; }
  .brand-name { font-size: 17px; }.brand-name span { font-size: 12px; }
  .content { padding: 30px 26px; }.topbar { padding-inline: 26px; }
  .workspace-grid { grid-template-columns: minmax(0, 1fr) 282px; gap: 20px; }
  .panel-body,.summary { padding: 22px; }.summary .price { font-size: 52px; }
  h1 { font-size: 33px; }.form-grid { gap: 18px 14px; }
  .step { font-size: 11px; gap: 6px; }
}
@media (max-width: 1000px) {
  .workspace-grid { grid-template-columns: 1fr; }
  .summary-column { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  .summary-column .completion-panel { display: none; }
  .summary-column .panel { margin-bottom: 0; }
  .summary .summary-caption { margin-top: 20px; }
  .summary .range-bar,.summary .range-labels { display: none; }
  .summary-column>.mini-panel { align-self: start; }
  .report-card-body { padding: 23px; }.report-cards { gap: 18px; }
}
@media (max-width: 650px) {
  body { background: var(--canvas); }
  .app-layout { display: block; }
  .sidebar { width: 100%; padding: 13px 13px 0; background: rgb(255 255 255 / .9); }
  .brand { padding: 0 4px; margin-bottom: 11px; }.brand-mark { width: 31px; height: 31px; border-radius: 10px; }.brand-mark svg { width: 19px; height: 19px; }
  .brand-name { font-size: 17px; }.brand-name span { font-size: 13px; }
  .location-meta { display: none; }.nav { gap: 2px; }
  .nav-button { font-size: 10px; min-height: 38px; border-radius: 9px 9px 0 0; padding: 8px 5px; gap: 5px; }
  .nav-button.active { border-color: transparent; background: rgb(37 99 235 / .055); box-shadow: none; }.nav-button.active:after { display: none; }
  .topbar { height: 56px; padding-inline: 17px; }.crumb { font-size: 10px; }
  .top-actions .button { min-height: 34px; font-size: 10px; padding: 7px 10px; border-radius: 9px; }
  .top-actions .icon-btn { width: 30px; height: 30px; }
  .content { padding: 24px 16px 28px; }.page-heading { margin-bottom: 21px; }
  h1,.page-heading h1 { font-size: 28px; letter-spacing: -.8px; }.page-heading p { font-size: 12px; margin-top: 8px; }
  .eyebrow { font-size: 9px; letter-spacing: .8px; margin-bottom: 9px; }.eyebrow>span { width: 13px; }
  .demo-banner { padding: 11px 12px; margin-bottom: 20px; gap: 8px; font-size: 10px; align-items: flex-start; }
  .banner-copy { display: block; }.banner-copy strong { border: 0; padding: 0; margin-bottom: 2px; }.banner-copy>span { display: block; }
  .demo-banner .text-link { font-size: 9px; }
  .steps { border-radius: 13px; gap: 3px; padding: 5px; margin-bottom: 17px; }.step { font-size: 10px; padding: 10px 4px; gap: 5px; border-radius: 9px; }.step-number { width: 20px; height: 20px; font-size: 9px; }
  .panel { border-radius: 16px; }.panel-body { padding: 21px 18px; }.panel-heading { margin-bottom: 21px; }.panel-heading h2 { font-size: 17px; }.panel-heading p { font-size: 11px; }
  .form-grid { gap: 17px 13px; }.field label { font-size: 11px; }.input-wrap input,.field select { font-size: 16px; min-height: 46px; padding: 11px; }.input-wrap.has-suffix input { padding-right: 61px; }
  .field .hint { font-size: 10px; }.context-details summary { font-size: 11px; gap: 8px; }.context-details .details-hint { font-size: 9px; gap: 4px; }.context-note { font-size: 10px; }
  .drop-zone { padding: 23px 12px; }.drop-title { font-size: 12px; }.drop-zone p { font-size: 10px; }.readonly-tip { font-size: 10px; }
  .summary-column { display: block; }.summary-column .mini-panel { display: none; }
  .summary { padding: 25px; border-radius: 18px; }.summary .price { font-size: 55px; }.summary .metrics-list { display: block; }.summary .metric-row { display: flex; margin-top: 12px; }.summary .metric-row strong { margin: 0; }
  .summary .summary-foot { font-size: 10px; }.summary .monthly-line strong { font-size: 18px; }
  .report-cards { grid-template-columns: 1fr; gap: 20px; }.report-card { border-radius: 19px; }.report-cover { height: 214px; }.report-card-body { padding: 25px; }.report-card h2 { font-size: 23px; }
  .report-content-list { font-size: 12px; }.report-privacy { font-size: 11px; }
  .button { min-height: 41px; font-size: 12px; padding: 10px 13px; }.report-buttons { gap: 8px; }
  .history-bar { padding: 21px; }.history-bar p { font-size: 11px; }
  .file-row { padding: 15px; }.file-info h3 { font-size: 12px; }.file-actions .button { min-height: 35px; }
  .result-hero { padding: 23px; }.result-hero .price { font-size: 43px; }.chart-wrap { padding: 21px 15px; }.chart-caption { font-size: 10px; }
  .formula-card { padding: 19px; }.formula-card .number { font-size: 23px; }
  .modal-backdrop { padding: 10px; }.modal { border-radius: 20px; }.modal-head { padding: 19px; }.modal-head h2 { font-size: 16px; }.modal-body { padding: 19px; }.modal-foot { padding: 16px 19px; }
  .callout { font-size: 11px; }.page-foot { font-size: 9px; }
}
@media (prefers-reduced-transparency: reduce) {
  .sidebar,.topbar { background: var(--paper); backdrop-filter: none; }
  .modal-backdrop { backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  *,*:before,*:after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* 台账录入和分层输出，共用现有五色体系。 */
.ledger-intro,.result-toolbar,.result-section-title { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:8px 0 25px; }
.ledger-intro h2,.result-toolbar h2,.result-section-title h2 { font-size:23px; letter-spacing:-.4px; }
.ledger-intro p,.result-toolbar p,.result-section-title p { font-size:12px; color:var(--muted); margin-top:8px; line-height:1.7; }
.ledger-intro .button { flex:none; }
.field input[readonly] { background:rgb(21 30 48 / .035); color:var(--muted); }
.result-workspace { display:block; }
.result-workspace .steps { max-width:100%; }
.result-toolbar { margin:30px 0 24px; }
.audience-switch { display:flex; padding:5px; background:var(--paper); border:1px solid var(--line); border-radius:14px; gap:4px; flex:none; }
.audience-switch button { display:flex; align-items:center; gap:7px; background:transparent; border:0; color:var(--muted); padding:11px 15px; border-radius:10px; font:inherit; font-size:12px; cursor:pointer; transition:background .16s,color .16s; }
.audience-switch svg { width:15px; height:15px; }
.audience-switch button[aria-pressed="true"] { background:var(--ink); color:var(--paper); }
.pricing-detail { padding:25px; }
.pricing-detail h3 { font-size:15px; margin-bottom:22px; }
.quote-amounts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.quote-amounts>div+div { border-left:1px solid var(--line); padding-left:24px; }
.quote-amounts span,.commercial-terms span { display:block; font-size:12px; color:var(--muted); margin-bottom:12px; }
.quote-amounts strong { display:block; font-size:28px; font-weight:580; letter-spacing:-.8px; }
.quote-amounts small { font-size:11px; color:var(--muted); font-weight:400; white-space:nowrap; letter-spacing:0; }
.quote-footnote { font-size:11px; color:var(--muted); line-height:1.8; margin-top:22px; }
.external-quote { padding:34px; }
.external-quote-heading { padding-bottom:30px; margin-bottom:30px; border-bottom:1px solid var(--line); }
.external-quote-heading h2 { margin:18px 0 10px; font-size:25px; }
.external-quote-heading p { font-size:12px; color:var(--muted); line-height:1.8; overflow-wrap:anywhere; }
.external-quote .quote-amounts strong { color:var(--blue); }
.commercial-terms { display:grid; grid-template-columns:repeat(3,1fr); background:var(--canvas); border-radius:12px; padding:22px; margin-top:28px; gap:20px; }
.commercial-terms strong { font-size:16px; font-weight:550; }
.ledger-snapshot { overflow:hidden; }
.ledger-snapshot summary { display:flex; align-items:center; justify-content:space-between; padding:22px 25px; cursor:pointer; list-style:none; font-size:14px; font-weight:550; gap:12px; }
.ledger-snapshot summary::-webkit-details-marker { display:none; }
.ledger-snapshot summary span { font-size:11px; color:var(--muted); display:flex; align-items:center; gap:8px; }
.ledger-snapshot summary svg { width:14px; height:14px; }
.ledger-snapshot dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 25px 22px; gap:0 24px; }
.ledger-snapshot dl>div { padding:15px 0; border-top:1px solid var(--line); }
.ledger-snapshot dt { font-size:11px; color:var(--muted); margin-bottom:7px; }
.ledger-snapshot dd { margin:0; font-size:13px; overflow-wrap:anywhere; }
.results-reports { margin-top:42px; padding-top:30px; border-top:1px solid var(--line); }
.results-reports .report-cover { height:190px; }
.mapping-section { border-top:1px solid var(--line); margin-top:24px; padding-top:20px; }
.mapping-section summary { font-size:14px; font-weight:600; cursor:pointer; }
.import-row-field { margin-top:20px; padding:18px; background:var(--canvas); border-radius:12px; }
@media (max-width:1150px) {
  .quote-amounts strong { font-size:23px; }
}
@media (max-width:650px) {
  .ledger-intro,.result-toolbar,.result-section-title { align-items:flex-start; flex-direction:column; gap:16px; }
  .ledger-intro h2,.result-toolbar h2,.result-section-title h2 { font-size:21px; }
  .ledger-intro .button { align-self:flex-start; }
  .audience-switch { width:100%; }
  .audience-switch button { flex:1; justify-content:center; }
  .quote-amounts { grid-template-columns:1fr; gap:18px; }
  .quote-amounts>div+div { padding:18px 0 0; border-left:0; border-top:1px solid var(--line); }
  .quote-amounts strong { font-size:28px; }
  .pricing-detail,.external-quote { padding:23px; }
  .commercial-terms { grid-template-columns:1fr; gap:18px; }
  .commercial-terms>div { display:flex; justify-content:space-between; align-items:center; gap:15px; }
  .commercial-terms span { margin:0; }
  .ledger-snapshot dl { grid-template-columns:1fr 1fr; padding:0 20px 20px; gap:0 18px; }
  .ledger-snapshot summary { padding:20px; }
  .results-reports { margin-top:30px; }
}

/* v0.3: project navigation and fast, interruptible motion. */
.app-layout { grid-template-columns: 252px minmax(0,1fr); }
.sidebar { width: 252px; overflow-y: auto; }
.brand { margin-bottom: 29px; }
.project-list-heading { display: flex; justify-content: space-between; align-items: center; padding: 0 9px 12px; }
.project-list-heading h2 { font-size: 12px; font-weight: 600; letter-spacing: .1px; }
.project-list-heading h2>span { color: var(--muted); font-size: 10px; margin-left: 5px; font-weight: 450; }
.project-list-heading .icon-btn { width: 27px; height: 27px; border-radius: 8px; background: transparent; }
.project-list-heading .icon-btn:hover { background: var(--paper); }
.project-list { display: grid; gap: 7px; max-height: 32vh; overflow-y: auto; padding: 1px 2px; scrollbar-width: thin; }
.project-item { display: flex; align-items: center; border: 1px solid transparent; border-radius: 12px; padding: 2px 5px 2px 2px; transition: background .14s,border-color .14s; }
.project-item.active { background: rgb(37 99 235 / .065); border-color: rgb(37 99 235 / .11); }
.project-item:hover { background: rgb(21 30 48 / .035); }
.project-item.active:hover { background: rgb(37 99 235 / .075); }
.project-select { display: flex; align-items: center; text-align: left; flex: 1; min-width: 0; gap: 9px; border: 0; background: transparent; padding: 10px 7px; }
.project-symbol { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border: 1px solid var(--line); border-radius: 11px; background: var(--canvas); color: var(--ink); font-size: 11px; font-weight: 650; letter-spacing: .2px; transition: color .14s,background .14s; }
.project-item.active .project-symbol { color: var(--paper); background: var(--blue); border-color: var(--blue); }
.project-select:focus-visible { outline: 3px solid rgb(37 99 235 / .25); outline-offset: -1px; border-radius: 10px; }
button.drop-icon { padding: 0; cursor: pointer; color: var(--blue); background: var(--paper); border: 1px solid var(--line); transition: background .14s,border-color .14s,transform .14s,box-shadow .14s; }
button.drop-icon:hover { background: var(--blue-soft); border-color: rgb(37 99 235 / .3); transform: translateY(-1px); }
button.drop-icon:active { transform: scale(.96); }
button.drop-icon:focus-visible { outline: 3px solid rgb(37 99 235 / .25); outline-offset: 3px; }
.project-text { min-width: 0; }
.project-text strong { font-size: 12px; font-weight: 560; display: block; line-height: 1.6; overflow-wrap: anywhere; }
.project-text small { display: block; font-size: 9px; color: var(--muted); margin-top: 3px; }
.project-edit { border: 0; background: transparent; display: grid; place-items: center; width: 27px; height: 29px; flex: none; border-radius: 7px; color: var(--muted); opacity: .62; transition: background .14s,opacity .14s; }
.project-edit svg { width: 13px; height: 13px; }
.project-edit:hover,.project-edit:focus-visible { background: var(--paper); color: var(--blue); opacity: 1; }
.project-tools { display: flex; align-items: center; gap: 18px; margin: 14px 10px 0; }
.project-tools button { background: none; border: 0; display: flex; align-items: center; gap: 5px; padding: 4px 0; font-size: 10px; color: var(--muted); }
.project-tools button svg { width: 12px; height: 12px; }
.project-tools button:hover { color: var(--blue); }
.mobile-project-picker { display: none; }
.project-none { padding: 20px; color: var(--muted); font-size: 11px; }
.sidebar-divider { margin-top: 25px; margin-bottom: 22px; }
.nav-button { min-height: 43px; }
.sidebar-bottom { padding-top: 26px; }
.page-heading { gap: 18px; }
.page-heading h1 { font-size: 32px; overflow-wrap: anywhere; }
.project-heading-actions { display: flex; align-items: center; gap: 12px; flex: none; }
.project-heading-actions .button { font-size: 11px; padding: 8px 12px; min-height: 36px; }
.project-heading-actions .button svg { width: 14px; height: 14px; }
.project-heading-actions .version-pill { font-size: 9px; }
.modal .field>input { border: 1px solid rgb(21 30 48 / .14); border-radius: 10px; padding: 11px 12px; font-size: 14px; width: 100%; min-height: 44px; color: var(--ink); background: rgb(243 245 248 / .35); }
.modal .field>input:focus { outline: 3px solid rgb(37 99 235 / .1); border-color: var(--blue); background: var(--paper); }
.form-error { color: var(--amber); font-size: 12px; line-height: 1.7; margin-top: 12px; }
.danger-quiet { margin-right: auto; color: var(--amber); }
.button.danger { background: var(--amber); color: var(--paper); border-color: var(--amber); }
.empty-projects { text-align: center; background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 65px 28px; min-height: 375px; }
.empty-project-icon { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 23px; border: 1px solid var(--line); border-radius: 18px; background: var(--canvas); color: var(--blue); }
.empty-project-icon svg { width: 27px; height: 27px; }
.empty-projects h2 { font-size: 22px; }
.empty-projects p { color: var(--muted); font-size: 13px; margin: 13px 0 25px; }
.empty-projects>div:last-child { display: flex; justify-content: center; gap: 10px; }
.input-wrap input[readonly] { background: rgb(21 30 48 / .025); color: var(--muted); cursor: default; }
.fade-in { animation: none; }
.modal { animation: modal-enter .14s cubic-bezier(.2,.75,.25,1) both; }
.chart-bar { transform-box: fill-box; transform-origin: left center; animation: bar-enter .24s cubic-bezier(.2,.75,.25,1) both; }
@keyframes modal-enter { from { opacity: .5; transform: translateY(5px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes bar-enter { from { transform: scaleX(.4); opacity: .3; } to { transform: scaleX(1); } }
@media (max-width:1200px) {
  .app-layout { grid-template-columns: 223px minmax(0,1fr); }.sidebar { width: 223px; }
  .project-select { gap: 7px; padding-left: 6px; }.project-symbol { width: 28px; height: 28px; font-size: 10px; border-radius: 9px; }.project-text strong { font-size: 11px; }
  .project-heading-actions .version-pill { display: none; }.page-heading h1 { font-size: 30px; }
}
@media (max-width:650px) {
  .app-layout { display: block; }.sidebar { width: 100%; overflow: visible; padding-top: 11px; }
  .brand { margin-bottom: 10px; }.brand-sub { display: none; }
  .project-list-heading,.project-list { display: none; }
  .mobile-project-picker { display: flex; gap: 6px; align-items: center; margin: 0 3px 9px; }
  .mobile-project-picker select { min-width: 0; flex: 1; height: 37px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--canvas); padding: 5px 9px; font-size: 14px; }
  .mobile-project-picker .icon-btn { border-radius: 9px; width: 34px; height: 35px; }
  .project-tools { position: absolute; top: 12px; right: 17px; margin: 0; gap: 12px; }.project-tools button { font-size: 9px; }.project-tools button svg { display: none; }
  .nav { gap: 5px; }.nav-button { min-height: 35px; font-size: 10px; }
  .project-heading-actions { display: none; }.page-heading h1 { font-size: 27px; }.page-heading p { max-width: none; font-size: 11px; }
  .eyebrow { font-size: 8px; letter-spacing: .5px; }.modal .field>input { font-size: 16px; }
  .modal-foot .danger-quiet { margin-right: auto; padding-inline: 9px; }
  .empty-projects { padding: 40px 20px; }.empty-projects h2 { font-size: 20px; }.empty-projects p { font-size: 12px; }
}
@media (prefers-reduced-motion:reduce) {
  .modal,.chart-bar { animation: none; }
}

/* A restrained type hierarchy with system-local fonts and no font downloads. */
:root {
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --font-display: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  font-family: var(--font-ui);
  font-optical-sizing: auto;
  font-kerning: normal;
}
button,input,select,textarea { font-family:var(--font-ui); }
h1,h2,h3,.brand-name { font-family:var(--font-display); text-wrap:balance; }
.page-heading { align-items:center; margin-bottom:30px; }
.page-heading h1 { font-size:clamp(32px,3.2vw,44px); line-height:1.24; font-weight:650; letter-spacing:-.035em; margin-top:3px; }
.page-heading p { font-size:13px; line-height:1.8; letter-spacing:.015em; max-width:650px; margin-top:13px; }
.eyebrow { font-family:var(--font-ui); font-size:10px; font-weight:650; line-height:1.5; letter-spacing:.15em; }
.eyebrow>span { width:23px; }
.brand-name { font-size:20px; font-weight:650; letter-spacing:-.035em; }
.brand-name span { font-size:15px; font-weight:430; letter-spacing:-.035em; }
.brand-sub { font-size:10px; line-height:1.7; letter-spacing:.035em; }
.section-title h2 { font-size:19px; line-height:1.5; font-weight:620; letter-spacing:.015em; }
.section-code { font-family:var(--font-display); font-size:12px; font-weight:500; font-variant-numeric:tabular-nums; letter-spacing:.08em; }
.panel-heading p { line-height:1.8; letter-spacing:.01em; }
.ledger-intro h2,.result-toolbar h2,.result-section-title h2 { font-size:26px; font-weight:620; letter-spacing:-.025em; line-height:1.4; }
.ledger-intro p,.result-toolbar p,.result-section-title p { line-height:1.8; letter-spacing:.015em; }
.field label { font-size:12px; font-weight:560; line-height:1.6; letter-spacing:.02em; }
.field .hint,.section-note { line-height:1.8; letter-spacing:.01em; }
.field-feedback { font-size:11px; line-height:1.75; color:var(--amber); background:var(--amber-soft); padding:9px 11px; border-radius:8px; }
.field-feedback[hidden] { display:none; }
.field input { scroll-margin-block:160px; }
.summary .button.summary-help { color:var(--paper); background:transparent; border-color:rgb(255 255 255 / .2); font-size:11px; white-space:normal; width:100%; margin-top:14px; }
.summary .button.summary-help:hover { background:rgb(255 255 255 / .08); }
.price,.number,.quote-amounts strong,.result-hero-detail strong,.monthly-line strong,.metric-row strong { font-family:var(--font-display); font-variant-numeric:lining-nums tabular-nums; }
.price { letter-spacing:-.055em; }
.price [data-price-value] { min-width:0; overflow-wrap:anywhere; }
.summary .price.price-long,.result-hero .price.price-long { font-size:32px; letter-spacing:-.025em; }
.summary .monthly-line,.summary .metric-row { gap:12px; }
.summary .monthly-line strong,.summary .metric-row strong { min-width:0; overflow-wrap:anywhere; text-align:right; }
.result-hero>div { min-width:0; }
.result-hero-detail strong { overflow-wrap:anywhere; }
.formula-card,.formula-card .number,.quote-amounts>div { min-width:0; }
.formula-card .number,.quote-amounts strong { overflow-wrap:anywhere; }
.quote-amounts strong { font-size:32px; font-weight:580; letter-spacing:-.04em; line-height:1.35; }
.quote-amounts small { letter-spacing:0; }
.quote-amounts span,.commercial-terms span { letter-spacing:.025em; line-height:1.5; }
.external-quote-heading h2 { font-size:30px; font-weight:620; letter-spacing:-.035em; line-height:1.35; }
.report-card h2 { font-size:24px; font-weight:630; letter-spacing:-.025em; line-height:1.4; }
.report-card p,.report-content-list,.report-privacy { line-height:1.8; }
.formula-card h3,.pricing-detail h3,.chart-wrap h3 { font-weight:600; letter-spacing:.015em; }
.input-wrap input[type="number"],.data-table,.paper-mini-price { font-variant-numeric:tabular-nums; }
/* HTML chart labels retain a readable size instead of scaling with an SVG viewBox. */
.rent-comparison { min-width:0; margin-top:25px; }
.rent-comparison-row { min-width:0; margin-bottom:20px; }
.rent-comparison-label { display:flex; justify-content:space-between; align-items:baseline; gap:18px; margin-bottom:10px; font-size:14px; line-height:1.6; }
.rent-comparison-label>span:first-child { flex:none; font-weight:550; }
.rent-comparison-value { min-width:0; max-width:70%; text-align:right; overflow-wrap:anywhere; font-family:var(--font-display); font-variant-numeric:tabular-nums; font-weight:600; }
.rent-comparison-value.is-missing { color:var(--muted); font-size:14px; font-weight:400; }
.rent-comparison-track { position:relative; height:12px; overflow:hidden; border-radius:4px; background-color:rgb(21 30 48 / .035); background-image:linear-gradient(to right, rgb(21 30 48 / .08) 1px, transparent 1px); background-size:25% 100%; }
.rent-comparison-bar { display:block; height:100%; border-radius:4px; background:var(--ink); opacity:.35; }
.rent-comparison-row.target .rent-comparison-bar { background:var(--blue); opacity:1; }
.rent-comparison-row.tenant .rent-comparison-bar { background:var(--amber); opacity:.55; }
.rent-comparison-row.is-missing .rent-comparison-track { background-color:transparent; }
.rent-comparison-axis { display:flex; justify-content:space-between; gap:6px; margin-top:-7px; color:var(--muted); font-size:11px; line-height:1.6; font-variant-numeric:tabular-nums; }
.rent-comparison-axis>span { min-width:0; max-width:23%; overflow-wrap:anywhere; text-align:center; }
.rent-comparison-axis>span:first-child { text-align:left; }
.rent-comparison-axis>span:last-child { text-align:right; }
.rent-comparison-unit { margin-top:12px; text-align:right; color:var(--muted); font-size:11px; line-height:1.6; }
/* Small state changes keep controls legible and the current task in focus. */
.step,.audience-switch button,.icon-btn { transition:background .14s,color .14s,border-color .14s,box-shadow .14s,transform .14s; }
.step:not(.active):hover,.audience-switch button[aria-pressed="false"]:hover { background:var(--blue-soft); color:var(--blue); }
.icon-btn:hover:not(:disabled) { background:var(--blue-soft); border-color:rgb(37 99 235 / .25); }
.step:active:not(:disabled),.audience-switch button:active,.icon-btn:active:not(:disabled) { transform:scale(.985); }
.ledger-snapshot summary:hover,.mapping-section summary:hover { color:var(--blue); }
.ledger-snapshot summary svg { transition:transform .14s; }
.ledger-snapshot[open] summary svg { transform:rotate(180deg); }
@media (prefers-reduced-motion:reduce) {
  .step,.audience-switch button,.icon-btn,.ledger-snapshot summary svg { transition:none; }
  .step:active:not(:disabled),.audience-switch button:active,.icon-btn:active:not(:disabled) { transform:none; }
}
@media (max-width:1200px) {
  .page-heading h1 { font-size:36px; }
  .quote-amounts strong { font-size:28px; }
}
@media (max-width:650px) {
  .page-heading h1 { font-size:30px; line-height:1.3; letter-spacing:-.03em; }
  .page-heading p { font-size:12px; line-height:1.85; }
  .eyebrow { font-size:9px; letter-spacing:.1em; }
  .section-title h2 { font-size:18px; }
  .ledger-intro h2,.result-toolbar h2,.result-section-title h2 { font-size:23px; }
  .external-quote-heading h2 { font-size:26px; }
  .brand-name { font-size:18px; }
  .field label { font-size:12px; }
  .quote-amounts strong { font-size:30px; }
}

/* Project → floor / area → shop navigation. Keep the existing five colour families. */
.app-layout { grid-template-columns:280px minmax(0,1fr); }
.sidebar { width:280px; }
.project-switcher { min-width:0; }
.shop-search { margin:0 4px 12px; }
.shop-search input { width:100%; min-width:0; height:37px; padding:8px 11px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); color:var(--ink); font-size:12px; outline:none; transition:background .14s,border-color .14s,box-shadow .14s; }
.shop-search input::placeholder { color:var(--muted); }
.shop-search input:focus { background:var(--paper); border-color:var(--blue); box-shadow:0 0 0 3px var(--blue-soft); }
#project-tree-list { max-height:min(46vh,540px); min-height:100px; gap:8px; padding:2px 3px 4px; overscroll-behavior:contain; scrollbar-color:rgb(21 30 48 / .19) transparent; }
.project-tree { min-width:0; }
.project-node { min-width:0; border-radius:12px; }
.project-node .project-select { padding:9px 5px; gap:8px; }
.project-node .project-text { flex:1; }
.project-node .project-text strong { font-size:12px; line-height:1.55; }
.project-node .project-text small { margin-top:2px; font-size:10px; }
.project-expanded { display:grid; place-items:center; width:16px; flex:none; color:var(--muted); }
.project-expanded svg { width:12px; height:12px; transform:rotate(-90deg); transition:transform .15s; }
.project-toggle[aria-expanded="true"] .project-expanded svg { transform:rotate(0); }
.project-children { margin:6px 0 2px 9px; padding-left:10px; border-left:1px solid var(--line); animation:shop-reveal .15s ease-out; }
.shop-tree-toolbar { display:flex; align-items:center; gap:5px; min-width:0; padding:5px 2px 8px; }
.shop-tree-toolbar>span { flex:1; font-size:10px; color:var(--muted); white-space:nowrap; }
.shop-tree-toolbar button { display:inline-flex; justify-content:center; align-items:center; gap:2px; padding:3px 4px; min-height:27px; border:0; border-radius:6px; background:transparent; color:var(--muted); font-size:10px; white-space:nowrap; }
.shop-tree-toolbar button svg { width:11px; height:11px; }
.shop-tree-toolbar button:hover { color:var(--blue); background:var(--blue-soft); }
.shop-group { min-width:0; padding:2px 0; }
.shop-group>summary { list-style:none; display:flex; gap:5px; align-items:center; min-height:35px; padding:3px 4px; cursor:pointer; border-radius:8px; }
.shop-group>summary::-webkit-details-marker { display:none; }
.shop-group>summary:hover { background:rgb(21 30 48 / .025); }
.shop-group-name { display:flex; align-items:center; gap:5px; min-width:0; flex:1; font-size:11px; font-weight:600; overflow-wrap:anywhere; }
.shop-group-name svg { width:11px; height:11px; color:var(--muted); transform:rotate(-90deg); transition:transform .15s; }
.shop-group[open] .shop-group-name svg { transform:rotate(0); }
.shop-group-count { display:grid; place-items:center; min-width:19px; height:19px; padding:0 4px; border-radius:5px; background:var(--canvas); color:var(--muted); font-size:9px; font-variant-numeric:tabular-nums; }
.shop-group-actions { display:flex; gap:1px; flex:none; }
.shop-group-actions button,.shop-tree-edit { display:grid; place-items:center; width:24px; height:26px; padding:0; border:0; border-radius:6px; background:transparent; color:var(--muted); }
.shop-group-actions button svg,.shop-tree-edit svg { width:12px; height:12px; }
.shop-group-actions button:hover,.shop-tree-edit:hover { background:var(--paper); color:var(--blue); }
.shop-list { display:grid; gap:3px; padding:2px 0 5px 3px; }
.shop-tree-item { display:flex; align-items:center; min-width:0; border:1px solid transparent; border-radius:9px; transition:background .14s,border-color .14s; }
.shop-tree-item:hover { background:rgb(21 30 48 / .035); }
.shop-tree-item.active { background:var(--blue-soft); border-color:rgb(37 99 235 / .17); }
.shop-select { display:flex; align-items:center; flex:1; gap:7px; min-width:0; padding:9px 2px 9px 5px; text-align:left; border:0; border-radius:8px; background:transparent; color:var(--ink); }
.shop-select:focus-visible { outline-offset:-1px; }
.shop-symbol { display:grid; place-items:center; width:21px; height:23px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--muted); flex:none; }
.shop-symbol svg { width:11px; height:11px; }
.shop-tree-item.active .shop-symbol { border-color:transparent; color:var(--blue); }
.shop-text { flex:1; min-width:0; }
.shop-text strong { display:block; font-size:11px; line-height:1.5; font-weight:550; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.shop-text small { display:block; margin-top:2px; font-size:9px; line-height:1.45; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.shop-rent { max-width:67px; color:var(--muted); font-size:10px; line-height:1.45; font-variant-numeric:tabular-nums; text-align:right; overflow-wrap:anywhere; }
.shop-tree-item.active .shop-text strong,.shop-tree-item.active .shop-rent { color:var(--blue); }
.shop-tree-edit { width:23px; flex:none; margin-right:2px; }
.shop-empty { padding:10px 8px 13px; color:var(--muted); font-size:11px; line-height:1.7; }
.shop-context-bar { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:22px; padding:18px 22px; border:1px solid var(--line); border-radius:16px; background:rgb(255 255 255 / .78); }
.shop-context-bar>div { min-width:0; }
.shop-context-bar .eyebrow { font-size:10px; letter-spacing:.04em; margin-bottom:5px; }
.shop-context-title { font-size:24px; font-weight:620; line-height:1.35; letter-spacing:-.025em; overflow-wrap:anywhere; }
.shop-context-meta { margin-top:6px; color:var(--muted); font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.shop-context-bar>.button { flex:none; }
.summary-column { max-height:calc(100dvh - 104px); padding:1px 3px 1px 1px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgb(21 30 48 / .19) transparent; }
.shop-inspector { padding:20px; }
.shop-inspector-head { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:0; list-style:none; cursor:pointer; border-radius:8px; }
.shop-inspector-head::-webkit-details-marker { display:none; }
.shop-inspector-head::marker { content:""; }
.shop-inspector-head:hover h3,.shop-inspector-head:focus-visible h3 { color:var(--blue); }
.shop-inspector-head .text-link { pointer-events:none; }
.shop-inspector-head .text-link svg { width:13px; height:13px; transition:transform .15s; }
.shop-inspector[open]>.shop-inspector-head .text-link svg { transform:rotate(180deg); }
.shop-inspector-body { padding-top:17px; }
.shop-inspector-head .eyebrow { font-size:8px; margin-bottom:4px; letter-spacing:.13em; }
.shop-inspector-head h3 { font-size:16px; font-weight:620; }
.shop-inspector-head .badge { font-size:10px; }
.shop-inspector-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 10px; }
.shop-inspector-grid .field:first-child,.shop-inspector-grid .field:last-child { grid-column:1/-1; }
.shop-inspector-grid .field { min-width:0; gap:5px; }
.shop-inspector-grid .field label { font-size:11px; font-weight:500; color:var(--muted); }
.shop-inspector-grid .field:focus-within label { color:var(--blue); }
.shop-inspector-grid input,.shop-inspector-grid select { width:100%; min-width:0; min-height:38px; padding:8px 10px; border:1px solid rgb(21 30 48 / .13); border-radius:9px; background:rgb(243 245 248 / .45); color:var(--ink); font-size:12px; line-height:1.5; outline:none; transition:background .14s,border-color .14s,box-shadow .14s; }
.shop-inspector-grid input:focus,.shop-inspector-grid select:focus { background:var(--paper); border-color:var(--blue); box-shadow:0 0 0 3px var(--blue-soft); }
.shop-inspector-grid input[aria-invalid="true"] { border-color:var(--amber); }
.shop-inspector .form-error:empty { display:none; }
.shop-inspector .form-error { font-size:11px; }
.shop-inspector-actions { display:flex; justify-content:space-between; align-items:center; gap:9px; padding-top:15px; margin-top:17px; border-top:1px solid var(--line); }
.shop-inspector-actions .text-link { min-height:28px; font-size:10px; gap:4px; }
.shop-inspector-actions .text-link svg { width:12px; height:12px; }
.shop-inspector-actions [data-action="delete-shop"] { color:var(--muted); }
.shop-inspector-actions [data-action="delete-shop"]:hover { color:var(--amber); }
.modal .shop-inspector-grid { gap:17px 16px; }
.modal .shop-inspector-grid .field label { font-size:12px; }
.modal .shop-inspector-grid input,.modal .shop-inspector-grid select { min-height:44px; font-size:14px; }
.modal .shop-inspector-grid+.hint { margin-top:18px; color:var(--muted); font-size:11px; line-height:1.8; }
.mobile-shop-picker { display:none; }
@keyframes shop-reveal { from { opacity:.5; transform:translateY(-3px); } to { opacity:1; transform:none; } }
@media (max-width:1200px) {
  .app-layout { grid-template-columns:246px minmax(0,1fr); }
  .sidebar { width:246px; padding-inline:12px; }
  .project-node .project-symbol { width:28px; height:28px; border-radius:9px; }
  .project-node .project-select { gap:6px; }
  .project-node .project-text strong { font-size:11px; }
  .shop-rent { max-width:59px; font-size:9px; }
  .shop-text strong { font-size:10px; }
  .shop-context-title { font-size:22px; }
  .shop-inspector { padding:18px; }
}
@media (max-width:950px) {
  .summary-column { max-height:none; padding:0; overflow:visible; }
  .summary-column .shop-inspector { grid-column:1/-1; }
  .summary-column .shop-inspector-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .summary-column .shop-inspector-grid .field:first-child,.summary-column .shop-inspector-grid .field:last-child { grid-column:auto; }
  .shop-inspector-actions { justify-content:flex-start; gap:24px; }
}
@media (max-width:650px) {
  .app-layout { display:block; }
  .sidebar { width:100%; padding-inline:14px; }
  .shop-search { display:none; }
  #project-tree-list { display:none; }
  .mobile-shop-picker { display:flex; gap:6px; margin:0 3px 10px; }
  .mobile-shop-picker select { min-width:0; flex:1; height:37px; padding:5px 9px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:var(--paper); font-size:14px; }
  .mobile-shop-picker .icon-btn { flex:none; width:34px; height:35px; border-radius:9px; }
  .mobile-shop-picker .icon-btn svg { width:15px; height:15px; }
  .shop-context-bar { align-items:flex-start; gap:12px; padding:16px; margin-bottom:18px; border-radius:14px; }
  .shop-context-bar .eyebrow { font-size:9px; line-height:1.6; }
  .shop-context-title { font-size:22px; }
  .shop-context-meta { font-size:11px; }
  .shop-context-bar>.button { min-height:34px; padding:8px 9px; font-size:10px; gap:4px; }
  .shop-context-bar>.button svg { width:13px; height:13px; }
  .summary-column .shop-inspector-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .summary-column .shop-inspector-grid .field:first-child,.summary-column .shop-inspector-grid .field:last-child { grid-column:1/-1; }
  .shop-inspector-grid input,.shop-inspector-grid select { font-size:16px; min-height:42px; }
  .shop-inspector-grid .field label { font-size:12px; }
  .shop-inspector-actions { justify-content:space-between; gap:8px; }
  .shop-inspector-actions .text-link { font-size:11px; min-height:32px; }
  .shop-inspector-head h3 { font-size:17px; }
  .modal .shop-inspector-grid { gap:16px 12px; }
  .modal .shop-inspector-grid input,.modal .shop-inspector-grid select { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) {
  .project-children { animation:none; }
  .project-expanded svg,.shop-group-name svg,.shop-search input,.shop-tree-item,.shop-inspector-grid input,.shop-inspector-grid select,.shop-inspector-head .text-link svg { transition:none; }
}
