
.igl-lab,.igl-lab *{box-sizing:border-box}
body.igl-standalone{margin:0;background:#e9eef5;font-family:Inter,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;color:#14243a}
.igl-lab{--navy:#0b2c52;--blue:#0a64b3;--teal:#007e87;--light:#edf6fa;--line:#cfdde9;--muted:#526579;--violet:#6c53b4;--orange:#dd6a24;max-width:1390px;margin:0 auto;background:#f5f8fc;padding:18px;border:1px solid #d5e2ee;border-radius:18px;box-shadow:0 10px 36px rgba(20,51,92,.08);font-size:14px;line-height:1.45}
.igl-lab .hero{background:linear-gradient(115deg,#082c56,#0c5888 65%,#007c80);color:white;border-radius:13px;padding:21px 22px;display:flex;gap:16px;justify-content:space-between;align-items:center;position:relative;overflow:hidden}
.igl-lab .hero::after{content:"";position:absolute;inset:0 0 0 auto;width:34%;background:repeating-linear-gradient(135deg,transparent,transparent 24px,rgba(255,255,255,.045) 25px,rgba(255,255,255,.045) 26px);pointer-events:none}
.igl-lab h1,.igl-lab h2,.igl-lab h3,.igl-lab p{margin:0}
.igl-lab h1{font-size:clamp(20px,2.5vw,29px);letter-spacing:-.7px;line-height:1.12}
.igl-lab .hero p{color:#d5effa;font-size:13px;max-width:700px;margin-top:7px}
.igl-lab .logo{font-size:18px;font-weight:900;border:2px solid #5ddde9;color:white;border-radius:10px;padding:8px 13px;letter-spacing:1px;white-space:nowrap;z-index:1}
.igl-lab .overline{font-size:10px;font-weight:800;letter-spacing:1.5px;color:#7be4d6;text-transform:uppercase;margin-bottom:6px}
.igl-lab .preset-strip{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:14px 0}
.igl-lab .preset-label{font-weight:800;font-size:12px;color:var(--navy);margin-right:3px}
.igl-lab button,.igl-lab select,.igl-lab input{font:inherit}
.igl-lab button{cursor:pointer;border:1px solid #bcd0e2;background:white;color:#174469;font-weight:700;border-radius:9px;padding:8px 12px;transition:background .15s,border-color .15s}
.igl-lab button:hover{background:#e6f4fc;border-color:#4e91bd}
.igl-lab button:focus-visible,.igl-lab input:focus-visible,.igl-lab select:focus-visible{outline:3px solid #4cb5d2;outline-offset:2px}
.igl-lab button.is-active{color:white;background:#066ea5;border-color:#066ea5}
.igl-lab button.action{color:white;background:#087a7c;border-color:#087a7c}
.igl-lab button.action:hover{background:#096668}
.igl-lab .preset-strip button{font-size:12px;padding:7px 11px}
.igl-lab .layout{display:grid;grid-template-columns:minmax(290px,340px) minmax(0,1fr);gap:14px;align-items:start}
.igl-lab .panel{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(6,41,81,.035)}
.igl-lab .panel>.head{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#eff6fc;border-bottom:1px solid var(--line);padding:10px 14px}
.igl-lab h2{font-size:14px;color:var(--navy);font-weight:800}
.igl-lab h3{font-size:12px;color:var(--navy);font-weight:800;margin-bottom:6px}
.igl-lab .panel>.content{padding:14px}
.igl-lab .hint,.igl-lab small{font-size:11px;color:var(--muted)}
.igl-lab .field{margin:0 0 15px}
.igl-lab .field-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;gap:8px}
.igl-lab .field label{font-size:12px;font-weight:750}
.igl-lab .num{font-variant-numeric:tabular-nums;font-weight:800;color:#085a8c}
.igl-lab input[type=range]{width:100%;accent-color:#0879ab;height:20px;margin:0;cursor:pointer}
.igl-lab .range-labels{display:flex;justify-content:space-between;color:#8393a5;font-size:10px}
.igl-lab select{width:100%;padding:7px 8px;border-radius:8px;border:1px solid #bdcede;background:white;color:#173e61}
.igl-lab .toggle-row{display:flex;align-items:center;gap:7px;margin:8px 0 14px;font-size:12px}
.igl-lab .toggle-row input{accent-color:#077c9d}
.igl-lab .mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.igl-lab .mode button{font-size:12px}
.igl-lab .split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.igl-lab .microbox{padding:9px 10px;border:1px solid #dce8f1;background:#f7fbff;border-radius:9px;margin-top:8px}
.igl-lab .formula{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.7;background:#f5f8fc;border:1px solid #deebf3;border-radius:8px;padding:9px 10px;overflow-wrap:anywhere}
.igl-lab .chart svg{width:100%;height:auto;max-height:325px;display:block}
.igl-lab .right{display:grid;gap:14px;min-width:0}
.igl-lab .lower{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0}
.igl-lab .table-wrap{overflow-x:auto}
.igl-lab table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
.igl-lab th{text-align:left;color:#36516d;background:#f0f7fa;font-size:11px;white-space:nowrap}
.igl-lab th,.igl-lab td{padding:7px 7px;border-bottom:1px solid #e3ecf3}
.igl-lab tr:last-child td{border:0}
.igl-lab .truth-row:hover td{background:#f3fbff}
.igl-lab .truth-row{cursor:pointer}
.igl-lab .true-out{background:#ddf8e9;color:#006c4c;font-weight:800;border-radius:6px;padding:3px 6px}
.igl-lab .false-out{background:#eff3f7;color:#516477;font-weight:800;border-radius:6px;padding:3px 6px}
.igl-lab .grade-out{background:#fff3df;color:#8b530d;font-weight:800;border-radius:6px;padding:3px 6px}
.igl-lab .status-bar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px}
.igl-lab .pill{display:inline-block;border-radius:999px;padding:5px 9px;background:#e5f5f8;color:#066477;border:1px solid #bfe3e6;font-size:11px;font-weight:800}
.igl-lab .pill.muted{background:#f2f5f8;color:#68788d;border-color:#dae3ec}
.igl-lab .pill.warning{background:#fff4dc;color:#9b640f;border-color:#f5deb4}
.igl-lab .bar-out{min-width:55px;height:8px;background:#e3eaf2;border-radius:8px;overflow:hidden}
.igl-lab .bar-out>i{display:block;height:100%;background:linear-gradient(90deg,#0b85b3,#11a78c);border-radius:8px}
.igl-lab #igl-surface{width:100%;height:270px;display:block;border-radius:8px;background:#f8fbff}
.igl-lab .steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.igl-lab .step{border:1px solid #dbe8ef;background:#f9fcff;border-radius:8px;padding:9px;min-width:0}
.igl-lab .step strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#60778b;margin-bottom:4px}
.igl-lab .step span{font-size:12px;font-weight:720;overflow-wrap:anywhere}
.igl-lab .explain{margin-top:11px;border-left:3px solid #0b8a93;background:#eef9f8;padding:9px 11px;color:#16505b;font-size:11px}
.igl-lab .search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:end}
.igl-lab .search label{font-size:11px;font-weight:750;display:block;margin-bottom:4px}
.igl-lab .search .metric{margin:10px 0 0;font-size:12px}
.igl-lab .search .metric strong{font-variant-numeric:tabular-nums}
.igl-lab #igl-search-log{font-size:11px;color:var(--muted);padding:7px 8px;background:#f6f9fc;border-radius:7px;min-height:32px;margin-top:9px}
.igl-lab .foot{margin-top:14px;padding:12px 14px;background:#f2f6fa;border:1px solid #dce6ef;border-radius:10px;font-size:11px;color:#4c6175;line-height:1.6}
.igl-lab .foot b{color:#174a6e}
.igl-lab .copy-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.igl-lab .copy-row button{font-size:12px}
.igl-lab .legend{display:flex;flex-wrap:wrap;gap:9px;font-size:11px;color:#61758b;margin-top:4px}
.igl-lab .legend b{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
.igl-lab .formula-small{font-size:11px;color:#61758b}
@media(max-width:950px){.igl-lab .layout{grid-template-columns:1fr}.igl-lab .lower{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.igl-lab{padding:9px;border-radius:9px}.igl-lab .hero{padding:16px}.igl-lab .logo{display:none}.igl-lab .lower{grid-template-columns:1fr}.igl-lab .search{grid-template-columns:1fr 1fr}.igl-lab .search>div:first-child{grid-column:1/-1}.igl-lab .steps{grid-template-columns:1fr 1fr}.igl-lab .panel>.content{padding:10px}}
.igl-lab{--shell:#f5f8fc;--ink:#14243a;--panel-bg:#ffffff;--panel-head:#eff6fc;--line:#cfdde9;--muted:#526579;--navy:#0b2c52;--accent:#066ea5;--accent-hover:#e6f4fc;--action:#087a7c;--action-hover:#096668;--button-bg:#ffffff;--button-ink:#174469;--button-border:#bcd0e2;--minor:#8294a6;--subtle:#f7fbff;--formula-bg:#f5f8fc;--table-head:#f0f7fa;--row-hover:#f3fbff;--secondary:#f2f6fa;--number:#085a8c;--explain-bg:#eef9f8;--explain-text:#16505b;--pill-bg:#e5f5f8;--pill-text:#066477;--pill-line:#bfe3e6;--muted-pill-bg:#f2f5f8;--muted-pill-ink:#68788d;--warn-bg:#fff4dc;--warn-ink:#9b640f;--true-bg:#ddf8e9;--true-ink:#006c4c;--false-bg:#eff3f7;--false-ink:#516477;--grade-bg:#fff3df;--grade-ink:#8b530d;--hero-gradient:linear-gradient(115deg,#082c56,#0c5888 65%,#007c80);--chart-r0:#edf1f6;--chart-r1:#d9f3ea;--chart-r2:#ffebdc;--chart-r3:#daf2e8;--chart-r4:#e5eefb;--chart-grid:#b4c9d9;--chart-axis:#41566c;--chart-text:#355573;--chart-curve:#d33f51;--chart-live:#172338;--surface-bg:#f7fbff;--surface-grid:#bdcfda;--surface-axis:#355675;--surface-dot:#14243a;--marker-0:#157da9;--marker-1:#c08220;--marker-2:#8555c2;--marker-3:#cf4e65;color-scheme:light}
.igl-lab[data-theme="forest"]{--shell:#edf6f0;--ink:#1c3429;--panel-bg:#ffffff;--panel-head:#e6f2e9;--line:#c9dfcf;--muted:#526f61;--navy:#174b32;--accent:#137a51;--accent-hover:#e0f3e9;--action:#146c4c;--action-hover:#0c5b3e;--button-bg:#ffffff;--button-ink:#22573d;--button-border:#add2bb;--minor:#6f9581;--subtle:#f1faf4;--formula-bg:#f1f8f3;--table-head:#edf7ef;--row-hover:#edf9f2;--secondary:#eaf3ee;--number:#116942;--explain-bg:#e8f7ee;--explain-text:#215a3e;--pill-bg:#e2f5e7;--pill-text:#186b45;--pill-line:#b5dfc3;--muted-pill-bg:#eef4ef;--muted-pill-ink:#587264;--warn-bg:#fdf1d7;--warn-ink:#896014;--true-bg:#dff6e6;--true-ink:#086440;--false-bg:#edf4ef;--false-ink:#567263;--grade-bg:#fff1d9;--grade-ink:#825317;--hero-gradient:linear-gradient(115deg,#143f34,#227d55 65%,#5f9863);--chart-r0:#ecf4ed;--chart-r1:#d7eee0;--chart-r2:#fff0d9;--chart-r3:#d1e9df;--chart-r4:#e5f0e7;--chart-grid:#b2d2bc;--chart-axis:#365846;--chart-text:#315b44;--chart-curve:#b24d42;--chart-live:#19452f;--surface-bg:#f5faf4;--surface-grid:#bad6c4;--surface-axis:#426950;--surface-dot:#173f2d;--marker-0:#0c7186;--marker-1:#bc7c1d;--marker-2:#765ac2;--marker-3:#b84561;color-scheme:light}
.igl-lab[data-theme="sand"]{--shell:#fcf5e9;--ink:#422f26;--panel-bg:#fffdf9;--panel-head:#f8ecd9;--line:#e4cfb8;--muted:#7a6251;--navy:#653c28;--accent:#ad6436;--accent-hover:#f8ead8;--action:#aa5a39;--action-hover:#86442a;--button-bg:#fffdf9;--button-ink:#6f492c;--button-border:#dfc2a7;--minor:#a18a72;--subtle:#fffaf1;--formula-bg:#fff7e9;--table-head:#f9eedc;--row-hover:#fff2df;--secondary:#f8efdf;--number:#99502a;--explain-bg:#fbefe1;--explain-text:#815036;--pill-bg:#faead6;--pill-text:#8a5330;--pill-line:#e5c4a3;--muted-pill-bg:#f7efe2;--muted-pill-ink:#806956;--warn-bg:#fae1c5;--warn-ink:#874419;--true-bg:#e7f4e1;--true-ink:#286238;--false-bg:#f4efe6;--false-ink:#7b6958;--grade-bg:#ffe8ca;--grade-ink:#8c521a;--hero-gradient:linear-gradient(115deg,#573725,#9b643e 63%,#c88a56);--chart-r0:#f4ede4;--chart-r1:#e6f2df;--chart-r2:#f9e5cd;--chart-r3:#dcebd8;--chart-r4:#f2e2d4;--chart-grid:#dac5ae;--chart-axis:#73533d;--chart-text:#754e37;--chart-curve:#b23f45;--chart-live:#4b362a;--surface-bg:#fffaf1;--surface-grid:#ddc6ab;--surface-axis:#76563e;--surface-dot:#4b362a;--marker-0:#167895;--marker-1:#aa6c18;--marker-2:#7154ad;--marker-3:#bd4960;color-scheme:light}
.igl-lab[data-theme="midnight"]{--shell:#101a2a;--ink:#e7f1fc;--panel-bg:#19283c;--panel-head:#22354d;--line:#39516d;--muted:#afc3da;--navy:#e0f3ff;--accent:#1979ac;--accent-hover:#304c68;--action:#138879;--action-hover:#146e67;--button-bg:#243950;--button-ink:#e5f4ff;--button-border:#49637f;--minor:#a6bdd2;--subtle:#21344b;--formula-bg:#152336;--table-head:#253952;--row-hover:#2b435b;--secondary:#1c2c40;--number:#8de2ff;--explain-bg:#183f44;--explain-text:#b9f0e8;--pill-bg:#1d4e61;--pill-text:#bcf4ff;--pill-line:#3b7687;--muted-pill-bg:#2a3a50;--muted-pill-ink:#c0d1e4;--warn-bg:#4f3b23;--warn-ink:#ffe1a1;--true-bg:#1a513e;--true-ink:#b1fbd9;--false-bg:#33465c;--false-ink:#d5e1ef;--grade-bg:#593e21;--grade-ink:#ffe0a2;--hero-gradient:linear-gradient(115deg,#061629,#16395b 65%,#086167);--chart-r0:#26374a;--chart-r1:#18453f;--chart-r2:#573c30;--chart-r3:#1a5145;--chart-r4:#2d4260;--chart-grid:#58738d;--chart-axis:#a9c2d9;--chart-text:#d9edff;--chart-curve:#ff7a87;--chart-live:#f7f1dc;--surface-bg:#17273b;--surface-grid:#46627b;--surface-axis:#c6ddec;--surface-dot:#fff5cd;--marker-0:#68d5fa;--marker-1:#ffcd6c;--marker-2:#c9a8ff;--marker-3:#ff8fa6;color-scheme:dark}
.igl-lab[data-theme="graphite"]{--shell:#16191e;--ink:#f1f1ef;--panel-bg:#242930;--panel-head:#30363e;--line:#505860;--muted:#bec5c8;--navy:#f7f6f1;--accent:#5e879f;--accent-hover:#3c4751;--action:#6a8f70;--action-hover:#52775a;--button-bg:#303840;--button-ink:#f4f7f7;--button-border:#59636a;--minor:#b0babe;--subtle:#303941;--formula-bg:#1d252b;--table-head:#343c44;--row-hover:#3a444b;--secondary:#2b3037;--number:#b6e5ee;--explain-bg:#2b413b;--explain-text:#d3f0df;--pill-bg:#354953;--pill-text:#e0f3f7;--pill-line:#5b7178;--muted-pill-bg:#394047;--muted-pill-ink:#e0e4e4;--warn-bg:#534731;--warn-ink:#ffe4b2;--true-bg:#325044;--true-ink:#b9f1cd;--false-bg:#3d464d;--false-ink:#e2e8e9;--grade-bg:#54422b;--grade-ink:#ffddaa;--hero-gradient:linear-gradient(115deg,#1c2530,#343f4a 65%,#4a6255);--chart-r0:#353b42;--chart-r1:#24433d;--chart-r2:#554339;--chart-r3:#284a43;--chart-r4:#394650;--chart-grid:#66727c;--chart-axis:#c9d2d6;--chart-text:#f2f4f5;--chart-curve:#ff907c;--chart-live:#ffffff;--surface-bg:#252b33;--surface-grid:#57636c;--surface-axis:#d6ddde;--surface-dot:#ffffff;--marker-0:#90e1f0;--marker-1:#f8ce7c;--marker-2:#d8b4ff;--marker-3:#ffa8a2;color-scheme:dark}

/* Color themes: all selectors are deliberately scoped to this laboratory. */
.igl-lab{color:var(--ink);background:var(--shell);border-color:var(--line);}
.igl-lab .hero{background:var(--hero-gradient)}
.igl-lab .hero-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;z-index:1;flex-wrap:wrap}
.igl-lab .theme-field{display:flex;flex-direction:column;gap:5px;align-items:flex-start;color:#f1fbff;font-size:10px;font-weight:800;letter-spacing:.8px;white-space:nowrap}
.igl-lab .theme-field select{min-width:176px;padding:8px 30px 8px 9px;color:#152638;background:#f7fbff;border:1px solid #7ba5bc;font-size:12px;letter-spacing:0;font-weight:700}
.igl-lab .preset-label,.igl-lab h2,.igl-lab h3{color:var(--navy)}
.igl-lab .panel{background:var(--panel-bg);border-color:var(--line);box-shadow:none}
.igl-lab .panel>.head{background:var(--panel-head);border-color:var(--line)}
.igl-lab .hint,.igl-lab small,.igl-lab .legend,.igl-lab .formula-small{color:var(--muted)}
.igl-lab .num{color:var(--number)}
.igl-lab .range-labels{color:var(--minor)}
.igl-lab input[type=range]{accent-color:var(--accent)}
.igl-lab .toggle-row input{accent-color:var(--accent)}
.igl-lab button{background:var(--button-bg);border-color:var(--button-border);color:var(--button-ink)}
.igl-lab button:hover{background:var(--accent-hover);border-color:var(--accent)}
.igl-lab button.is-active{background:var(--accent);color:#ffffff;border-color:var(--accent)}
.igl-lab button.action{background:var(--action);color:#ffffff;border-color:var(--action)}
.igl-lab button.action:hover{background:var(--action-hover);color:#ffffff}
.igl-lab select:not(.theme-field select){background:var(--button-bg);color:var(--button-ink);border-color:var(--button-border)}
.igl-lab .microbox{background:var(--subtle);border-color:var(--line)}
.igl-lab .formula{background:var(--formula-bg);border-color:var(--line);color:var(--ink)}
.igl-lab th{color:var(--navy);background:var(--table-head)}
.igl-lab td,.igl-lab th{border-color:var(--line);color:var(--ink)}
.igl-lab .truth-row:hover td{background:var(--row-hover)}
.igl-lab .true-out{background:var(--true-bg);color:var(--true-ink)}
.igl-lab .false-out{background:var(--false-bg);color:var(--false-ink)}
.igl-lab .grade-out{background:var(--grade-bg);color:var(--grade-ink)}
.igl-lab .pill{background:var(--pill-bg);color:var(--pill-text);border-color:var(--pill-line)}
.igl-lab .pill.muted{background:var(--muted-pill-bg);color:var(--muted-pill-ink);border-color:var(--line)}
.igl-lab .pill.warning{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--button-border)}
.igl-lab .bar-out{background:var(--line)}
.igl-lab .bar-out>i{background:linear-gradient(90deg,var(--accent),var(--action))}
.igl-lab #igl-surface{background:var(--surface-bg)}
.igl-lab .step{background:var(--subtle);border-color:var(--line)}
.igl-lab .step strong{color:var(--muted)}
.igl-lab .step span{color:var(--ink)}
.igl-lab .explain{background:var(--explain-bg);border-color:var(--action);color:var(--explain-text)}
.igl-lab #igl-search-log{background:var(--secondary);color:var(--muted)}
.igl-lab .foot{background:var(--secondary);border-color:var(--line);color:var(--muted)}
.igl-lab .foot b{color:var(--navy)}
.igl-lab .metric{color:var(--ink)}
.igl-lab .legend b{box-shadow:0 0 0 1px var(--line)}
.igl-lab .hero .logo{border-color:#8ee7e6}
@media(max-width:620px){.igl-lab .hero-tools{width:100%;justify-content:flex-start}.igl-lab .hero{align-items:flex-start;flex-direction:column}.igl-lab .theme-field select{width:100%;max-width:250px}}

/* v1.1.1: Full-viewport-width shortcode breakout for content-constrained WordPress themes.
   WordPress block themes commonly limit Shortcode blocks to ~600-800 px.
   Center the IGL application independently of that text-column width. The viewport
   remains authoritative; on phones the existing responsive layout is retained.
   The rule is scoped to the IGL laboratory and does not widen other content. */
body:not(.igl-standalone) .igl-lab {
    box-sizing: border-box;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: min(1440px, calc(100vw - 40px)) !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
}
@media (max-width: 620px) {
    body:not(.igl-standalone) .igl-lab {
        width: calc(100vw - 20px) !important;
    }
}

/* Avoid squeezing side-by-side scientific panels below their readable width. */
@media (max-width: 1120px) {
    .igl-lab .layout { grid-template-columns: minmax(0, 1fr); }
    .igl-lab .lower { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .igl-lab .lower { grid-template-columns: minmax(0, 1fr); }
}
