:root{color-scheme:light;--bg: #f4f4ef;--surface: #fffdf8;--text: #1f2a2e;--muted: #5f6b70;--border: #ccd8de;--primary: #005f73;--primary-contrast: #f8ffff;--warning: #f59e0b;--error: #dc2626}*{box-sizing:border-box}body{margin:0;background:#f2f4f6;color:var(--text);font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,sans-serif}main{max-width:1200px;margin:0 auto;padding:24px}h1{margin-top:0;letter-spacing:.03em}.grid{display:grid;gap:16px}@media(min-width:920px){.grid-cols-2{grid-template-columns:1fr 1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 28px #003c500f}.card-title{font-size:1rem;margin:0}.card-content{padding:16px;display:grid;gap:12px}.label{font-size:.85rem;color:var(--muted);font-weight:600}.input,.select,.btn{border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;font-size:.95rem}.input,.select{background:#fff;color:var(--text)}.btn{cursor:pointer;font-weight:700}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-contrast);border-color:transparent}.btn-secondary{background:#e7f3f8;color:#11485f}.btn-ghost{background:transparent;color:var(--muted)}.form-row{display:grid;gap:8px}.label-row{display:inline-flex;align-items:center;gap:6px}.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alert{border-radius:8px;padding:8px 10px;border:1px solid var(--border);background:#f8fbfd}.alert-warning{border-color:#fde68a;background:#fffbeb}.alert-error{border-color:#fecaca;background:#fef2f2}.progress-stack{display:grid;gap:8px}.progress-header{display:flex;align-items:center;gap:8px}.spinner{width:14px;height:14px;border-radius:999px;border:2px solid #f59e0b;border-top-color:transparent;animation:spin .8s linear infinite}.progress-track{height:8px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#0ea5e9,#06b6d4);transition:width .12s linear}.info-tip-wrap{position:relative;display:inline-flex}.info-tip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:.72rem;font-weight:700;border-radius:999px;border:0;background:#d9ebf3;color:#17536b;cursor:help;padding:0}.info-tip:after{content:attr(data-tip);position:absolute;bottom:125%;left:50%;transform:translate(-50%);width:min(320px,70vw);padding:8px 10px;border-radius:8px;background:#0f172a;color:#f8fafc;font-size:.78rem;line-height:1.45;box-shadow:0 6px 20px #0f172a40;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:20}.info-tip:hover:after,.info-tip:focus-visible:after{opacity:1}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-card{width:min(640px,100%);max-height:90vh;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px;display:grid;gap:10px}.guide-code{margin:0;padding:10px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;font-size:.82rem;white-space:pre-wrap}.plot-wrap{min-height:420px;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--border)}.plot-panel:fullscreen{margin-top:0;width:100vw;height:100vh;border-radius:0;border:none;background:#fff}.plot-panel:fullscreen .card-content{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.plot-panel:fullscreen .plot-wrap{min-height:0;height:100%}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #edf1f5;text-align:left;padding:8px;font-size:.92rem}
