/* Pro Dashboard Sidebar v3 */
:root {
    --pds-accent:      #4dd4f0;
    --pds-width:       260px;
    --pds-collapsed:   68px;
    --pds-ease:        0.28s cubic-bezier(0.4,0,0.2,1);
    --pds-radius:      10px;
    --pds-menu-bg:     #ffffff;
    --pds-menu-text:   #4a5568;
    --pds-menu-hover:  #f0fbff;
    --pds-sub-bg:      #f4f8fa;
    --pds-sub-text:    #718096;
    --pds-sub-hover:   #e6f9fd;
    --pds-border:      rgba(0,0,0,0.07);
    --pds-shadow:      0 4px 24px rgba(0,0,0,0.09);
}
.pds-sidebar.pds-dark { --pds-border: rgba(255,255,255,0.07); --pds-shadow: 0 4px 32px rgba(0,0,0,0.45); }

.pds-sidebar *, .pds-sidebar *::before, .pds-sidebar *::after { box-sizing:border-box; margin:0; padding:0; }

/* Overlay */
.pds-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.55); z-index:9998; backdrop-filter:blur(3px); opacity:0; transition:opacity var(--pds-ease); }
.pds-overlay.pds-visible { display:block; opacity:1; }

/* Sidebar */
.pds-sidebar {
    position:fixed; top:0; left:0;
    height:100vh; width:var(--pds-width);
    display:flex; flex-direction:column;
    z-index:9999; overflow:hidden;
    background:var(--pds-menu-bg);
    border-right:1px solid var(--pds-border);
    box-shadow:var(--pds-shadow);
    color:var(--pds-menu-text);
    transition:width var(--pds-ease), transform var(--pds-ease);
    font-family:-apple-system,'Segoe UI',system-ui,sans-serif;
}

/* Collapsed */
.pds-sidebar.pds-collapsed { width:var(--pds-collapsed); }
.pds-sidebar.pds-collapsed .pds-site-title,
.pds-sidebar.pds-collapsed .pds-nav-label,
.pds-sidebar.pds-collapsed .pds-arrow,
.pds-sidebar.pds-collapsed .pds-user-info,
.pds-sidebar.pds-collapsed .pds-logout,
.pds-sidebar.pds-collapsed .pds-submenu { opacity:0; width:0; overflow:hidden; pointer-events:none; white-space:nowrap; }
.pds-sidebar.pds-collapsed .pds-header { justify-content:center; padding:18px 8px; }
.pds-sidebar.pds-collapsed #pds-close-btn { display:none; }
.pds-sidebar.pds-collapsed .pds-nav-link { justify-content:center; padding:12px 0; }
.pds-sidebar.pds-collapsed .pds-icon { margin:0; }
.pds-sidebar.pds-collapsed .pds-footer { padding:12px 8px; }
.pds-sidebar.pds-collapsed .pds-user { justify-content:center; }
.pds-sidebar.pds-collapsed .pds-avatar { margin:0; }

/* Mobile */
@media (max-width:768px) {
    .pds-sidebar { transform:translateX(-100%); width:var(--pds-width) !important; }
    .pds-sidebar.pds-mobile-open { transform:translateX(0); box-shadow:8px 0 40px rgba(0,0,0,0.3); }
}

/* Header */
.pds-header {
    display:flex; align-items:center; gap:10px;
    padding:18px 14px;
    border-bottom:1px solid var(--pds-border);
    min-height:68px; flex-shrink:0;
    transition:padding var(--pds-ease);
}
.pds-logo-wrap {
    flex-shrink:0; width:36px; height:36px;
    border-radius:10px; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
}
.pds-logo-img { width:100%; height:100%; object-fit:contain; }
.pds-logo-initial { font-weight:800; font-size:20px; color:var(--pds-menu-text); opacity:.7; }
.pds-site-title { flex:1; font-weight:700; font-size:15px; white-space:nowrap; overflow:hidden; color:var(--pds-menu-text); transition:opacity var(--pds-ease); }

/* Header chevron button */
.pds-hdr-btn {
    background:none; border:none; cursor:pointer;
    width:28px; height:28px; border-radius:7px;
    display:flex; align-items:center; justify-content:center;
    color:var(--pds-menu-text); opacity:.4; font-size:13px; flex-shrink:0;
    transition:opacity var(--pds-ease), background var(--pds-ease);
}
.pds-hdr-btn:hover { opacity:1; background:var(--pds-menu-hover); }

/* Nav */
.pds-nav-wrap { flex:1; overflow-y:auto; overflow-x:hidden; padding:10px 0; scrollbar-width:thin; scrollbar-color:var(--pds-border) transparent; }
.pds-nav-wrap::-webkit-scrollbar { width:3px; }
.pds-nav-wrap::-webkit-scrollbar-thumb { background:var(--pds-border); border-radius:2px; }
.pds-nav { list-style:none; padding:0 9px; }
.pds-nav-item { margin-bottom:1px; border-radius:var(--pds-radius); }

