:root{--font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--font-en: "Segoe UI", "Helvetica Neue", Helvetica, sans-serif;--fs-body: 16px;--fs-body-lg: 18px;--fs-h4: 20px;--fs-h3: 24px;--fs-h2: 32px;--lh-body: 1.8;--lh-heading: 1.4;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 48px;--space-7: 64px;--color-bg: #fafaf8;--color-bg-sunken: #f1f1ee;--color-surface: #ffffff;--color-border: #dedcd5;--color-text: #111111;--color-text-sub: #5b6169;--color-primary: #1a6b3a;--color-primary-hover: #145530;--color-accent: #23ac38;--color-accent-weak: rgba(35, 172, 56, .1);--color-warn: #8a5a00;--color-warn-weak: rgba(138, 90, 0, .08);--color-danger: #a12f2f;--color-lab-bg: #191d23;--color-lab-surface: #20242b;--color-lab-text: #e8eaed;--color-lab-sub: #9aa3ad;--color-lab-line: #2c323a;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--width-side: 260px;--control-h: 44px}*,*:before,*:after{box-sizing:border-box}html{font-size:var(--fs-body)}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:var(--lh-heading);margin:0;font-weight:700;letter-spacing:.02em}h1,h2{font-size:var(--fs-h3)}h3{font-size:var(--fs-h4)}p{margin:0}button,input,select{font:inherit;color:inherit}code,.num{font-family:var(--font-en);font-variant-numeric:tabular-nums}.shell{height:100vh;display:grid;grid-template-rows:auto 1fr auto}.topbar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.brand strong{font-size:var(--fs-body-lg)}.proj{display:flex;gap:var(--space-4);margin:0 0 0 auto;flex-wrap:wrap}.proj div{display:flex;gap:var(--space-2);align-items:baseline}.proj dt{color:var(--color-text-sub)}.proj dd{margin:0;font-weight:700}.bench{display:grid;grid-template-columns:400px 1fr;grid-template-rows:minmax(0,1fr);min-height:0}.rail{border-right:1px solid var(--color-border);background:var(--color-bg-sunken);display:grid;grid-template-rows:auto 1fr;min-height:0}.panel{padding:var(--space-3);overflow:auto;display:flex;flex-direction:column;gap:var(--space-3);border-top:1px solid var(--color-border)}.panel h2{font-size:var(--fs-h4)}.panel .group{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.stage{display:grid;grid-template-rows:auto 1fr auto;min-height:0;padding:var(--space-3) var(--space-4);gap:var(--space-3);min-width:0}.stage-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.sidetabs{display:flex;gap:var(--space-1);margin-left:auto}.sidetabs button{min-height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);cursor:pointer}.sidetabs button[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.sidetabs button:disabled{opacity:.4;cursor:not-allowed}.charts{display:grid;grid-template-rows:minmax(0,1fr);min-height:0;gap:var(--space-2)}.charts.three{grid-template-rows:none;grid-auto-rows:minmax(220px,1fr);overflow:auto}.chart-cell{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.chart-label{font-weight:700}.outputs{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.outputs .lbl{font-weight:700}.outputs .spacer{flex:1}.outpair{display:inline-flex;gap:var(--space-1);align-items:center}.outpair .sub{white-space:nowrap}@media(max-width:900px){.shell{height:auto;min-height:100vh}.bench{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--color-border)}.charts .lab.fill,.charts .chart-cell{height:360px}.charts.three{grid-template-rows:none}}.steps{list-style:none;margin:0;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.steps button{width:100%;min-height:var(--control-h);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;text-align:left;cursor:pointer}.steps button:hover{background:var(--color-surface)}.steps button[aria-current=step]{background:var(--color-surface);border-color:var(--color-border);font-weight:700}.steps .n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--color-border);background:var(--color-surface);font-family:var(--font-en)}.steps .n.done{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.steps .st{margin-left:auto;color:var(--color-text-sub);font-weight:400;white-space:nowrap}@media(max-width:900px){.steps{flex-direction:row;overflow-x:auto}.steps li{flex:0 0 auto}.steps .st{display:none}}.filelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.filelist li{display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-2);align-items:center;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.filelist .fname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.filelist select{min-height:36px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:0 var(--space-1)}.filelist .fmeta{grid-column:1;color:var(--color-text-sub)}.filelist .btn{grid-column:2}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.card-head .meta{color:var(--color-text-sub)}.split{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:var(--space-4);align-items:start}@media(max-width:1100px){.split{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field label{font-weight:700}.field .hint{color:var(--color-text-sub)}.field input,.field select{min-height:var(--control-h);padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%}.field input[type=range]{padding:0}.field input:focus,.field select:focus,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.field.inline{flex-direction:row;align-items:center;gap:var(--space-2)}.field.inline input[type=checkbox]{width:20px;height:20px;min-height:0}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.btn{min-height:var(--control-h);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);white-space:nowrap}.btn:hover{background:var(--color-bg-sunken)}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn.primary:hover{background:var(--color-primary-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{min-height:36px;padding:0 var(--space-3)}.actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.note{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-sunken)}.note.warn{background:var(--color-warn-weak);color:var(--color-warn)}.note.error{background:#a12f2f14;color:var(--color-danger)}.stats{display:flex;gap:var(--space-4);flex-wrap:wrap}.stats div{display:flex;flex-direction:column}.stats dt{color:var(--color-text-sub)}.stats dd{margin:0;font-size:var(--fs-body-lg);font-weight:700}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}th{font-weight:700;white-space:nowrap}td select{min-height:36px}.dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;cursor:pointer;background:var(--color-surface)}.dropzone.over{border-color:var(--color-primary);background:var(--color-accent-weak)}.lab{background:var(--color-lab-bg);border-radius:var(--radius-lg);padding:var(--space-2)}.plot{width:100%;min-height:280px}.lab.fill{display:grid;min-height:0}.lab.fill .plot{min-height:0}.lab.placeholder{place-items:center;color:var(--color-lab-sub);text-align:center;padding:var(--space-4)}.foot{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface)}.foot>span:first-child{flex:1 1 360px}.foot .btn{margin-left:auto}.foot a{color:var(--color-primary)}.disc-list{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:var(--space-2)}dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--color-surface);color:var(--color-text)}dialog::backdrop{background:#1116}dialog .card{border:0}.dialog-foot{display:flex;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
