/* =============================================================================
   ENSA Oujda — Sidebar Rail Architecture
   Full-width workspace layout + precision vertical divider toggle.
   ========================================================================== */

/* ── SIDEBAR COLLAPSE & RAIL ARCHITECTURE ───────────────────────────────── */
.shell{grid-template-columns:244px minmax(0,1fr);transition:grid-template-columns .2s cubic-bezier(.2,.8,.2,1)}
.shell.mini{grid-template-columns:64px minmax(0,1fr)}
@media(max-width:940px){.shell,.shell.mini{grid-template-columns:1fr}}

/* Interactive divider line along the right edge of the sidebar */
.side::after{content:"";position:absolute;top:0;right:-1px;bottom:0;width:3px;
  background:transparent;transition:background .15s;pointer-events:none}
.side:hover::after{background:rgba(21,75,90,.28)}
[data-theme="dark"] .side:hover::after{background:rgba(56,141,166,.35)}

/* Precision toggle button anchored on the right border line of the sidebar */
.side-toggle{position:absolute;right:-12px;left:auto;top:24px;
  width:24px;height:24px;border-radius:6px;border:1px solid var(--line-2);
  background:var(--paper);color:var(--muted);cursor:pointer;
  display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.08);
  transition:color .14s,background .14s,border-color .14s;z-index:50}
.side-toggle:hover{color:var(--ink);background:var(--paper-2);border-color:var(--petrol)}
[data-theme="dark"] .side-toggle{background:var(--paper-3);color:var(--body);border-color:var(--line-2)}
[data-theme="dark"] .side-toggle:hover{background:var(--paper);color:var(--ink);border-color:var(--teal)}
.side-toggle svg{width:13px;height:13px;transition:transform .2s ease}
.shell.mini .side-toggle svg{transform:rotate(180deg)}
@media(max-width:940px){.side-toggle{display:none}}

/* Collapsed 64px rail layout */
.shell.mini .side{padding:18px 10px;align-items:center}
.shell.mini .brand-lockup{justify-content:center;width:100%}
.shell.mini .brand-lockup .wm,
.shell.mini .side-nav button span,
.shell.mini .me-txt,
.shell.mini #logoutBtn{display:none!important}
.shell.mini .side-nav{width:100%;align-items:center}
.shell.mini .side-nav button{justify-content:center;padding:0;width:40px;height:40px;border-radius:8px}
.shell.mini .side-nav svg{width:18px;height:18px}
.shell.mini .theme-btn{margin-inline:auto;width:40px;height:36px}
.shell.mini .me{padding:4px;justify-content:center;width:40px;height:40px;border-radius:8px;background:transparent;border-color:transparent}

@media(max-width:940px){
  .shell.mini .side{flex-direction:row;padding:10px 14px;gap:10px}
  .shell.mini .side-nav{flex-direction:row;width:auto}
  .shell.mini .side-nav button{width:auto;height:auto;padding:8px 11px}
}

/* ── UPLOAD SECTION (full balanced workspace grid) ──────────────────────── */
.up-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(320px,1fr);gap:24px;align-items:start}
@media(max-width:1000px){.up-grid{grid-template-columns:1fr}}

.dropzone{border:2px dashed var(--line-2);border-radius:16px;padding:46px 28px;text-align:center;
  background:var(--paper);cursor:pointer;transition:border-color .15s,background .15s}
