/* NovaSolver simulator shell. Explicit opt-in only; no chart/canvas sizing. */
body.ns-design-v2 {
  --ns-ink:#12253d; --ns-muted:#53657c; --ns-line:#dce4ed;
  --ns-blue:#0061e8; --ns-surface:#fff; --ns-bg:#f5f7fb;
  background:var(--ns-bg); color:var(--ns-ink); padding-bottom:24px!important;
  font-family:'Noto Sans JP',system-ui,sans-serif; line-height:1.65;
}
body.ns-design-v2 *, body.ns-design-v2 *::before, body.ns-design-v2 *::after { box-sizing:border-box; }
body.ns-design-v2 header { background:var(--ns-surface)!important; color:var(--ns-ink)!important; border-bottom:1px solid var(--ns-line); box-shadow:none!important; }
body.ns-design-v2 header a, body.ns-design-v2 .header-title, body.ns-design-v2 .header-sep { color:var(--ns-ink)!important; }
body.ns-design-v2 .hero { background:var(--ns-surface)!important; color:var(--ns-ink)!important; padding:24px 28px 26px!important; border-bottom:1px solid var(--ns-line); }
body.ns-design-v2 .hero-inner { max-width:1224px; margin:auto; }
body.ns-design-v2 .hero-badge { display:none; }
body.ns-design-v2 .hero h1 { color:var(--ns-ink)!important; font-size:clamp(1.45rem,2.7vw,2.05rem)!important; line-height:1.4; letter-spacing:-.025em; margin:0 0 8px!important; }
body.ns-design-v2 .hero-sub { display:block!important; color:var(--ns-muted)!important; font-size:.9rem!important; line-height:1.7; margin:0!important; max-width:72ch; }
body.ns-design-v2 .main { width:100%; max-width:1280px!important; margin:24px auto!important; padding:0 28px!important; gap:24px!important; grid-template-columns:296px minmax(0,1fr)!important; align-items:start; }
body.ns-design-v2 .panel { background:var(--ns-surface)!important; border:1px solid var(--ns-line)!important; border-radius:14px!important; padding:22px!important; box-shadow:none!important; min-width:0; }
body.ns-design-v2 .panel-title { font-size:.95rem!important; color:var(--ns-ink)!important; letter-spacing:0!important; text-transform:none!important; margin-bottom:22px!important; }
body.ns-design-v2 .param-group, body.ns-design-v2 .ctrl-group { margin-bottom:20px; }
body.ns-design-v2 .param-label, body.ns-design-v2 .field-header, body.ns-design-v2 .slider-label { gap:10px; align-items:center; }
body.ns-design-v2 .param-name, body.ns-design-v2 .select-label, body.ns-design-v2 .field-header label { color:var(--ns-ink); font-size:.83rem; font-weight:600; }
body.ns-design-v2 input[type=number], body.ns-design-v2 select { background:#fff!important; color:var(--ns-ink)!important; border:1px solid #c7d3e1!important; border-radius:7px!important; min-height:42px; font-size:16px!important; font-variant-numeric:tabular-nums; }
body.ns-design-v2 .num-input { width:88px!important; max-width:100%; padding:6px 8px!important; }
body.ns-design-v2 .num-unit { color:var(--ns-muted); font-size:.75rem; }
body.ns-design-v2 input[type=range] { accent-color:var(--ns-blue); height:32px!important; min-height:32px; background:transparent!important; }
body.ns-design-v2 input[type=range]::-webkit-slider-runnable-track { height:4px; border-radius:2px; background:linear-gradient(to right,var(--ns-blue) 0%,var(--ns-blue) var(--pct,50%),var(--ns-line) var(--pct,50%),var(--ns-line) 100%); }
body.ns-design-v2 input[type=range]::-webkit-slider-thumb { margin-top:-6px; }
body.ns-design-v2 input[type=range]::-moz-range-track { height:4px; background:var(--ns-line); border-radius:2px; }
body.ns-design-v2 input[type=range]::-moz-range-progress { height:4px; background:var(--ns-blue); }
body.ns-design-v2 :is(a,button,input,select,summary):focus-visible { outline:3px solid #0058d6!important; outline-offset:3px; }
body.ns-design-v2 input[aria-invalid=true] { border-color:#b52031!important; }
body.ns-design-v2 .viz-panel { min-width:0; gap:18px!important; }
body.ns-design-v2 .chart-card, body.ns-design-v2 .chart-card-inline { background:var(--ns-surface)!important; border:1px solid var(--ns-line)!important; border-radius:12px!important; box-shadow:none!important; padding:20px!important; margin-bottom:18px; }
body.ns-design-v2 .chart-title { color:var(--ns-ink)!important; font-size:.9rem!important; font-weight:600; letter-spacing:0; margin-bottom:14px; }
body.ns-design-v2 .chart-title > i { display:none; }
body.ns-design-v2 .ux-viz-stage { background:transparent!important; border:0!important; padding:0!important; box-shadow:none!important; }
body.ns-design-v2 .ux-viz-stage-head { padding:0 0 12px!important; border:0!important; }
body.ns-design-v2 .ux-viz-stage-tabs { gap:18px!important; border-bottom:1px solid var(--ns-line); border-radius:0; }
body.ns-design-v2 .ux-viz-stage-tab { background:transparent!important; color:var(--ns-muted)!important; border:0!important; border-bottom:2px solid transparent!important; border-radius:0!important; padding:10px 2px!important; font-size:.82rem!important; font-weight:500; }
body.ns-design-v2 .ux-viz-stage-tab[aria-selected=true] { color:var(--ns-blue)!important; border-bottom-color:var(--ns-blue)!important; }
body.ns-design-v2 .ns-result-tab { display:none!important; }
body.ns-design-v2.ux-template-v1-page .ux-viz-stage-panes { height:auto!important; min-height:0!important; display:flex!important; flex-direction:column; }
body.ns-design-v2.ux-template-v1-page .ux-viz-stage-panes > .ux-viz-stage-pane[data-ux-stage-kind=results] { position:relative!important; inset:auto!important; visibility:visible!important; opacity:1!important; pointer-events:auto!important; z-index:auto!important; height:auto!important; overflow:visible!important; order:-1!important; }
body.ns-design-v2 .ux-results-card { padding:18px!important; background:#edf4ff!important; border-color:#d3e3fa!important; }
body.ns-design-v2 .ux-results-card > .chart-title { display:none!important; }
body.ns-design-v2 .ux-results-card .cc-body { display:block!important; }
body.ns-design-v2 .stat-card { background:transparent!important; border:0!important; border-radius:0!important; box-shadow:none!important; padding:8px 10px!important; min-width:0; }
body.ns-design-v2 .stat-card .sv, body.ns-design-v2 .stat-card .stat-value { color:var(--ns-ink)!important; font-size:1.3rem!important; font-weight:650; line-height:1.35; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
body.ns-design-v2 .stat-card .sl, body.ns-design-v2 .stat-card .stat-label { color:var(--ns-muted)!important; font-size:.73rem!important; line-height:1.5; white-space:normal!important; }
body.ns-design-v2 .ux-result-dock { display:none!important; }
body.ns-design-v2 .explanation { max-width:1000px; padding:24px 28px!important; margin:32px auto!important; }
body.ns-design-v2 .explanation h2 { color:var(--ns-ink); font-size:1.25rem; line-height:1.5; margin:32px 0 16px; }
body.ns-design-v2 .ns-qa { max-width:none!important; margin:0 0 28px!important; background:#eef3f9!important; border:0!important; border-left:3px solid #8da6c4!important; border-radius:0!important; padding:16px 20px!important; font-size:.88rem!important; line-height:1.85!important; }
body.ns-design-v2 #sectionNotice { font-size:.83rem!important; line-height:1.7!important; padding:12px 16px; border-left:3px solid #8da6c4; background:#fff; margin:0 0 16px!important; }
body.ns-design-v2 .ux-mobile-switch { background:var(--ns-surface)!important; box-shadow:none!important; }
body.ns-design-v2 .ux-mobile-switch button { border-radius:7px!important; font-size:.85rem!important; min-height:44px; }
@media(max-width:820px) {
  body.ns-design-v2:has(#ns-mobile-toolbar) header { display:none!important; }
  body.ns-design-v2 #ns-mobile-toolbar { background:#fff; color:var(--ns-ink); border-bottom:1px solid var(--ns-line); box-shadow:none; }
  body.ns-design-v2 #ns-mobile-toolbar .ns-mobile-brand, body.ns-design-v2 #ns-mobile-toolbar #ns-menu-btn { color:var(--ns-ink); }
  body.ns-design-v2 #ns-mobile-toolbar .lang-nav { display:flex!important; gap:7px; margin:0 8px; }
  body.ns-design-v2 #ns-mobile-toolbar .lang-nav a { color:var(--ns-muted); font-size:12px; padding:4px 0; }
  body.ns-design-v2 #ns-mobile-toolbar .lang-nav a.active { color:var(--ns-blue); }
  body.ns-design-v2 .hero { padding:20px 18px!important; }
  body.ns-design-v2 .main { grid-template-columns:minmax(0,1fr)!important; padding:0 12px!important; margin:16px auto!important; gap:16px!important; }
  body.ns-design-v2 .chart-card, body.ns-design-v2 .chart-card-inline { padding:14px!important; }
  body.ns-design-v2 .ux-results-card { padding:10px!important; }
  body.ns-design-v2 .stat-card { padding:7px!important; }
  body.ns-design-v2 .stat-card .sv { font-size:1.13rem!important; }
  body.ns-design-v2 .explanation { padding:16px 18px!important; margin:20px auto!important; }
  body.ns-design-v2 .ux-viz-stage-tabs { gap:14px!important; }
  body.ns-design-v2 .ux-viz-stage-tab { white-space:normal!important; text-align:left; }
  body.ns-design-v2 input[type=range] { height:44px!important; min-height:44px; }
}

body.ns-design-v2 .stat-card .stat-val {color:var(--ns-ink)!important;font-size:1.3rem!important;font-variant-numeric:tabular-nums}
body.ns-design-v2 .stat-card .stat-lbl {color:var(--ns-muted)!important;font-size:.73rem!important;line-height:1.5;white-space:normal}

body.ns-design-v2 header .lang-nav a.active {background:#e9f1ff!important;color:#0058d6!important;border-color:#bfd4f1!important}
body.ns-design-v2 .ux-viz-stage-tab {min-height:44px}
@media(max-width:820px){body.ns-design-v2 #ns-mobile-toolbar .lang-nav a {min-height:44px;min-width:28px;display:grid;place-items:center;padding:4px 2px}body.ns-design-v2 #ns-mobile-toolbar .lang-nav {gap:4px;margin:0 4px}body.ns-design-v2 #ns-mobile-toolbar .ns-mobile-brand {white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

body.ns-design-v2 #ns-mobile-toolbar .lang-nav a.active {background:#e9f1ff!important;color:#0058d6!important;border-color:#bfd4f1!important}

body.ns-design-v2 header .header-back,body.ns-design-v2 header .brand-tag {display:none!important}
body.ns-design-v2 header .header-inner {padding-right:52px}
