:root{--mig-ink:#151633;--mig-muted:#565a80;--mig-faint:#8a8fb0;--mig-accent:#4338ca;--mig-accent-deep:#312e81;--mig-accent-soft:#eef0fd;--mig-amber:#a16207;--mig-amber-soft:#fdf6e3;--mig-rose:#b42318;--mig-rose-soft:#fdefee;--mig-green:#15803d;--mig-line:#e2e4f2;--mig-line-firm:#c4c8e4;--mig-paper:#ffffff;--mig-sunken:#f6f7fd;--mig-grid-line:#eceefb;--mig-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--mig-r:10px;--mig-r-sm:6px;--primary:#4338ca;--primary-dark:#312e81;--border:#e2e4f2;--surface:#ffffff;--shadow-soft:0 10px 30px rgba(21,22,51,0.08);--surface-muted:#f6f7fd;--text-main:#151633;--text-muted:#565a80;}
.mig-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.mig-page{color:var(--mig-ink);padding-bottom:2rem;}
.mig-lede{font-size:1.03rem;line-height:1.65;color:var(--mig-muted);max-width:62ch;margin:0;}
.mig-byline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-top:1.1rem;padding:1rem 1.25rem;border-top:1px solid var(--mig-line);font-size:0.86rem;color:var(--mig-muted);}
.mig-byline-author .author-link{color:var(--mig-accent-deep);font-weight:600;text-decoration:none;border-bottom:1px solid var(--mig-line-firm);}
.mig-byline-author .author-link:hover{border-bottom-color:var(--mig-accent);}
.mig-stage{background:var(--mig-paper);border:1px solid var(--mig-line);border-radius:var(--mig-r);box-shadow:var(--shadow-soft);overflow:hidden;margin-bottom:2rem;}
.mig-bar{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;padding:0.9rem 1.25rem;background:var(--mig-sunken);border-bottom:1px solid var(--mig-line);}
.mig-bar-group{display:flex;align-items:center;gap:0.55rem;}
.mig-bar-label{font-size:0.74rem;text-transform:uppercase;letter-spacing:0.07em;font-weight:700;color:var(--mig-faint);}
.mig-seg{display:inline-flex;background:var(--mig-paper);border:1px solid var(--mig-line-firm);border-radius:var(--mig-r-sm);overflow:hidden;}
.mig-seg button{border:0;background:transparent;padding:0.34rem 0.7rem;font-size:0.87rem;font-weight:600;color:var(--mig-muted);font-family:var(--mig-mono);cursor:pointer;transition:background 0.15s,color 0.15s;}
.mig-seg button+button{border-left:1px solid var(--mig-line);}
.mig-seg button:hover{background:var(--mig-accent-soft);color:var(--mig-accent-deep);}
.mig-seg button.is-active{background:var(--mig-accent);color:#fff;}
.mig-bar-spacer{margin-left:auto;}
.mig-link{background:none;border:0;padding:0.3rem 0.45rem;font-size:0.84rem;color:var(--mig-muted);cursor:pointer;border-radius:var(--mig-r-sm);}
.mig-link:hover{background:var(--mig-accent-soft);color:var(--mig-accent-deep);}
.mig-board{padding:1.5rem 1.25rem 1.25rem;background-image:linear-gradient(var(--mig-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--mig-grid-line) 1px,transparent 1px);background-size:22px 22px;background-position:center;}
.mig-det{display:flex;align-items:baseline;flex-wrap:wrap;gap:0.4rem 0.85rem;max-width:820px;margin:0 auto 1.15rem;padding:0.7rem 1rem;background:var(--mig-paper);border:1px solid var(--mig-line);border-left:3px solid var(--mig-accent);border-radius:var(--mig-r-sm);}
.mig-det-key{font-size:0.82rem;font-weight:700;color:var(--mig-muted);font-family:var(--mig-mono);}
.mig-det-value{font-size:1.15rem;font-weight:700;font-family:var(--mig-mono);color:var(--mig-ink);}
.mig-det-value.is-idle{color:var(--mig-faint);}
.mig-det-value.is-singular{color:var(--mig-rose);}
.mig-det-value.is-live{color:var(--mig-accent-deep);}
.mig-det-note{flex:1 1 240px;font-size:0.84rem;line-height:1.5;color:var(--mig-muted);}
.mig-frame{position:relative;max-width:820px;margin:0 auto;padding:0 26px;}
.mig-frame::before,.mig-frame::after{content:"";position:absolute;top:0;bottom:0;width:14px;border:2px solid var(--mig-line-firm);}
.mig-frame::before{left:0;border-right:0;border-radius:4px 0 0 4px;}
.mig-frame::after{right:0;border-left:0;border-radius:0 4px 4px 0;}
.mig-grid{display:grid;grid-template-columns:repeat(calc(var(--mig-n,3)*2),minmax(0,1fr));gap:6px;background:var(--mig-paper);padding:10px;border-radius:4px;}
.mig-grid--res{grid-template-columns:repeat(var(--mig-n,3),minmax(0,1fr));}
.mig-cell{display:flex;align-items:center;justify-content:center;min-height:52px;padding:4px 6px;font-family:var(--mig-mono);font-size:0.98rem;text-align:center;border-radius:var(--mig-r-sm);}
.mig-cell--in{width:100%;border:1px solid var(--mig-line-firm);background:var(--mig-paper);color:var(--mig-ink);font-weight:600;transition:border-color 0.15s,box-shadow 0.15s;}
.mig-cell--in:focus{outline:0;border-color:var(--mig-accent);box-shadow:0 0 0 3px var(--mig-accent-soft);}
.mig-cell--in.is-bad{border-color:var(--mig-rose);background:var(--mig-rose-soft);}
.mig-cell--fixed{border:1px dashed var(--mig-line);background:var(--mig-sunken);color:var(--mig-faint);}
.mig-cell--fixed.is-one{color:var(--mig-accent);font-weight:700;}
.mig-cell--out{border:1px solid transparent;background:var(--mig-sunken);color:var(--mig-ink);font-weight:600;transition:background 0.2s,color 0.2s;}
.mig-cell--res{border:1px solid var(--mig-line);background:var(--mig-paper);color:var(--mig-accent-deep);font-weight:700;min-height:56px;}
.mig-cell.is-split{border-left:2px solid var(--mig-line-firm);margin-left:10px;padding-left:10px;}
.mig-cell.is-live{background:var(--mig-accent-soft);}
.mig-cell.is-changed{color:var(--mig-accent-deep);box-shadow:inset 0 -2px 0 var(--mig-accent);}
.mig-cell.is-pivot{background:var(--mig-accent);color:#fff;box-shadow:none;}
.mig-frac{display:inline-flex;flex-direction:column;align-items:center;line-height:1.05;font-size:0.82em;vertical-align:middle;}
.mig-num{padding:0 3px;}
.mig-den{padding:0 3px;border-top:1px solid currentColor;}
.mig-sign{margin-right:2px;}
.mig-hint{max-width:820px;margin:1rem auto 0;font-size:0.85rem;line-height:1.6;color:var(--mig-muted);text-align:center;}
.mig-hint kbd{font-family:var(--mig-mono);font-size:0.8rem;background:var(--mig-paper);border:1px solid var(--mig-line-firm);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--mig-ink);}
.mig-alert{max-width:820px;margin:1.15rem auto 0;padding:0.8rem 1rem;border-radius:var(--mig-r-sm);font-size:0.9rem;line-height:1.6;}
.mig-alert.is-warn{background:var(--mig-amber-soft);border:1px solid #eddba5;color:#7c4a03;}
.mig-alert.is-stop{background:var(--mig-rose-soft);border:1px solid #f3c2be;color:#8f1d15;}
.mig-run{display:flex;flex-wrap:wrap;gap:0.65rem;justify-content:center;padding:1.1rem 1.25rem;border-top:1px solid var(--mig-line);background:var(--mig-paper);}
.mig-btn{display:inline-flex;align-items:center;gap:0.45rem;padding:0.6rem 1.35rem;border-radius:var(--mig-r-sm);font-size:0.94rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background 0.15s,border-color 0.15s,color 0.15s;}
.mig-btn--go{background:var(--mig-accent);color:#fff;}
.mig-btn--go:hover{background:var(--mig-accent-deep);}
.mig-btn--quiet{background:var(--mig-paper);border-color:var(--mig-line-firm);color:var(--mig-muted);}
.mig-btn--quiet:hover{border-color:var(--mig-accent);color:var(--mig-accent-deep);}
.mig-player{border-top:1px solid var(--mig-line);background:var(--mig-paper);padding:1rem 1.25rem 1.15rem;}
.mig-player-top{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem;margin-bottom:0.8rem;}
.mig-transport{display:inline-flex;gap:0.35rem;}
.mig-tbtn{display:inline-flex;align-items:center;gap:0.35rem;padding:0.4rem 0.75rem;border:1px solid var(--mig-line-firm);background:var(--mig-paper);border-radius:var(--mig-r-sm);font-size:0.86rem;font-weight:600;color:var(--mig-muted);cursor:pointer;}
.mig-tbtn:hover:not(:disabled){border-color:var(--mig-accent);color:var(--mig-accent-deep);}
.mig-tbtn:disabled{opacity:0.45;cursor:not-allowed;}
.mig-tbtn.is-playing{background:var(--mig-accent);border-color:var(--mig-accent);color:#fff;}
.mig-count{font-size:0.82rem;font-weight:700;font-family:var(--mig-mono);color:var(--mig-faint);margin-left:auto;}
.mig-op-line{display:flex;flex-direction:column;gap:0.2rem;padding:0.7rem 0.9rem;background:var(--mig-sunken);border-radius:var(--mig-r-sm);border-left:3px solid var(--mig-accent);margin-bottom:0.85rem;}
.mig-op{font-family:var(--mig-mono);font-size:1rem;font-weight:700;color:var(--mig-accent-deep);}
.mig-op-note{font-size:0.86rem;line-height:1.55;color:var(--mig-muted);}
.mig-chips{display:flex;gap:5px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;}
.mig-chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;min-width:52px;padding:0.35rem 0.4rem;border:1px solid var(--mig-line);background:var(--mig-paper);border-radius:var(--mig-r-sm);cursor:pointer;transition:border-color 0.15s,background 0.15s;}
.mig-chip:hover{border-color:var(--mig-accent);}
.mig-chip.is-active{background:var(--mig-accent);border-color:var(--mig-accent);}
.mig-chip-tag{font-size:0.66rem;text-transform:uppercase;letter-spacing:0.05em;font-weight:700;color:var(--mig-muted);}
.mig-chip-num{font-family:var(--mig-mono);font-size:0.82rem;font-weight:700;color:var(--mig-ink);}
.mig-chip.is-active .mig-chip-tag,.mig-chip.is-active .mig-chip-num{color:#fff;}
.mig-result{border-top:1px solid var(--mig-line);background:var(--mig-sunken);padding:1.35rem 1.25rem;}
.mig-result-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.5rem 0.9rem;max-width:820px;margin:0 auto 1rem;}
.mig-result-head h2{font-size:1.05rem;font-weight:700;margin:0;font-family:var(--mig-mono);}
.mig-result-head p{margin:0;font-size:0.85rem;color:var(--mig-muted);flex:1 1 220px;}
.mig-copyrow{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:center;max-width:820px;margin:1.15rem auto 0;}
.mig-copy{display:inline-flex;align-items:center;gap:0.4rem;padding:0.45rem 0.9rem;border:1px solid var(--mig-line-firm);background:var(--mig-paper);border-radius:var(--mig-r-sm);font-size:0.85rem;font-weight:600;color:var(--mig-muted);cursor:pointer;}
.mig-copy:hover{border-color:var(--mig-accent);color:var(--mig-accent-deep);background:var(--mig-accent-soft);}
.mig-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);background:var(--mig-ink);color:#fff;padding:0.6rem 1.1rem;border-radius:var(--mig-r-sm);font-size:0.87rem;opacity:0;pointer-events:none;transition:opacity 0.2s,transform 0.2s;z-index:60;}
.mig-toast.is-on{opacity:1;transform:translate(-50%,0);}
.mig-notes{margin:0 auto 2.25rem;}
.mig-note{padding:1.5rem 0;border-top:1px solid var(--mig-line);}
.mig-note:first-child{border-top:0;padding-top:0.5rem;}
.mig-note h2{font-size:1.28rem;font-weight:700;letter-spacing:-0.01em;margin:0 0 0.7rem;}
.mig-note h3{font-size:1.02rem;font-weight:700;margin:1.2rem 0 0.5rem;color:var(--mig-accent-deep);}
.mig-note p{font-size:0.98rem;line-height:1.72;color:var(--mig-muted);margin:0 0 0.9rem;}
.mig-note p:last-child{margin-bottom:0;}
.mig-note strong{color:var(--mig-ink);}
.mig-note a{color:var(--mig-accent-deep);text-decoration:underline;text-underline-offset:2px;}
.mig-note code{font-family:var(--mig-mono);font-size:0.9em;background:var(--mig-accent-soft);color:var(--mig-accent-deep);padding:1px 5px;border-radius:4px;}
.mig-note ul{margin:0 0 0.9rem;padding-left:1.15rem;}
.mig-note li{font-size:0.98rem;line-height:1.7;color:var(--mig-muted);margin-bottom:0.4rem;}
.mig-callout{background:var(--mig-sunken);border-left:3px solid var(--mig-amber);border-radius:0 var(--mig-r-sm) var(--mig-r-sm) 0;padding:0.95rem 1.1rem;margin:0 0 0.9rem;}
.mig-callout p{margin:0;font-size:0.92rem;}
.mig-compare{width:100%;border-collapse:collapse;margin:0.3rem 0 1rem;font-size:0.9rem;}
.mig-compare caption{text-align:left;font-size:0.82rem;color:var(--mig-faint);padding-bottom:0.5rem;}
.mig-compare th,.mig-compare td{text-align:left;padding:0.55rem 0.7rem;border-bottom:1px solid var(--mig-line);vertical-align:top;}
.mig-compare th{font-weight:700;color:var(--mig-ink);background:var(--mig-sunken);}
.mig-compare td{color:var(--mig-muted);}
.mig-compare td:first-child{font-family:var(--mig-mono);color:var(--mig-ink);white-space:nowrap;}
@media (max-width:768px){.mig-board{padding:1.1rem 0.65rem 1rem;}.mig-frame{padding:0 16px;}.mig-frame::before,.mig-frame::after{width:8px;}.mig-grid{gap:4px;padding:6px;}.mig-cell{min-height:44px;font-size:0.85rem;padding:2px 3px;}.mig-cell.is-split{margin-left:6px;padding-left:6px;}.mig-bar{gap:0.8rem;padding:0.8rem 0.9rem;}.mig-bar-spacer{margin-left:0;}.mig-det{padding:0.65rem 0.8rem;}.mig-count{margin-left:0;}}
@media (max-width:480px){.mig-cell{min-height:38px;font-size:0.76rem;}.mig-seg button{padding:0.3rem 0.5rem;font-size:0.8rem;}}
