: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: 400px;--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}.proj dd.missing{color:var(--color-warn)}.bench{display:grid;grid-template-columns:var(--width-side) 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-y:scroll;scrollbar-gutter:stable;position:relative;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 minmax(0,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;min-height:var(--control-h)}.charts-wrap{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;gap:var(--space-2)}.charts-wrap>.charts{grid-row:2}.chart-legend .axis-note{margin-left:auto;color:var(--color-lab-sub)}.chart-legend{list-style:none;margin:0;padding:var(--space-1) var(--space-3);display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;background:var(--color-lab-bg);color:var(--color-lab-text);border-radius:var(--radius-lg)}.chart-legend li{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}.chart-legend i{display:inline-block;width:20px;border-radius:1px}.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(160px,1fr);overflow:auto}.chart-cell{display:grid;grid-template-rows:minmax(0,1fr);min-height:0}.outputs{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.outputs .files{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;min-width:0}.outputs .files .wide{flex-basis:100%}.outputs .nav{display:flex;gap:var(--space-2);justify-self:end}.outputs .lbl{font-weight:700}.outgrid{display:grid;grid-template-columns:repeat(3,minmax(0,max-content));gap:var(--space-2) var(--space-3);align-items:center}.outgrid .sub{white-space:nowrap}.outgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:var(--space-2) var(--space-3)}.outputs .btn{white-space:normal;overflow-wrap:anywhere;text-align:left;min-width:0;min-height:var(--control-h);height:auto}.mobile-title{display:none;padding:var(--space-3) var(--space-3) 0}@media(max-width:900px){.shell{height:auto;min-height:100vh}.mobile-title{display:block}.stage-head h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.outgrid,.outgrid2{grid-template-columns:1fr}.foot>span:first-child{flex-basis:100%}.foot .btn{margin-left:0}.steps{-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--space-3),#000 calc(100% - var(--space-3)),transparent);mask-image:linear-gradient(to right,transparent,#000 var(--space-3),#000 calc(100% - var(--space-3)),transparent)}.bench{grid-template-columns:minmax(0,1fr)}.rail{border-right:0;border-bottom:1px solid var(--color-border);min-width:0}.rail>nav{min-width:0}.plot .modebar{display:none!important}.outputs{grid-template-columns:1fr}.charts .chart-cell{grid-template-rows:360px}.charts>.lab.fill{height:360px}.charts.three{grid-template-rows:none;grid-auto-rows:auto}}.steps{list-style:none;margin:0;padding:var(--space-3);scroll-padding-inline: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:var(--control-h);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 .hint.error{color:var(--color-danger)}.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:disabled{background:var(--color-bg-sunken);color:var(--color-text-sub);cursor:not-allowed}input[type=checkbox],input[type=range]{accent-color:var(--color-primary)}.range-row{display:grid;grid-template-columns:1fr 96px;gap:var(--space-2);align-items:center}.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);min-height:var(--control-h)}.field.inline label{cursor:pointer}.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{padding:0 var(--space-2)}.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:var(--control-h)}.dropzone{width:100%;font:inherit;color:inherit;border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);display:flex;flex-direction:column;align-items:center;gap:var(--space-1);text-align:center;cursor:pointer;background:var(--color-surface)}.dropzone strong{font-size:var(--fs-body-lg)}.dropzone.over{border-color:var(--color-primary);background:var(--color-bg-sunken)}.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 - var(--space-6) * 2);background:var(--color-surface);color:var(--color-text)}dialog::backdrop{background:#1116}dialog .card{border:0;max-height:calc(100vh - var(--space-6) * 2);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--space-3)}.dialog-body{overflow:auto;display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;border-top:1px solid var(--color-border);padding-top:var(--space-3)}.coord-rows{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:var(--space-2) var(--space-2);align-items:center}.coord-rows .side,.coord-rows .head{font-weight:700}.field.label-hidden{position:relative}.field.label-hidden>label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media(max-width:600px){.grid-3,.grid-2,.coord-rows{grid-template-columns:1fr}.coord-rows .head{display:none}.field.label-hidden>label{position:static;width:auto;height:auto;overflow:visible;clip:auto}}
