:root{--bg:#0b0e14;--surface:#131826;--surface-2:#1a2133;--border:#263049;--text:#e8ecf4;--text-dim:#8b94a8;--accent:#4f8ef7;--positive:#e74c3c;--negative:#3498db;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}:root[data-theme=light]{--bg:#f5f7fb;--surface:#fff;--surface-2:#eef1f7;--border:#d5dbe8;--text:#1c2333;--text-dim:#5b6478;--accent:#2f6fe0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--accent);text-decoration:none}button{font-family:inherit}.theme-toggle{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text-dim);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,color .15s,transform .15s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);color:var(--text);transform:rotate(15deg)}.home{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:48px 24px}.home-topbar{justify-content:flex-end;margin-bottom:8px;display:flex}.home-header{text-align:center;margin-bottom:48px}.home-header h1{background:linear-gradient(90deg,#4f8ef7,#9b6bf7);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 8px;font-size:2.4rem}.home-header p{color:var(--text-dim);margin:0;font-size:1.1rem}.sim-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.sim-card{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:14px;flex-direction:column;gap:10px;padding:28px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.sim-card:not(.sim-card--disabled):hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 30px #4f8ef726}.sim-card--disabled{opacity:.55;cursor:default}.sim-icon{font-size:2.2rem;line-height:1}.sim-card h2{margin:0;font-size:1.25rem}.sim-card p{color:var(--text-dim);flex:1;margin:0;font-size:.95rem}.sim-cta{color:var(--accent);font-size:.95rem;font-weight:600}.sim-badge{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;align-self:flex-start;padding:3px 10px;font-size:.8rem}.cf-page{flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.cf-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:18px;padding:12px 20px;display:flex}.cf-back{white-space:nowrap;font-weight:600}.cf-header h1{white-space:nowrap;margin:0;font-size:1.2rem}.cf-mode{border:1px solid var(--border);background:var(--surface-2);color:#aeb7c9;cursor:pointer;white-space:nowrap;border-radius:999px;margin-left:auto;padding:6px 14px;font-size:.85rem;font-weight:600;transition:border-color .1s,background .1s,color .1s}.cf-mode:hover{border-color:var(--accent)}.cf-mode.is-on{border-color:var(--accent);color:#c7dbfc;background:#4f8ef733}.cf-interval{border:1px solid var(--accent);color:var(--text-dim);white-space:nowrap;background:#4f8ef71a;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;display:flex}.cf-interval input{width:52px;color:var(--text);text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;font-size:.85rem;font-weight:700}.cf-scale{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;margin-left:0;padding:4px 12px;font-size:.85rem}.cf-body{flex:1;min-height:0;display:flex}.cf-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:20px;width:290px;padding:18px;display:flex;overflow-y:auto}.cf-section h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);align-items:center;gap:8px;margin:0 0 12px;font-size:.8rem;font-weight:700;display:flex}.cf-count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:.75rem;display:inline-flex}.cf-field>span{color:var(--text-dim);margin-bottom:6px;font-size:.88rem;display:block}.cf-input-unit{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;align-items:stretch;display:flex;overflow:hidden}.cf-input-unit:focus-within{border-color:var(--accent)}.cf-input-unit input{min-width:0;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;flex:1;padding:9px 12px;font-size:1.05rem;font-weight:600}.cf-unit{color:var(--accent);border-left:1px solid var(--border);background:#4f8ef71f;align-items:center;padding:0 12px;font-size:.9rem;font-weight:700;display:flex}.cf-input-unit--small input{padding:6px 10px;font-size:.92rem}.cf-input-unit--small .cf-unit{padding:0 9px;font-size:.8rem}.cf-add-buttons{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.cf-add{cursor:pointer;border:1.5px solid;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;font-size:.9rem;font-weight:700;transition:transform .1s,filter .1s;display:flex}.cf-add:hover{filter:brightness(1.15);transform:translateY(-1px)}.cf-add:active{transform:translateY(0)}.cf-add-symbol{font-size:1.6rem;font-weight:800;line-height:1}.cf-add--positive{color:#ffc4bc;background:#e74c3c29;border-color:#e74c3c8c}.cf-add--negative{color:#bfe2fa;background:#3498db29;border-color:#3498db8c}.cf-add--sensor{color:#f7e3a1;background:#f1c40f1f;border-color:#f1c40f80;flex-direction:row;grid-column:1/-1;justify-content:center;gap:10px;padding:10px 8px}.cf-add--sensor .cf-add-symbol{font-size:1.15rem}.cf-add--equip{color:#bdf0cb;background:#5ee07d1a;border-color:#5ee07d73;flex-direction:row;grid-column:1/-1;justify-content:center;gap:10px;padding:10px 8px}.cf-add--equip .cf-add-symbol{font-size:1.15rem}.cf-add--equip.is-active{background:#5ee07d38}.cf-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.92rem;transition:background .1s;display:flex}.cf-toggle:hover{background:var(--surface-2)}.cf-toggle input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.cf-section--list{flex-direction:column;flex:1;min-height:0;display:flex}.cf-list-empty{color:var(--text-dim);margin:0;font-size:.88rem}.cf-charge-list{flex-direction:column;flex:1;gap:8px;min-height:0;margin:0;padding:0 2px 0 0;list-style:none;display:flex;overflow-y:auto}.cf-charge-list li{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;padding:7px 9px;transition:background .1s,border-color .1s;display:flex}.cf-charge-list li:hover{background:var(--surface-2)}.cf-charge-list li.is-selected{background:var(--surface-2);border-color:var(--accent)}.cf-dot{color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:1rem;font-weight:800;display:flex;box-shadow:inset 0 -2px 4px #00000040}.cf-dot--sensor{color:#3a2f04;background:#f1c40f;font-size:.8rem}.cf-distance-block{background:#f1c40f0d;flex-direction:column;margin:-2px 0 4px 12px;cursor:default!important;border-left:2px solid #f1c40f73!important;border-radius:0 10px 10px 0!important;align-items:stretch!important;gap:7px!important;padding:10px 12px!important}.cf-distance-block--charge{background:#9b6bf70f;border-left-color:#9b6bf78c!important}.cf-distance-block--charge .cf-distance-title{color:#e6dcfb}.cf-distance-title{text-transform:uppercase;letter-spacing:.05em;color:#f0dfa0;font-size:.75rem;font-weight:700}.cf-distance-row{align-items:center;gap:8px;display:flex}.cf-mini-dot{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.8rem;font-weight:800;display:flex}.cf-distance-label{color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;flex:1;font-size:.85rem}.cf-distance-row .cf-input-unit{flex-shrink:0;width:110px}.cf-distance-hint{color:var(--text-dim);font-size:.76rem;line-height:1.4}.cf-item-fields{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.cf-name-input{width:100%;min-width:0;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:3px 6px;font-size:.88rem;font-weight:600;transition:border-color .1s,background .1s}.cf-name-input::placeholder{color:var(--text-dim);font-weight:400}.cf-name-input:hover{border-color:var(--border)}.cf-name-input:focus{border-color:var(--accent);background:var(--surface-2);outline:none}.cf-coord-row{flex-direction:column;gap:5px;display:flex}.cf-coord-row .cf-input-unit{width:100%;min-width:0}.cf-coord-row .cf-input-unit input{text-align:right;padding:6px 8px}.cf-axis{color:#b9d2fb;border-right:1px solid var(--border);background:#4f8ef71f;flex-shrink:0;justify-content:center;align-items:center;width:26px;font-size:.8rem;font-weight:700;display:flex}.cf-coord-row .cf-unit{justify-content:center;width:38px;padding:0;font-size:.78rem}.cf-distance-value{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-weight:600}.cf-remove{width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;font-size:.85rem;transition:background .1s,color .1s}.cf-remove:hover{color:#ffc4bc;background:#e74c3c2e}.cf-clear{border:1px solid var(--border);color:#aeb7c9;cursor:pointer;background:0 0;border-radius:10px;margin-top:12px;padding:8px;font-size:.88rem;font-weight:600;transition:border-color .1s,color .1s}.cf-clear:hover{color:#ffc4bc;border-color:#e74c3c8c}.cf-help{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:10px;margin:auto 0 0;padding:12px;font-size:.84rem;line-height:1.5}.cf-stage{flex:1;min-width:0;min-height:0;position:relative}.cf-stage canvas{cursor:crosshair;touch-action:none;display:block}.cf-zoom{border:1px solid var(--border);background:#131826eb;border-radius:12px;flex-direction:column;align-items:stretch;display:flex;position:absolute;top:14px;right:14px;overflow:hidden}.cf-zoom button{width:40px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;font-size:1.15rem;font-weight:700;transition:background .1s}.cf-zoom button:hover{background:var(--surface-2)}.cf-zoom-value{text-align:center;color:var(--text-dim);border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:3px 0;font-size:.72rem}.cf-zoom-reset{border-top:1px solid var(--border)!important;font-size:.95rem!important}.cf-empty{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cf-empty-card{border:1px solid var(--border);text-align:center;background:#131826eb;border-radius:16px;max-width:340px;padding:28px 36px}.cf-empty-icon{margin-bottom:8px;font-size:2rem;display:block}.cf-empty-card strong{font-size:1.1rem}.cf-empty-card ol{text-align:left;color:var(--text-dim);flex-direction:column;gap:6px;margin:14px 0 0;padding-left:22px;font-size:.92rem;display:flex}.cf-empty-card em{color:var(--text);font-style:normal;font-weight:600}.cf-eq-tool{z-index:5;width:0;height:0;position:absolute}.cf-eq-crosshair{cursor:grab;touch-action:none;background:linear-gradient(#fff,#fff) 50%/2px 100% no-repeat,#13182666 linear-gradient(#fff,#fff) 50%/100% 2px no-repeat;border:2.5px solid #fff;border-radius:50%;width:30px;height:30px;padding:0;position:absolute;top:-15px;left:-15px;box-shadow:0 0 8px #0009}.cf-eq-crosshair:active{cursor:grabbing}.cf-eq-card{background:#18203af5;border:1px solid #3a4a7a;border-radius:12px;flex-direction:column;gap:7px;min-width:128px;padding:10px 12px;display:flex;position:absolute;top:20px;left:0;transform:translate(-50%);box-shadow:0 6px 20px #00000073}.cf-eq-title{text-align:center;color:#c9d4f0;font-size:.78rem;font-weight:700}.cf-eq-value{text-align:center;border:1px solid var(--border);color:#f5e9b8;font-variant-numeric:tabular-nums;background:#0b0e14;border-radius:8px;padding:5px 8px;font-size:.95rem;font-weight:700}.cf-eq-actions{justify-content:center;gap:6px;display:flex}.cf-eq-actions button{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:8px;width:34px;height:30px;font-size:.9rem;transition:filter .1s}.cf-eq-actions button:hover:not(:disabled){filter:brightness(1.3)}.cf-eq-actions button:disabled{opacity:.4;cursor:default}.cf-modal-backdrop{z-index:20;background:#0508108c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cf-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:16px;width:280px;padding:20px;display:flex;box-shadow:0 12px 44px #0000008c}.cf-modal h3{margin:0;font-size:1rem}.cf-modal-fields{flex-direction:column;gap:12px;display:flex}.cf-modal-fields .cf-input-unit input{width:100%}.cf-modal-actions{justify-content:flex-end;gap:10px;display:flex}.cf-modal-actions button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:9px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:filter .1s}.cf-modal-actions button:hover{filter:brightness(1.2)}.cf-modal-actions .is-primary{background:var(--accent);border-color:var(--accent);color:#fff}.cf-readout{border:1px solid var(--border);font-variant-numeric:tabular-nums;color:var(--text-dim);pointer-events:none;background:#131826eb;border-radius:12px;gap:10px;padding:9px 14px;font-size:.86rem;display:flex;position:absolute;bottom:14px;left:14px}.cf-readout-item strong{color:var(--text)}:root[data-theme=light] .cf-add--positive{color:#a92e20}:root[data-theme=light] .cf-add--negative{color:#14568f}:root[data-theme=light] .cf-add--sensor{color:#7c5e00}:root[data-theme=light] .cf-add--equip{color:#1a6e38}:root[data-theme=light] .cf-mode.is-on{color:#1d4fa8}:root[data-theme=light] .cf-axis{color:#274b8f}:root[data-theme=light] .cf-distance-title{color:#7c5e00}:root[data-theme=light] .cf-distance-block--charge .cf-distance-title{color:#5b3fa8}:root[data-theme=light] .cf-clear{color:#5b6478}:root[data-theme=light] .cf-clear:hover,:root[data-theme=light] .cf-remove:hover{color:#a92e20}:root[data-theme=light] .cf-empty-card,:root[data-theme=light] .cf-readout,:root[data-theme=light] .cf-zoom{background:#fffffff0}:root[data-theme=light] .cf-eq-card{border-color:var(--border);background:#fffffff7}:root[data-theme=light] .cf-eq-title{color:#3c4763}:root[data-theme=light] .cf-eq-value{background:var(--surface-2);color:#7c5e00}:root[data-theme=light] .cf-eq-crosshair{background:linear-gradient(#1c2333,#1c2333) 50%/2px 100% no-repeat,#fff6 linear-gradient(#1c2333,#1c2333) 50%/100% 2px no-repeat;border-color:#1c2333}@media (width<=760px){.cf-body{flex-direction:column}.cf-panel{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:45vh}}
