@font-face{font-family:'Yekan';src:url('/fonts/yekan.woff2') format('woff2');font-display:swap}
:root{
--pri:#1a56db;--prd:#1143b0;--prl:#3b82f6;--prb:#eff6ff;
--grn:#16a34a;--grnb:#f0fdf4;--red:#dc2626;--redb:#fef2f2;
--ora:#d97706;--orab:#fffbeb;--pur:#7c3aed;--purb:#f5f3ff;
--cyn:#0891b2;--cynb:#ecfeff;--pnk:#db2777;--pnkb:#fdf2f8;
--bg:#f1f5f9;--sf:#fff;--sf2:#f8fafc;--bd:#e2e8f0;--bd2:#cbd5e1;
--tx:#0f172a;--mt:#64748b;--lt:#94a3b8;
--sw:240px;--th:58px;
--s1:0 1px 3px rgba(0,0,0,.07);--s2:0 4px 16px rgba(0,0,0,.09);--s3:0 12px 40px rgba(0,0,0,.14);
--r:8px;--r2:12px;--r3:16px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:'Yekan',Tahoma,sans-serif;background:var(--bg);color:var(--tx);direction:rtl;min-height:100vh}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:10px}
.hidden{display:none!important}
.ltr{direction:ltr;text-align:right}
.muted{color:var(--mt)}
.dn-sm{display:none}
.tc{text-align:center}
.mb16{margin-bottom:16px}
.w100{width:100%}
@media(min-width:640px){.dn-sm{display:table-cell}}

/* ── TOPBAR ─────────────────────── */
.topbar{position:fixed;top:0;right:0;left:0;z-index:300;height:var(--th);background:var(--sf);border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;padding:0 14px;gap:10px;box-shadow:var(--s1)}
.topbar-r,.topbar-l{display:flex;align-items:center;gap:8px}
.topbar-search{flex:1;max-width:420px}
.top-search-form{display:flex;align-items:center;gap:8px;background:var(--bg);border:1.5px solid var(--bd);border-radius:24px;padding:7px 16px;transition:border-color .15s}
.top-search-form:focus-within{border-color:var(--prl);background:var(--sf)}
.top-search-form svg{color:var(--lt);flex-shrink:0}
.top-search-input{border:none;outline:none;background:none;font-family:inherit;font-size:.88rem;color:var(--tx);width:100%}
.top-search-input::placeholder{color:var(--lt)}

.hamburger{width:36px;height:36px;border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--mt)}
.hamburger span{display:block;width:18px;height:2px;background:currentColor;border-radius:2px}
.hamburger:hover{background:var(--bg)}

.brand{display:flex;align-items:center;gap:10px}
.brand-logo-wrap{width:44px;height:44px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--s2);flex-shrink:0}
.brand-logo{width:38px;height:38px;object-fit:contain;border-radius:50%}
.brand-text{display:flex;flex-direction:column}
.brand-name{font-size:.9rem;font-weight:800;color:var(--prd);line-height:1.2}
.brand-sub{font-size:.65rem;color:var(--mt);line-height:1.2}

.user-btn{display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px 10px;border-radius:var(--r);transition:background .15s;position:relative}
.user-btn:hover{background:var(--bg)}
.uavatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--pri),var(--prl));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0}
.uavatar-lg{width:40px;height:40px;font-size:1rem}
.uinfo{display:flex;flex-direction:column}
.uname{font-size:.82rem;font-weight:600;line-height:1.2}
.urole{font-size:.65rem;color:var(--pri);line-height:1.2}
.udrop{color:var(--lt)}

.user-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);box-shadow:var(--s3);z-index:500;opacity:0;pointer-events:none;transform:translateY(-6px);transition:all .15s;overflow:hidden}
.user-dropdown.open{opacity:1;pointer-events:all;transform:translateY(0)}
.ud-header{display:flex;align-items:center;gap:10px;padding:14px}
.ud-name{font-size:.88rem;font-weight:600}
.ud-username{font-size:.75rem;color:var(--mt)}
.ud-divider{height:1px;background:var(--bd)}
.ud-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:.85rem;color:var(--tx);transition:background .1s}
.ud-item:hover{background:var(--bg)}
.ud-logout{color:var(--red)}.ud-logout:hover{background:var(--redb)}

/* ── APP LAYOUT ─────────────────── */
.app-wrap{display:flex;padding-top:var(--th);min-height:100vh}
.sidebar{width:var(--sw);flex-shrink:0;background:var(--sf);border-left:1px solid var(--bd);height:calc(100vh - var(--th));position:sticky;top:var(--th);display:flex;flex-direction:column;overflow-y:auto}
.snav{padding:10px 8px;flex:1}
.si{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--r);font-size:.87rem;color:var(--mt);margin-bottom:2px;transition:all .15s}
.si:hover{background:var(--bg);color:var(--tx)}
.si-active{background:var(--prb);color:var(--pri);font-weight:600}
.si-divider{height:1px;background:var(--bd);margin:8px 0}
.sidebar-footer{padding:14px;border-top:1px solid var(--bd);font-size:.68rem;color:var(--lt);line-height:1.7}
.main-wrap{flex:1;padding:20px;min-width:0}

/* ── DRIVE PAGE ─────────────────── */
.drive-page{max-width:1280px}
.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.bc{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.bc-i{display:flex;align-items:center;gap:4px;font-size:.87rem;color:var(--mt);padding:4px 8px;border-radius:var(--r);transition:all .15s}
.bc-i:hover{background:var(--bg);color:var(--pri)}
.bc-sep{color:var(--lt);font-size:.75rem}
.tb-acts{display:flex;align-items:center;gap:7px}
.vt{display:flex;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.vt-b{padding:6px 10px;color:var(--mt);transition:all .15s}
.vt-b:hover{background:var(--bg)}
.vt-b.active{background:var(--prb);color:var(--pri)}
.btn-icon-only{width:34px;height:34px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;border:1px solid var(--bd);background:var(--sf);color:var(--mt);transition:all .15s}
.btn-icon-only:hover{background:var(--bg);color:var(--pri)}

/* ── SEARCH PANEL ───────────────── */
.search-panel{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);padding:0;margin-bottom:14px;overflow:hidden;max-height:0;transition:max-height .3s,padding .3s}
.search-panel.sp-open{max-height:300px;padding:16px}
.search-form .sf-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.sf-g{flex:1;min-width:130px}
.sf-grow{flex:2;min-width:180px}
.sf-btns{display:flex;gap:6px}
.sf-size-row{display:flex;align-items:center;gap:4px}
.sf-to{font-size:.8rem;color:var(--mt);flex-shrink:0}
.search-result-banner{display:flex;align-items:center;gap:8px;background:var(--prb);color:var(--pri);padding:10px 14px;border-radius:var(--r);margin-bottom:14px;font-size:.88rem}
.search-clear{margin-right:auto;color:var(--red);font-size:.8rem}

/* ── UPLOAD PROGRESS ────────────── */
.up-prog{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:12px 16px;margin-bottom:14px;display:flex;align-items:center;gap:12px}
.up-bar-bg{flex:1;height:6px;background:var(--bd);border-radius:10px;overflow:hidden}
.up-bar-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--cyn));border-radius:10px;transition:width .3s;width:0}

/* ── DROP OVERLAY ───────────────── */
.drop-overlay{position:fixed;inset:0;background:rgba(26,86,219,.15);z-index:100;display:flex;align-items:center;justify-content:center;border:3px dashed var(--pri)}
.drop-overlay-inner{background:rgba(255,255,255,.95);border-radius:var(--r2);padding:40px 60px;text-align:center;color:var(--pri)}
.drop-overlay-inner svg{margin-bottom:10px}
.drop-overlay-inner p{font-size:1rem;font-weight:600}

