*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#0f0f1a;color:#e0e0f0;min-height:100vh}.app{max-width:1440px;margin:0 auto;padding:20px}.app-header{text-align:center;margin-bottom:24px}.app-header h1{font-size:28px;font-weight:700;background:linear-gradient(135deg,#6cf,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{color:#88a;font-size:14px;margin-top:4px}.main-grid{display:grid;grid-template-columns:180px 1fr 380px;gap:16px;margin-bottom:20px}.cargo-form{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;padding:20px}.cargo-form h2{font-size:16px;margin-bottom:12px;color:#abd}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:6px 8px;color:#68a;font-weight:500;border-bottom:1px solid #2a2a4a;white-space:nowrap}td{padding:4px 6px;border-bottom:1px solid #22223a}td input[type=text],td input[type=number]{width:100%;min-width:60px;padding:6px 8px;background:#12122a;border:1px solid #2a2a4a;border-radius:6px;color:#e0e0f0;font-size:13px;outline:none;transition:border-color .2s}td input:focus{border-color:#6cf}td input[type=checkbox]{width:18px;height:18px;accent-color:#66ccff;cursor:pointer;display:block;margin:0 auto}.btn-del{background:none;border:none;color:#ff6b6b;cursor:pointer;font-size:16px;padding:4px 8px;opacity:.6;transition:opacity .2s}.btn-del:hover:not(:disabled){opacity:1}.btn-del:disabled{opacity:.2;cursor:default}.form-actions{display:flex;gap:12px;margin-top:16px;justify-content:space-between;align-items:center;flex-wrap:wrap}.mode-toggle{display:flex;align-items:center;gap:8px}.mode-label{font-size:13px;color:#89a;margin-right:2px}.mode-hint{font-size:11px;color:#5f7185;margin-left:2px;white-space:nowrap}.mode-btn{padding:8px 18px;border:1px solid #3a3a5a;border-radius:8px;background:transparent;color:#89a;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.mode-btn:hover{border-color:#6cf;color:#6cf}.mode-btn.active{background:linear-gradient(135deg,#6cf,#7c5cfc);border-color:transparent;color:#fff}.form-actions-right{display:flex;gap:12px}.mode-tag{font-size:12px;padding:2px 10px;border-radius:999px;background:#2a2a4a;color:#8ac;border:1px solid #3a3a5a;margin-left:6px}.btn-add,.btn-calc,.btn-clear{padding:10px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-add{background:#2a2a4a;color:#8ac}.btn-add:hover{background:#3a3a5a}.btn-clear{background:transparent;color:#876;border:1px solid #4a3a2a}.btn-clear:hover{background:#2a1a0a;color:#c86;border-color:#c86}.btn-calc{background:linear-gradient(135deg,#6cf,#7c5cfc);color:#fff}.btn-calc:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #66ccff4d}.btn-calc:disabled{opacity:.5;cursor:wait}.export-gap{margin-top:20px}.btn-export{width:100%}.export-waiting{margin-top:14px;padding:14px 16px;border-radius:10px;background:linear-gradient(135deg,#7c5cfc2e,#66ccff24);border:1px solid #66ccff;box-shadow:0 0 18px #66ccff40;animation:exportPulse 1.6s ease-in-out infinite}.export-waiting-title{font-size:16px;font-weight:700;color:#6cf;margin-bottom:4px}.export-waiting-sub{font-size:13px;color:#bcd;line-height:1.5}@keyframes exportPulse{0%,to{box-shadow:0 0 12px #66ccff2e}50%{box-shadow:0 0 26px #66ccff6b}}.result-panel{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;padding:20px}.result-panel h2{font-size:16px;margin-bottom:12px;color:#abd}.result-panel .empty{color:#55557a;font-size:13px;text-align:center;padding:40px 0}.best-card{background:linear-gradient(135deg,#1a2a3e,#1e1a3a);border:1px solid #3366aa;border-radius:12px;padding:16px;margin-bottom:16px}.best-badge{display:inline-block;background:linear-gradient(135deg,#f5af19,#f12711);color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;margin-bottom:8px}.best-type{font-size:28px;font-weight:800;color:#fff}.best-note{color:#68a;font-size:12px;margin-bottom:12px}.best-metrics{margin-bottom:12px}.metric{margin-bottom:8px}.metric-label{font-size:12px;color:#88a;display:block;margin-bottom:3px}.metric-value{font-size:12px;color:#6cf;float:right;font-weight:600}.bar{height:6px;background:#22223a;border-radius:3px;overflow:hidden;margin-top:2px}.bar-fill{height:100%;background:linear-gradient(90deg,#6cf,#a78bfa);border-radius:3px;transition:width .5s ease}.bar-fill.weight{background:linear-gradient(90deg,#f5af19,#f12711)}.best-detail{display:flex;justify-content:space-between;font-size:12px;color:#88a;margin-bottom:8px}.suggest{background:#1a3a2a;border:1px dashed #44bb88;border-radius:8px;padding:8px 12px;font-size:13px;color:#6db}.suggest strong{color:#fff}.complexity-info{margin-top:12px;padding-top:12px;border-top:1px solid #22223a}.score-title{font-size:11px;color:#568;margin-bottom:4px}.score-row{font-size:11px;color:#78a;font-family:monospace;line-height:1.6}.balance-info{margin-top:12px;padding-top:12px;border-top:1px solid #22223a}.balance-info .sep{margin:0 6px}.bal-ok{margin-left:8px;padding:1px 6px;border-radius:8px;font-size:11px}.bal-ok.ok{color:#3ecf8e;background:#3ecf8e1f}.bal-ok.bad{color:#ff6b6b;background:#ff6b6b1f}.doorzone-info{margin-top:12px;padding:8px 12px;border-radius:8px;font-size:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.doorzone-info.ok{background:#1a3a2a;border:1px dashed #44bb88;color:#6db}.doorzone-info.bad{background:#3a1a1a;border:1px dashed #ff6b6b;color:#ff9b9b}.doorzone-info strong{color:#fff}.doorzone-title{font-weight:600}.doorzone-note{font-size:11px;opacity:.85;width:100%}.compare-list h3{font-size:13px;color:#68a;margin-bottom:8px}.compare-item{display:grid;grid-template-columns:50px 1fr 30px;gap:8px;align-items:center;padding:8px;border-radius:8px;cursor:pointer;transition:background .2s}.compare-item:hover,.compare-item.active{background:#22223a}.cmp-name{font-weight:700;font-size:14px;color:#cce}.cmp-util{font-size:12px;color:#6cf;font-weight:600}.cmp-bar{height:4px;background:#22223a;border-radius:2px;overflow:hidden}.cmp-fill{height:100%;background:linear-gradient(90deg,#46a,#86c);border-radius:2px}.cmp-rank{font-size:11px;color:#55557a;text-align:right}.viz-section{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;overflow:hidden}.container-3d-wrap{position:relative;height:520px}.container-3d{width:100%;height:520px}.container-3d canvas{display:block}.top-right-controls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:stretch;gap:8px;z-index:5}.btn-pause{width:auto;height:40px;border:1px solid #44446a;border-radius:8px;background:#1a1a2ee0;color:#8ac;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-pause:hover{background:#2a2a4ae0;color:#6cf;border-color:#6cf}.slice-toggle{padding:0 10px;font-size:13px;gap:6px;-webkit-user-select:none;user-select:none;cursor:pointer}.slice-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#66ccff}.legend{position:absolute;top:12px;left:12px;background:#1a1a2ee0;border:1px solid #33335a;border-radius:8px;padding:8px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);max-height:calc(100% - 24px);overflow-y:auto}.legend-item{display:flex;align-items:center;gap:6px;padding:2px 0}.legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}.legend-label{font-size:11px;color:#bcd;white-space:nowrap}.view-btns{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#1a1a2ee0;border:1px solid #33335a;border-radius:8px;padding:6px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.view-label{font-size:12px;color:#89b;margin-right:2px}.view-btns button{border:1px solid #44446a;border-radius:6px;background:#26264a;color:#bcd;font-size:12px;padding:4px 10px;cursor:pointer;transition:all .2s}.view-btns button:hover{background:#2a2a4ae0;color:#6cf;border-color:#6cf}.dpad-sep{width:1px;height:22px;background:#33335a;margin:0 2px}.dpad{display:grid;grid-template-columns:26px 26px 26px;grid-template-rows:22px 22px;grid-template-areas:". up ." "left down right";gap:2px;margin-left:2px}.dpad-btn{padding:0!important;line-height:20px;text-align:center}.dpad-btn:nth-child(1){grid-area:up}.dpad-btn:nth-child(2){grid-area:left}.dpad-btn:nth-child(3){grid-area:down}.dpad-btn:nth-child(4){grid-area:right}.legend-right{position:absolute;right:12px;bottom:12px;background:#1a1a2ee0;border:1px solid #33335a;border-radius:8px;padding:8px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:4px}.cog-dot{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f77,#f33 60%,#a11);box-shadow:0 0 6px #f009;flex-shrink:0}.meter-scale{display:flex;align-items:center;width:46px;height:14px;flex-shrink:0}.meter-dot{width:9px;height:9px;border-radius:50%;background:var(--dot-color, #ff3322);flex-shrink:0}.meter-line{flex:1;height:2px;background:var(--line-color, #ff5544)}.container-specs{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;padding:20px;margin-top:20px}.container-specs h2{font-size:16px;color:#abd;margin-bottom:16px}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.spec-group h3{font-size:14px;color:#8ac;margin-bottom:10px}.spec-table{width:100%;font-size:12px}.spec-table th{padding:6px;color:#568;font-weight:500;border-bottom:1px solid #2a2a4a;white-space:nowrap;text-align:center}.spec-table td{padding:6px;border-bottom:1px solid #1e1e36;text-align:center;color:#bcd;font-variant-numeric:tabular-nums}.spec-table .spec-id{font-weight:700;color:#6cf;text-align:left}.spec-table tbody tr:hover td{background:#22223a}@media(max-width:900px){.spec-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#11112a}::-webkit-scrollbar-thumb{background:#33335a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#44446a}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f1ed9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-spinner{width:48px;height:48px;border:4px solid #2a2a4a;border-top-color:#6cf;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:16px;font-size:15px;color:#abd;font-weight:500}.hist-col{min-width:0}.hist-panel{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:12px;padding:16px;max-height:70vh;overflow-y:auto}.hist-panel h3{font-size:13px;color:#68a;margin-bottom:12px}.hist-empty{font-size:12px;color:#55557a;text-align:center;padding:20px 0}.hist-item{padding:10px 8px;border-radius:8px;cursor:pointer;transition:background .2s;margin-bottom:4px;position:relative;border:1px solid transparent}.hist-item:hover{background:#22223a}.hist-item.active{background:#1a2a4a;border-color:#36a}.hist-name{font-size:13px;color:#cce;font-weight:600;margin-bottom:2px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hist-meta{font-size:11px;color:#55557a}.hist-actions{position:absolute;top:4px;right:4px;display:none;gap:2px}.hist-item:hover .hist-actions{display:flex}.hist-rename,.hist-del{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 6px;transition:opacity .2s;opacity:.6}.hist-rename{color:#8ac}.hist-del{color:#ff6b6b}.hist-rename:hover,.hist-del:hover{opacity:1}.form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.form-header h2{font-size:16px;color:#abd;margin:0}.btn-upload{padding:6px 14px;background:#2a2a4a;color:#8ac;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;border:1px solid #3a3a5a}.btn-upload:hover{background:#3a3a5a;border-color:#6cf}.form-header-actions{display:flex;gap:8px;align-items:center}.btn-download{padding:6px 14px;background:transparent;color:#79b;border:1px solid #3a3a5a;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;font-family:inherit}.btn-download:hover{background:#2a2a4a;border-color:#6cf;color:#6cf}.multi-tabs{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.multi-tab{padding:8px 16px;background:#1a1a2e;border:1px solid #2a2a4a;border-radius:8px;color:#88a;font-size:13px;cursor:pointer;transition:all .2s;font-family:inherit}.multi-tab:hover{border-color:#6cf;color:#cce}.multi-tab.active{background:linear-gradient(135deg,#1a3a5a,#2a1a4a);border-color:#46c;color:#6cf;font-weight:600}.multi-tab-util{margin-left:6px;font-size:11px;opacity:.7}.multi-warn{margin-top:8px;padding:8px 12px;background:#3a2a1a;border:1px dashed #cc8844;border-radius:8px;font-size:12px;color:#db6}.multi-summary{font-size:13px;color:#88a;margin-bottom:12px;padding:8px 12px;background:#16162a;border-radius:8px}.multi-summary .warn-text{color:#db6;margin-left:4px}.plan-actions{margin-bottom:12px}.btn-plan{padding:8px 16px;border:1px solid #4499cc;border-radius:8px;background:#12263a;color:#6cf;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.btn-plan:hover:not(:disabled){background:#1a3a5a;border-color:#6cf}.btn-plan:disabled{opacity:.7;cursor:default}.cmp-detail{font-size:11px;color:#55557a;text-align:right}@media(max-width:1100px){.main-grid{grid-template-columns:1fr 300px}.hist-col{display:none}}@media(max-width:700px){.main-grid{grid-template-columns:1fr}}@media(max-width:560px){.app{padding:10px}.app-header h1{font-size:20px}.app-header{margin-bottom:16px}.table-wrap{overflow:visible}.table-wrap thead{display:none}.table-wrap tbody tr{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 10px;padding:10px;margin-bottom:10px;background:#141430;border:1px solid #2a2a4a;border-radius:12px;position:relative}.table-wrap tbody td{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:2px 0;border:none;min-width:0}.table-wrap tbody td:before{content:attr(data-label);color:#68a;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-wrap tbody td:last-child{position:absolute;top:-8px;right:-6px}.table-wrap td input[type=text],.table-wrap td input[type=number]{min-width:0;min-height:34px;text-align:right}.table-wrap td input[type=checkbox]{width:22px;height:22px;margin:0}.collapse-bar{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:6px 12px;background:#1f1f3a;border:1px dashed #3a3a5a;border-radius:8px;font-size:12.5px;color:#89a}.btn-collapse{padding:4px 14px;border:1px solid #44446a;border-radius:6px;background:#26264a;color:#bcd;font-size:12.5px;cursor:pointer;transition:all .2s}.btn-collapse:hover{background:#2a2a4ae0;color:#6cf;border-color:#6cf}.form-actions{flex-direction:column;align-items:stretch;gap:10px}.mode-toggle{flex-wrap:wrap}.mode-hint{white-space:normal;line-height:1.4}.form-actions-right{justify-content:space-between}.btn-add,.btn-calc,.btn-clear{flex:1;min-height:44px}.container-3d,.container-3d-wrap{height:70vh}.legend{max-width:27vw;max-height:calc(100% - 96px);padding:6px 8px}.legend .legend-label{font-size:10px}.legend .legend-dot{width:10px;height:10px}.legend-right,.spec-table thead{display:none}.spec-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:10px;margin-bottom:10px;background:#141430;border:1px solid #2a2a4a;border-radius:12px}.spec-table tbody td{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0;border:none}.spec-table tbody td:before{content:attr(data-label);color:#68a;font-size:11px;white-space:nowrap}.spec-table tbody td.spec-id{grid-column:1 / -1;font-size:14px;justify-content:flex-start}.spec-table tbody tr:hover td{background:none}.multi-tab{flex:1;text-align:center}.hist-panel{max-height:40vh}}.container-select{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;padding:12px 14px;background:#66ccff0f;border:1px solid rgba(102,204,255,.2);border-radius:10px}.container-select label{font-size:13px;font-weight:600;color:#9fc7ff;letter-spacing:.5px}.container-select select{width:100%;padding:10px 12px;background:#1a1a2e;color:#e0e0f0;border:1px solid rgba(167,139,250,.35);border-radius:8px;font-size:14px;cursor:pointer;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.container-select select:focus{border-color:#6cf;box-shadow:0 0 0 2px #6cf3}.container-select optgroup{background:#14142a;color:#a78bfa;font-weight:700}.container-select option{background:#1a1a2e;color:#e0e0f0}.blueprint-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#f0f0f3;overflow:auto;padding:16px}.bp-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:12px;align-items:center;background:#1a1a2e;color:#e0e0f0;padding:10px 16px;border-radius:8px;margin-bottom:16px}.bp-toolbar .btn-calc{margin:0}.btn-ghost{background:#33334d}.bp-body{display:flex;flex-direction:column;align-items:center}.bp-section-title{width:100%;max-width:210mm;margin:18px 0 8px;font-weight:700;color:#222}.bp-page{width:210mm;min-height:297mm;background:#fff;box-sizing:border-box;padding:10mm;margin-bottom:12px;box-shadow:0 2px 10px #0003;color:#111}.bp-page-head{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;font-weight:700;border-bottom:2px solid #222;padding-bottom:6px;margin-bottom:8px}.bp-svg{width:100%;height:auto;display:block;background:#fff}.bp-page-note{margin-top:8px;font-size:11px;color:#666;text-align:center}.bp-legend{padding:15mm 10mm}.bp-legend h3{font-size:16px;margin-bottom:10px}.bp-legend-table{width:100%;border-collapse:collapse;font-size:12px}.bp-legend-table th,.bp-legend-table td{border:1px solid #ccc;padding:4px 8px;text-align:left}.bp-swatch{display:inline-block;width:14px;height:14px;border:1px solid #333;vertical-align:middle}.bp-abbr{font-weight:700}.bp-page-row{display:flex;gap:10px;align-items:flex-start}.bp-side{flex:0 0 auto;width:40%;min-width:0}.bp-side .bp-svg{width:100%;height:auto}.bp-steps-col{flex:1 1 auto;min-width:0}.bp-sideview-title{margin:2px 0 4px;font-size:11px;font-weight:700;color:#555;text-align:left}.bp-steps{display:flex;flex-direction:column;gap:6px}.bp-step{background:#fff;border:1px solid #ddd;border-radius:4px;padding:4px}.bp-step-title{font-size:10.5px;font-weight:700;color:#444;margin-bottom:2px}.bp-lane-svg{width:100%;height:auto;display:block;background:#fff}.bp-step-current rect{stroke-width:4}.bp-plan{margin-top:8px;font-family:Cascadia Mono,Consolas,Courier New,monospace;font-size:10.5px;line-height:1.45;background:#fafafa;border:1px solid #ddd;border-radius:4px;padding:6px 8px;white-space:pre-wrap;word-break:break-word}.bp-plan-line{white-space:pre}.bp-stance-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.bp-stance-table td{border:1px solid #ccc;padding:3px 8px}.bp-legend h4{font-size:13px;margin:14px 0 4px}@media print{body *{visibility:hidden}.blueprint-root,.blueprint-root *{visibility:visible}.blueprint-root{position:absolute;inset:auto;background:#fff;padding:0;overflow:visible}.no-print{display:none!important}.bp-page{box-shadow:none;margin:0;page-break-after:always;width:auto;min-height:auto}.bp-section-title{color:#000}}
