.dirty-ring-lab{margin:22px 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--paper,#fff);min-width:0}
.dirty-ring-lab [hidden]{display:none!important}
.dirty-ring-lab .mechanism-view-heading{align-items:flex-start}
.dirty-ring-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:18px 0}
.dirty-ring-controls label{display:grid;gap:5px;font-size:13px;font-weight:600;min-width:0;flex:1 1 120px}
.dirty-ring-controls select{max-width:100%;width:100%;min-height:38px;padding:6px 28px 6px 9px}
.dirty-ring-actions{display:flex;flex-wrap:wrap;gap:7px;width:100%}
.dirty-ring-lab button{font:inherit;font-size:13px;line-height:1.5;padding:7px 11px;border:1px solid var(--line);border-radius:7px;background:var(--paper,#fff);color:var(--ink);cursor:pointer;min-height:38px}
.dirty-ring-lab button:hover{color:var(--brand,#007f7a);background:var(--wash,#edf6f4);border-color:var(--brand,#007f7a)}
.dirty-ring-lab button:focus-visible,.dirty-ring-lab select:focus-visible{outline:2px solid var(--brand,#007f7a);outline-offset:3px}
.dirty-ring-demo{padding-top:4px}
.dirty-ring-lab .dirty-ring-status{font-size:14px;line-height:1.7;padding:10px 12px;border-radius:7px;background:var(--wash,#eef5f3);margin:12px 0;min-height:3.4em}
.dirty-ring-lab[data-blocked=true] .dirty-ring-status{background:#fff4e4;color:#795319}
.dirty-ring-scene{min-width:0}
.dirty-ring-boundary{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;margin:18px 0 9px;padding-bottom:7px;border-bottom:1px solid var(--line);font-size:14px}
.dirty-ring-boundary span{font-size:12px;color:var(--muted)}
.dirty-ring-rings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dirty-ring-row{min-width:0;padding:11px;border:1px solid var(--line);border-radius:7px}
.dirty-ring-ring-heading{display:flex;justify-content:space-between;gap:8px;font-size:13px;line-height:1.5;margin-bottom:8px}
.dirty-ring-ring-heading span{font-size:11px;color:var(--muted)}
.dirty-ring-slots{display:grid;grid-template-columns:repeat(var(--dirty-ring-columns,4),minmax(0,1fr));gap:5px}
.dirty-ring-slot{padding:5px 2px;border:1px solid var(--line);border-radius:5px;text-align:center;font:12px/1.6 var(--mono,monospace)}
.dirty-ring-slot small,.dirty-ring-slot strong{display:block}
.dirty-ring-slot small{font:10px/1.6 var(--sans,sans-serif);color:var(--muted)}
.dirty-ring-slot[data-flag=dirty]{background:#e6f0f9;border-color:#acc5dc;color:#355c7c}
.dirty-ring-slot[data-flag=reset]{background:#fff1dc;border-color:#dfc293;color:#7d571d}
.dirty-ring-indices{display:block;font-size:10px;color:var(--muted);line-height:1.7;margin-top:8px}
.dirty-ring-lab .dirty-ring-legend{font-size:11px;color:var(--muted);margin:8px 0}
.dirty-ring-bitmaps,.dirty-ring-memories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.dirty-ring-lab h4{font-size:13px;line-height:1.5;margin:0 0 8px}
.dirty-ring-bitmaps>div,.dirty-ring-memories>div{min-width:0}
.dirty-ring-bitmaps>div>div{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}
.dirty-ring-memories>div>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.dirty-ring-bit,.dirty-ring-page{padding:4px 1px;border:1px solid var(--line);border-radius:4px;text-align:center;font:12px/1.5 var(--mono,monospace)}
.dirty-ring-bit small,.dirty-ring-bit strong,.dirty-ring-page small,.dirty-ring-page strong{display:block}
.dirty-ring-bit small,.dirty-ring-page small{font:10px/1.6 var(--sans,sans-serif);color:var(--muted)}
.dirty-ring-bit[data-set=true]{background:#e2efe9;color:#285b47;border-color:#abcbbd}
.dirty-ring-page[data-current=false]{background:#fff1dc;border-color:#dfc293}
.dirty-ring-bitmaps>div>small{display:block;font-size:11px;color:var(--muted);line-height:1.6;margin-top:6px}
.dirty-ring-lab .dirty-ring-counters{font-size:12px;color:var(--muted);margin:14px 0}
.dirty-ring-events{margin:0!important;padding:10px 12px 10px 30px!important;border:1px solid var(--line);border-radius:7px;font-size:12px;line-height:1.7}
.dirty-ring-events li{margin:0!important;overflow-wrap:anywhere}
.dirty-ring-lab .dirty-ring-model-note{font-size:12px;color:var(--muted);line-height:1.75;margin:14px 0 0}
.dirty-ring-state-flow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0}
.dirty-ring-state-flow>div{flex:1 1 130px;padding:11px;border:1px solid var(--line);border-radius:7px;background:var(--paper,#fff);min-width:0}
.dirty-ring-state-flow strong,.dirty-ring-state-flow div span{display:block;font-size:12px;line-height:1.7}
.dirty-ring-state-flow div span{margin-top:4px;color:var(--muted)}
.dirty-ring-lab.is-expanded{max-width:none;margin:0 auto;width:100%;box-sizing:border-box}
@media(max-width:620px){.dirty-ring-lab{padding:12px;margin:18px 0}.dirty-ring-controls{gap:10px}.dirty-ring-controls label{font-size:12px;flex-basis:95px}.dirty-ring-actions{gap:6px}.dirty-ring-lab button{font-size:12px;padding:7px 9px}.dirty-ring-rings,.dirty-ring-bitmaps,.dirty-ring-memories{grid-template-columns:minmax(0,1fr);gap:11px}.dirty-ring-slots{grid-template-columns:repeat(var(--dirty-ring-columns,4),minmax(0,1fr))}.dirty-ring-memories>div>div{grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.dirty-ring-page{font-size:11px}.dirty-ring-page small{font-size:9px}.dirty-ring-lab .dirty-ring-status{font-size:13px;min-height:0}.dirty-ring-state-flow>div{flex-basis:100%}.dirty-ring-state-flow>span{width:100%;text-align:center;transform:rotate(90deg);line-height:1}.dirty-ring-boundary{font-size:13px}}
@media(max-width:360px){.dirty-ring-memories>div>div{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.dirty-ring-lab *{animation:none!important;transition:none!important}}
@media print{.dirty-ring-controls{display:none!important}.dirty-ring-lab{break-inside:auto}}