/* ── GRID ───────────────────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:10px}
.gi{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);padding:16px 12px 10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;transition:all .2s;position:relative}
.gi:hover{box-shadow:var(--s2);border-color:var(--bd2);transform:translateY(-2px)}
.folder-drop-over{background:var(--prb)!important;border-color:var(--pri)!important;box-shadow:0 0 0 2px var(--pri)!important}
.gi-ico{margin-bottom:8px;position:relative}
.gi-file-ico svg{color:#b0bec5}
.ext-badge{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-size:.55rem;font-weight:800;padding:1px 5px;border-radius:3px;color:#fff;white-space:nowrap}
.ext-red{background:#ef4444}.ext-green{background:#22c55e}.ext-blue{background:#3b82f6}
.ext-orange{background:#f97316}.ext-purple{background:#a855f7}.ext-teal{background:#14b8a6}
.ext-yellow{background:#eab308;color:#000}.ext-pink{background:#ec4899}.ext-gray{background:#94a3b8}
.gi-name{font-size:.78rem;font-weight:600;line-height:1.3;margin-bottom:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gi-meta{font-size:.68rem;color:var(--lt);margin-bottom:3px}
.gi-dls{font-size:.66rem;color:var(--grn);background:var(--grnb);padding:1px 6px;border-radius:10px;margin-bottom:2px}
.gi-owner{font-size:.66rem;color:var(--lt)}
.gi-acts{display:flex;gap:4px;margin-top:8px;opacity:0;transition:opacity .15s}
.gi:hover .gi-acts{opacity:1}
/* Always visible on touch devices */
@media (hover: none),(pointer: coarse){.gi-acts{opacity:1!important}}
.ga{width:26px;height:26px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--mt);transition:all .15s}
.ga:hover,.ga-dl:hover{background:var(--pri);color:#fff}
.ga-del:hover{background:var(--red);color:#fff}
.ga-share:hover{background:var(--grn);color:#fff}
.ga-green:hover{background:var(--grn);color:#fff}
.ga-orange:hover{background:var(--ora);color:#fff}
.ga-blue:hover{background:var(--pri);color:#fff}
.ga-purple:hover{background:var(--pur);color:#fff}

/* ── LIST VIEW ──────────────────── */
.list-view{overflow-x:auto}
.ltable{width:100%;border-collapse:collapse}
.ltable th{padding:10px 14px;text-align:right;font-size:.74rem;font-weight:700;color:var(--mt);background:var(--sf2);border-bottom:2px solid var(--bd);white-space:nowrap}
.ltable td{padding:11px 14px;border-bottom:1px solid var(--bd);font-size:.84rem;vertical-align:middle}
.ltable tbody tr:hover{background:#fafbfc}
.lr-folder{cursor:pointer}
.lname{display:flex;align-items:center;gap:8px;font-weight:500}
.lext{font-size:.6rem;font-weight:800;padding:1px 5px;border-radius:3px;color:#fff;flex-shrink:0}
.la{display:flex;gap:4px}
.dl-cnt{background:var(--grnb);color:var(--grn);font-size:.74rem;padding:2px 8px;border-radius:10px}

/* ── EMPTY ──────────────────────── */
.empty{text-align:center;padding:80px 20px;background:var(--sf);border:2px dashed var(--bd);border-radius:var(--r2);color:var(--lt)}
.empty svg{opacity:.2;margin-bottom:14px}
.empty h3{font-size:.95rem;color:var(--mt);margin-bottom:6px}
.empty p{font-size:.82rem}
.empty-sm{padding:24px;text-align:center;color:var(--lt);font-size:.85rem}

/* ── SECTION ────────────────────── */
.section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.sec-title{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:700}
.log-total,.trash-info{font-size:.82rem;color:var(--mt);display:flex;align-items:center;gap:6px}
.cnt{color:var(--pri);font-weight:700}

/* ── CARD ───────────────────────── */
.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);overflow:hidden;box-shadow:var(--s1)}
.card-hd{display:flex;align-items:center;gap:8px;padding:14px 18px;background:var(--sf2);border-bottom:1px solid var(--bd);font-weight:700;font-size:.88rem}
.card-body{padding:20px}
.twrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-narrow{max-width:480px;margin:0 auto}

/* ── DATA TABLE ─────────────────── */
.dtable{width:100%;border-collapse:collapse}
.dtable th{padding:11px 16px;text-align:right;font-size:.74rem;font-weight:700;color:var(--mt);background:var(--sf2);border-bottom:2px solid var(--bd);white-space:nowrap}
.dtable td{padding:12px 16px;border-bottom:1px solid var(--bd);font-size:.84rem;vertical-align:middle}
.dtable tbody tr:last-child td{border-bottom:none}
.dtable tbody tr:hover{background:var(--sf2)}

/* ── BADGES ─────────────────────── */
.badge{font-size:.7rem;padding:2px 8px;border-radius:20px;white-space:nowrap;display:inline-block}
.badge-admin{background:var(--prb);color:var(--pri)}
.badge-user{background:var(--grnb);color:var(--grn)}
.badge-ok{background:#dcfce7;color:#16a34a}
.badge-lock{background:#fee2e2;color:#dc2626}
.badge-active{background:#dbeafe;color:#1d4ed8}
.badge-off{background:#f1f5f9;color:#64748b}
.status-row{display:flex;gap:4px;flex-wrap:wrap}
.pchips{display:flex;gap:4px;flex-wrap:wrap}
.pchip{font-size:.68rem;padding:2px 8px;border-radius:10px;display:inline-block}
.pchip-on{background:var(--prb);color:var(--pri)}
.pchip-off{background:#f1f5f9;color:var(--lt)}
.perm-sec{margin:14px 0 0}
.perm-g{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.pi{display:flex;align-items:center;gap:8px;font-size:.84rem;cursor:pointer}
.pi input{accent-color:var(--pri);width:15px;height:15px}
.sf-name{font-size:.82rem;color:var(--mt);background:var(--bg);padding:8px 12px;border-radius:var(--r);margin-bottom:14px;word-break:break-all}

/* ── LOG ────────────────────────── */
.log-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.ls{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);padding:14px 18px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--s1)}
.ls-n{font-size:1.5rem;font-weight:800;line-height:1}
.ls-l{font-size:.74rem;color:var(--mt);margin-top:4px}
.ls-info .ls-n{color:var(--pri)}.ls-warn .ls-n{color:var(--ora)}.ls-crit .ls-n{color:var(--red)}
.lf{padding:14px}.lf-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.lf-g{flex:1;min-width:130px}.lf-grow{flex:2;min-width:180px}.lf-btns{display:flex;gap:6px}
.log-tbl .log-row td{vertical-align:middle}
.log-sev-critical{border-right:3px solid var(--red)}
.log-sev-warning{border-right:3px solid var(--ora)}
.lt{font-size:.78rem;white-space:nowrap}.lt-time{font-size:.7rem;color:var(--lt)}
.log-user{display:flex;align-items:center;gap:7px}
.lav{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--pri),var(--cyn));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}
.log-b{font-size:.7rem;padding:2px 8px;border-radius:20px;white-space:nowrap}
.log-login{background:#dcfce7;color:#16a34a}.log-failedlogin,.log-lockedattempt,.log-locked{background:#fee2e2;color:#dc2626}
.log-logout{background:#f1f5f9;color:#64748b}.log-upload{background:#dbeafe;color:#1d4ed8}
.log-download,.log-sharedownload{background:#ecfeff;color:#0891b2}
.log-delete,.log-deletefolder,.log-deleteuser{background:#fee2e2;color:#dc2626}
.log-createlink,.log-createfolderlink{background:#f5f3ff;color:#7c3aed}
.log-createfolder,.log-createuser{background:#f0fdf4;color:#16a34a}
.log-changepassword,.log-resetpassword{background:#fffbeb;color:#d97706}
.log-folderview{background:#ecfeff;color:#0891b2}
.log-det{font-size:.76rem;color:var(--mt);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sev-b{font-size:.7rem;padding:2px 8px;border-radius:20px}
.sev-info{background:var(--prb);color:var(--pri)}.sev-warning{background:var(--orab);color:var(--ora)}.sev-critical{background:var(--redb);color:var(--red)}
.pager{display:flex;gap:5px;justify-content:center;padding:14px;flex-wrap:wrap}
.pg{padding:6px 11px;border-radius:var(--r);border:1px solid var(--bd);font-size:.8rem;color:var(--mt);background:var(--sf);transition:all .15s}
.pg:hover{border-color:var(--pri);color:var(--pri)}.pg-a{background:var(--pri);color:#fff;border-color:var(--pri)}

/* ── TRASH ──────────────────────── */
.days-ok{color:var(--grn);font-size:.78rem}.days-urgent{color:var(--red);font-size:.78rem;font-weight:600}

/* ── LINKS PAGE ─────────────────── */
.exp-badge-ok{font-size:.75rem;color:var(--grn);background:var(--grnb);padding:2px 8px;border-radius:20px}
.exp-badge-exp{font-size:.75rem;color:var(--red);background:var(--redb);padding:2px 8px;border-radius:20px}

/* ── BUTTONS ────────────────────── */
.btn-pri{display:inline-flex;align-items:center;gap:6px;background:var(--pri);color:#fff;border-radius:var(--r);padding:8px 16px;font-size:.87rem;font-weight:600;transition:all .15s;box-shadow:0 2px 8px rgba(26,86,219,.2)}
.btn-pri:hover{background:var(--prd);transform:translateY(-1px);box-shadow:0 4px 14px rgba(26,86,219,.3)}
.btn-sec{display:inline-flex;align-items:center;gap:6px;background:var(--sf);color:var(--mt);border:1.5px solid var(--bd2);border-radius:var(--r);padding:7px 16px;font-size:.87rem;transition:all .15s}
.btn-sec:hover{background:var(--bg)}
.btn-danger{display:inline-flex;align-items:center;gap:6px;background:var(--red);color:#fff;border-radius:var(--r);padding:8px 16px;font-size:.87rem;font-weight:600;transition:all .15s}
.btn-danger:hover{background:#b91c1c}
.btn-copy{display:flex;align-items:center;gap:5px;background:var(--pri);color:#fff;border-radius:var(--r);padding:8px 14px;font-family:inherit;font-size:.82rem;white-space:nowrap;transition:all .15s}
.btn-copy:hover{background:var(--prd)}
.btn-login{width:100%;padding:12px;background:linear-gradient(135deg,var(--pri),var(--prl));color:#fff;border-radius:var(--r);font-family:inherit;font-size:.95rem;font-weight:700;box-shadow:0 4px 14px rgba(26,86,219,.35);transition:all .2s}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(26,86,219,.45)}
.form2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mfooter{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}

/* ── FORMS ──────────────────────── */
.fg{margin-bottom:14px}
.fl{display:block;font-size:.79rem;font-weight:600;color:var(--mt);margin-bottom:5px}
.fi{width:100%;padding:9px 12px;border:1.5px solid var(--bd);border-radius:var(--r);font-family:inherit;font-size:.88rem;color:var(--tx);background:var(--sf);outline:none;transition:border-color .15s,box-shadow .15s}
.fi:focus{border-color:var(--prl);box-shadow:0 0 0 3px rgba(26,86,219,.1)}
select.fi{cursor:pointer}
.fi-box{position:relative;display:flex}
.fi-pfx{position:absolute;top:50%;right:11px;transform:translateY(-50%);color:var(--lt);pointer-events:none}
.fi-box .fi{padding-right:38px}
.fi-pass-box .fi{padding-left:38px;padding-right:12px}
.fi-eye{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:var(--lt);display:flex;align-items:center;padding:4px;border-radius:4px;transition:color .15s}
.fi-eye:hover{color:var(--pri)}
.fi-check{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:.84rem;color:var(--mt)}
.fi-check input,.fi-check label{cursor:pointer}
.fi-check input{accent-color:var(--pri);width:15px;height:15px}
.err-bar{display:flex;align-items:center;gap:8px;background:var(--redb);color:var(--red);border:1px solid #fecaca;border-radius:var(--r);padding:9px 14px;font-size:.86rem;margin-bottom:14px}

/* ── MODAL ──────────────────────── */
.ov{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:400;backdrop-filter:blur(4px)}
.modal{position:fixed;top:50%;right:50%;transform:translate(50%,-50%);z-index:500;width:94%;max-width:460px;max-height:calc(100vh - 24px);animation:popIn .18s ease}
.mwide{max-width:520px}
.mcard{background:var(--sf);border-radius:var(--r3);box-shadow:var(--s3);border:1px solid var(--bd);overflow:hidden;max-width:100%}
.mhead{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--bd);background:var(--sf2)}
.mhead h3{font-size:.93rem;font-weight:700}
.mx{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bd);color:var(--mt);font-size:.78rem}
.mx:hover{background:var(--redb);color:var(--red)}
.mbody{padding:18px}
.mwarn{color:var(--ora);text-align:center;margin-bottom:10px}
#mc .mcard>p{text-align:center;font-size:.9rem;padding:0 18px 14px;color:var(--tx)}
#mc .mfooter{padding:0 18px 18px;justify-content:center}
@keyframes popIn{from{opacity:0;transform:translate(50%,-46%)}to{opacity:1;transform:translate(50%,-50%)}}

/* ── SHARE MODAL ────────────────── */
.exp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.exp-lbl{font-size:.78rem;font-weight:600;color:var(--mt);white-space:nowrap}
.chips,.chip2{display:flex;gap:5px;flex-wrap:wrap}
.chip,.chip2{padding:5px 12px;border-radius:20px;border:1.5px solid var(--bd2);background:var(--sf);color:var(--mt);font-family:inherit;font-size:.76rem;cursor:pointer;transition:all .15s}
.chip.active,.chip:hover,.chip2.active,.chip2:hover{background:var(--pri);color:#fff;border-color:var(--pri)}
.link-box{margin-top:12px}
.link-row{display:flex;gap:7px;margin-bottom:7px}
.link-inp{flex:1;padding:8px 10px;border:1.5px solid var(--bd);border-radius:var(--r);font-family:inherit;font-size:.76rem;color:var(--mt);background:var(--bg);outline:none}
.link-exp{font-size:.73rem;color:var(--ora);margin-bottom:7px}
.link-sec{display:flex;align-items:center;gap:6px;font-size:.73rem;color:var(--grn);background:var(--grnb);padding:7px 10px;border-radius:var(--r)}

/* ── TABS ───────────────────────── */
.tab-row{display:flex;gap:0;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;margin-bottom:14px}
.tab{flex:1;padding:8px;font-family:inherit;font-size:.82rem;color:var(--mt);background:var(--sf2);text-align:center;transition:all .15s;border:none}
.tab.active,.tab:hover{background:var(--pri);color:#fff}
.tab-content{display:block}
.tab-content.hidden{display:none!important}

/* ── COLOR PICKER ───────────────── */
.cp{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.cpb{width:26px;height:26px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all .15s}
.cpb.active,.cpb:hover{border-color:#fff;box-shadow:0 0 0 2px var(--bd2)}

/* ── LOGIN ──────────────────────── */
.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#dbeafe,#e0f2fe 40%,#f0fdf4);padding:20px}
.login-scene{width:100%;max-width:430px}
.login-card{background:var(--sf);border-radius:var(--r3);box-shadow:var(--s3);overflow:hidden;border:1px solid rgba(26,86,219,.1)}
.login-top{background:linear-gradient(135deg,var(--prd),var(--pri) 55%,var(--cyn));padding:32px 28px 26px;text-align:center}
.login-logo-ring{width:90px;height:90px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 4px 20px rgba(0,0,0,.18)}
.login-logo{width:74px;height:74px;object-fit:contain;border-radius:50%}
.login-h1{color:#fff;font-size:1.1rem;font-weight:800;margin-bottom:4px}
.login-org{color:rgba(255,255,255,.78);font-size:.74rem;line-height:1.5}
.login-body{padding:26px 28px}
.login-form-h{font-size:.92rem;font-weight:700;margin-bottom:18px;padding-bottom:13px;border-bottom:1px solid var(--bd)}
.err-bar{display:flex;align-items:center;gap:8px;background:var(--redb);color:var(--red);border:1px solid #fecaca;border-radius:var(--r);padding:9px 14px;font-size:.86rem;margin-bottom:14px}

/* ── FLASH ──────────────────────── */
.flash-ok{background:var(--grnb);color:var(--grn);padding:9px 14px;border-radius:var(--r);margin-bottom:14px;font-size:.86rem;border:1px solid #86efac}

/* ── TOASTS ─────────────────────── */
#toasts{position:fixed;bottom:20px;left:20px;z-index:600;display:flex;flex-direction:column;gap:7px}
.toast{min-width:200px;padding:10px 15px;border-radius:var(--r);font-size:.86rem;box-shadow:var(--s2);opacity:0;transform:translateY(8px);transition:all .25s}
.toast.show{opacity:1;transform:translateY(0)}
.toast-success{background:var(--grnb);color:var(--grn);border:1px solid #86efac}
.toast-error{background:var(--redb);color:var(--red);border:1px solid #fca5a5}

/* ── PUBLIC FOLDER ──────────────── */
.public-bg{background:linear-gradient(150deg,#dbeafe,#e0f2fe 40%,#f0fdf4);min-height:100vh}
.pf-wrap{max-width:1100px;margin:0 auto;padding:20px}
.pf-hdr{display:flex;align-items:center;gap:10px;padding:14px 0;margin-bottom:10px;border-bottom:1px solid rgba(0,0,0,.08)}
.pf-title{font-size:1rem;font-weight:700;color:var(--prd)}
.pf-name{display:flex;align-items:center;gap:8px;margin:16px 0;color:var(--tx)}
.pf-name h1{font-size:1.2rem;font-weight:800}
.pf-footer{text-align:center;padding:24px;font-size:.73rem;color:var(--lt)}
.pf-grid{background:transparent}

/* ── RESPONSIVE ─────────────────── */
@media(max-width:900px){.brand-sub{display:none}}
@media(max-width:768px){
    .sidebar{position:fixed;top:var(--th);right:calc(var(--sw)*-1);width:var(--sw);z-index:250;transform:translateX(100%);transition:transform .25s;height:calc(100vh - var(--th));box-shadow:var(--s3)}
    .sidebar.open{transform:translateX(0)}
    .main-wrap{padding:12px 10px}
    .topbar-search{display:none}
    .uinfo{display:none}
    .grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}
    .lf-row{flex-direction:column}
    .form2{grid-template-columns:1fr}
    .perm-g{grid-template-columns:1fr}
    .sf-row{flex-direction:column}
    .log-stat-row{gap:8px}
}
@media(max-width:480px){
    .grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
    .gi{padding:12px 8px 8px}
    .login-logo-ring{width:74px;height:74px}
    .login-logo{width:60px;height:60px}
    .login-body{padding:20px}
}

/* ── v5 Additions ──────────────────────────────────── */

/* Avatar */
.uavatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--pri),var(--prl));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0;overflow:hidden;position:relative}
.uavatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;position:absolute;inset:0}
.uavatar-letter{position:relative;z-index:1}
.uavatar-lg{width:48px;height:48px;font-size:1.1rem}
.ud-profile{display:flex;align-items:center;gap:12px;padding:14px}
.ud-avatar-wrap{position:relative;flex-shrink:0}
.ud-avatar-img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.ud-change-photo{position:absolute;bottom:-2px;right:-2px;width:20px;height:20px;background:var(--pri);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.6rem}
.ud-name{font-size:.88rem;font-weight:600}
.ud-uname{font-size:.74rem;color:var(--mt)}
.ud-div{height:1px;background:var(--bd)}
.dn-xs{display:flex;flex-direction:column}

/* Brand logo ring */
.brand-logo-ring{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--s2);flex-shrink:0;overflow:hidden}
.brand-logo{width:36px;height:36px;object-fit:contain;border-radius:50%}

/* Login logo */
.login-logo-ring{width:100px;height:100px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 4px 20px rgba(0,0,0,.18)}
.login-logo{width:82px;height:82px;object-fit:contain;border-radius:50%}

/* Sidebar items */
.si-a{background:var(--prb);color:var(--pri);font-weight:600}
.si-div{height:1px;background:var(--bd);margin:6px 0}

/* Move modal */
#move-modal .mcard{max-width:400px}
#move-title{font-size:.9rem}

/* User cards (OthersSpace) */
.user-cards{display:flex;flex-wrap:wrap;gap:10px}
.ucard{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r2);border:1.5px solid var(--bd);background:var(--sf);transition:all .15s;cursor:pointer}
.ucard:hover{border-color:var(--prl);background:var(--prb)}
.ucard-active{border-color:var(--pri);background:var(--prb)}
.ucard-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--pri),var(--prl));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.ucard-info{display:flex;flex-direction:column}
.ucard-name{font-size:.85rem;font-weight:600}
.ucard-uname{font-size:.73rem;color:var(--mt)}

/* fi-pass-box fix - no left icon */
.fi-pass-box{position:relative;display:flex}
.fi-pass-box .fi{padding-left:36px;padding-right:12px}
.fi-eye{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--lt);padding:4px;border-radius:4px;display:flex;align-items:center}
.fi-eye:hover{color:var(--pri)}

/* Search panel */
.search-panel{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);overflow:hidden;margin-bottom:14px;max-height:0;transition:max-height .3s ease}
.search-panel.sp-open{max-height:350px}
.sp-inner{padding:16px}
.sf-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.sf-g{flex:1;min-width:130px}
.sf-grow{flex:2;min-width:180px}
.sf-btns{display:flex;gap:6px}
.sf-size-row{display:flex;align-items:center;gap:4px}
.sf-to{font-size:.8rem;color:var(--mt)}

/* Jalali Date Picker */
.jalali-picker{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);box-shadow:var(--s3);padding:12px;min-width:260px;z-index:9999}
.jp-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
.jp-month{font-size:.9rem;font-weight:700;color:var(--tx)}
.jp-nav{background:var(--bg);border:1px solid var(--bd);border-radius:var(--r);width:28px;height:28px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s}
.jp-nav:hover{background:var(--pri);color:#fff;border-color:var(--pri)}
.jp-wd,.jp-wd-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px}
.jp-wd span,.jp-wd-row span{text-align:center;font-size:.72rem;color:var(--mt);font-weight:600;padding:4px 0}
.jp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.jp-d{text-align:center;padding:6px 2px;border-radius:var(--r);cursor:pointer;font-size:.82rem;transition:all .15s}
.jp-d:hover{background:var(--prb);color:var(--pri)}
.jp-today{background:var(--bg);font-weight:700;color:var(--pri)}
.jp-sel{background:var(--pri)!important;color:#fff!important;border-radius:var(--r)}
.jp-e{padding:6px}

/* SharedWithMe page */
.shared-badge{font-size:.68rem;padding:1px 6px;border-radius:10px;background:var(--prb);color:var(--pri)}

/* Topbar search - full on desktop */
@media(max-width:768px){
    .topbar-search{display:none}
    .dn-xs{display:none!important}
}

/* Move modal button in gi-acts */
.ga-move:hover{background:var(--pur);color:#fff}

/* Public folder - no branding */
.pf-hdr-plain{display:flex;align-items:center;gap:10px;padding:12px 0 16px;margin-bottom:8px;border-bottom:1px solid var(--bd)}
.pf-hdr-plain img{height:36px;border-radius:8px}

/* ── v5b fixes ──────────────────────────────────────── */

/* Bigger logo in topbar */
.brand-logo-ring{width:48px;height:48px}
.brand-logo{width:42px;height:42px}
.brand-name{font-size:1rem;font-weight:800}

/* Login logo even bigger */
.login-logo-ring{width:110px;height:110px}
.login-logo{width:92px;height:92px}

/* Folder size label */
.gi-folder-size{font-size:.65rem;color:var(--lt);margin-top:2px}

/* Search filter layout - full row, no overlap */
.sf-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;width:100%}
@media(max-width:640px){.sf-row{gap:6px}.sf-g{min-width:calc(50% - 6px)}.sf-grow{min-width:100%}}
.sf-g{flex:1 1 160px;min-width:140px;max-width:100%}
.sf-grow{flex:1 1 220px}
.sf-size-group{flex:1 1 280px;min-width:240px}
.sf-size-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.sf-size-row .fi{flex:1;min-width:60px}
.sf-to{white-space:nowrap;font-size:.8rem;color:var(--mt);padding:0 2px}
.sf-btns{flex:0 0 auto;display:flex;gap:6px}
.sp-inner{padding:16px}

/* Fix search panel max-height */
.search-panel.sp-open{max-height:800px}

/* Bigger avatar in sidebar header */
.ud-avatar-img{width:52px;height:52px}
.ud-avatar-wrap .uavatar{width:52px;height:52px;font-size:1.2rem}


/* ── Multi-select & Group Bar ────────── */
.gi-selected{outline:2px solid var(--pri);background:var(--prb)!important}
.gi-selected .gi-name{color:var(--pri)}
.group-bar{
    display:flex;align-items:center;justify-content:space-between;
    background:var(--pri);color:#fff;border-radius:var(--r);
    padding:10px 16px;margin-bottom:14px;gap:12px;flex-wrap:wrap;
    animation:slideDown .2s ease;
}
.group-bar strong{font-size:1rem}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.group-bar .btn-pri{background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.4);box-shadow:none}
.group-bar .btn-pri:hover{background:rgba(255,255,255,.4)}
.group-bar .btn-sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.group-bar .btn-sec:hover{background:rgba(255,255,255,.15)}

/* ── Mobile touch fixes ────────────────────────────── */

/* Always show action buttons on touch devices (no hover) */
@media (hover: none), (pointer: coarse) {
    .gi-acts { opacity: 1 !important; }
    .gi { padding-bottom: 12px; }

    /* Make action buttons bigger for touch */
    .ga { width: 32px; height: 32px; }

    /* Always show table action columns on mobile */
    .dn-sm { display: table-cell !important; }

    /* Sidebar items bigger tap target */
    .si { padding: 12px 14px; }
}

/* Public folder - download button always visible */
.pub-dl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
    width: 100%;
    padding: 7px 10px;
    background: var(--pri);
    color: #fff;
    border-radius: var(--r);
    font-family: inherit;
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: background .15s;
    text-decoration: none;
}
.pub-dl-btn:hover { background: var(--prd); }

/* Mobile grid - larger touch targets */
@media (max-width: 640px) {
    .grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
    .gi { padding: 14px 10px 12px; }
    .gi-acts { opacity: 1 !important; margin-top: 10px; justify-content: center; }
    .ga { width: 34px; height: 34px; }

    /* Table columns - show essential ones on mobile */
    .ltable th:nth-child(n+3),
    .ltable td:nth-child(n+3) { display: none; }
    .ltable th:last-child,
    .ltable td:last-child { display: table-cell; }
}

/* ── Mobile sidebar overlay ──────────────────────── */
@media (max-width: 768px) {
    /* Sidebar open: add overlay behind */
    .sidebar.open::before {
        content: '';
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,.3);
        z-index: -1;
    }
    /* Topbar user info always show initials */
    .uinfo { display: none !important; }
    .udrop { display: none; }

    /* Make topbar compact */
    .topbar { padding: 0 10px; }
    .brand-sub { display: none; }
    .brand-logo-ring { width: 38px; height: 38px; }
    .brand-logo { width: 32px; height: 32px; }

    /* Grid: 2 columns on phone */
    .grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }

    /* Always show action buttons */
    .gi-acts { opacity: 1 !important; justify-content: center; }
    .gi { min-height: auto; }

    /* Sidebar nav links bigger */
    .si { font-size: .9rem; padding: 13px 14px; }
}

@media (max-width: 380px) {
    .grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Storage Bar ──────────────────────────────────── */
.storage-bar-wrap { margin-bottom: 10px; }
.storage-bar-label {
    display: flex; justify-content: space-between;
    font-size: .68rem; color: var(--mt); margin-bottom: 3px;
}
.storage-bar-label span:first-child { font-weight: 600; color: var(--tx); }
.storage-bar-track {
    height: 6px; background: var(--bd); border-radius: 10px; overflow: hidden;
}
.storage-bar-fill {
    height: 100%; border-radius: 10px;
    background: linear-gradient(90deg, #22c55e, #16a34a);
    transition: width .6s ease;
}
.storage-bar-fill.warn   { background: linear-gradient(90deg, #f97316, #ea580c); }
.storage-bar-fill.danger { background: linear-gradient(90deg, #ef4444, #dc2626); }

/* ── Quota cell in UserManager ─────────────────────── */
.quota-cell {
    cursor: pointer; min-width: 110px;
}
.quota-cell:hover .quota-bar-mini { opacity: .7; }
.quota-bar-mini {
    height: 5px; background: var(--bd); border-radius: 10px;
    overflow: hidden; margin-bottom: 3px;
}
.quota-fill-mini {
    height: 100%; background: var(--grn); border-radius: 10px;
    transition: width .4s;
}
.quota-label { font-size: .72rem; color: var(--mt); }

/* ── v6 Fixes ──────────────────────────────────────── */

/* Mobile sidebar overlay */
.sb-overlay{
    display:none;position:fixed;inset:0;
    background:rgba(0,0,0,.45);z-index:249;
    backdrop-filter:blur(2px);
}
.sb-overlay.show{display:block}

/* Sidebar always accessible on mobile via hamburger */
@media(max-width:768px){
    .sidebar{
        position:fixed;top:var(--th);right:calc(-1 * var(--sw));
        width:var(--sw);z-index:250;
        transform:translateX(0);
        transition:right .25s ease;
        height:calc(100vh - var(--th));
        overflow-y:auto;box-shadow:var(--s3);
    }
    .sidebar.open{right:0}
    .hamburger{display:flex!important}
}
@media(min-width:769px){
    .hamburger{display:none!important}
    .sidebar{position:sticky;top:var(--th);right:auto;transform:none;}
}

/* Multi-select highlight */
.gi-sel{
    outline:2.5px solid var(--pri)!important;
    background:var(--prb)!important;
    border-color:var(--pri)!important;
}
.gi-sel .gi-name{color:var(--pri)}
.group-bar{
    display:flex;align-items:center;justify-content:space-between;
    background:var(--pri);color:#fff;border-radius:var(--r);
    padding:10px 16px;margin-bottom:14px;gap:12px;flex-wrap:wrap;
    animation:slideDown .2s ease;
}
.group-bar .btn-pri{background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.5);box-shadow:none;color:#fff}
.group-bar .btn-sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}

/* Upload progress Persian number */
.up-prog{
    background:var(--sf);border:1px solid var(--bd);
    border-radius:var(--r);padding:14px 16px;
    margin-bottom:14px;
}
.up-prog-inner{display:flex;align-items:center;gap:12px}
.up-bar-bg{flex:1;height:8px;background:var(--bd);border-radius:10px;overflow:hidden}
.up-bar-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--cyn));border-radius:10px;transition:width .3s;width:0}
.up-pct{
    font-family:'Yekan',Tahoma,sans-serif;
    font-size:1rem;font-weight:700;
    color:var(--pri);min-width:48px;text-align:center;
}
.up-label{font-size:.82rem;color:var(--mt);margin-top:6px;text-align:center}

/* Remove stray dashes/separators in topbar */
/* topbar-l fixed */
.brand::before,.brand::after{display:none}

/* Fix topbar gap/dash */
.topbar{gap:8px}
.topbar-r{gap:8px}

/* Quota modal input - Persian font */
#qm-val{font-family:'Yekan',Tahoma,sans-serif;text-align:center;font-size:1.1rem}

/* Input number fields - Persian font */
input[type=number]{font-family:'Yekan',Tahoma,sans-serif}

/* ── v6 Final Fixes ──────────────────────────────── */

/* Selected items */
.gi-sel{outline:2.5px solid var(--pri)!important;background:var(--prb)!important;border-color:var(--pri)!important}
.gi-sel .gi-name{color:var(--pri)!important}

/* Group bar */
.group-bar{
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
    background:linear-gradient(135deg,var(--prd),var(--pri));color:#fff;
    border-radius:var(--r);padding:12px 16px;margin-bottom:14px;
    box-shadow:0 4px 14px rgba(26,86,219,.3);animation:slideDown .2s ease;
}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.gbar-btn{padding:7px 14px;border-radius:var(--r);font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer;border:none;transition:all .15s}
.gbar-move{background:#fff;color:var(--pri)}
.gbar-move:hover{background:#e8f0fe}
.gbar-cancel{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.4)}
.gbar-cancel:hover{background:rgba(255,255,255,.3)}

/* Mobile sidebar overlay */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:249;backdrop-filter:blur(2px)}
.sb-overlay.show{display:block}

/* topbar separator fix */
.topbar::before,.topbar::after,.brand::before,.brand::after{content:none!important;display:none!important}

/* Upload progress */
.up-prog-inner{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.up-pct{font-family:'Yekan',Tahoma,sans-serif;font-size:1rem;font-weight:800;color:var(--pri);min-width:48px;text-align:center;direction:rtl}
.up-label{font-size:.8rem;color:var(--mt);text-align:center}
.up-bar-bg{flex:1;height:8px;background:var(--bd);border-radius:10px;overflow:hidden}
.up-bar-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--cyn));border-radius:10px;transition:width .25s;width:0}

/* Mobile */
@media(max-width:768px){
    .sidebar{position:fixed;top:var(--th);right:calc(-1 * var(--sw));width:var(--sw);z-index:250;transition:right .25s ease;height:calc(100vh - var(--th));overflow-y:auto;box-shadow:var(--s3)}
    .sidebar.open{right:0}
    .main-wrap{padding:12px 10px}
    .grid{grid-template-columns:repeat(2,1fr);gap:8px}
    .gi-acts{opacity:1!important}
    .gi{min-height:auto;padding:12px 8px 10px}
    .dn-xs,.uinfo{display:none!important}
    .brand-sub{display:none}
}
@media(min-width:769px){
    .hamburger{display:none}
    .sidebar{position:sticky;top:var(--th);right:auto;height:calc(100vh - var(--th));overflow-y:auto}
}

/* All number inputs - Persian font */
input[type=number],input[type=text].num,select{font-family:'Yekan',Tahoma,sans-serif}

/* Sidebar "اشتراک گذاری اسناد" */
.sidebar-footer p:first-child{font-weight:600;color:var(--mt)}

/* Storage dashboard grid responsive */
.storage-grid{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.storage-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ss-card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);padding:16px;display:flex;align-items:center;gap:14px;box-shadow:var(--s1)}
.ss-icon{width:48px;height:48px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ss-blue .ss-icon{background:var(--prb);color:var(--pri)}
.ss-green .ss-icon{background:var(--grnb);color:var(--grn)}
.ss-purple .ss-icon{background:var(--purb);color:var(--pur)}
.ss-orange .ss-icon{background:var(--orab);color:var(--ora)}
.ss-val{font-size:1.1rem;font-weight:800;color:var(--tx)}
.ss-lbl{font-size:.72rem;color:var(--mt);margin-top:3px}
@media(max-width:900px){.storage-stat-grid{grid-template-columns:repeat(2,1fr)}.storage-grid{grid-template-columns:1fr}}
@media(max-width:500px){.storage-stat-grid{grid-template-columns:1fr}}

/* ── v6 Mobile Sidebar ───────────────────────────── */
.sidebar-overlay {
    display:none;
    position:fixed;inset:0;background:rgba(0,0,0,.4);
    z-index:240;backdrop-filter:blur(2px);
}
.sidebar-overlay.active { display:block; }

@media(max-width:768px){
    .sidebar{
        transform:translateX(100%);
        transition:transform .28s ease;
        z-index:250;box-shadow:var(--s3);
    }
    .sidebar.open { transform:translateX(0); }
    /* Prevent body scroll when sidebar open */
    body.sb-open { overflow:hidden; }
}

/* ── Multi-select ────────────────────────────────── */
.gi-selected { outline:2px solid var(--pri)!important; background:var(--prb)!important; }
.group-bar {
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
    background:var(--pri);color:#fff;border-radius:var(--r);
    padding:10px 16px;margin-bottom:14px;
    animation:slideDown .2s ease;
}
.group-bar .btn-pri { background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.4);box-shadow:none; }
.group-bar .btn-pri:hover { background:rgba(255,255,255,.4); }
.group-bar .btn-sec { background:transparent;color:#fff;border-color:rgba(255,255,255,.4); }

/* ── "-----" fix: ensure uname never shows raw --- ── */
.ud-uname:empty::before { content:'کاربر'; color:var(--lt); }

/* ── Always visible gi-acts on mobile ───────────── */
@media(hover:none),(pointer:coarse){
    .gi-acts { opacity:1!important; }
}

/* Storage bar */
.storage-bar-wrap { margin-bottom:10px; }
.storage-bar-label { display:flex;justify-content:space-between;font-size:.68rem;color:var(--mt);margin-bottom:3px; }
.storage-bar-label span:first-child { font-weight:600;color:var(--tx); }
.storage-bar-track { height:6px;background:var(--bd);border-radius:10px;overflow:hidden; }
.storage-bar-fill { height:100%;border-radius:10px;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .6s; }
.storage-bar-fill.warn   { background:linear-gradient(90deg,#f97316,#ea580c); }
.storage-bar-fill.danger { background:linear-gradient(90deg,#ef4444,#dc2626); }

/* Quota cell */
.quota-cell { cursor:pointer;min-width:100px; }
.quota-bar-mini { height:5px;background:var(--bd);border-radius:10px;overflow:hidden;margin-bottom:3px; }
.quota-fill-mini { height:100%;background:var(--grn);border-radius:10px;transition:width .4s; }
.quota-label { font-size:.72rem;color:var(--mt); }

@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* ── Storage Dashboard ───────────────────────────── */
.storage-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.sc{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r2);padding:18px;text-align:center;box-shadow:var(--s1)}
.sc-n{font-size:1.4rem;font-weight:800;color:var(--pri);margin-bottom:4px}
.sc-l{font-size:.78rem;color:var(--mt)}
.storage-main-grid{display:grid;grid-template-columns:1fr 2fr;gap:16px}
@media(max-width:768px){.storage-main-grid{grid-template-columns:1fr}}

/* ── Dark Mode ────────────────────────────────────── */
:root.dark {
    --bg:#0f172a; --sf:#1e293b; --sf2:#1e293b; --bd:#334155; --bd2:#475569;
    --tx:#f1f5f9; --mt:#94a3b8; --lt:#64748b;
    --prb:#1e3a5f; --grnb:#14301a; --redb:#3b1212; --orab:#2d1f08; --purb:#1e1a2e;
}
:root.dark .topbar    { background:#1e293b; border-color:#334155; }
:root.dark .sidebar   { background:#1e293b; border-color:#334155; }
:root.dark .card      { background:#1e293b; border-color:#334155; }
:root.dark .gi        { background:#1e293b; border-color:#334155; }
:root.dark .gi:hover  { background:#253347; }
:root.dark .fi        { background:#0f172a; border-color:#334155; color:#f1f5f9; }
:root.dark .modal .mcard { background:#1e293b; border-color:#334155; }
:root.dark .dtable td { border-color:#334155; }
:root.dark .ltable td { border-color:#334155; }
:root.dark .user-dropdown { background:#1e293b; border-color:#334155; }
:root.dark .jalali-picker { background:#1e293b; border-color:#334155; }
:root.dark .jp-d:hover { background:#253347; }
:root.dark .topbar-r a { color:#f1f5f9; }

/* Dark mode toggle button */
.dark-toggle {
    width:34px;height:34px;border-radius:var(--r);
    display:flex;align-items:center;justify-content:center;
    background:var(--bg);border:1px solid var(--bd);
    color:var(--mt);cursor:pointer;transition:all .15s;
    flex-shrink:0;
}
.dark-toggle:hover { background:var(--pri);color:#fff;border-color:var(--pri); }

/* ── Logo fix: fallback initials if img fails ─────── */
.brand-logo { min-width:38px;min-height:38px; }
.login-logo { min-width:80px;min-height:80px; }
.login-logo-ring { background:linear-gradient(135deg,#dbeafe,#eff6ff); }

/* ── Multi-select hint ────────────────────────────── */
.gi { user-select:none; }
.gi-selected { outline:2.5px solid var(--pri)!important;background:var(--prb)!important;transform:scale(.98); }

/* ── Folder upload button ─────────────────────────── */
.btn-folder-up {
    display:inline-flex;align-items:center;gap:6px;
    background:var(--sf);color:var(--mt);border:1.5px dashed var(--bd2);
    border-radius:var(--r);padding:7px 14px;font-size:.85rem;
    cursor:pointer;transition:all .15s;font-family:inherit;
}
.btn-folder-up:hover { border-color:var(--pri);color:var(--pri);background:var(--prb); }

/* ── Dark Mode ────────────────────────────────────── */
:root.dark{
    --bg:#0f172a;--sf:#1e293b;--sf2:#162032;--bd:#334155;--bd2:#475569;
    --tx:#f1f5f9;--mt:#94a3b8;--lt:#64748b;--prb:#1e3a5f;
}
:root.dark .card,:root.dark .gi,:root.dark .modal .mcard{background:var(--sf);border-color:var(--bd)}
:root.dark .topbar,:root.dark .sidebar{background:var(--sf);border-color:var(--bd)}
:root.dark .fi{background:var(--sf);border-color:var(--bd);color:var(--tx)}
:root.dark .dtable th{background:var(--sf2)}
:root.dark .ltable th{background:var(--sf2)}
:root.dark .jalali-picker{background:var(--sf);border-color:var(--bd)}
:root.dark .jp-nav:hover{background:var(--pri)}
:root.dark .user-dropdown{background:var(--sf);border-color:var(--bd)}
:root.dark .topbar-l .user-dropdown{background:var(--sf)}

.dm-btn{
    width:36px;height:36px;border-radius:50%;border:1.5px solid var(--bd2);
    background:var(--sf);cursor:pointer;display:flex;align-items:center;justify-content:center;
    font-size:1rem;transition:all .2s;flex-shrink:0;
}
.dm-btn:hover{background:var(--bg);transform:rotate(20deg)}

/* ── Pie tooltip ─────────────────────────────────── */
.pie-tip{
    position:absolute;background:rgba(15,23,42,.9);color:#fff;
    padding:8px 12px;border-radius:8px;font-size:.82rem;font-family:Tahoma,sans-serif;
    line-height:1.6;pointer-events:none;z-index:10;white-space:nowrap;
    box-shadow:0 4px 16px rgba(0,0,0,.3);
}
.pie-tip.hidden{display:none}
.pie-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;justify-content:center;max-width:300px}
.pie-legend-item{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--mt)}
.pie-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}

/* ── Logo visibility fix ─────────────────────────── */
.login-logo-ring{background:var(--sf,#fff);box-shadow:0 4px 20px rgba(0,0,0,.15)}
.login-logo{max-width:100%;max-height:100%;object-fit:contain;display:block}
.brand-logo{max-width:100%;max-height:100%;object-fit:contain;display:block}
/* Show logo even if broken - show colored circle instead */
.brand-logo-ring{overflow:hidden;background:linear-gradient(135deg,var(--pri),var(--cyn))}

/* ═══ v8 Fixes ══════════════════════════════════════ */

/* Dark mode full fix */
html.dark{--bg:#0f172a;--sf:#1e293b;--sf2:#162032;--bd:#334155;--bd2:#475569;--tx:#f1f5f9;--mt:#94a3b8;--lt:#64748b;--prb:#1e3a5f}
html.dark .card,html.dark .gi,html.dark .mcard{background:var(--sf);border-color:var(--bd)}
html.dark .topbar,html.dark .sidebar{background:var(--sf);border-color:var(--bd)}
html.dark .fi,html.dark select{background:var(--sf2);border-color:var(--bd);color:var(--tx)}
html.dark .dtable th,html.dark .ltable th,html.dark .card-hd{background:var(--sf2)}
html.dark .jalali-picker{background:var(--sf);border-color:var(--bd);color:var(--tx)}
html.dark .jp-d:hover{background:var(--prb);color:var(--prl)}
html.dark .user-dropdown{background:var(--sf);border-color:var(--bd)}
html.dark .group-bar .btn-sec{background:rgba(255,255,255,.1);color:#fff}
html.dark body{background:var(--bg)}
html.dark .login-card{background:var(--sf)}
html.dark .login-body{background:var(--sf)}

/* Dark mode button */
.dm-btn{width:38px;height:38px;border-radius:50%;background:var(--sf);border:1.5px solid var(--bd2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s;font-size:1rem}
.dm-btn:hover{background:var(--bg);transform:scale(1.1)}
.dm-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px}

/* Group bar buttons */
.gbar-btn{padding:6px 12px;border-radius:var(--r);font-size:.82rem;font-family:inherit;cursor:pointer;border:none;font-weight:600;transition:all .15s}
.gbar-move{background:rgba(255,255,255,.25);color:#fff;border:1px solid rgba(255,255,255,.4)}
.gbar-move:hover{background:rgba(255,255,255,.4)}
.gbar-del{background:rgba(239,68,68,.8);color:#fff}
.gbar-del:hover{background:#dc2626}
.gbar-clr{background:transparent;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.3)}
.gbar-clr:hover{background:rgba(255,255,255,.15)}

/* Log redesign */
.log-badge{font-size:.72rem;padding:3px 10px;border-radius:20px;font-weight:600;white-space:nowrap;display:inline-block}
.lb-login{background:#dcfce7;color:#16a34a}
.lb-failedlogin,.lb-lockedattempt,.lb-locked{background:#fee2e2;color:#dc2626}
.lb-logout{background:#f1f5f9;color:#64748b}
.lb-upload{background:#dbeafe;color:#1d4ed8}
.lb-download,.lb-sharedownload,.lb-publicfolderdownload{background:#ecfeff;color:#0891b2}
.lb-delete,.lb-deletefolder,.lb-deleteuser{background:#fee2e2;color:#dc2626}
.lb-createlink,.lb-createfolderlink,.lb-sharefolder{background:#f5f3ff;color:#7c3aed}
.lb-createfolder,.lb-createuser{background:#f0fdf4;color:#16a34a}
.lb-changepassword,.lb-resetpassword{background:#fffbeb;color:#d97706}
.lb-folderview{background:#ecfeff;color:#0891b2}
.lb-movefile,.lb-movefolder{background:#fdf4ff;color:#a855f7}
.lb-startup{background:var(--bg);color:var(--lt)}
.sev-badge{font-size:.72rem;padding:3px 8px;border-radius:20px;white-space:nowrap}
.sev-info{background:var(--prb);color:var(--pri)}
.sev-warning{background:#fffbeb;color:#d97706}
.sev-critical{background:#fee2e2;color:#dc2626}
.log-row:hover td{background:var(--sf2)}

/* Logo fix */
.brand-logo-ring img,.login-logo-ring img{
    width:100%;height:100%;object-fit:contain;
    display:block;border-radius:50%;
}
/* Fallback gradient when logo missing */
.brand-logo-ring{
    background:linear-gradient(135deg,var(--pri) 0%,var(--cyn) 100%);
    display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.brand-logo-ring::after{content:'N';color:#fff;font-weight:900;font-size:1.1rem;display:none}
.brand-logo-ring img[src=""]{display:none}
.brand-logo-ring:not(:has(img[style*="none"]))::after{display:none}
.login-logo-ring{
    background:linear-gradient(135deg,var(--pri) 0%,var(--cyn) 100%);
    display:flex;align-items:center;justify-content:center;overflow:hidden;
}

/* ═══ v9 Final Fixes ═══════════════════════════ */

/* User color dot in storage table */
.user-dot{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle;box-shadow:0 0 0 2px var(--sf),0 0 0 3px rgba(0,0,0,.08)}

/* Ensure logo.png displays correctly */
.brand-logo{width:100%!important;height:100%!important;object-fit:contain;border-radius:50%}
.login-logo{width:100%!important;height:100%!important;object-fit:contain;border-radius:50%}

/* Dark mode deep fixes */
html.dark .pie-tip{background:rgba(30,41,59,.95);box-shadow:0 4px 20px rgba(0,0,0,.5)}
html.dark .sc{background:var(--sf);border-color:var(--bd)}
html.dark .sc-n{color:var(--tx)}
html.dark .storage-bar-track{background:var(--bg)}
html.dark .modal .mcard,html.dark .mhead{background:var(--sf)}
html.dark .jp-wd{color:var(--mt)}
html.dark .jp-today{border-color:var(--pri)}
html.dark .err-bar{background:#7f1d1d;border-color:#b91c1c;color:#fecaca}

/* Folder upload button equal to file upload */
#upFolderBtn{background:var(--pri);color:#fff;border:none}
#upFolderBtn:hover{background:var(--prd)}


/* ═══ v9 FINAL ════════════════════════════════════ */

/* Logo: white circle background so dark logo shows on any BG */
.brand-logo-ring {
    background:#fff !important;
    border-radius:50% !important;
    padding:3px;
    box-shadow:0 2px 8px rgba(0,0,0,.15);
    overflow:hidden;
    display:flex;align-items:center;justify-content:center;
}
.brand-logo { width:100%!important; height:100%!important; object-fit:contain; border-radius:50%; display:block; }
.login-logo-ring {
    background:#fff !important;
    border-radius:50%;
    padding:6px;
    box-shadow:0 4px 24px rgba(0,0,0,.2);
    overflow:hidden;
    display:flex;align-items:center;justify-content:center;
}
.login-logo { width:100%!important; height:100%!important; object-fit:contain; border-radius:50%; display:block; }

/* Group bar redesign */
.group-bar {
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
    background:linear-gradient(135deg,var(--pri),var(--cyn));
    color:#fff;border-radius:var(--r2);padding:12px 18px;margin-bottom:14px;
    box-shadow:0 4px 20px rgba(26,86,219,.3);
    animation:gbarIn .25s ease;
}
@keyframes gbarIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.gbar-info{display:flex;align-items:center;gap:8px;font-size:.88rem}
.gbar-info svg{opacity:.9}
.gbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.gbar-btn{padding:7px 14px;border-radius:var(--r);font-size:.82rem;font-family:inherit;cursor:pointer;border:none;font-weight:600;display:flex;align-items:center;gap:6px;transition:all .15s}
.gbar-move{background:rgba(255,255,255,.25);color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.gbar-move:hover{background:rgba(255,255,255,.4)}
.gbar-del{background:rgba(239,68,68,.9);color:#fff}
.gbar-del:hover{background:#dc2626}
.gbar-clr{background:transparent;color:rgba(255,255,255,.8);border:1.5px solid rgba(255,255,255,.3);font-size:.78rem}
.gbar-clr:hover{background:rgba(255,255,255,.15)}
.gi-selected{outline:2.5px solid #fff;outline-offset:1px;box-shadow:0 0 0 4px rgba(26,86,219,.35)!important;background:var(--prb)!important}

/* Dark mode complete */
html.dark{--bg:#0f172a;--sf:#1e293b;--sf2:#162032;--bd:#334155;--bd2:#475569;--tx:#f1f5f9;--mt:#94a3b8;--lt:#64748b;--prb:#1e3a5f}
html.dark body{background:var(--bg);color:var(--tx)}
html.dark .topbar{background:var(--sf);border-color:var(--bd)}
html.dark .sidebar{background:var(--sf);border-color:var(--bd)}
html.dark .card,html.dark .gi,html.dark .mcard{background:var(--sf);border-color:var(--bd)}
html.dark .fi{background:var(--sf2);border-color:var(--bd);color:var(--tx)}
html.dark select{background:var(--sf2);border-color:var(--bd);color:var(--tx)}
html.dark .dtable th,html.dark .ltable th{background:var(--sf2)}
html.dark .jalali-picker{background:var(--sf);border-color:var(--bd);color:var(--tx);box-shadow:0 8px 32px rgba(0,0,0,.4)}
html.dark .jp-d:hover{background:var(--prb)}
html.dark .jp-today{border-color:var(--pri);color:var(--pri)}
html.dark .user-dropdown{background:var(--sf);border-color:var(--bd)}
html.dark .ud-div{background:var(--bd)}
html.dark .ud-item:hover{background:var(--sf2)}
html.dark .search-panel{background:var(--sf);border-color:var(--bd)}
html.dark .login-card{background:var(--sf)}
html.dark .login-body{background:var(--sf)}
html.dark .badge{filter:brightness(.85)}
html.dark .sc{background:var(--sf);border-color:var(--bd)}

/* Dark mode toggle button */
.dm-btn{
    width:40px;height:40px;border-radius:50%;
    background:var(--sf);border:1.5px solid var(--bd2);
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;transition:all .2s;
    color:var(--mt);
}
.dm-btn:hover{background:var(--bg);color:var(--tx);transform:scale(1.1);border-color:var(--pri)}
html.dark .dm-btn{background:var(--sf2);color:#fbbf24;border-color:#fbbf24}
html.dark .dm-btn:hover{background:rgba(251,191,36,.15)}
.dm-icon{display:flex;align-items:center;justify-content:center}


/* v10 fixes */
.lr-selected td{background:var(--prb)!important;box-shadow:inset 0 0 0 2px rgba(37,99,235,.35)}
html.dark .lr-selected td{background:rgba(37,99,235,.18)!important}
.dm-btn{
    width:42px;height:42px;border-radius:999px;
    background:linear-gradient(135deg,#ffffff,#eef4ff);
    border:1px solid rgba(37,99,235,.14);
    box-shadow:0 8px 22px rgba(15,23,42,.10), inset 0 1px 0 rgba(255,255,255,.75);
}
.dm-btn:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 12px 28px rgba(15,23,42,.14)}
html.dark .dm-btn{
    background:linear-gradient(135deg,#1f2937,#0f172a);
    border-color:rgba(251,191,36,.35);
    box-shadow:0 10px 24px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.04);
}
html.dark .dm-btn:hover{background:linear-gradient(135deg,#263244,#111827)}
.dm-icon svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.10))}

tr.gi-selected td{background:var(--prb)!important;box-shadow:inset 0 0 0 2px rgba(37,99,235,.28)}
html.dark tr.gi-selected td{background:rgba(37,99,235,.18)!important}


/* Mission control hero */
.mission-hero{display:grid;grid-template-columns:1.3fr .9fr;gap:16px;align-items:stretch;margin:0 0 16px;background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 52%,#0891b2 100%);border-radius:24px;padding:20px;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 64px rgba(15,23,42,.18);color:#fff;position:relative;overflow:hidden}
.mission-hero:before{content:'';position:absolute;inset:-30% auto auto -10%;width:260px;height:260px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 70%);pointer-events:none}
.mission-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);font-size:.76rem;font-weight:800;letter-spacing:.04em;margin-bottom:10px}
.mission-title{font-size:1.55rem;line-height:1.35;font-weight:900;margin-bottom:8px}
.mission-sub{font-size:.9rem;line-height:2;color:rgba(255,255,255,.85);max-width:720px}
.mission-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.mchip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);font-size:.78rem}
.mission-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-self:center}
.mstat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);border-radius:20px;padding:16px 14px;display:flex;flex-direction:column;gap:6px;min-height:98px;justify-content:center}
.mstat .k{font-size:.78rem;color:rgba(255,255,255,.75)}
.mstat strong{font-size:1.3rem;font-weight:900}
.mission-activity{background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:14px 16px;margin-bottom:16px;box-shadow:var(--s2)}
.ma-head{font-size:.92rem;font-weight:800;color:var(--tx);margin-bottom:10px}
.ma-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ma-item{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.ma-action{font-weight:800;color:var(--pri);font-size:.78rem}
.ma-detail{font-size:.82rem;color:var(--tx);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ma-time{font-size:.74rem;color:var(--mt)}
.warn-bar{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:12px;padding:11px 12px;font-size:.84rem;line-height:1.9}
/* Logo hard fallback */
.brand-logo-ring,.login-logo-ring{background:#fff!important;overflow:hidden}
.brand-logo,.login-logo{display:block!important;opacity:1!important;visibility:visible!important}
@media(max-width:980px){.mission-hero{grid-template-columns:1fr;padding:18px}.mission-stats,.ma-list{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.mission-title{font-size:1.15rem}.mission-stats,.ma-list{grid-template-columns:1fr}.mchip{width:100%;justify-content:space-between}}


.link-lbl{font-size:.76rem;color:var(--mt);margin:6px 0 4px;font-weight:700}
.qr-wrap{display:flex;justify-content:center;margin-top:12px}
.qr-card{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:14px 16px;box-shadow:var(--s1)}
.qr-img{width:180px;height:180px;max-width:100%;background:#fff;border-radius:14px;padding:10px;border:1px solid var(--bd);object-fit:contain}
.qr-cap{font-size:.78rem;color:var(--mt);font-weight:700}
@media(max-width:640px){.qr-img{width:150px;height:150px}}


@media(max-width:640px){
    .toolbar,.tb-acts,.mfooter,.video-actions,.exp-row,.link-row,.sf-btns,.topbar-r,.topbar-l{flex-wrap:wrap}
    .toolbar{gap:10px}
    .tb-acts>*{flex:1 1 auto}
    .btn-pri,.btn-sec,.btn-danger,.btn-copy{justify-content:center}
    .link-row{flex-direction:column}
    .link-row .btn-copy{width:100%}
    .ltable{display:block;overflow-x:auto;white-space:nowrap}
    .main-wrap,.pf-wrap,.pub-wrap,.login-body{padding-left:12px;padding-right:12px}
    .card,.mcard,.login-card{border-radius:18px}
}

/* ── نوار آپلود سراسری ─────────────────────────── */
.global-up-prog{
    position:fixed;bottom:0;left:0;right:0;z-index:9999;
    background:linear-gradient(135deg,#1e40af,#0e7490);
    color:#fff;padding:12px 20px;
    box-shadow:0 -4px 24px rgba(15,23,42,.22);
    transition:transform .3s ease,opacity .3s ease;
    border-top:2px solid rgba(255,255,255,.18);
}
.global-up-prog.hidden{transform:translateY(110%);opacity:0;pointer-events:none}
.global-up-inner{display:flex;align-items:center;gap:14px;max-width:1200px;margin:0 auto;flex-wrap:wrap}
.global-up-text{display:flex;align-items:center;gap:10px;flex:1;min-width:200px}
.global-up-bar-bg{flex:1;height:8px;background:rgba(255,255,255,.25);border-radius:999px;overflow:hidden}
.global-up-bar-fill{height:100%;background:#fff;border-radius:999px;transition:width .3s}
.global-up-pct{font-weight:900;font-size:.9rem;white-space:nowrap;min-width:36px}
.global-up-label{font-size:.82rem;opacity:.85;flex:1 1 100%;word-break:break-all}
.up-spin{animation:spin 1.5s linear infinite;opacity:.85;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── مودال جزئیات لینک ─────────────────────────── */
#link-details-modal .mcard{max-width:960px;width:95vw}
.ld-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:2px solid var(--bd);padding-bottom:8px}
.ld-tab{padding:8px 16px;border-radius:10px 10px 0 0;cursor:pointer;font-weight:700;font-size:.87rem;border:none;background:none;color:var(--mt)}
.ld-tab.active{background:var(--pri);color:#fff}
.ld-panel{display:none}.ld-panel.active{display:block}
.ld-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ld-kpi{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:14px;text-align:center}
.ld-kpi .n{font-size:1.4rem;font-weight:900;color:var(--pri)}
.ld-kpi .l{font-size:.78rem;color:var(--mt);margin-top:4px}
.ld-table{width:100%;border-collapse:collapse;font-size:.84rem}
.ld-table th{background:var(--sf);padding:8px 10px;text-align:right;font-weight:800;border-bottom:2px solid var(--bd)}
.ld-table td{padding:8px 10px;border-bottom:1px solid var(--bd)}
.ld-table tr:last-child td{border-bottom:none}
.mobile-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:.74rem;font-weight:700}
.mobile-badge.mob{background:#dbeafe;color:#1d4ed8}
.mobile-badge.pc{background:#f0fdf4;color:#15803d}
.world-map-container{width:100%;overflow:hidden;border-radius:16px;border:1px solid var(--bd);background:#f8fbff;padding:8px;margin-bottom:16px}
.world-map-container svg{width:100%;height:auto;max-height:340px}
.map-country{fill:#e2e8f0;transition:fill .3s}
.map-country.visited{fill:#1d4ed8}
.map-country:hover{fill:#3b82f6;cursor:pointer}
.ld-country-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ld-country-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--sf);border:1px solid var(--bd);font-size:.82rem;font-weight:700}
.ld-loading{text-align:center;padding:40px;color:var(--mt)}
@media(max-width:640px){.ld-kpis{grid-template-columns:repeat(2,1fr)}}


.share-modal-card{width:min(94vw,560px);max-height:min(88vh,900px);overflow:auto}
.share-modal-card .mhead{position:sticky;top:0;z-index:2}
.link-details-card{width:min(96vw,1040px);max-height:min(90vh,920px);overflow:auto}
.link-details-card .mhead{position:sticky;top:0;z-index:2}
.ld-tabs{overflow:auto hidden;scrollbar-width:thin}
@media(max-width:640px){
  .share-modal-card,.link-details-card{width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:18px}
  .ld-tab{white-space:nowrap}
}


/* ---- Share / details modals hardening ---- */
#share-modal,#folder-share-modal,#link-details-modal{max-width:none;width:auto}
#share-modal .mcard,#folder-share-modal .mcard,#link-details-modal .mcard{max-width:min(96vw,1120px)}
.share-modal-card{width:min(94vw,640px);max-height:min(90vh,960px);overflow:hidden}
.share-modal-card .mbody{max-height:calc(90vh - 72px);overflow:auto;padding-bottom:18px}
.share-modal-card details{display:block}
.share-modal-card summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none}
.share-modal-card summary::-webkit-details-marker{display:none}
.link-details-card{width:min(96vw,1080px);max-height:min(92vh,960px);overflow:hidden}
.link-details-card .mbody{max-height:calc(92vh - 72px);overflow:auto}

@media(max-width:768px){.search-panel.sp-open{max-height:none;overflow-y:visible}}
@media(max-width:640px){
  #share-modal,#folder-share-modal,#link-details-modal{width:calc(100vw - 10px)}
  .share-modal-card,.link-details-card{width:calc(100vw - 10px);max-height:calc(100vh - 10px);border-radius:18px}
  .share-modal-card .mbody,.link-details-card .mbody{max-height:calc(100vh - 86px)}
}

/* ---- Monitoring chart / filters ---- */
.mon-filter{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;margin-bottom:16px}
.mon-filter .fi,.mon-filter select{width:100%}
.mon-filter-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.event-chart{width:100%;min-height:280px;border:1px solid var(--bd);border-radius:18px;background:linear-gradient(180deg,#fcfdff,#f8fbff);padding:12px}
.event-chart svg{width:100%;height:280px;display:block}
.event-chart-empty{display:flex;align-items:center;justify-content:center;min-height:280px;color:var(--mt)}
.mon-table-wrap{overflow:auto;border:1px solid var(--bd);border-radius:18px}
.mon-table{width:100%;border-collapse:collapse;font-size:.84rem}
.mon-table th{background:var(--sf2);padding:10px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--bd)}
.mon-table td{padding:10px 12px;border-bottom:1px solid var(--bd);vertical-align:top}
.mon-table tr:last-child td{border-bottom:none}
.mon-detail{max-width:420px;white-space:normal;line-height:1.8}
.mon-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.74rem;font-weight:800}
.mon-badge.info{background:#ecfeff;color:#0891b2}
.mon-badge.warning{background:#fffbeb;color:#d97706}
.mon-badge.critical{background:#fef2f2;color:#dc2626}
@media(max-width:1100px){.mon-filter{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.mon-filter{grid-template-columns:1fr 1fr;gap:8px}.mon-filter-actions{justify-content:stretch;grid-column:1/-1}.mon-filter-actions>*{flex:1}}
@media(max-width:480px){.mon-filter{grid-template-columns:1fr}}

/* نقشه جهانی با زوم */
.world-map-svg-wrap{
    width:100%;overflow:hidden;border-radius:14px;
    border:1.5px solid var(--bd);background:#c5ddf0;
    position:relative;touch-action:none;cursor:grab;
}
.world-map-svg-wrap:active{cursor:grabbing}
.world-map-svg-wrap svg{display:block;width:100%;height:auto;max-height:400px}
.wm-tooltip{
    position:absolute;background:rgba(15,23,42,.85);color:#fff;
    padding:5px 10px;border-radius:8px;font-size:.78rem;font-weight:700;
    pointer-events:none;white-space:nowrap;z-index:10;
    transition:opacity .15s;opacity:0;
}
.wm-tooltip.show{opacity:1}
.wm-controls{
    position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:4px;
}
.wm-btn{
    width:30px;height:30px;border-radius:8px;border:1.5px solid rgba(255,255,255,.5);
    background:rgba(255,255,255,.85);font-size:1.1rem;font-weight:900;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    color:#1e40af;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:background .2s;
}
.wm-btn:hover{background:#fff}


/* ── Upload queue & active progress (enhanced) ───────────────── */
.up-queue{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.up-q-item{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px 12px;box-shadow:var(--s1)}
.up-q-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.up-q-title{font-weight:800;font-size:.88rem;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-q-meta{font-size:.76rem;color:var(--mt);margin-top:7px}
.up-q-bar-bg{height:7px;background:var(--bd);border-radius:999px;overflow:hidden}
.up-q-bar-fill{height:100%;width:100%;background:linear-gradient(90deg,#60a5fa,#2563eb);border-radius:999px;opacity:.92}
.up-q-cancel{padding:6px 10px;font-size:.75rem;line-height:1;border-radius:10px}
.up-prog{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:12px 16px;margin-bottom:14px;display:block}
.up-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.up-head-title{font-weight:900;font-size:.92rem;color:var(--tx)}
.up-cancel{padding:7px 12px;font-size:.8rem;line-height:1;border-radius:10px}
.up-prog-inner{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.up-label{font-size:.8rem;color:var(--mt);text-align:right;word-break:break-word}
@media(max-width:768px){
  .up-q-top,.up-head{align-items:flex-start;flex-direction:column}
  .up-q-cancel,.up-cancel{width:100%}
}
