/* Video Wall Manager V1.0 FIX5 – unified navigation + full-width video wall.
   Works with FIX3/FIX4 data; no schema migration. Loads after all earlier styles. */
.wall-fullwidth{display:block;min-width:0;margin-top:14px}
.wall-folder-toolbar{display:flex;align-items:center;gap:12px;min-height:35px;margin-bottom:4px}
.folder-toolbar-tip{font-size:13px;color:#829399;line-height:1.4}
.folder-drawer-open{display:none}
.wall-fullwidth .category-breadcrumb{margin:2px 0 16px}
.wall-fullwidth .video-grid{width:100%;min-width:0}
/* Persistent sidebar: brand/footer stay fixed; links and folders scroll independently. */
.sidebar{overflow:hidden}
.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:18px;scrollbar-width:thin;scrollbar-color:#6a8796 transparent;overscroll-behavior:contain}
.sidebar-scroll::-webkit-scrollbar{width:7px}
.sidebar-scroll::-webkit-scrollbar-thumb{background:#698491;border-radius:8px}
.sidebar .brand{flex:0 0 auto;position:relative;gap:10px;padding-right:43px;min-height:104px}
.sidebar .brand-wordmark{min-width:0;flex:1}
.sidebar .brand-wordmark strong{display:block;overflow-wrap:anywhere}
.sidebar .brand-wordmark small{display:block}
.sidebar .sidebar-bottom{flex:0 0 auto;margin-top:0}
.nav-link{display:flex;align-items:center;gap:12px;min-height:47px}
.nav-link .nav-symbol{flex:0 0 23px;width:23px;text-align:center;font-size:20px;line-height:1}
.nav-link .nav-label{min-width:0;flex:1}
.sidebar-collapse,.sidebar-close{border:1px solid #78939d66;background:#354e5d;color:#fff;display:grid;place-items:center;position:absolute;right:9px;top:32px;border-radius:9px;width:32px;height:34px;padding:0;font-size:18px}
.sidebar-collapse:hover,.sidebar-close:hover{background:#487281}
.sidebar-close{display:none}
/* Single folder section inside the dark navigation. */
.sidebar-folders{border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;margin:13px 10px 6px;padding:13px 0 11px}
.sidebar-folders-heading{display:flex;align-items:center;gap:3px;margin:0 5px 11px}
.sidebar-folders-heading-button{display:flex;align-items:center;gap:7px;min-width:0;flex:1;border:0;border-radius:9px;padding:8px 4px;color:#f5f9fa;background:transparent;text-align:left;min-height:43px}
.sidebar-folders-heading-button:hover{background:#ffffff13}
.sidebar-folders-heading-button strong{font-size:16px;line-height:1.4}
.sidebar-folder-heading-icon{font-size:18px}
.sidebar-folders-chevron{margin-left:auto;font-size:16px;transition:transform .18s}
.sidebar-folders-heading-button[aria-expanded="false"] .sidebar-folders-chevron{transform:rotate(-90deg)}
.sidebar-folders-manage{flex:0 0 auto;font-size:13px;font-weight:700;color:#a5e6e4;border:1px solid #85c6c050;border-radius:8px;padding:5px 7px}
.sidebar-folders-manage:hover{background:#436c76}
.sidebar-folders-body[hidden]{display:none!important}
.sidebar-folder-all{display:flex;align-items:center;gap:9px;min-height:47px;margin:0 5px 6px;padding:9px 10px;border-radius:10px;font-size:15px;font-weight:700;color:#e2eded}
.sidebar-folder-all strong{margin-left:auto;background:#ffffff16;border-radius:99px;font-size:13px;min-width:23px;text-align:center;padding:2px 5px}
.sidebar-folder-all:hover,.sidebar-folder-link:hover{background:#ffffff17}
.sidebar-folder-all.is-current,.sidebar-folder-link.is-current{background:#b4e0df!important;color:#173d47!important;box-shadow:inset 3px 0 #67b5b5}
.sidebar-folder-all.is-current strong,.sidebar-folder-link.is-current .sidebar-folder-count{background:#4a929733;color:#173d47}
.sidebar-folder-hide{display:flex;align-items:center;gap:8px;min-height:42px;padding:7px 9px;margin:0 2px 7px;color:#c5d6da;font-size:13px;cursor:pointer}
.sidebar-folder-hide input{height:18px;width:18px;min-height:18px;flex-shrink:0;accent-color:#9dd9d9}
.sidebar-folder-tree{display:grid;gap:4px}
.sidebar-folder-node{min-width:0}
.sidebar-folder-row{display:flex;align-items:stretch;gap:2px;min-width:0}
.sidebar-folder-arrow,.sidebar-folder-arrow-spacer{flex:0 0 24px;display:grid;place-items:center;min-height:49px;padding:0;border:0;color:#b9d3d6;background:transparent;border-radius:7px;font-size:17px}
.sidebar-folder-arrow[aria-expanded="false"]{transform:rotate(-90deg)}
.sidebar-folder-arrow:hover{background:#ffffff22;color:white}
.sidebar-folder-link{flex:1;display:flex;align-items:center;gap:6px;min-width:0;min-height:49px;padding:6px 6px 6px 4px;border-radius:9px;color:#e9f1f3}
.sidebar-folder-icon{flex:0 0 21px;font-size:17px;line-height:1.25}
.sidebar-folder-name{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.sidebar-folder-name strong{font-size:14px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.sidebar-folder-row.is-root .sidebar-folder-name strong{font-size:15px;font-weight:800}
.sidebar-folder-name small{color:#a9c1c8;font-size:11px;line-height:1.4;white-space:nowrap}
.sidebar-folder-link.is-current .sidebar-folder-name small{color:#3a666a}
.sidebar-folder-count{flex:0 0 auto;padding:2px 6px;min-width:22px;text-align:center;border-radius:30px;background:#ffffff1b;color:#d1eaec;font-size:12px;font-weight:800}
.sidebar-folder-children{margin-left:13px;padding-left:6px;border-left:1px solid #93b4bc44;display:grid;gap:3px}
.sidebar-folder-children[hidden]{display:none!important}
.sidebar-folder-empty{font-size:13px;line-height:1.6;color:#bad0d5;margin:9px}
.sidebar-folder-empty a{color:#a8e7e2;text-decoration:underline}
.hide-empty-categories .sidebar-folder-node.zero-category:not(.is-selected-path){display:none!important}
/* Compact/collapsible desktop sidebar, persisted between page visits. */
@media(min-width:851px){
 .sidebar{transition:width .2s ease,min-width .2s ease}
 .sidebar.is-collapsed{width:76px!important;min-width:76px!important}
 .sidebar.is-collapsed .brand{min-height:100px;padding:27px 11px;justify-content:center}
 .sidebar.is-collapsed .brand-icon{margin:0}
 .sidebar.is-collapsed .brand-wordmark,.sidebar.is-collapsed .sidebar-label,.sidebar.is-collapsed .nav-label,.sidebar.is-collapsed .sidebar-folders,.sidebar.is-collapsed .user-identity{display:none!important}
 .sidebar.is-collapsed .nav-link{justify-content:center;padding:12px 8px;margin:2px 8px}
 .sidebar.is-collapsed .nav-symbol{flex:0 0 25px;width:25px}
 .sidebar.is-collapsed .side-links{margin:10px 0}
 .sidebar.is-collapsed .sidebar-bottom{padding:13px 8px;gap:6px;flex-wrap:wrap;justify-content:center}
 .sidebar.is-collapsed .sidebar-bottom form{flex:0 0 auto}
 .sidebar.is-collapsed .sidebar-collapse{right:4px;top:5px;width:25px;height:25px;font-size:14px}
}
/* Tablets in portrait and phones: existing sidebar becomes a slide-out drawer.
   Avoid the duplicate cards panel formerly inserted above the video wall. */
@media(max-width:1120px){
 .wall-fullwidth{margin-top:12px}
 .folder-toolbar-tip{font-size:12px}
}
@media(max-width:850px){
 .sidebar{width:min(350px,90vw)!important;min-width:0!important;max-width:90vw;height:100dvh;min-height:0;box-shadow:10px 0 32px #122a3466}
 .sidebar-collapse{display:none}
 .sidebar-close{display:grid}
 .sidebar .brand{min-height:95px;padding-right:47px}
 .folder-drawer-open{display:inline-flex;gap:8px;align-items:center;font-size:15px;min-height:46px;padding:9px 14px}
 .wall-folder-toolbar{justify-content:flex-start;margin:2px 0 8px}
 .folder-toolbar-tip{display:none}
 .sidebar-folder-name strong{font-size:16px}
 .sidebar-folder-name small{font-size:12px}
 .sidebar-folder-row.is-root .sidebar-folder-name strong{font-size:17px}
 .sidebar-folder-link{min-height:53px}
 .sidebar-folder-arrow{min-height:53px;flex-basis:32px}
 .sidebar-folder-arrow-spacer{flex-basis:32px}
 .sidebar-folder-hide{min-height:47px}
}
@media(max-width:620px){
 .wall-fullwidth .video-grid[data-columns],.wall-fullwidth .video-grid.short-grid[data-columns]{grid-template-columns:repeat(2,minmax(0,1fr))}
 .folder-drawer-open{font-size:15px}
 .wall-fullwidth .category-breadcrumb{margin-bottom:12px}
 .sidebar-folder-children{margin-left:10px;padding-left:4px}
}
@media(max-width:360px){
 .wall-fullwidth .video-grid[data-columns],.wall-fullwidth .video-grid.short-grid[data-columns]{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none!important}}
/* Override the original generic '.nav-link span' icon rule for text labels. */
.nav-link > .nav-label{width:auto;display:block;font-size:16px;line-height:1.45;place-items:unset;min-width:0}
@media(max-width:1120px) and (min-width:851px){.nav-link > .nav-label{font-size:15px}}