.pds-nav-link {
    display:flex; align-items:center; gap:11px;
    padding:10px 12px; text-decoration:none !important;
    border-radius:var(--pds-radius);
    color:var(--pds-menu-text);
    transition:background var(--pds-ease), color var(--pds-ease);
    white-space:nowrap;
}
.pds-nav-link:hover { background:var(--pds-menu-hover); color:var(--pds-accent); }
.pds-nav-item.pds-active > .pds-nav-link { background:var(--pds-accent) !important; color:#fff !important; }
.pds-nav-item.pds-active > .pds-nav-link .pds-icon,
.pds-nav-item.pds-active > .pds-nav-link .pds-arrow { color:#fff !important; }

.pds-icon { font-size:14px; width:18px; text-align:center; flex-shrink:0; color:var(--pds-accent); transition:color var(--pds-ease); }
.pds-nav-label { flex:1; font-size:13.5px; font-weight:500; overflow:hidden; text-overflow:ellipsis; transition:opacity var(--pds-ease); }

/* Arrow — right by default, rotates 90° when open */
.pds-arrow {
    font-size:10px; margin-left:auto; flex-shrink:0;
    color:var(--pds-menu-text); opacity:.35;
    transition:transform var(--pds-ease), opacity var(--pds-ease);
}
.pds-has-children.pds-open > .pds-nav-link .pds-arrow { transform:rotate(90deg); opacity:.8; }

/* Submenu */
.pds-submenu {
    list-style:none; padding:3px 0 5px;
    overflow:hidden; max-height:0;
    transition:max-height 0.32s ease;
    background:var(--pds-sub-bg);
    border-radius:0 0 var(--pds-radius) var(--pds-radius);
    margin:0 0 2px;
}
.pds-has-children.pds-open > .pds-submenu { max-height:600px; }
.pds-sub-item .pds-nav-link { padding:8px 12px 8px 38px; font-size:13px; border-radius:8px; color:var(--pds-sub-text); }
.pds-sub-item .pds-nav-link:hover { background:var(--pds-sub-hover); color:var(--pds-accent); }
.pds-sub-item .pds-icon { font-size:9px; color:var(--pds-sub-text); opacity:.7; }
.pds-sub-item.pds-active > .pds-nav-link { background:var(--pds-accent) !important; color:#fff !important; }
.pds-sub-item.pds-active > .pds-nav-link .pds-icon { color:#fff !important; opacity:1; }

/* Footer */
.pds-footer { border-top:1px solid var(--pds-border); padding:12px 14px; flex-shrink:0; background:var(--pds-menu-bg); transition:padding var(--pds-ease); }
.pds-user { display:flex; align-items:center; gap:10px; min-width:0; }
.pds-avatar { width:32px; height:32px; border-radius:50%; object-fit:cover; flex-shrink:0; background:var(--pds-accent); }
.pds-avatar-init { display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:14px; }
.pds-user-info { flex:1; min-width:0; overflow:hidden; transition:opacity var(--pds-ease); }
.pds-uname { display:block; font-size:13px; font-weight:600; color:var(--pds-menu-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pds-urole { display:block; font-size:11px; color:var(--pds-menu-text); opacity:.5; white-space:nowrap; text-transform:capitalize; margin-top:1px; }
.pds-logout { flex-shrink:0; width:26px; height:26px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:13px; text-decoration:none !important; color:var(--pds-menu-text); opacity:.4; transition:background var(--pds-ease),opacity var(--pds-ease),color var(--pds-ease); }
.pds-logout:hover { background:rgba(239,68,68,.1); color:#ef4444; opacity:1; }

/* Floating toggle */
.pds-toggle-btn {
    position:fixed; top:16px;
    left:calc(var(--pds-width) + 10px);
    z-index:9997; width:34px; height:34px; border-radius:9px;
    border:1px solid var(--pds-border); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    font-size:13px; background:var(--pds-menu-bg); color:var(--pds-menu-text);
    box-shadow:0 2px 8px rgba(0,0,0,0.1);
    transition:left var(--pds-ease), background var(--pds-ease), color var(--pds-ease);
}
.pds-toggle-btn:hover { background:var(--pds-accent); color:#fff; border-color:var(--pds-accent); }
.pds-toggle-btn.pds-btn-collapsed { left:calc(var(--pds-collapsed) + 10px); }
#pds-toggle-icon { transition:transform var(--pds-ease); }
.pds-toggle-btn.pds-btn-collapsed #pds-toggle-icon { transform:rotate(180deg); }

@media (max-width:768px) {
    .pds-toggle-btn { left:10px !important; }
    .pds-toggle-btn.pds-mobile-open { left:calc(var(--pds-width) + 10px) !important; }
    .pds-toggle-btn.pds-mobile-open #pds-toggle-icon { transform:rotate(180deg); }
}

/* Body offset */
@media (min-width:769px) {
    body.pds-body-offset    { margin-left:var(--pds-width);     transition:margin-left var(--pds-ease); }
    body.pds-body-collapsed { margin-left:var(--pds-collapsed); transition:margin-left var(--pds-ease); }
}

/* Tooltips */
.pds-sidebar.pds-collapsed .pds-nav-link { position:relative; }
.pds-sidebar.pds-collapsed .pds-nav-link::after {
    content:attr(data-label); position:absolute;
    left:calc(var(--pds-collapsed) - 2px); top:50%; transform:translateY(-50%);
    background:var(--pds-accent); color:#fff;
    padding:5px 10px; border-radius:6px; font-size:12px; font-weight:500;
    white-space:nowrap; opacity:0; pointer-events:none;
    transition:opacity .18s ease,left .18s ease; z-index:10000;
    box-shadow:0 2px 8px rgba(0,0,0,.15);
}
.pds-sidebar.pds-collapsed .pds-nav-link:hover::after { opacity:1; left:calc(var(--pds-collapsed) + 8px); }
