:root{font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;color:#f4f4f6;background:#0f0f12;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit}a{color:inherit;text-decoration:none}button:hover,a:hover{filter:brightness(1.15)}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #a89aff;outline-offset:3px}.layout{display:flex;min-height:100vh}.side{width:239px;flex:none;position:sticky;top:0;height:100vh;border-right:1px solid #292932;display:flex;flex-direction:column;padding:24px 13px;background:#141419}.brand{font-size:23px;font-weight:800;letter-spacing:-.9px;display:flex;align-items:center;gap:10px}.brand em{font-style:normal;color:#b1a0ff}.mark{display:grid;place-items:center;background:#7656df;color:white;border-radius:10px;width:38px;height:38px;font-size:19px}.side-brand{margin:0 8px 35px}.navset{display:grid;gap:7px}.nav{background:transparent;text-align:left;padding:13px 15px;border-radius:11px;display:flex;align-items:center;gap:16px;font-size:15px}.nav span{font-size:22px;width:20px;text-align:center}.nav.active,.nav:hover{background:#2b263e}.side-bottom{margin-top:auto;padding:14px 10px;font-size:13px}.other{display:flex;justify-content:space-between;padding:12px;background:#282237;border-radius:10px;color:#c7bcff;font-weight:650}.side-bottom p{font-size:12px;color:#888898;line-height:1.5}.main{flex:1;min-width:0}.topbar{position:sticky;top:0;z-index:5;height:81px;display:flex;gap:15px;align-items:center;padding:14px 30px;border-bottom:1px solid #26262d;background:#101015ee;backdrop-filter:blur(15px)}.searchbox{display:flex;align-items:center;gap:10px;border:1px solid #393843;background:#1d1c24;border-radius:30px;padding:0 17px;max-width:610px;flex:1;margin:auto}.searchbox span{font-size:23px;color:#aeabb9}.searchbox input{background:transparent;border:0;outline:0;padding:13px 0;width:100%;min-width:0;color:inherit}.primary,.secondary,.account,.icon-btn{background:#6d53d5;border-radius:22px;padding:11px 17px;font-weight:650;white-space:nowrap}.secondary,.account,.icon-btn{background:#292733}.account{border:1px solid #625296;background:transparent;color:#c6bafa}.menu,.mobile-brand{display:none}.content{padding:30px 36px;max-width:1600px;margin:auto}.welcome{background:linear-gradient(110deg,#2a1b58,#171622 66%,#15151c);border-radius:20px;padding:32px 36px;margin-bottom:35px;min-height:170px;display:flex;align-items:center}.eyebrow{font-size:11px;letter-spacing:2.1px;color:#c4b2ff;font-weight:800}.welcome h1{font-size:clamp(25px,3vw,39px);margin:10px 0}.welcome p{color:#c8c1db;font-size:14px;line-height:1.6;margin:0}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0}.section-title h2{font-size:22px}.section-title span{font-size:13px;color:#9999a8}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:25px 18px}.tile{min-width:0}.thumbnail{display:block;width:100%;aspect-ratio:16/9;border-radius:13px;overflow:hidden;position:relative;background:#23222c;padding:0}.thumbnail img{width:100%;height:100%;object-fit:cover}.play-symbol{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#16151dbb;padding:12px 17px;border-radius:50%;opacity:0;transition:opacity .2s}.thumbnail:hover .play-symbol{opacity:1}.tile-content{display:flex;gap:11px;padding-top:12px}.tile-avatar{width:34px;height:34px;background:#44347f;border-radius:50%;display:grid;place-items:center;flex:none}.tile-text{min-width:0}.tile-title{font-weight:700;text-align:left;line-height:1.4;font-size:15px;background:transparent;padding:0}.tile-sub{color:#9d9ca9;font-size:12px;margin-top:6px}.tile-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.tile-actions button{background:#272630;color:#d5d2e0;padding:6px 8px;border-radius:8px;font-size:11px}.empty{border:1px dashed #4a4658;border-radius:18px;min-height:250px;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:25px;text-align:center}.empty span{font-size:40px;color:#9586ee}.empty h3{margin:8px}.empty p{color:#aaa6b7;max-width:560px;font-size:14px}.toolbar{margin-bottom:20px}.playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:15px}.playlist-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;padding:23px;border-radius:15px;background:#24202e}.playlist-card span{font-size:30px;color:#b29bff}.playlist-card small{color:#a8a2b8}.notice{padding:12px 15px;border-radius:11px;background:#403345;color:#f9d7dc;margin-bottom:12px}.player-panel{margin:0 0 28px}.player-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.player-heading h2{font-size:19px}.player{width:100%;max-width:1030px;aspect-ratio:16/9;background:#050507;border-radius:13px;overflow:hidden}.player iframe{border:0;width:100%;height:100%}.muted{color:#a4a1b1}.small{font-size:12px}footer{color:#777684;font-size:12px;margin:48px 0 15px}.overlay{position:fixed;inset:0;z-index:20;background:#000b;display:grid;place-items:center;padding:18px}.overlay[hidden],.player-panel[hidden],.notice[hidden]{display:none}.modal{width:100%;max-width:460px;background:#1c1a24;border:1px solid #44404f;border-radius:19px;padding:27px;position:relative;box-shadow:0 20px 65px #0008}.modal h2{margin:0 0 12px}.modal p{font-size:14px;line-height:1.6}.modal-close{position:absolute;right:17px;top:13px;background:transparent;font-size:18px}.stack{display:grid;gap:15px;margin-top:19px}.stack label{display:grid;gap:7px;font-size:13px;font-weight:600}.stack input{border:1px solid #4c455a;background:#14121d;color:white;border-radius:10px;padding:12px;width:100%}@media(max-width:900px){.side{width:76px;padding:20px 7px}.side-brand>span:not(.mark),.side-bottom,.nav{font-size:0}.side-brand{margin-left:9px}.nav{justify-content:center;padding:14px 0}.nav span{font-size:24px}.topbar{padding:12px 17px}.content{padding:22px 18px}}@media(max-width:640px){.side{position:fixed;width:230px;z-index:12;transform:translateX(-100%);transition:transform .2s}.side.open{transform:none}.side-brand>span:not(.mark),.side-bottom{display:block}.nav{font-size:15px;justify-content:flex-start;padding:13px}.nav span{font-size:22px}.topbar{height:auto;display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:12px}.menu{display:block;background:transparent;font-size:21px}.mobile-brand{display:flex;font-size:17px}.mobile-brand .mark{width:30px;height:30px;font-size:16px}.searchbox{grid-column:1/4;grid-row:2;width:100%;max-width:none}.topbar .primary{grid-column:1/3;grid-row:3}.account{grid-column:3;grid-row:3}.topbar .primary,.account{font-size:12px;padding:10px 12px}.welcome{padding:23px}.content{padding:17px 13px}.video-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:17px 10px}.tile-content{gap:7px}.tile-avatar{width:27px;height:27px;font-size:11px}.tile-title{font-size:13px}.tile-actions button{font-size:10px}.section-title h2{font-size:19px}}

.catalog-meta{margin:10px 0 24px;color:#aba7b7;font-size:13px}.catalog-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.chip{background:#282533;padding:9px 15px;border-radius:20px;font-size:13px}.chip.active{background:#6d53d5}.tile-title{display:block}.tile-sub{line-height:1.4}.loading{padding:30px 0;color:#b6afd5}.error-box{background:#34242b;border:1px solid #714551;color:#f6c8cc;padding:18px;border-radius:12px;margin:16px 0}.error-box a{color:#dbcdff;text-decoration:underline}.player-panel{scroll-margin-top:100px}.tile-actions button{font-size:12px}.searchbox input{font-size:15px}#notice[hidden]{display:none}

/* Solvéra V0.3.2: agencement inspiré des principes de navigation vidéo modernes. */
:root{background:#0f0f0f;color:#f1f1f1}.side{background:#0f0f0f;border-right:0;width:237px;padding:18px 12px}.topbar{background:#0f0f0ff2;border-bottom:0;height:76px}.content{max-width:1700px;padding:18px 30px}.nav{border-radius:10px;padding:10px 12px}.nav.active,.nav:hover{background:#282828}.side-divider{height:1px;background:#2b2b2b;margin:16px 8px}.nav-section-title{font-size:15px;font-weight:700;padding:7px 16px}.browse{font-size:14px}.welcome{min-height:0;padding:17px 20px;background:#1b1b1b;margin-bottom:18px;border-radius:13px}.welcome h1{font-size:23px;margin:4px 0}.welcome p{font-size:13px}.eyebrow{font-size:10px}.searchbox{background:#121212;border-color:#333;max-width:680px}.searchbox input{padding:11px 0}.chip{background:#272727}.video-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:30px 16px}.thumbnail{border-radius:12px}.tile-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-clamp:2}.tile-avatar{background:#3b2f69}.shorts-layout{width:100%}.shorts-rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:18px}.short-card{text-align:left;background:transparent;padding:0;min-width:0}.short-card img{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:12px;background:#222}.short-card strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden;font-size:14px;line-height:1.4;margin:8px 0 4px}.short-card small{color:#aaa}.portrait-player .player{max-width:380px;aspect-ratio:9/16;margin:auto}.player-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.player-actions a{background:#292733;border-radius:18px;padding:11px 16px;color:#cfc3ff;font-size:13px;font-weight:700}.playback-error{background:#3b2430;border:1px solid #8e5265;color:#ffd5dc;padding:12px 14px;margin-top:10px;border-radius:10px}.playback-error[hidden]{display:none}@media(max-width:900px){.side{width:76px}.nav-section-title,.side-divider{display:none}.browse{font-size:0}}@media(max-width:640px){.side{width:230px}.nav-section-title,.side-divider{display:block}.browse{font-size:14px}.content{padding:13px}.shorts-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.welcome{padding:14px}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tile-avatar{display:none}}

/* Solvéra V0.4.5 corrigée - règles isolées, après les media queries historiques */
body:not(.solvera-sidebar-collapsed) .side{width:244px;min-width:244px}
body.solvera-sidebar-collapsed .side{width:76px;min-width:76px}
.side{padding:16px 12px;overflow:hidden;display:flex;flex-direction:column;transition:width .18s ease;z-index:8}
.side-brand{flex:none;margin:0 6px 18px;min-height:48px;white-space:nowrap;overflow:hidden}
.side-brand .brand-label{display:inline;white-space:nowrap}
.side-scroll{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#555 transparent;padding-right:2px}
.side-scroll::-webkit-scrollbar{width:5px}
.side-scroll::-webkit-scrollbar-thumb{background:#444;border-radius:10px}
.side .navset{display:flex;flex-direction:column;gap:3px}
.side .nav,.side .browse{display:flex;align-items:center;justify-content:flex-start;gap:16px;min-width:0;width:100%;padding:11px 12px;font-size:14px;text-align:left;line-height:1.3;white-space:nowrap;border-radius:11px;overflow:hidden}
.side .nav-icon,.side .nav span.nav-icon{display:flex;flex:none;width:25px;min-width:25px;justify-content:center;align-items:center;font-size:23px;line-height:1.2}
.side .nav-label,.side .nav span.nav-label{display:inline;min-width:0;width:auto;font-size:14px;overflow:visible;text-overflow:clip;white-space:nowrap}
.side .nav-section-title{display:block;font-size:15px;font-weight:700;padding:12px 12px 8px}
.side .side-divider{display:block;height:1px;margin:15px 4px;background:#303030}
.side #extraExplorer[hidden]{display:none!important}
.side #extraExplorer{display:flex;flex-direction:column;gap:3px}
.side .side-bottom{display:block;margin-top:16px;padding:8px 4px}
.topbar .menu{display:inline-grid;place-items:center;flex:none;background:transparent;color:inherit;font-size:24px;width:42px;height:42px;border-radius:50%}
.topbar .menu:hover{background:#262626}
body.solvera-sidebar-collapsed .side{padding-left:7px;padding-right:7px}
body.solvera-sidebar-collapsed .side-brand{margin:0 0 18px;justify-content:center}
body.solvera-sidebar-collapsed .side-brand .brand-label,
body.solvera-sidebar-collapsed .side .nav-label,
body.solvera-sidebar-collapsed .side .nav-section-title,
body.solvera-sidebar-collapsed .side .side-divider,
body.solvera-sidebar-collapsed .side .side-bottom{display:none!important}
body.solvera-sidebar-collapsed .side .nav,body.solvera-sidebar-collapsed .side .browse{justify-content:center;padding:12px 0;gap:0}
body.solvera-sidebar-collapsed .side-scroll{padding-right:0}
@media(min-width:641px) and (max-width:900px){
  body:not(.solvera-sidebar-collapsed) .side{width:244px;min-width:244px}
  body:not(.solvera-sidebar-collapsed) .side .nav-label{display:inline}
  body:not(.solvera-sidebar-collapsed) .side .nav-section-title{display:block}
  body:not(.solvera-sidebar-collapsed) .side .side-bottom{display:block}
  body:not(.solvera-sidebar-collapsed) .side .side-divider{display:block}
  body:not(.solvera-sidebar-collapsed) .side-brand .brand-label{display:inline}
}
@media(max-width:640px){
  body .side,body:not(.solvera-sidebar-collapsed) .side,body.solvera-sidebar-collapsed .side{position:fixed;left:0;top:0;bottom:0;height:100dvh;width:244px;min-width:244px;transform:translateX(-110%);transition:transform .2s ease;box-shadow:8px 0 25px #0007;z-index:12;padding:16px 12px}
  body .side.open{transform:translateX(0)}
  body .side .nav-label,body.solvera-sidebar-collapsed .side .nav-label,
  body .side .nav-section-title,body.solvera-sidebar-collapsed .side .nav-section-title,
  body .side .side-divider,body.solvera-sidebar-collapsed .side .side-divider,
  body .side .side-bottom,body.solvera-sidebar-collapsed .side .side-bottom,
  body .side-brand .brand-label,body.solvera-sidebar-collapsed .side-brand .brand-label{display:block!important}
  body .side .nav,body.solvera-sidebar-collapsed .side .nav{justify-content:flex-start;padding:11px 12px;gap:16px;font-size:14px}
  body .side .navset{gap:3px}
  .topbar .menu{display:inline-grid}
}

/* V0.4.5.1 : hamburger à gauche du logo */
.side-header{display:flex;align-items:center;gap:12px;min-height:54px;margin-bottom:18px;flex:none}
.side-header .side-brand{margin:0;min-height:0;flex:1;overflow:hidden}
.side-menu{display:grid;place-items:center;flex:none;width:40px;height:40px;background:transparent;border-radius:50%;font-size:25px;line-height:1}
.side-menu:hover{background:#282828}
@media(min-width:641px){.topbar .menu{display:none!important}body.solvera-sidebar-collapsed .side-header{justify-content:center}body.solvera-sidebar-collapsed .side-header .side-brand{display:none}}
@media(max-width:640px){.side-header .side-menu{display:none}.side-header .side-brand{display:flex!important}.topbar .menu{display:inline-grid!important}}

/* V0.4.5.2 : barre supérieure indépendante du volet latéral.
   Le logo et le nom Solvéra restent toujours visibles. */
body .topbar{position:fixed;top:0;left:0;right:0;width:100%;height:76px;z-index:15;padding:10px 25px;display:flex;align-items:center;background:#0f0f0f;gap:16px}
body .persistent-brand-controls{width:280px;min-width:280px;display:flex;align-items:center;gap:20px;flex:none}
body .persistent-brand{display:flex;align-items:center;gap:9px;white-space:nowrap;flex:none;overflow:visible;margin:0;font-size:23px}
body .persistent-brand .brand-label{display:inline!important;font-size:23px;white-space:nowrap}
body .topbar .menu{display:inline-grid!important;place-items:center;flex:none;border-radius:50%;width:40px;height:40px;background:transparent;font-size:25px}
body .topbar .menu:hover{background:#282828}
body .side,body:not(.solvera-sidebar-collapsed) .side,body.solvera-sidebar-collapsed .side{top:76px;height:calc(100vh - 76px)}
body .main{padding-top:76px}
body .side .side-header{display:none!important}
body .topbar .searchbox{margin-left:auto;margin-right:auto}
@media (max-width:900px){body .persistent-brand-controls{width:215px;min-width:215px}}
@media (max-width:640px){
  body .topbar{height:72px;padding:8px 12px;display:grid;grid-template-columns:1fr auto;gap:9px}
  body .persistent-brand-controls{width:auto;min-width:0;gap:9px;grid-column:1;grid-row:1}
  body .persistent-brand{font-size:17px}
  body .persistent-brand .brand-label{font-size:17px}
  body .persistent-brand .mark{width:31px;height:31px;font-size:16px}
  body .topbar .account{grid-column:2;grid-row:1}
  body .topbar .searchbox{grid-column:1 / 3;grid-row:2;width:100%;max-width:none}
  body .topbar{height:116px}
  body .main{padding-top:116px}
  body .side,body:not(.solvera-sidebar-collapsed) .side,body.solvera-sidebar-collapsed .side{top:116px;height:calc(100dvh - 116px)}
}
