.vd-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:24px 0}.vd-tools button{min-height:44px;padding:10px 16px;border:1px solid var(--vi-line);background:var(--vi-panel);color:var(--vi-text);font:inherit;border-radius:12px;cursor:pointer}.vd-reading{padding:24px;border:1px solid var(--vi-line);border-radius:20px;background:var(--vi-panel);color:var(--vi-text)}.vd-reading-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.vd-reading-head h2{margin:0;font-size:25px}.vd-reading a{color:var(--vi-accent);font-size:13px;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px}.vd-reading-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vd-book{padding:16px;border:1px solid var(--vi-line);border-radius:12px;min-width:0}.vd-book h3{font-size:16px;margin:0 0 10px;overflow-wrap:anywhere}.vd-book p{color:var(--vi-muted);font-size:13px;overflow-wrap:anywhere}.vd-book progress{width:100%;height:6px;accent-color:var(--vi-accent)}.vd-resume{max-width:100%;overflow-wrap:anywhere;margin-top:15px}.vd-hidden{display:none!important}.vd-revealed{outline:2px dashed var(--vi-accent);outline-offset:6px}.vd-density{display:grid;gap:8px}.vd-form{display:grid;gap:18px}.vd-controls{padding:0;margin:0;list-style:none;display:grid;gap:8px}.vd-controls li{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;gap:7px;align-items:center;padding:10px;border:1px solid var(--vi-line);border-radius:10px}.vd-controls label{display:flex;align-items:center;gap:10px;min-width:0;font-size:13px}.vd-controls label span{overflow-wrap:anywhere}.vd-controls input{width:22px;height:22px;min-height:22px!important;padding:0;accent-color:var(--vi-accent);flex:none}.vd-controls button{padding:8px!important;min-width:44px}.vd-controls button:disabled{opacity:.4;cursor:default}.vd-tools :is(button,a):focus-visible{outline:3px solid var(--vi-accent);outline-offset:3px}html[data-av-density=compact]:not([data-av-tv=on]) .av-home :is(#animeGrid,#topGrid){grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr))!important;gap:16px 12px!important}html[data-av-density=large]:not([data-av-tv=on]) .av-home :is(#animeGrid,#topGrid){grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr))!important;gap:24px!important}@media(max-width:760px){.vd-tools{align-items:flex-start;flex-direction:column;gap:10px}.vd-reading{padding:18px}.vd-reading-grid{grid-template-columns:1fr}.vd-reading-head h2{font-size:22px}.vd-controls li{padding:8px;gap:5px}.vd-controls label{gap:7px}.vd-dialog{padding:18px}html[data-av-density=compact]:not([data-av-tv=on]) .av-home :is(#animeGrid,#topGrid){grid-template-columns:repeat(auto-fill,minmax(min(130px,100%),1fr))!important;gap:12px 9px!important}html[data-av-density=large]:not([data-av-tv=on]) .av-home :is(#animeGrid,#topGrid){grid-template-columns:1fr!important}}
/* Per-widget width, independent of card density. Never crop live content or clone a widget. */
.av-home.vi-ready>main>.vd-sized{box-sizing:border-box;min-width:0;width:100%;max-width:100%}
@media(min-width:1100px){.av-home.vi-ready>main>.vd-sized[data-vd-size=small]{width:60%}.av-home.vi-ready>main>.vd-sized[data-vd-size=medium]{width:80%}}
.vd-controls .vd-size{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:8px}
.vd-controls .vd-size select{width:100%;min-width:0;font:inherit;font-size:13px;min-height:44px}
/* These legacy grids used viewport-based columns; a narrower desktop widget needs intrinsic reflow. */
@media(min-width:1100px){
.vd-sized:is([data-vd-size=small],[data-vd-size=medium]) .grid{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}
.vd-sized:is([data-vd-size=small],[data-vd-size=medium]) .calendar-grid{grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr))}
.vd-sized:is([data-vd-size=small],[data-vd-size=medium]) .tiers-board{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}
.vd-sized:is([data-vd-size=small],[data-vd-size=medium]) .vd-reading-grid{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr))}

}
