.duRules { --du-rule-tile:clamp(28px,17cqi,90px); container-type:inline-size; box-sizing:border-box; width:100%; color:#343026; line-height:1.65; max-width:78rem; margin:auto; padding:clamp(12px,3vw,32px); font-family:system-ui,sans-serif; overflow-wrap:break-word; hyphens:auto; }
.duRules h2 { clear:both; color:#704420; border-bottom:2px solid #d8c298; padding-bottom:.35em; margin:1.8em 0 .8em; font-size:clamp(1.3rem,3vw,1.8rem); }
.duRules h3 { color:#704420; font-size:1.12rem; margin:1.3em 0 .6em; }
.duRules p { margin:.7em 0; }
.duRules table { width:100%; max-width:100%; border-collapse:collapse; margin:1em 0; font-size:.93em; }
.duRules td { padding:.5em; border:1px solid #d8cdb6; }
.duRules tr:nth-child(even) { background:#faf6ed; }
.duRules img { max-width:100%; object-fit:contain; }
.duRules>img { height:auto!important; }
.duRules .text_figure_block__text { width:auto; float:none; }
.duRules .tile_figure { display:inline-block; max-width:100%; margin:.6em 0; padding:.5em; border-radius:.6em; background:#f0e8d8; vertical-align:top; }
.duRules .tile_row { display:flex; align-items:flex-end; line-height:0; }
.duRules .tile_row>img { width:var(--du-rule-tile); height:var(--du-rule-tile); flex:none; }
.duRules .tile_row>.top_end_tile_img { height:calc(var(--du-rule-tile)/2); }
.duRules .tile_row>img[style*="45px"] { width:calc(var(--du-rule-tile)/2)!important; }
.duRules .tile_row>i { width:var(--du-rule-tile)!important; padding:4px!important; line-height:1.3; font-size:.8em; }
.duRules .text_figure_block__figure__caption { max-width:24em; line-height:1.4; margin:.4em; font-size:.9em; }
.duRules .style_float_clearer { clear:both; }
:is(#rules,#panelRules,#rulesContainer) .duRules { --du-rule-tile:clamp(24px,17cqi,65px); padding:12px; font-size:14px; }
:is(#rules,#panelRules,#rulesContainer) .duRules td { padding:.2em; }
@media(max-width:480px) { .duRules td { padding:.2em; font-size:.9em; } }

.duRules .duMaterials { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr)); gap:8px; margin:1em 0; }
.duRules .duMaterialCard { display:flex; align-items:center; gap:10px; padding:8px; border:1px solid #d8cdb6; border-radius:6px; background:#faf6ed; line-height:1.4; }
.duRules .duMaterialCard img { width:44px; height:44px; object-fit:contain; flex:0 0 44px; }
.duRules .duMaterialSet { grid-column:1/-1; margin:4px 0 0; font-weight:600; }
.duRules .tile_figure { box-sizing:border-box; }
.duRules .tile_row { max-width:100%; }
.duRules .tile_row>i { box-sizing:border-box; flex:none; }
:is(#rules,#panelRules,#rulesContainer) .duRules h2 { font-size:1.25em; line-height:1.3; }
:is(#rules,#panelRules,#rulesContainer) .duRules h3 { font-size:1.1em; line-height:1.4; }
:is(#rules,#panelRules,#rulesContainer) .duRules table { table-layout:fixed; font-size:.86em; }
:is(#rules,#panelRules,#rulesContainer) .duRules td { overflow-wrap:anywhere; }
:is(#rules,#panelRules,#rulesContainer) .duRules td img { height:auto!important; }

/* Host and legacy rule sheets may load after plugin CSS. Keep text full-width
   and use explicit panel selectors to override their float-based examples. */
:is(#rules,#panelRules,#rulesContainer) .duRules .text_figure_block__text { float:none; width:100%; max-width:none; }
:is(#rules,#panelRules,#rulesContainer) .duRules .text_figure_block__figure { float:none; display:table; width:auto; max-width:100%; margin:10px 0; }
:is(#rules,#panelRules,#rulesContainer) .duRules .duRuleFigure { clear:both; display:block; width:100%; }
:is(#rules,#panelRules,#rulesContainer) .duRules .tile_row { display:flex; align-items:flex-end; }
:is(#rules,#panelRules,#rulesContainer) .duRules .tile_row>img { width:var(--du-rule-tile); height:var(--du-rule-tile); max-width:none; }
:is(#rules,#panelRules,#rulesContainer) .duRules .tile_row>.top_end_tile_img { height:calc(var(--du-rule-tile)/2); }

.duRules .duPrintedVariants { margin:1.5em 0; padding:10px; border:1px solid #d8cdb6; border-radius:6px; background:#faf6ed; }
.duRules .duPrintedVariants>summary { cursor:pointer; font-weight:600; color:#704420; line-height:1.4; }
