/* Owner controls share the pupil portal's quiet, vertically stacked layout. */
.vis-materials{margin:2rem 0 3rem;min-width:0}
.vis-materials h2{font:700 1.7rem/1.3 var(--serif);margin:0 0 .75rem;color:var(--ink)}
.vis-intro{font-size:.9375rem;line-height:1.7;color:var(--muted);margin:0 0 2rem;max-width:70ch}
.vis-group{margin-top:2.3rem;min-width:0}
.vis-group>h3{font:700 1.3rem/1.35 var(--font);color:var(--ink);padding-bottom:.8rem;margin:0;border-bottom:2px solid var(--line)}
.vis-folder{border-bottom:1px solid var(--line);min-width:0}
.vis-folder>summary{padding:1.05rem .1rem;cursor:pointer;color:var(--ink);line-height:1.5;min-height:48px;overflow-wrap:anywhere}
.vis-folder>summary:hover{background:var(--surface)}
.vis-folder-name{font-weight:650;font-size:1rem}
.vis-folder-overview{display:block;font-size:.8125rem;color:var(--muted);margin:.2rem 0 0 1.25rem;font-weight:400}
.vis-folder-body{padding:0 0 .9rem 1.25rem;min-width:0}
.vis-folder-settings{padding:.75rem 0 1rem;scroll-margin-top:1.5rem;min-width:0}
.vis-folder-settings>.vis-path{margin:0 0 .6rem}
.vis-children{border-top:1px solid var(--line)}
.vis-children>.vis-folder:last-child{border-bottom:0}
.vis-file{padding:1.1rem 0;border-bottom:1px solid var(--line);scroll-margin-top:1.5rem;min-width:0}
.vis-file:last-child{border-bottom:0}
.vis-file-name{min-width:0;margin:0 0 .8rem}
.vis-title{margin:0 0 .2rem;font-size:.9375rem;line-height:1.6;font-weight:600;overflow-wrap:anywhere;color:var(--ink)}
.vis-title a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.vis-title a:hover{color:var(--ink)}
.vis-path{margin:0;color:var(--muted);font:.8125rem/1.6 ui-monospace,Consolas,monospace;overflow-wrap:anywhere;word-break:normal}
.vis-controls{display:flex;align-items:center;justify-content:space-between;gap:.65rem 1rem;flex-wrap:wrap;min-width:0}
.vis-status{font-size:.8125rem;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.vis-status-visible{color:var(--green)}
.vis-status-hidden{font-weight:650}
.vis-action{margin:0;min-width:0;max-width:100%}
.vis-action button{font:600 .8125rem/1.5 var(--font);background:var(--paper);color:var(--ink);border:1px solid var(--input-line);border-radius:3px;padding:.6rem .85rem;min-height:44px;cursor:pointer;max-width:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
.vis-action button:hover:not(:disabled){background:var(--hover)}
.vis-action button:disabled{color:var(--muted);border-color:var(--line);background:var(--surface);cursor:default}
.vis-inherited{font-size:.8125rem;line-height:1.65;color:var(--muted);margin:.6rem 0 0;overflow-wrap:anywhere}
.vis-inherited a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.vis-feedback{margin:.9rem 0 0;padding:.75rem .9rem;border-left:3px solid var(--green);background:var(--surface);color:var(--ink);font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}
.vis-feedback-error{border-color:var(--math-accent)}
.vis-empty{font-size:.875rem;line-height:1.65;color:var(--muted);padding:.8rem 0;margin:0}
.vis-materials :is(a,button,summary):focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.vis-materials :is(.vis-file,.vis-folder-settings):target{background:var(--surface);outline:1px solid var(--line);outline-offset:5px}
@media(max-width:600px){.vis-folder-body{padding-left:.7rem}.vis-folder-overview{margin-left:0}.vis-action button{padding:.6rem .7rem}.vis-controls{gap:.5rem}.vis-group{margin-top:1.9rem}.vis-intro{font-size:.875rem}.vis-materials h2{font-size:1.55rem}}
@media(max-width:380px){.vis-controls{align-items:flex-start;flex-direction:column}.vis-action{align-self:flex-start}.vis-folder-body{padding-left:.5rem}}