.dropzone:hover,.dropzone.over{border-color:var(--petrol);background:var(--sky-wash)}
.dropzone .ic{width:54px;height:54px;margin:0 auto 14px;border-radius:14px;display:grid;
  place-items:center;background:var(--petrol);color:#fff}
.dropzone b{display:block;color:var(--ink);font-size:16.5px;font-family:var(--head);font-weight:700;margin-bottom:6px}
.dropzone span{font-size:13.5px;color:var(--muted);line-height:1.45}
.dropzone input{display:none}

.picked{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;
  background:var(--sky-wash);border:1px solid var(--sky-line);margin-top:14px}
.picked .ico{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;
  color:#fff;flex:none}
.picked .t{flex:1;min-width:0}
.picked .t b{display:block;color:var(--ink);font-size:13.5px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.picked .t span{font-size:11px;color:var(--muted);font-family:var(--mono)}

.formats{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fmt{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:6px;
  background:var(--paper-2);border:1px solid var(--line);font:500 11.5px/1 var(--mono);color:var(--muted)}
.fmt .sw{width:7px;height:7px;border-radius:50%}

/* ── MEDIA FORMAT TABS ──────────────────────────────────────────────────── */
.media-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.mtab{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:7px;
  border:1px solid var(--line);background:var(--paper);
  font:500 12px/1 var(--font);color:var(--muted);cursor:pointer;transition:border-color .12s,color .12s}
.mtab:hover{border-color:var(--line-2);color:var(--ink)}
.mtab .k{width:6px;height:6px;border-radius:50%;flex:none}
.mtab .n{font:500 10px/1 var(--mono);opacity:.72}
.mtab.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

.doc-search-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:100%}
.doc-search-wrap{
  position:relative;display:flex;align-items:center;flex:1 1 240px;min-width:0;max-width:100%;
}
.doc-search-icon{
  position:absolute;left:13px;color:var(--muted);pointer-events:none;flex:none;
}
.doc-search-input{
  height:40px;min-height:40px;max-height:40px;
  padding:8px 14px 8px 36px;border-radius:10px;border:1px solid var(--line);
  background:var(--paper-2);color:var(--ink);font-size:13px;
  width:100%;box-sizing:border-box;outline:none;
  transition:border-color .15s ease,background .15s ease;
}
.doc-search-input:focus{
  background:var(--paper);border-color:var(--petrol);
}

.doc-card .badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;
  border-radius:4px;font:600 9.5px/1 var(--mono);letter-spacing:.06em;
  text-transform:uppercase;flex:none}
.doc-card .thumb{aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--paper-3);
  position:relative;margin-bottom:2px}
.doc-card .thumb img{width:100%;height:100%;object-fit:cover}

/* ── MOBILE ERGONOMICS & BOTTOM NAVIGATION BAR (<= 940px & <= 640px) ───── */
html, body {
  overflow-x: clip;
  max-width: 100vw;
  width: 100%;
}

@media(min-width: 941px) {
  .side {
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    overflow: visible !important;
  }
  .side-nav {
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .side-nav::-webkit-scrollbar {
    display: none;
  }
}

@media(max-width:940px){
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw;
    width: 100%;
  }
  .side::after{display:none!important}
  .side{
    position:fixed;bottom:0;left:0;right:0;top:auto;
    height:calc(56px + env(safe-area-inset-bottom, 0px));
    padding:3px 4px calc(3px + env(safe-area-inset-bottom, 0px));
    border-right:0;border-top:1px solid var(--line);
    background:var(--paper);z-index:120;display:flex;flex-direction:row;
    align-items:center;justify-content:space-between;gap:0;
    box-shadow:0 -3px 16px rgba(0,0,0,.08);
    overflow:hidden!important;width:100%;max-width:100vw;box-sizing:border-box;
  }
  .side .brand-lockup,
  .side .me,
  .side #logoutBtn,
  .side .theme-btn,
  .side-toggle{display:none!important}
  .side-nav{
    display:flex;flex-direction:row;align-items:stretch;justify-content:space-between;
    width:100%;gap:1px;
    overflow:hidden!important;
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
    padding:0;margin:0;
  }
  .side-nav::-webkit-scrollbar{
    display:none!important;width:0!important;height:0!important;
  }
  .side-nav button{
    flex:1 1 0;min-width:0;flex-direction:column;justify-content:center;
    align-items:center;gap:2px;padding:4px 1px;border-radius:8px;border:0;
    font-size:10px;line-height:1.1;text-align:center;
    background:transparent;color:var(--muted);
    transition:color .12s,background .12s,transform .1s;
    user-select:none;-webkit-tap-highlight-color:transparent;
  }
  .side-nav button:active{
    transform:scale(0.94);
  }
  .side-nav button.on{
    color:var(--brand, var(--petrol));
    font-weight:700;
    background:rgba(21,75,90,.08);
  }
  [data-theme="dark"] .side-nav button.on{
    background:rgba(44,122,145,.18);
    color:var(--teal,#2c99b7);
  }
  .side-nav button svg{width:19px;height:19px;margin:0;flex-shrink:0}
  .side-nav button span{
    display:block!important;font-size:9.5px;line-height:1.1;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;max-width:100%;width:100%;
    text-align:center;letter-spacing:-0.2px;
  }
  .main{
    padding:16px 14px calc(76px + env(safe-area-inset-bottom, 0px))!important;
    width:100%;max-width:100vw;box-sizing:border-box;overflow-x:hidden!important;
  }
  .top{margin-bottom:14px;padding-bottom:10px;gap:8px;flex-wrap:wrap}
  .top h1{font-size:19px}
  .lib-layout{grid-template-columns:1fr!important;gap:12px}
  .lib-side{
    display:flex!important;flex-direction:row!important;overflow-x:auto!important;
    scrollbar-width:none!important;-ms-overflow-style:none!important;
    -webkit-overflow-scrolling:touch;
    gap:6px;padding-bottom:4px;
  }
  .lib-side::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .lib-chip{white-space:nowrap;flex:none}
}

@media(max-width:640px){
  .card{padding:14px 12px;margin-bottom:12px;border-radius:14px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
  .card-head{flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:100%;min-width:0}
  .doc-search-bar{
    width:100%!important;display:flex!important;flex-direction:column!important;
    align-items:stretch!important;gap:8px!important;
  }
  .doc-search-wrap{
    width:100%!important;flex:none!important;
  }
  .doc-search-input{
    width:100%!important;min-width:0!important;flex:none!important;
    height:42px!important;min-height:42px!important;max-height:42px!important;
    padding:8px 14px 8px 36px!important;font-size:13.5px!important;box-sizing:border-box!important;
  }
  #docDepositHereBtn{
    width:100%!important;justify-content:center!important;height:38px!important;
    padding:8px 14px!important;font-size:13px!important;
  }
  .stats-ledger{grid-template-columns:1fr 1fr;gap:8px}
  .stat-cell{padding:12px 12px}
  .stat-cell .v{font-size:20px}
  .stat-cell .k{font-size:10px}
  .fil-grid{grid-template-columns:1fr}
  .mod-folder{
    border-radius:14px!important;background:var(--paper)!important;
    box-shadow:none!important;
  }
  .mod-folder-head{
    padding:10px 11px!important;gap:8px!important;display:flex!important;
    flex-wrap:wrap!important;align-items:center!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    box-sizing:border-box!important;background:var(--paper-2)!important;
    border-radius:14px!important;
  }
  .mod-folder.open > .mod-folder-head{
    border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;
  }
  .mf-chev{flex:0 0 auto}
  .mf-code{flex:0 0 auto;font-size:10.5px;padding:3px 7px}
  .mf-matrix{flex:0 0 auto;margin-left:auto;gap:4px}
  .mf-stat{padding:3px 6px;font-size:10px}
  .mf-title-wrap{
    width:100%!important;flex:1 1 100%!important;order:3;
    margin-top:2px;min-width:0!important;max-width:100%!important;
  }
  .mf-title{font-size:13.5px;word-break:break-word!important;overflow-wrap:break-word!important}
  .mf-elements-sub{
    font-size:10px;padding:3px 6px;white-space:normal!important;
    word-break:break-word!important;overflow-wrap:anywhere!important;
    max-width:100%!important;line-height:1.35;
  }
  .mf-up-trigger{
    order:4;margin-left:auto;font-size:10.5px;padding:4px 8px;
  }
  .sub-acc-head{padding:10px 12px}
  .sub-file-row{padding:8px 10px;gap:8px;flex-wrap:wrap}
  .sub-file-actions{width:100%;justify-content:flex-end}
  .doc{flex-wrap:wrap;gap:8px;padding:11px 12px}
  .doc .body{min-width:65%}
  .doc .body b{white-space:normal;line-height:1.35}
  .doc .size{margin-left:auto}
  .chat{height:calc(100dvh - 150px);min-height:400px;border-radius:10px}
  .bub{max-width:88%}
  .composer{padding:8px 10px;gap:6px}
  .composer input{font-size:14px;padding:8px 10px}
  .chat-attach-menu{bottom:calc(100% + 8px);left:0;width:190px}
  .toast{bottom:calc(74px + env(safe-area-inset-bottom, 0px))!important;z-index:999!important}
  .viewer-modal-card{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}
  .video-modal-card{width:100vw;border-radius:0;border:0}
  .viewer-toolbar{padding:8px 10px;gap:6px}
  .vt-title{max-width:130px;font-size:12px}
}

/* ── FAMOUS APP FLOATING USER POPOVER & BOTTOM DOCK ─────────────────────── */
.user-dock-wrap{position:relative;width:100%;margin-top:auto;padding-top:8px}
.user-dock{
  display:flex;align-items:center;justify-content:space-between;gap:4px;
  padding:2px 0;width:100%;
}
.user-pill-btn{
  display:flex;align-items:center;gap:10px;flex:1;min-width:0;
  padding:6px 10px 6px 6px;border-radius:10px;border:1px solid transparent;
  background:transparent;cursor:pointer;text-align:left;
  transition:background .14s,border-color .14s;
}
.user-pill-btn:hover,.user-pill-btn.open{
  background:var(--paper-3);border-color:var(--line);
}
[data-theme="dark"] .user-pill-btn:hover,[data-theme="dark"] .user-pill-btn.open{
  background:#26272B;border-color:rgba(255,255,255,.06);
}
.user-pill-btn .avatar{
  width:32px;height:32px;border-radius:50%;background:#E88B1A;color:#fff;
  font:600 13px/1 var(--font);display:grid;place-items:center;flex:none;
}
.user-pill-btn .me-txt b{
  font:500 14px/1.2 var(--font);color:var(--ink);display:block;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dock-actions{display:flex;align-items:center;gap:2px;flex:none}
.dock-ic-btn{
  width:32px;height:32px;border-radius:8px;border:0;background:transparent;
  color:var(--muted);display:grid;place-items:center;cursor:pointer;
  transition:color .12s,background .12s;
}
.dock-ic-btn:hover{color:var(--ink);background:var(--paper-3)}
[data-theme="dark"] .dock-ic-btn:hover{color:#fff;background:#26272B}

/* Collapsed sidebar adjustments for dock */
.shell.mini .user-dock{flex-direction:column;gap:6px}
.shell.mini .user-pill-btn{padding:4px;justify-content:center}
.shell.mini .user-pill-btn .me-txt{display:none!important}
.shell.mini .dock-actions{flex-direction:column}

/* Avatar uploaded image support */
.avatar{overflow:hidden;position:relative}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}

/* Theme-Aware Floating Popover Menu + Hover Cascading Submenus */
.user-popover,.pop-flyout{
  background:var(--paper);
  border:1px solid var(--line-2);
  box-shadow:0 14px 36px rgba(20,21,23,.14),0 2px 8px rgba(20,21,23,.06);
  color:var(--ink);
}
[data-theme="dark"] .user-popover,[data-theme="dark"] .pop-flyout{
  background:#1E1F23;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 18px 42px rgba(0,0,0,.48),0 2px 8px rgba(0,0,0,.28);
  color:#E5E6EB;
}
.user-popover{
  position:absolute;bottom:calc(100% + 8px);left:0;width:228px;
  padding:6px;border-radius:12px;z-index:260;
  display:flex;flex-direction:column;gap:1px;
  animation:popFade .14s cubic-bezier(.16,1,.3,1);
}
@keyframes popFade{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

.pop-sub-wrap{position:relative;width:100%}
.pop-item,.fly-item{
  display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;
  border-radius:8px;border:0;background:transparent;color:var(--ink);
  font:450 13.5px/1.25 var(--font);cursor:pointer;text-align:left;
  transition:background .1s,color .1s;
}
[data-theme="dark"] .pop-item,[data-theme="dark"] .fly-item{color:#E5E6EB}

.pop-item:hover,.pop-item:focus-visible,
.pop-sub-wrap:hover > .pop-item,
.fly-item:hover,.fly-item:focus-visible{
  background:var(--paper-3);color:var(--ink);outline:none;
}
[data-theme="dark"] .pop-item:hover,[data-theme="dark"] .pop-item:focus-visible,
[data-theme="dark"] .pop-sub-wrap:hover > .pop-item,
[data-theme="dark"] .fly-item:hover,[data-theme="dark"] .fly-item:focus-visible{
  background:#2C2D33;color:#FFFFFF;
}

.pop-item .pop-ic{width:16px;height:16px;color:var(--muted);flex:none}
[data-theme="dark"] .pop-item .pop-ic{color:#A1A4AE}
.pop-item:hover .pop-ic,.pop-sub-wrap:hover > .pop-item .pop-ic{color:var(--ink)}
[data-theme="dark"] .pop-item:hover .pop-ic,[data-theme="dark"] .pop-sub-wrap:hover > .pop-item .pop-ic{color:#FFFFFF}

.pop-item .pop-lbl{flex:1;min-width:0;white-space:nowrap}
.pop-item .pop-chev{width:13px;height:13px;color:var(--muted);flex:none}
[data-theme="dark"] .pop-item .pop-chev{color:#8E929E}

/* Hover Cascading Submenu (Flyout to the right, matching reference screenshot) */
.pop-flyout{
  position:absolute;left:calc(100% + 6px);top:-4px;min-width:176px;
  padding:6px;border-radius:11px;z-index:280;
  display:none;flex-direction:column;gap:1px;
  animation:popFade .12s cubic-bezier(.16,1,.3,1);
}
.pop-flyout::before{
  content:"";position:absolute;left:-10px;top:0;bottom:0;width:12px;
}
.pop-sub-wrap:hover > .pop-flyout,
.pop-sub-wrap:focus-within > .pop-flyout{
  display:flex;
}
.fly-item{justify-content:space-between;padding:8px 12px}
.fly-item .fly-chk{
  font:600 12.5px/1 var(--mono);opacity:0;color:var(--ink);margin-left:10px;
}
[data-theme="dark"] .fly-item .fly-chk{color:#E5E6EB}
.fly-item.on .fly-chk{opacity:1}

.pop-sep{height:1px;background:var(--line);margin:5px 4px}
[data-theme="dark"] .pop-sep{background:rgba(255,255,255,.08)}

.pop-reward-badge{
  padding:3px 8px;border-radius:6px;background:#4E331B;color:#F3B872;
  font:600 11px/1 var(--font);letter-spacing:.01em;flex:none;
}
.pop-item.danger:hover{background:rgba(220,68,55,.12);color:#D93829}
[data-theme="dark"] .pop-item.danger:hover{background:rgba(220,68,55,.16);color:#FF897D}
.pop-item.danger:hover .pop-ic{color:currentColor}

/* ── PROFILE PAGE & COMPACT INTERFACE MODE ──────────────────────────────── */
.prof-hero-preview{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  border-radius:10px;background:var(--paper-2);border:1px solid var(--line);
  margin-bottom:18px;
}
.prof-hero-preview b{font-size:15.5px;color:var(--ink)}
.pref-list{display:flex;flex-direction:column;gap:10px}
.pref-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 14px;border-radius:9px;background:var(--paper-2);
  border:1px solid var(--line);
}
.pref-row b{display:block;font-size:13.5px;color:var(--ink);margin-bottom:2px}
.pref-row span{display:block;font-size:12px;color:var(--muted);line-height:1.35}

html[data-density="compact"] .main{padding-top:18px}
html[data-density="compact"] .card{padding:15px 16px;margin-bottom:12px}
html[data-density="compact"] .stat-cell{padding:12px 15px}
html[data-density="compact"] .room{padding:7px 9px}
html[data-density="compact"] .doc{padding:9px 12px}

@media(max-width:940px){
  .user-dock-wrap{display:none!important}
}

/* ── FORMATION CURRICULUM HIERARCHY (ensao.ump.ma/fr/diplomes) ────────── */
.lib-explorer{
  display:grid;grid-template-columns:236px minmax(0,1fr);gap:18px;
  align-items:start;margin-top:6px;
}
.lib-side-pane{
  background:var(--paper-2);border:1px solid var(--line);border-radius:12px;
  padding:10px;position:sticky;top:16px;
}
.lib-side-title{
  font:600 10.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);padding:4px 8px 9px;border-bottom:1px solid var(--line);
  margin-bottom:6px;
}
.lib-side{
  display:flex;flex-direction:column;gap:3px;
}
.lib-side .lib-chip{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:10px 12px;border-radius:10px;border:1px solid transparent;
  background:transparent;color:var(--ink);text-align:left;cursor:pointer;
  transition:all .14s ease;
}
.lib-side .lib-chip:hover{
  background:var(--paper);border-color:var(--line);color:var(--ink);
}
.lib-side .lib-chip.on{
  background:var(--paper);border-color:var(--line-2);color:var(--ink);
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}
.lib-side .lib-chip .sw{
  width:9px;height:9px;border-radius:50%;flex:none;
}
.lib-chip-txt{
  flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;
}
.lib-chip-txt b{
  font:700 13px/1.15 var(--mono);color:var(--ink);
}
.lib-chip-txt span{
  font:500 12px/1.2 var(--font);color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.lib-side .lib-chip .n{
  font:600 11.5px/1 var(--mono);padding:3px 7px;border-radius:6px;
  background:var(--paper-2);border:1px solid var(--line);color:var(--muted);
}
.lib-side .lib-chip.on .n{
  background:var(--ink);color:var(--paper);border-color:var(--ink);
}

/* Right Workspace */
.lib-workspace{
  display:flex;flex-direction:column;gap:14px;min-width:0;
}
.lib-fil-banner{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:16px 20px;border-radius:14px;background:var(--paper-2);border:1px solid var(--line);
}
.lfb-left{display:flex;align-items:center;gap:14px;min-width:0}
.lfb-badge{
  padding:7px 12px;border-radius:9px;font:700 13.5px/1 var(--mono);letter-spacing:.03em;flex:none;
}
.lfb-titles{min-width:0}
.lfb-titles h3{
  margin:0 0 4px;font:700 16px/1.25 var(--head);color:var(--ink);
}
.lfb-titles span{
  display:block;font:500 12.5px/1.3 var(--font);color:var(--muted);
}

/* Unified Control Bar: Semestre Tabs (left) + Support Kind Tabs (right) */
.lib-control-bar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:9px 12px;border-radius:12px;background:var(--paper-2);border:1px solid var(--line);
}
.sem-tabs{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;border:0;padding:0;
}
.sem-tab{
  padding:7px 13px;border-radius:8px;border:1px solid transparent;
  background:transparent;color:var(--ink);font:600 12.5px/1 var(--font);
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  transition:all .12s ease;
}
.sem-tab:hover{background:var(--paper);color:var(--ink)}
.sem-tab.on{
  background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:700;
}
.sem-tab .n{
  font:600 11px/1 var(--mono);padding:2px 6px;border-radius:5px;
  background:rgba(128,128,128,.18);color:inherit;
}

.lib-control-bar .doc-tabs{
  margin:0;padding:0;display:flex;align-items:center;gap:5px;flex-wrap:wrap;
}
.lib-control-bar .doc-tab{
  padding:6px 11px;font-size:12px;border-radius:8px;
}

/* Structured Module Folders (M1..M6) with Smooth Expand/Collapse Animations */
.mod-folders-wrap{
  display:flex;flex-direction:column;gap:14px;
}
.mod-folder{
  border-radius:16px;border:1px solid var(--line);background:var(--paper);
  overflow:hidden;transition:border-color .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1);
  -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;
  -webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;
}
.mod-folder.open{
  border-color:var(--line-2);box-shadow:0 4px 14px rgba(0,0,0,.08);
}
.mod-folder-head{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:15px 18px;background:var(--paper-2);cursor:pointer;
  -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;
  -webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;
  outline:none!important;
  transition:background .15s ease;
}
.mod-folder-head:hover{
  background:var(--paper);
}
.mod-folder-head:focus,.mod-folder-head:active{
  outline:none!important;-webkit-tap-highlight-color:transparent!important;
}
.mf-chev{
  font:700 13px/1 var(--mono);color:var(--muted);width:14px;text-align:center;
  flex:none;display:inline-block;-webkit-user-select:none;user-select:none;
  transition:transform .28s cubic-bezier(.16,1,.3,1),color .15s ease;
  transform:rotate(0deg);
}
.mod-folder.open > .mod-folder-head .mf-chev{
  transform:rotate(90deg);color:var(--ink);
}
.mf-code{
  padding:5px 9px;border-radius:7px;background:var(--paper);border:1px solid var(--line);
  font:700 11.5px/1 var(--mono);color:var(--ink);flex:none;
  -webkit-user-select:none;user-select:none;
}
.mf-title-wrap{
  flex:1;min-width:0;max-width:100%;
  -webkit-user-select:none;user-select:none;
}
.mf-title{
  font:600 14.5px/1.3 var(--font);color:var(--ink);display:block;
  word-break:break-word;overflow-wrap:break-word;
  -webkit-user-select:none;user-select:none;
}
.mf-elements-sub{
  display:inline-flex;align-items:flex-start;
  margin-top:4px;font-size:11px;font-weight:600;
  color:var(--teal);background:var(--teal-weak);
  padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);
  letter-spacing:-0.1px;line-height:1.35;max-width:100%;
  white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;
}
.mf-matrix{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.mf-stat{
  padding:5px 10px;border-radius:7px;border:1px solid var(--line);
  background:var(--paper);color:var(--muted);font:600 11px/1 var(--mono);
  cursor:pointer;transition:all .15s ease;
}
.mf-stat:hover{
  border-color:var(--teal);color:var(--ink);
}
.mf-stat.has{
  background:var(--teal-weak);border-color:var(--line-2);color:var(--teal);
}
.mf-stat b{font-weight:700;margin-left:2px}

/* Smooth Accordion Animation for Module Body */
.mod-folder-collapse{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .34s cubic-bezier(.16,1,.3,1);
}
.mod-folder.open > .mod-folder-collapse{
  grid-template-rows:1fr;
}
.mod-folder-inner{
  overflow:hidden;min-height:0;
  transition:opacity .28s ease,transform .3s cubic-bezier(.16,1,.3,1);
  opacity:0;transform:translateY(-4px);
}
.mod-folder.open > .mod-folder-collapse > .mod-folder-inner{
  opacity:1;transform:translateY(0);
}

/* Sub-Accordions List: Cours, TD, TP, Examen */
.sub-acc-list{
  padding:12px 14px 14px;display:flex;flex-direction:column;gap:9px;
  background:var(--paper);border-top:1px solid var(--line);
}

.sub-acc-item{
  border-radius:9px;border:1px solid var(--line);background:var(--paper-2);
  overflow:hidden;transition:border-color .2s ease,box-shadow .18s ease;
}
.sub-acc-item.open{
  border-color:var(--line-2);box-shadow:0 2px 8px rgba(0,0,0,.04);
}

.sub-acc-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 12px;cursor:pointer;user-select:none;
  transition:background .15s ease;
}
.sub-acc-head:hover{
  background:var(--paper);
}

.sub-acc-chev{
  font:700 12px/1 var(--mono);color:var(--muted);width:12px;text-align:center;
  flex:none;display:inline-block;
  transition:transform .24s cubic-bezier(.16,1,.3,1),color .15s ease;
  transform:rotate(0deg);
}
.sub-acc-item.open > .sub-acc-head .sub-acc-chev{
  transform:rotate(90deg);color:var(--ink);
}

.sub-acc-pill{
  padding:3px 8px;border-radius:5px;font:700 10.5px/1 var(--mono);
  letter-spacing:.03em;flex:none;
}
.sub-acc-pill.kind-COURS{background:var(--sky);color:#fff}
.sub-acc-pill.kind-TD{background:var(--f-GINF);color:#fff}
.sub-acc-pill.kind-TP{background:var(--f-SICS);color:#fff}
.sub-acc-pill.kind-EXAMEN{background:var(--f-MGSI);color:#fff}

.sub-acc-meta{
  flex:1;min-width:160px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.sub-acc-meta b{
  font:600 13px/1.2 var(--font);color:var(--ink);
}
.sub-acc-meta span{
  font:400 11.5px/1.2 var(--font);color:var(--muted);
}

.sub-acc-badge{
  font:600 11px/1 var(--mono);padding:3px 8px;border-radius:5px;
  background:var(--paper);border:1px solid var(--line);color:var(--ink-2);
}
.sub-acc-badge.muted{
  color:var(--muted);opacity:.7;
}

.sub-up-btn{
  font-size:11px;padding:4px 9px;border-radius:6px;letter-spacing:.01em;
}

/* Smooth Accordion Animation for Sub-Category */
.sub-acc-collapse{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .28s cubic-bezier(.16,1,.3,1);
}
.sub-acc-item.open > .sub-acc-collapse{
  grid-template-rows:1fr;
}
.sub-acc-inner{
  overflow:hidden;min-height:0;
  transition:opacity .24s ease,transform .25s cubic-bezier(.16,1,.3,1);
  opacity:0;transform:translateY(-3px);
}
.sub-acc-item.open > .sub-acc-collapse > .sub-acc-inner{
  opacity:1;transform:translateY(0);
}

.sub-file-list{
  padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px;
  border-top:1px solid var(--line);background:var(--paper);
}

.sub-acc-empty{
  padding:10px 14px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;flex-wrap:wrap;font:400 12px/1.3 var(--font);
  color:var(--muted);background:var(--paper);
}

/* File rows */
.mod-file-row{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:9px 12px;border-radius:8px;border:1px solid var(--line);
  background:var(--paper-2);
  transition:border-color .16s ease,transform .14s cubic-bezier(.16,1,.3,1),box-shadow .16s ease;
}
.mod-file-row:hover{
  border-color:var(--line-2);transform:translateX(2px);box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.mf-kind{
  padding:4px 8px;border-radius:5px;font:700 10px/1 var(--mono);
  letter-spacing:.03em;flex:none;min-width:56px;text-align:center;
}
.mf-info{
  flex:1;min-width:180px;display:flex;flex-direction:column;gap:2px;
}
.mf-info b{
  font:600 13px/1.25 var(--font);color:var(--ink);
}
.mf-info span{
  font:400 11.5px/1.3 var(--font);color:var(--muted);
}
.mf-meta{
  display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  font:500 11px/1.2 var(--mono);color:var(--muted);
}
.mf-dl{
  text-decoration:none;flex:none;
}

/* ── UPLOAD PATH BUILDER (#vUp) ─────────────────────────────────────────── */
.up-path-banner{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
  padding:14px 20px;margin-bottom:22px;border-radius:14px;
  background:var(--paper-2);border:1px solid var(--line);
}
.up-path-label{
  font:700 12px/1 var(--head);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
}
.up-path-trail{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  font:500 13.5px/1.2 var(--font);
}
.up-path-trail .p-fil{
  padding:4px 10px;border-radius:6px;font:700 11.5px/1 var(--mono);
  background:var(--ink);color:var(--paper);
}
.up-path-trail .p-sem{
  padding:4px 10px;border-radius:6px;font:600 11.5px/1 var(--mono);
  background:var(--paper);border:1px solid var(--line);color:var(--ink);
}
.up-path-trail .p-mod{
  padding:4px 11px;border-radius:6px;font:600 12.5px/1.1 var(--font);
  background:var(--teal-weak);color:var(--teal);border:1px solid var(--line-2);
}
.up-path-trail .p-kind{
  padding:4px 9px;border-radius:6px;font:600 11px/1 var(--mono);
  background:var(--paper);border:1px solid var(--line);color:var(--muted);
}
.up-path-trail .p-sep{color:var(--muted);font-size:12px}

.up-grid-structured{
  display:grid;grid-template-columns:1.16fr .84fr;gap:24px;align-items:start;
}
.up-path-card,.up-file-card{
  padding:24px 26px;border-radius:18px;background:var(--paper-2);border:1px solid var(--line);
  box-shadow:0 1px 4px rgba(0,0,0,.03);
}
.up-step-block{margin-bottom:20px}
.up-step-label{
  font:700 13px/1.2 var(--head);text-transform:uppercase;letter-spacing:.04em;
  color:var(--ink);margin-bottom:12px;
}
.up-pill-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
.up-fil-btn{
  display:flex;align-items:center;gap:8px;padding:11px 13px;
  border-radius:11px;border:1px solid var(--line);background:var(--paper);
  color:var(--ink);font:600 13px/1 var(--mono);cursor:pointer;transition:all .14s;
}
.up-fil-btn:hover{border-color:var(--line-2);color:var(--ink)}
.up-fil-btn.on{
  border-color:var(--ink);background:var(--ink);color:var(--paper);
}
.up-fil-btn .sw{width:9px;height:9px;border-radius:50%;flex:none}

.up-sem-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;
}
.up-sem-btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:12px 8px;border-radius:11px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);cursor:pointer;transition:all .14s;
}
.up-sem-btn b{font:700 14px/1 var(--head)}
.up-sem-btn span{font:500 11px/1 var(--font);color:var(--muted)}
.up-sem-btn.on{
  background:var(--ink);color:var(--paper);border-color:var(--ink);
}
.up-sem-btn.on span{color:var(--paper);opacity:.85}

.up-mod-list{
  display:flex;flex-direction:column;gap:7px;
}
.up-mod-card{
  display:flex;align-items:center;gap:11px;width:100%;
  padding:12px 16px;border-radius:11px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;
  transition:all .14s;
}
.up-mod-card:hover{border-color:var(--line-2);color:var(--ink)}
.up-mod-card.on{
  border-color:var(--teal);background:var(--teal-weak);color:var(--ink);
}
.up-mod-card .m-idx{
  padding:4px 8px;border-radius:6px;background:var(--paper-2);border:1px solid var(--line);
  font:700 11px/1 var(--mono);color:var(--ink);flex:none;
}
.up-mod-card.on .m-idx{background:var(--teal);color:#fff;border-color:var(--teal)}
.up-mod-card .m-name{
  flex:1;font:600 14px/1.3 var(--font);color:var(--ink);
}
.up-mod-card .m-chk{
  font:700 13px/1 var(--mono);color:var(--teal);width:16px;text-align:center;
}

.up-kind-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
}
.up-kind-btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:13px 10px;border-radius:11px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);cursor:pointer;transition:all .14s;
}
.up-kind-btn b{font:700 13.5px/1 var(--font)}
.up-kind-btn span{font:500 11px/1 var(--font);color:var(--muted)}
.up-kind-btn.on{
  background:var(--ink);color:var(--paper);border-color:var(--ink);
}
.up-kind-btn.on span{color:var(--paper);opacity:.85}

@media(max-width:940px){
  .lib-explorer{
    grid-template-columns:minmax(0,1fr)!important;gap:12px;
    width:100%!important;max-width:100%!important;min-width:0!important;
    box-sizing:border-box;overflow:hidden!important;
  }
  .lib-side-pane{
    position:static;width:100%!important;max-width:100%!important;
    min-width:0!important;box-sizing:border-box;overflow:hidden!important;
    padding:8px 10px;
  }
  .lib-side{
    display:flex!important;flex-direction:row!important;overflow-x:auto!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    box-sizing:border-box;scrollbar-width:none!important;-ms-overflow-style:none!important;
    -webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;
  }
  .lib-side::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .lib-side .lib-chip{
    width:auto!important;flex:0 0 auto!important;max-width:170px!important;
    padding:8px 10px;border-radius:10px;
  }
  .lib-side .lib-chip .lib-chip-title{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lib-side .lib-chip .lib-chip-sub{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lib-workspace{
    width:100%!important;max-width:100%!important;min-width:0!important;
    overflow:hidden!important;box-sizing:border-box;
  }
  .lib-fil-banner{
    width:100%!important;max-width:100%!important;min-width:0!important;
    padding:12px 14px;box-sizing:border-box;gap:10px;flex-direction:column;
    align-items:flex-start;
  }
  .lfb-left{width:100%!important;min-width:0;flex:1 1 auto;gap:10px}
  .lfb-titles{min-width:0;flex:1 1 auto;overflow:hidden}
  .lfb-titles h3{font-size:14px;line-height:1.3;word-break:break-word;overflow-wrap:break-word}
  .lfb-titles span{font-size:11px;line-height:1.35;word-break:break-word;overflow-wrap:break-word}
  .lib-fil-banner .btn{width:100%!important;justify-content:center!important;margin-top:2px}
  .lib-control-bar{
    width:100%!important;max-width:100%!important;min-width:0!important;
    padding:7px 10px;box-sizing:border-box;gap:8px;
  }
  .sem-tabs{
    width:100%!important;max-width:100%!important;min-width:0!important;
    overflow-x:auto!important;scrollbar-width:none!important;-ms-overflow-style:none!important;
    -webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px;gap:6px;
  }
  .sem-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .sem-tab{flex:0 0 auto!important;white-space:nowrap!important;padding:6px 11px;font-size:11.5px;border-radius:8px}
  .doc-tabs{
    width:100%!important;max-width:100%!important;min-width:0!important;
    overflow-x:auto!important;scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:5px;
  }
  .doc-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .doc-tab{flex:0 0 auto!important;white-space:nowrap!important;padding:5px 9px;font-size:11px;border-radius:7px}
  .mod-folders-wrap{
    width:100%!important;max-width:100%!important;min-width:0!important;
  }
  .mod-folder{
    width:100%!important;max-width:100%!important;min-width:0!important;
    box-sizing:border-box;overflow:hidden!important;
  }
  .mod-folder-head{
    padding:11px 12px;gap:8px;width:100%!important;max-width:100%!important;
    min-width:0!important;box-sizing:border-box;
  }
  .up-grid-structured{grid-template-columns:1fr;width:100%;max-width:100%;min-width:0}
  .up-sem-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));width:100%;max-width:100%;min-width:0}
  .up-kind-grid{grid-template-columns:repeat(2,1fr);width:100%;max-width:100%;min-width:0}
  .up-pill-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));width:100%;max-width:100%;min-width:0}
}

/* ══════════════════════════════════════════════════════════════════════════
   SMART PDF VIEWER & VIDEO PLAYER (Samsung One UI Aesthetic)
   ══════════════════════════════════════════════════════════════════════════ */
.viewer-backdrop{
  position:fixed;inset:0;z-index:600;display:grid;place-items:center;
  padding:clamp(8px,1.8vw,24px);background:rgba(8,10,12,.78);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;pointer-events:none;transition:opacity .22s cubic-bezier(.16,1,.3,1);
}
.viewer-backdrop.on{opacity:1;pointer-events:auto}

.viewer-modal-card{
  width:min(1120px,98vw);height:min(94vh,960px);border-radius:20px;
  display:flex;flex-direction:column;overflow:hidden;background:var(--paper);
  border:1px solid var(--line);box-shadow:0 18px 48px rgba(0,0,0,.5);
}
.video-modal-card{
  width:min(980px,98vw);border-radius:20px;display:flex;flex-direction:column;
  overflow:hidden;background:var(--paper);border:1px solid var(--line);
  box-shadow:0 18px 48px rgba(0,0,0,.55);
}
.image-modal-card{
  width:min(880px,96vw);max-height:92vh;border-radius:20px;display:flex;
  flex-direction:column;overflow:hidden;background:var(--paper);border:1px solid var(--line);
  box-shadow:0 18px 48px rgba(0,0,0,.5);
}

.viewer-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 20px;border-bottom:1px solid var(--line);background:var(--paper-2);
  flex:none;
}
.viewer-title-box{min-width:0;display:flex;flex-direction:column;gap:3px}
.viewer-badge-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.viewer-tag{
  font:700 10.5px/1 var(--mono);padding:3px 7px;border-radius:5px;letter-spacing:.04em;color:#fff;
}
.viewer-tag.pdf{background:#d93829}
.viewer-tag.video{background:#8b5cf6}
.viewer-mod-badge{
  font:700 11px/1 var(--mono);padding:3px 7px;border-radius:5px;
  background:var(--paper);border:1px solid var(--line);color:var(--ink);
}
.viewer-kind-badge{
  font:700 10.5px/1 var(--mono);padding:3px 7px;border-radius:5px;
  background:var(--teal);color:#fff;
}
.viewer-title-box h2{
  font:700 16.5px/1.25 var(--head);color:var(--ink);margin:2px 0 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.viewer-sub{
  font:500 12px/1.2 var(--font);color:var(--muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.viewer-head-actions{display:flex;align-items:center;gap:8px;flex:none}
.viewer-close-btn{
  padding:6px 11px;font-size:14px;font-weight:700;border-radius:8px;
}

/* Smart PDF Toolbar */
.pdf-toolbar{
  display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--paper);
  border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;user-select:none;
}
.pdf-tool-group{display:flex;align-items:center;gap:5px}
.pdf-tool-sep{width:1px;height:18px;background:var(--line);margin:0 4px;flex:none}
.pdf-tool-btn{
  padding:6px 10px;border-radius:7px;border:1px solid var(--line);
  background:var(--paper-2);color:var(--ink);font:600 12px/1 var(--font);
  cursor:pointer;transition:all .12s;display:inline-flex;align-items:center;gap:5px;
}
.pdf-tool-btn:hover{
  border-color:var(--teal);color:var(--teal);background:var(--teal-weak);
}
.pdf-tool-btn.on{
  background:var(--ink);color:var(--paper);border-color:var(--ink);
}
.pdf-page-indicator{
  display:inline-flex;align-items:center;gap:5px;font:600 12px/1 var(--mono);color:var(--muted);
}
.pdf-page-indicator input{
  width:44px;padding:4px 6px;text-align:center;border-radius:6px;
  border:1px solid var(--line);background:var(--paper-2);color:var(--ink);
  font:700 12px/1 var(--mono);outline:none;
}
.pdf-page-indicator input:focus{border-color:var(--teal)}
.pdf-zoom-val{
  font:700 12px/1 var(--mono);color:var(--ink);min-width:44px;text-align:center;
}

/* PDF Viewport (Continuous One-Line Vertical Scroll Down) */
.pdf-viewport{
  flex:1;overflow-y:auto;overflow-x:auto;background:var(--paper-3);display:flex;justify-content:center;
  align-items:flex-start;padding:24px 16px 48px;position:relative;min-height:0;
  scroll-behavior:smooth;
}
.pdf-viewport.night-mode .pdf-page-canvas,
.pdf-viewport.night-mode #pdfCanvas,
.pdf-viewport.night-mode .pdf-fallback-frame{
  filter:invert(0.92) hue-rotate(180deg) contrast(1.1) brightness(0.95);
}
.pdf-canvas-container{
  display:flex;flex-direction:column;align-items:center;gap:24px;
  background:transparent;min-width:320px;width:100%;
  margin:0 auto;
  transition:transform .18s cubic-bezier(.16,1,.3,1);
}
.pdf-canvas-container.has-frame{
  width:100%;height:100%;min-height:75vh;
}
.pdf-canvas-container.has-frame .pdf-page-wrapper{
  display:none;
}
.pdf-page-wrapper{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:#ffffff;border-radius:10px;
  box-shadow:0 6px 24px rgba(0,0,0,.16), 0 1px 3px rgba(0,0,0,.08);
  transition:box-shadow .18s ease, transform .15s ease;
  margin:0 auto;flex:none;
}
.pdf-page-wrapper:hover{
  box-shadow:0 10px 32px rgba(0,0,0,.24);
}
.pdf-page-canvas{
  display:block;background:#ffffff;border-radius:10px;
}
.pdf-page-badge{
  position:absolute;bottom:12px;right:14px;font:700 11px/1 var(--mono);
  background:rgba(20,24,30,.72);backdrop-filter:blur(6px);color:#fff;
  padding:4px 8px;border-radius:6px;pointer-events:none;opacity:0.85;
  transition:opacity .15s ease;letter-spacing:.03em;z-index:4;
}
.pdf-page-wrapper:hover .pdf-page-badge{
  opacity:1;background:rgba(20,24,30,.92);
}
#pdfCanvas{
  display:block;background:#ffffff;
}
.pdf-fallback-frame{
  width:100%;min-height:75vh;height:100%;border:0;display:none;border-radius:10px;flex:1;
}
.pdf-loading-spinner{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:12px;background:rgba(12,14,16,.45);color:#fff;
  font:600 13.5px/1 var(--font);backdrop-filter:blur(4px);z-index:20;
}
.spinner-ring{
  width:34px;height:34px;border:3px solid rgba(255,255,255,.2);
  border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══ SMART VIDEO PLAYER ══ */
.smart-video-player{
  position:relative;background:#06080a;overflow:hidden;display:flex;
  flex-direction:column;justify-content:center;aspect-ratio:16/9;width:100%;
  max-height:72vh;user-select:none;
}
#mainVideo{
  width:100%;height:100%;object-fit:contain;cursor:pointer;display:block;
}
.video-center-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;background:rgba(20,24,28,.85);
  border:2px solid rgba(255,255,255,.3);color:#fff;display:grid;place-items:center;
  font-size:26px;cursor:pointer;transition:all .22s cubic-bezier(.16,1,.3,1);
  box-shadow:0 6px 28px rgba(0,0,0,.6);pointer-events:auto;z-index:10;
}
.video-center-play:hover{
  transform:translate(-50%,-50%) scale(1.1);background:var(--teal);border-color:#fff;
}
.video-center-play.playing{
  opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(1.18);
}
.video-controls-overlay{
  position:absolute;bottom:0;left:0;right:0;padding:24px 20px 14px;
  background:linear-gradient(0deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.45) 60%,transparent 100%);
  transition:opacity .25s ease;opacity:1;z-index:15;
}
.smart-video-player.hide-controls .video-controls-overlay{
  opacity:0;pointer-events:none;
}

/* Scrub Timeline */
.video-timeline{
  position:relative;height:6px;border-radius:3px;background:rgba(255,255,255,.24);
  cursor:pointer;margin-bottom:12px;transition:height .14s ease;
}
.video-timeline:hover{height:9px}
.timeline-buffer{
  position:absolute;top:0;bottom:0;left:0;width:0%;background:rgba(255,255,255,.35);border-radius:3px;
}
.timeline-progress{
  position:absolute;top:0;bottom:0;left:0;width:0%;background:var(--teal);border-radius:3px;
}
.timeline-thumb{
  position:absolute;top:50%;left:0%;width:14px;height:14px;border-radius:50%;
  background:#fff;transform:translate(-50%,-50%) scale(0);transition:transform .14s;
  box-shadow:0 1px 4px rgba(0,0,0,.5);
}
.video-timeline:hover .timeline-thumb{transform:translate(-50%,-50%) scale(1)}
.timeline-tooltip{
  position:absolute;bottom:14px;left:0;transform:translateX(-50%);padding:3px 7px;
  border-radius:5px;background:rgba(12,14,18,.92);color:#fff;font:600 11px/1 var(--mono);
  pointer-events:none;display:none;border:1px solid rgba(255,255,255,.15);
}
.video-timeline:hover .timeline-tooltip{display:block}

/* Control Buttons & Sliders */
.video-controls-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fff;
}
.vc-left,.vc-right{display:flex;align-items:center;gap:10px}
.vc-btn{
  background:transparent;border:0;color:#fff;padding:6px 9px;border-radius:7px;
  cursor:pointer;font:600 13px/1 var(--font);transition:background .12s,color .12s;
  display:inline-flex;align-items:center;gap:5px;
}
.vc-btn:hover{background:rgba(255,255,255,.2)}
.vc-volume-wrap{display:flex;align-items:center;gap:6px}
.vc-vol-slider{
  width:72px;height:4px;accent-color:var(--teal);cursor:pointer;
}
.vc-time-display{
  font:600 12.5px/1 var(--mono);color:rgba(255,255,255,.88);min-width:94px;
}
.vc-speed-wrap{position:relative}
.vc-speed-btn{
  padding:5px 9px;border-radius:6px;background:rgba(255,255,255,.15);
  font:700 12px/1 var(--mono);
}
.vc-speed-menu{
  position:absolute;bottom:100%;right:0;margin-bottom:10px;padding:6px;
  border-radius:10px;background:rgba(16,18,22,.96);border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:3px;
  min-width:130px;z-index:30;box-shadow:0 8px 24px rgba(0,0,0,.6);
}
.vc-speed-menu button{
  background:transparent;border:0;color:#fff;padding:7px 11px;border-radius:6px;
  text-align:left;font:600 12.5px/1 var(--font);cursor:pointer;
}
.vc-speed-menu button:hover{background:rgba(255,255,255,.15)}
.vc-speed-menu button.on{background:var(--teal);color:#fff}

/* Image Lightbox */
.image-viewport{
  padding:20px;display:grid;place-items:center;background:var(--paper-2);
  overflow:auto;max-height:75vh;
}
.image-viewport img{
  max-width:100%;max-height:72vh;object-fit:contain;border-radius:8px;
  box-shadow:0 4px 18px rgba(0,0,0,.2);
}

/* File Row Action Buttons (Library) */
.mf-actions{
  display:flex;align-items:center;gap:6px;flex:none;
}
.mf-view-btn{
  font-weight:700;letter-spacing:.02em;display:inline-flex;align-items:center;gap:5px;
}
.mf-del-btn{
  color:var(--urgent,#e06c5a);
  border-color:transparent;
  padding:6px 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  cursor:pointer;
  transition:background .12s,color .12s,border-color .12s;
}
.mf-del-btn:hover{
  background:var(--urgent-bg,rgba(224,108,90,.12));
  color:#ff5252;
  border-color:rgba(224,108,90,.3);
}

.badge-mine{
  display:inline-block;
  font:600 10.5px/1 var(--mono);
  letter-spacing:.04em;
  padding:2px 6px;
  border-radius:4px;
  background:rgba(44,122,145,.15);
  color:var(--teal,#2c7a91);
  border:1px solid rgba(44,122,145,.3);
  margin-left:6px;
  vertical-align:1px;
}

/* ── MES DÉPÔTS VIEW ──────────────────────────────────────────────────────── */
.my-docs-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
  margin:18px 0 20px;
}
.md-stat-card{
  padding:14px 16px;
  border-radius:10px;
  background:var(--paper-2);
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.md-stat-card .k{
  font:600 11px/1.2 var(--mono);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}
.md-stat-card .v{
  font-family:var(--head);
  font-size:22px;
  font-weight:700;
  color:var(--ink);
}

.my-docs-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.my-doc-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 18px;
  border-radius:10px;
  background:var(--paper);
  border:1px solid var(--line);
  transition:border-color .15s,background .15s;
}
.my-doc-item:hover{
  border-color:var(--line-2);
  background:var(--paper-2);
}
.my-doc-kind-badge{
  font:700 10.5px/1 var(--mono);
  letter-spacing:.06em;
  padding:6px 9px;
  border-radius:6px;
  color:#fff;
  flex:none;
}
.my-doc-body{
  flex:1;
  min-width:0;
}
.my-doc-body b{
  display:block;
  font-family:var(--head);
  font-size:14.5px;
  font-weight:600;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-bottom:3px;
}
.my-doc-path{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font:500 11.5px/1.2 var(--mono);
  color:var(--teal);
  margin-bottom:2px;
}
.my-doc-desc{
  font-size:12.5px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.my-doc-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  font:500 11.5px/1.2 var(--mono);
  color:var(--muted);
  flex:none;
  min-width:100px;
}
.my-doc-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex:none;
}
@media(max-width:768px){
  .my-doc-item{flex-wrap:wrap;gap:10px}
  .my-doc-meta{align-items:flex-start;min-width:auto}
  .my-doc-actions{width:100%;justify-content:flex-end}
}

/* ── DELETE MODAL ────────────────────────────────────────────────────────── */
.del-modal-card{
  max-width:440px;
  width:90%;
  margin:auto;
  padding:24px;
  border-radius:14px;
  text-align:center;
  position:relative;
  box-shadow:0 12px 36px rgba(0,0,0,.45);
}
.del-modal-icon{
  width:52px;
  height:52px;
  border-radius:50%;
  background:var(--urgent-bg,rgba(224,108,90,.14));
  color:var(--urgent,#e06c5a);
  display:grid;
  place-items:center;
  margin:0 auto 16px;
}
.del-modal-card h3{
  font-family:var(--head);
  font-size:18px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:8px;
}
.del-modal-desc{
  font-size:13.5px;
  color:var(--muted);
  line-height:1.5;
  margin-bottom:20px;
}
.del-modal-actions{
  display:flex;
  gap:10px;
  justify-content:center;
}




