@font-face{font-family:Noto Sans JP;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-jp-japanese-400-normal-C7ZJEbOP.woff2)format("woff2"),url(/assets/noto-sans-jp-japanese-400-normal-Cz5vNlQ5.woff)format("woff")}@font-face{font-family:Noto Sans JP;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-jp-japanese-500-normal-DQLMyWIX.woff2)format("woff2"),url(/assets/noto-sans-jp-japanese-500-normal-CaN3BSiH.woff)format("woff")}@font-face{font-family:Noto Sans JP;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-jp-japanese-600-normal-DGzj4jEH.woff2)format("woff2"),url(/assets/noto-sans-jp-japanese-600-normal-D5376clc.woff)format("woff")}:root{--accent:#0e9e6b;--accent-soft:#0e9e6b1f;--accent-border:#0e9e6b59;--bg:#f3f6f4;--surface:#fff;--text:#1f2933;--muted:#5c6b66;--border:#dce5e0;--danger:#c43d3d;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow:0 12px 40px #12262014;--font:"Noto Sans JP", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(circle at 20% 0%, #e8f5ef, var(--bg) 45%);margin:0}button,input,select{font-family:inherit}.app-shell{flex-direction:column;gap:16px;max-width:1680px;min-height:100%;margin:0 auto;padding:20px;display:flex}.topbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark{background:linear-gradient(145deg, #11b67a, var(--accent));border-radius:14px;width:42px;height:42px;box-shadow:inset 0 0 0 1px #ffffff40}.brand h1{margin:0;font-size:1.25rem;font-weight:600}.brand p{color:var(--muted);margin:2px 0 0;font-size:.86rem}.top-controls{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.workspace{grid-template-columns:minmax(420px,1.1fr) minmax(380px,.9fr);gap:16px;min-height:520px;display:grid}.left-stack,.right-stack{min-height:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;gap:12px;height:100%;padding:18px;display:flex}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.panel h2,.panel h3{margin:0;font-size:1.05rem;font-weight:600}.chart-panel{min-height:540px}.chart-stage{border-radius:var(--radius-md);border:1px dashed var(--border);background:linear-gradient(#fbfdfc,#fff);flex:1;min-height:460px;position:relative;overflow:hidden}.chart-stage .echarts-for-react,.chart-stage .chart-canvas{border-radius:var(--radius-md);overflow:hidden}.chart-stage--combo .chart-canvas{z-index:1;position:relative}.annotation-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.annotation-layer-over{z-index:2}.combo-line-layer{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.annotation-layer .ann text,.annotation-layer .ann g[transform],.annotation-layer .ann path{pointer-events:auto;cursor:grab}.preset-row{flex-wrap:wrap;gap:6px;display:flex}.preset-row button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:600}.preset-row button:hover{border-color:var(--accent);background:var(--accent-soft)}.chart-note{color:var(--muted);margin:0;font-size:.82rem}.sheet-wrap{border-radius:var(--radius-md);border:1px solid var(--border);flex:1;overflow:auto}.sheet{border-collapse:separate;border-spacing:0;width:100%;font-size:.9rem}.sheet th,.sheet td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:#fff;padding:0}.sheet th.corner{background:#f7faf8;min-width:120px}.head-input,.cell-input{background:0 0;border:0;width:100%;min-width:84px;padding:10px 12px}.head-input{color:var(--muted);font-weight:600}.cell.active{box-shadow:inset 0 0 0 2px var(--accent)}.cell-input:focus{background:var(--accent-soft);outline:none}.settings-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel.compact{min-height:unset}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.86rem;display:flex}.field.inline{min-width:200px}.field.pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}input,select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:#fff;padding:10px 12px}input[type=color]{height:42px;padding:4px}.field.range-field{gap:8px}.range-row{align-items:center;gap:12px;display:flex}.range-value{min-width:3.2em;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}input[type=range]{appearance:none;background:linear-gradient(90deg, var(--accent-soft), #e8efe9);border:1px solid var(--accent-border);border-radius:999px;width:100%;height:8px;padding:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border:2px solid #fff;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 8px #0e9e6b59}input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid #fff;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 8px #0e9e6b59}input[type=range]::-moz-range-track{background:linear-gradient(90deg, var(--accent-soft), #e8efe9);border-radius:999px;height:8px}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--accent-border);background:var(--accent);color:#fff;cursor:pointer;border-radius:999px;padding:10px 16px;font-weight:600;transition:transform .12s,box-shadow .12s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0e9e6b40}.btn.ghost{color:var(--accent);background:#fff}.btn.danger.ghost{color:var(--danger);border-color:#c43d3d59}.checks{grid-template-columns:1fr 1fr;gap:8px;font-size:.88rem;display:grid}.checks label{align-items:center;gap:8px;display:flex}.hint,.meta,.selection-hint{color:var(--muted);margin:0;font-size:.84rem}.ann-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ann-list li{align-items:center;gap:8px;display:flex}.ann-chip{text-align:left;border:1px solid var(--border);cursor:pointer;background:#f7faf8;border-radius:999px;flex:1;padding:8px 12px}.ann-chip.active{border-color:var(--accent);background:var(--accent-soft)}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:1.1rem}.ann-editor{border-radius:var(--radius-md);border:1px solid var(--border);background:#f7faf8;flex-direction:column;gap:10px;padding:12px;display:flex}.gif-dialog-backdrop{z-index:40;background:#10201a59;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.gif-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:20px 22px;display:flex}.gif-dialog h2{margin:0;font-size:1.12rem}.gif-dialog-lead{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}.gif-options{gap:10px;display:grid}.gif-options .field.checkbox{align-items:center;gap:8px;display:flex}.gif-progress{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.gif-progress-track{background:#e8efeb;border-radius:999px;height:8px;overflow:hidden}.gif-progress-bar{background:linear-gradient(90deg, var(--accent), #11b67a);border-radius:999px;height:100%;transition:width .15s}.gif-dialog-actions{justify-content:flex-end;gap:10px;display:flex}@media (width<=1100px){.workspace,.settings-grid{grid-template-columns:1fr}}.desktop-only{display:block}.mobile-only{display:none}.settings-stack{flex-direction:column;gap:16px;display:flex}.export-stack{flex-direction:column}.export-stack .btn{justify-content:center;width:100%}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chart-panel.export-capture-host{overflow:visible}body.export-capture-active{overflow:hidden}.chart-stage.export-capture-layout{flex:none;margin-inline:auto;aspect-ratio:auto!important;width:960px!important;height:560px!important;min-height:560px!important;max-height:none!important}@media (width<=768px){html,body{overflow-x:hidden}.desktop-only{display:none!important}.mobile-only{display:block}.app-shell{gap:12px;max-width:100%;padding:12px 14px 24px}.topbar{border-radius:var(--radius-md);flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px}.brand{gap:10px}.brand h1{font-size:1.08rem}.brand-tagline{display:none}.mobile-hint{color:var(--muted);margin:0;font-size:.82rem;line-height:1.4}.mobile-export-menu{position:relative}.mobile-menu-btn{width:100%;min-height:44px}.mobile-export-popover{border-radius:var(--radius-md);border:1px solid var(--border);background:#f9fbfa;margin-top:8px;padding:12px}.workspace{min-height:unset;grid-template-columns:1fr;gap:12px}.chart-panel{min-height:unset;border-radius:var(--radius-md);padding:14px}.chart-stage{aspect-ratio:4/3;border-radius:var(--radius-md);flex:none;width:100%;min-height:0;max-height:min(44vh,400px)}.mobile-workspace{flex-direction:column;gap:10px;display:flex}.mobile-tabs{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;grid-template-columns:repeat(4,1fr);gap:6px;padding:4px;display:grid}.mobile-tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:44px;padding:10px 6px;font-size:.82rem;font-weight:600}.mobile-tab.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-border)}.mobile-tab-panel{min-height:120px}.mobile-tab-panel .panel{border-radius:var(--radius-md);padding:16px}.mobile-panel-stack{flex-direction:column;gap:12px;display:flex}.sheet-wrap{-webkit-overflow-scrolling:touch;max-width:100%}.panel-head{flex-direction:column;align-items:flex-start}.checks{grid-template-columns:1fr}.field.inline{min-width:unset;width:100%}input,select,.head-input,.cell-input{min-height:44px;font-size:16px}.btn,.preset-row button,.ann-chip{min-height:44px;padding-top:12px;padding-bottom:12px}.preset-row button{font-size:.86rem}.gif-dialog-backdrop{align-items:flex-end;padding:10px}.gif-dialog{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-md) var(--radius-md);-webkit-overflow-scrolling:touch;width:100%;max-height:min(90vh,640px);overflow-y:auto}.gif-dialog-actions{flex-wrap:wrap}.gif-dialog-actions .btn{flex:auto;min-width:44%}}@media (width>=769px){.mobile-workspace{display:none}}
