:root{
  --bg:#f3f5fa;--surface:#ffffff;--ink:#0e1a2e;--ink2:#39465f;--muted:#6d7891;
  --primary:#2b3cb3;--primary2:#3a56e8;--primary-soft:#e8ecfd;--accent:#0c8f84;
  --gold:#c9a24d;
  --danger:#d62626;--danger-soft:#fcebeb;--ok:#177a3c;--ok-soft:#ddf4e6;--warn:#a84f08;--warn-soft:#fcf0d8;
  --line:#e6e9f2;--line2:#cdd5e3;--nav:#0a1330;--nav2:#101f52;
  --shadow:0 1px 2px rgba(14,26,46,.04),0 8px 24px -10px rgba(14,26,46,.09);
  --shadow-lg:0 28px 70px -18px rgba(10,19,48,.26);--r:18px;
}
*{box-sizing:border-box}
html{font-family:'Assistant',system-ui,sans-serif}
body{margin:0;background:radial-gradient(1100px 480px at 85% -8%,#3d5af10d,transparent),radial-gradient(900px 420px at 5% 108%,#0d94880d,transparent),var(--bg);color:var(--ink);min-height:100vh}
button,input,textarea,select{font:inherit;color:inherit}
a{color:var(--primary2);text-decoration:none}
.hidden{display:none!important}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#c2cbdd;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#a8b4cf;border:2px solid transparent;background-clip:content-box}

/* ---------- auth pages ---------- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1100px 560px at 82% -12%,#3d5af130,transparent),radial-gradient(880px 460px at 8% 112%,#0d948828,transparent),linear-gradient(160deg,#eef1fa,#e4e9f6)}
.auth-card{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid #ffffff;border-radius:22px;box-shadow:0 30px 80px -20px rgba(10,21,51,.30),0 2px 6px rgba(10,21,51,.06);padding:40px;width:100%;max-width:420px}
.auth-card h1{margin:20px 0 4px;font-size:27px;font-weight:800;letter-spacing:-.01em}
.auth-card .sub{color:var(--muted);margin-bottom:22px;font-size:15px}
.auth-card label{display:block;font-weight:700;font-size:14px;margin:14px 0 6px}
.auth-card input{width:100%;padding:12px 15px;border:1.5px solid var(--line2);border-radius:12px;background:#f7f9fd;font-size:15px;transition:border-color .15s,box-shadow .15s,background .15s}
.auth-card input:focus{outline:none;border-color:var(--primary2);background:#fff;box-shadow:0 0 0 4px var(--primary-soft)}
.auth-card .btn{width:100%;margin-top:24px;padding:13px;font-size:16px}
.brand{display:flex;align-items:center;gap:12px}
.brand .mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#3d5af1,#0d9488);color:#fff;display:grid;place-items:center;font-weight:800;font-size:25px;box-shadow:0 8px 20px -6px #2c3fc766,inset 0 1px 0 #ffffff44;flex:none}
.brand .name{font-weight:800;font-size:19px;letter-spacing:-.01em}
.brand .tag{color:var(--muted);font-size:13px}

/* ---------- app shell ---------- */
.shell{display:flex;min-height:100vh}
.sidebar{width:268px;background:linear-gradient(170deg,var(--nav) 0%,#0e1c44 52%,var(--nav2) 100%);color:#c3cee6;display:flex;flex-direction:column;position:fixed;inset-inline-start:0;top:0;bottom:0;z-index:40;transition:transform .25s}
.sidebar:before{content:'';position:absolute;inset:0;background:radial-gradient(420px 300px at 50% -60px,#3d5af12b,transparent);pointer-events:none}
.sidebar .brand{padding:22px 20px 18px;color:#fff;border-bottom:1px solid #ffffff12;position:relative}
.sidebar .brand .tag{color:#8ea0c6}
.sidebar .brand .mark{width:42px;height:42px;font-size:22px;border-radius:12px}
.nav{padding:16px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;position:relative}
.nav .sec{font-size:11px;font-weight:800;letter-spacing:.09em;color:#5f6f96;margin:16px 10px 6px;text-transform:uppercase}
.nav button{display:flex;align-items:center;gap:11px;width:100%;padding:10px 13px;border:0;background:transparent;color:#c3cee6;border-radius:11px;cursor:pointer;font-size:15px;font-weight:600;text-align:start;position:relative;transition:background .15s,color .15s}
.nav button:hover{background:#ffffff0e;color:#fff}
.nav button.on{background:linear-gradient(90deg,#3d5af12e,#3d5af10f);color:#fff;box-shadow:inset 3px 0 0 var(--gold),0 4px 14px -6px #3d5af155}
.nav button .ico{width:20px;text-align:center;font-size:17px}
.nav .badge{margin-inline-start:auto;background:linear-gradient(135deg,#e11d48,#dc2626);color:#fff;font-size:11.5px;font-weight:800;border-radius:999px;padding:1px 7px;box-shadow:0 3px 8px -2px #e11d4888}
.sidebar .foot{padding:14px;border-top:1px solid #ffffff12;font-size:12.5px;color:#5f6f96;position:relative}
.main{flex:1;margin-inline-start:268px;display:flex;flex-direction:column;min-width:0}
.topbar{height:66px;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:30}
.topbar .ttl{font-weight:800;font-size:18px;letter-spacing:-.01em}
.topbar .sp{flex:1}
.gsearch{position:relative;width:min(440px,42vw)}
.gsearch input{width:100%;padding:10px 40px 10px 16px;border:1.5px solid var(--line);border-radius:999px;background:#f1f4fa;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}
.gsearch input:focus{outline:none;border-color:var(--primary2);background:#fff;box-shadow:0 0 0 4px var(--primary-soft)}
.gsearch .gsi{position:absolute;inset-inline-end:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.gresults{position:absolute;top:calc(100% + 8px);inset-inline:0;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-lg);max-height:420px;overflow:auto;z-index:60;padding:6px}
.gresults .gr{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:10px;cursor:pointer}
.gresults .gr:hover{background:#f3f5fb}
.gresults .gr .gt{font-weight:700;font-size:14px}
.gresults .gr .gm{color:var(--muted);font-size:12.5px}
.gresults .gsec{font-size:11.5px;font-weight:800;color:var(--muted);padding:8px 10px 2px;letter-spacing:.05em}
.iconbtn{position:relative;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:18px;display:grid;place-items:center;transition:background .15s,box-shadow .15s}
.iconbtn:hover{background:#f3f5fb;box-shadow:var(--shadow)}
.iconbtn .dot{position:absolute;top:-5px;inset-inline-end:-5px;background:linear-gradient(135deg,#e11d48,#dc2626);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:1px 6px;border:2px solid #fff}
.userchip{display:flex;align-items:center;gap:10px;padding:5px 10px 5px 5px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;transition:box-shadow .15s}
.userchip:hover{box-shadow:var(--shadow)}
.userchip .av{width:33px;height:33px;border-radius:999px;background:linear-gradient(135deg,#3d5af1,#0d9488);color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:inset 0 1px 0 #ffffff44}
.userchip .un{font-weight:700;font-size:14px}
.userchip .ur{font-size:11.5px;color:var(--muted)}
.menu{position:absolute;top:calc(100% + 8px);inset-inline-end:0;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-lg);min-width:200px;z-index:60;padding:6px}
.menu button{display:block;width:100%;text-align:start;border:0;background:none;padding:9px 12px;border-radius:9px;cursor:pointer;font-size:14px;transition:background .12s}
.menu button:hover{background:#f3f5fb}
.content{padding:26px;max-width:1460px;width:100%;margin:0 auto}

/* ---------- dashboard ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:15px;margin-bottom:24px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 19px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s}
.stat:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(13,25,48,.16)}
.stat:before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--primary2),var(--primary))}
.stat:after{content:'';position:absolute;inset-inline-end:-34px;top:-34px;width:104px;height:104px;border-radius:99px;background:radial-gradient(circle,#3d5af114,transparent 70%)}
.stat.warn:before{background:linear-gradient(180deg,#d97706,var(--warn))}.stat.ok:before{background:linear-gradient(180deg,#16a34a,var(--ok))}.stat.danger:before{background:linear-gradient(180deg,#e11d48,var(--danger))}.stat.acc:before{background:linear-gradient(180deg,#14b8a6,var(--accent))}
.stat .sv{font-size:28px;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.stat .sl{color:var(--muted);font-size:13px;font-weight:600;margin-top:4px}
.grid2{display:grid;grid-template-columns:1.6fr 1fr;gap:17px;align-items:start}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);margin-bottom:17px}
.card-h{display:flex;align-items:center;gap:10px;padding:15px 19px;border-bottom:1px solid var(--line);font-weight:800;font-size:15.5px;letter-spacing:-.01em}
.card-h .sp{flex:1}
.card-h .link{font-size:13px;font-weight:700}
.card-b{padding:15px 19px}
.card-b.flush{padding:0}

/* ---------- tables & rows ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:start;color:var(--muted);font-size:11.5px;font-weight:800;letter-spacing:.05em;padding:10px 14px;border-bottom:1px solid var(--line);background:#f7f9fc;position:sticky;top:0}
.tbl td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:hover td{background:#f7f9fc}
.mrow{display:flex;align-items:center;gap:12px;padding:11px 19px;border-bottom:1px solid var(--line);transition:background .12s}
.mrow:last-child{border-bottom:0}
.mrow:hover{background:#f7f9fc}
.mrow .fi{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;font-size:18px;flex:none}
.fi.video{background:#ede9fe;color:#6d28d9}.fi.image{background:#fce7f3;color:#be185d}.fi.presentation{background:#ffedd5;color:#c2410c}.fi.document{background:#e0e9fe;color:#2c3fc7}.fi.other{background:#e5eaf3;color:#4b5a75}
.mrow .mt{font-weight:700;font-size:14.5px}
.mrow .mm{color:var(--muted);font-size:12.5px}
.mrow .sp{flex:1;min-width:0}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:999px;padding:3px 11px}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--danger-soft);color:var(--danger)}
.pill.info{background:var(--primary-soft);color:var(--primary)}
.pill.gray{background:#e5eaf3;color:#4b5a75}
.dot-unread{width:9px;height:9px;border-radius:99px;background:var(--primary2);display:inline-block;flex:none;box-shadow:0 0 0 3px #3d5af122}

/* ---------- buttons/forms ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid var(--line2);background:#fff;border-radius:11px;padding:8px 16px;font-weight:700;font-size:14px;cursor:pointer;transition:background .15s,box-shadow .15s,transform .12s,border-color .15s}
.btn:hover{background:#f7f9fc;border-color:#b9c4da}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(135deg,#3d5af1,#2c3fc7);border-color:transparent;color:#fff;box-shadow:0 8px 18px -8px #2c3fc799,inset 0 1px 0 #ffffff33}
.btn.primary:hover{background:linear-gradient(135deg,#3350e0,#2535ad);box-shadow:0 10px 22px -8px #2c3fc7aa}
.btn.danger{background:#fff;border-color:#f3b4b4;color:var(--danger)}
.btn.danger:hover{background:var(--danger-soft);border-color:#eda0a0}
.btn.ok{background:linear-gradient(135deg,#16a34a,#15803d);border-color:transparent;color:#fff;box-shadow:0 8px 18px -8px #15803d88}
.btn.sm{padding:5px 11px;font-size:13px;border-radius:9px}
.btn:disabled{opacity:.55;cursor:default;transform:none}
.btn.ghost{border-color:transparent;background:transparent;color:var(--primary2)}
.btn.ghost:hover{background:var(--primary-soft);border-color:transparent}
.btn.ghost.del{color:var(--danger)}
.btn.ghost.del:hover{background:var(--danger-soft)}
.field{margin-bottom:14px}
.field label{display:block;font-weight:700;font-size:13.5px;margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;padding:10px 13px;border:1.5px solid var(--line2);border-radius:11px;background:#f7f9fd;font-size:14.5px;transition:border-color .15s,box-shadow .15s,background .15s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--primary2);background:#fff;box-shadow:0 0 0 4px var(--primary-soft)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.toolbar .sp{flex:1}
.chip{border:1.5px solid var(--line2);background:#fff;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:700;cursor:pointer;color:var(--ink2);transition:background .14s,border-color .14s,color .14s}
.chip:hover{border-color:#b9c4da}
.chip.on{background:linear-gradient(135deg,#16224a,var(--nav));border-color:transparent;color:#fff;box-shadow:0 6px 14px -6px #0a153388}
.searchbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:center}
.searchbar input[type=text]{padding:10px 15px;border:1.5px solid var(--line2);border-radius:11px;background:#fff;min-width:230px;font-size:14px;transition:border-color .15s,box-shadow .15s}
.searchbar input[type=text]:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 4px var(--primary-soft)}

/* ---------- tree ---------- */
.course{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden;transition:border-color .18s,box-shadow .18s,transform .18s}
.course-h{display:flex;align-items:center;gap:12px;padding:15px 19px;cursor:pointer;user-select:none;transition:background .14s}
.course-h:hover{background:#f7f9fc}
.course-h .ct{font-weight:800;font-size:16px;letter-spacing:-.01em}
.course-h .cm{color:var(--muted);font-size:12.5px}
.course-h .chev{transition:transform .2s;color:var(--muted)}
.course.closed .chev{transform:rotate(-90deg)}
.course-body{border-top:1px solid var(--line)}
.course.closed .course-body{display:none}
.folder{padding:12px 18px;border-bottom:1px solid var(--line)}
.folder:last-child{border-bottom:0}
.folder-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.folder-h .ft{font-weight:800;font-size:14.5px}
.folder-h .fm{color:var(--muted);font-size:12px}
.mat{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:11px;transition:background .12s}
.mat:hover{background:#f1f4fa}
.mat .fi{width:33px;height:33px;font-size:15px;border-radius:9px}
.mat .mt{font-weight:700;font-size:14px}
.mat .md{color:var(--muted);font-size:12px}
.arch-tag{font-size:11px;font-weight:800;color:var(--warn);background:var(--warn-soft);border-radius:7px;padding:2px 8px}

/* ---------- notifications ---------- */
.notif{display:flex;gap:13px;padding:15px 19px;border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;transition:background .12s}
.notif:last-child{border-bottom:0}
.notif:hover{background:#f7f9fc}
.notif.unread{background:#eef2fe}
.notif.unread:hover{background:#e4eafc}
.notif .ni{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;font-size:17px;flex:none;background:var(--primary-soft);color:var(--primary)}
.notif.unread .ni{background:linear-gradient(135deg,#3d5af1,#2c3fc7);color:#fff;box-shadow:0 6px 14px -6px #2c3fc788}
.notif .nt{font-weight:700;font-size:14.5px}
.notif .nb{color:var(--ink2);font-size:13.5px;margin-top:1px}
.notif .nm{color:var(--muted);font-size:12px;margin-top:3px}

/* ---------- chat ---------- */
.chatwrap{display:grid;grid-template-columns:280px 1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;height:calc(100vh - 170px);min-height:440px}
.chatlist{border-inline-end:1px solid var(--line);overflow-y:auto}
.person{display:flex;gap:10px;align-items:center;width:100%;padding:12px 15px;border:0;background:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:start;transition:background .12s}
.person:hover{background:#f7f9fc}
.person.on{background:#eef2fe}
.person .av{width:37px;height:37px;border-radius:99px;background:linear-gradient(135deg,#3d5af1,#0d9488);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.chatmain{display:flex;flex-direction:column;min-width:0}
.chathead{padding:13px 19px;border-bottom:1px solid var(--line);font-weight:800}
#messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:9px;background:#f4f6fb}
.bubble{max-width:72%;background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:16px 16px 16px 5px;font-size:14.5px;align-self:flex-start;box-shadow:0 2px 8px rgba(13,25,48,.05)}
.bubble.mine{background:linear-gradient(135deg,#3d5af1,#2c3fc7);color:#fff;border-color:transparent;border-radius:16px 16px 5px 16px;align-self:flex-end;box-shadow:0 6px 16px -8px #2c3fc799}
.bubble time{display:block;font-size:11px;opacity:.65;margin-top:4px}
.chatinput{display:flex;gap:9px;padding:12px;border-top:1px solid var(--line);background:#fff}
.chatinput textarea{flex:1;resize:none;padding:10px 14px;border:1.5px solid var(--line2);border-radius:12px;font-size:14.5px;max-height:110px;transition:border-color .15s,box-shadow .15s}
.chatinput textarea:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 4px var(--primary-soft)}

/* ---------- modal/toast/misc ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(10,21,51,.62);backdrop-filter:blur(4px);z-index:100;display:grid;place-items:center;padding:20px}
.modal{background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:88vh;overflow:auto}
.modal.wide{max-width:760px}
.modal-h{display:flex;align-items:center;padding:17px 21px;border-bottom:1px solid var(--line);font-weight:800;font-size:16.5px;letter-spacing:-.01em}
.modal-h .x{margin-inline-start:auto;border:0;background:#f1f4fa;width:auto;min-width:34px;height:32px;padding:0 9px;flex:none;border-radius:10px;cursor:pointer;font-size:14px;white-space:nowrap;transition:background .14s}
.modal-h .x:hover{background:#e5eaf3}
.modal-b{padding:21px}
.modal-f{padding:15px 21px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-start}
#toasts{position:fixed;bottom:22px;inset-inline-start:22px;z-index:200;display:flex;flex-direction:column;gap:9px}
.toast{background:rgba(10,21,51,.94);backdrop-filter:blur(8px);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow-lg);font-size:14px;font-weight:600;animation:tin .25s;border:1px solid #ffffff1c}
.toast.err{background:rgba(190,20,40,.95)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}}
.empty{padding:36px 18px;text-align:center;color:var(--muted);font-size:14px}
.empty .big{font-size:34px;margin-bottom:8px}
.err{background:var(--danger-soft);color:var(--danger);border-radius:11px;padding:10px 14px;font-size:13.5px;font-weight:600;margin-top:12px}
.okmsg{background:var(--ok-soft);color:var(--ok);border-radius:11px;padding:10px 14px;font-size:13.5px;font-weight:600;margin-top:12px}
.mini{font-size:12px;color:var(--muted)}
.progress{height:8px;background:#e2e8f4;border-radius:99px;overflow:hidden;margin-top:8px}
.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--primary2),var(--accent));border-radius:99px;transition:width .2s}
.uplzone{border:2px dashed var(--line2);border-radius:13px;padding:24px;text-align:center;color:var(--muted);cursor:pointer;background:#f7f9fd;transition:border-color .15s,background .15s,color .15s}
.uplzone:hover,.uplzone.over{border-color:var(--primary2);background:var(--primary-soft);color:var(--primary)}
.excl-list{display:flex;flex-wrap:wrap;gap:6px}
.excl-list .chip.on{background:linear-gradient(135deg,#e11d48,#dc2626);border-color:transparent}
.page-h{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.page-h h2{margin:0;font-size:23px;font-weight:800;letter-spacing:-.02em}
.page-h .sub{color:var(--muted);font-size:13.5px}
.idbox{font-family:monospace;background:#f1f4fa;border-radius:8px;padding:2px 8px;font-size:12.5px;direction:ltr;display:inline-block}
.hamb{display:none}
.kbd-help{font-size:12px;color:var(--muted)}

@media(max-width:960px){
  .sidebar{transform:translateX(100%)}
  .sidebar.open{transform:none;box-shadow:var(--shadow-lg)}
  .main{margin-inline-start:0}
  .hamb{display:grid}
  .grid2{grid-template-columns:1fr}
  .chatwrap{grid-template-columns:1fr;height:auto}
  .chatlist{max-height:200px;border-inline-end:0;border-bottom:1px solid var(--line)}
  .gsearch{width:34vw}
  .content{padding:16px}
  .topbar{padding:0 14px}
  .userchip .ud{display:none}
}
@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0}}

/* long-name safety + mobile row wrap */
.mat{flex-wrap:wrap}
.mat .mt,.mat .md,.mrow .mt,.mrow .mm{word-break:break-word;overflow-wrap:anywhere}
.mat .mmid{flex:1;min-width:0}
.mrow .sp{min-width:0}
.gresults .gt,.gresults .gm{word-break:break-word}

@media(max-width:960px){
  .mat .mmid{flex:1 1 100%;order:3;margin:2px 0}
  .mat .fi{order:1}
  .mat .btn,.mat .dot-unread{order:2}
  .mat{padding:10px}
}

/* V5 calm folder hierarchy */
#treeRoot{display:grid;gap:15px}
.course{margin:0;border-color:#dfe5f0;box-shadow:0 2px 12px rgba(13,25,48,.05)}
.course-h{min-height:72px;padding:16px 19px;background:#fff}
.course-h .chev,.folder-chev{width:28px;height:28px;border-radius:9px;background:#eef1f8;display:grid;place-items:center;font-size:18px;transition:transform .2s}
.course.closed .course-h .chev,.folder.closed .folder-chev{transform:rotate(90deg)}
.course-icon,.folder-icon{font-size:21px}.course-title{display:flex;flex-direction:column;gap:2px}.course-desc{font-size:12.5px;color:var(--muted);font-weight:500;max-width:560px}
.course-body{padding:15px;background:#f6f8fc}.breadcrumb,.file-path{font-size:12px;color:#68779a}.breadcrumb{padding:0 4px 11px}.breadcrumb span,.file-path span{color:#93a0bb;margin:0 4px}
.folder{padding:0;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px;overflow:hidden}.folder:last-child{margin-bottom:0;border-bottom:1px solid var(--line)}
.folder-h{padding:12px 15px;margin:0;cursor:pointer;min-height:54px}.folder-h:hover{background:#f7f9fc}.folder-body{border-top:1px solid var(--line);padding:10px 12px}.folder.closed .folder-body{display:none}
.sp{flex:1}.row-actions,.file-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.compact{padding:16px}
.mat{align-items:flex-start;padding:14px 12px;border-bottom:1px solid #e8edf5;border-radius:0;flex-wrap:nowrap}.mat:last-child{border-bottom:0}.mat:hover{background:#f7f9fc}.mat .fi{margin-top:25px}
.mat .mmid{display:flex;flex-direction:column;gap:4px}.file-description{order:1;background:#eef2fe;border-inline-start:4px solid var(--primary2);padding:9px 13px;border-radius:9px;color:#22356b;font-size:14px;font-weight:700;line-height:1.45;margin:3px 0 5px}.empty-description{background:#f7f9fc;border-color:#ccd4e4;color:#93a0bb;font-weight:500}
.mat .mt{order:2;font-size:15px}.mat .md{order:3}.file-path{order:0}.file-actions{align-self:center;flex:none;max-width:330px}
.source-status{display:flex;flex-direction:column;gap:5px;padding:13px 16px;border-radius:11px;margin:-6px 0 16px}.source-status.bad{background:var(--danger-soft);color:#991b1b;border:1px solid #f6c9c9}.source-status span{font-size:13.5px}
@media(max-width:760px){
 .content{padding:12px}.page-h{align-items:flex-start}.course-h,.folder-h{align-items:flex-start;flex-wrap:wrap}.course-h .cm,.folder-h .fm{width:100%;padding-inline-start:76px}.row-actions{width:100%;padding-inline-start:38px}.course-body{padding:9px}.folder-body{padding:6px}.mat{flex-wrap:wrap}.mat .fi{margin-top:2px}.mat .mmid{flex:1 1 calc(100% - 48px);order:initial}.file-actions{width:100%;max-width:none;padding-inline-start:44px}.file-description{font-size:13.5px}.gsearch{display:none}.topbar{height:58px}.userchip{padding:3px}.tbl{min-width:680px}.card-b.flush{overflow-x:auto}}

/* V6: guarded permanent course deletion */
.btn.danger.solid{background:linear-gradient(135deg,#e11d48,#dc2626);border-color:transparent;color:#fff;box-shadow:0 8px 18px -8px #dc262688}.btn.danger.solid:hover{filter:brightness(.96)}
.danger-title{color:var(--danger)}.delete-warning{background:var(--danger-soft);border:1px solid #f6c9c9;border-radius:13px;padding:15px 17px;margin-bottom:18px;color:#7f1d1d;line-height:1.55}.delete-warning b{font-size:16px}.delete-warning p{margin:8px 0 0}.confirm-name{font-weight:800;background:#f7f9fd;border:1px solid var(--line2);border-radius:9px;padding:8px 12px;margin-bottom:8px;overflow-wrap:anywhere}

/* V6: computer-folder navigation, one level at a time */
.course-grid{display:grid;gap:13px}.course-tile,.folder-tile{cursor:pointer}.course-tile:hover,.folder-tile:hover{border-color:#a5bcf8;box-shadow:0 10px 26px -10px rgba(61,90,241,.22);transform:translateY(-2px)}.open-arrow{font-size:27px;color:var(--primary2);font-weight:700}.folder-view-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 15px}.folder-view-head .breadcrumb{padding:0;flex:1}.folder-view-head .breadcrumb span{cursor:pointer;color:var(--primary2)}.folder-view-head .breadcrumb i{font-style:normal;color:#93a0bb;margin:0 5px}.opened{margin:0}.opened>.course-body{display:block}.opened>.folder-body{display:block}
@media(max-width:760px){.folder-view-head{align-items:stretch}.folder-view-head>.btn{width:100%}.folder-view-head .breadcrumb{width:100%}.course-tile .row-actions,.folder-tile .row-actions{order:10}.course-tile .open-arrow,.folder-tile .open-arrow{margin-inline-start:auto}}

.accordion-toggle{border:0;background:transparent;padding:0;font:inherit;font-weight:800;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ---------- V7: overflow / wrapping hardening (RTL, desktop+mobile) ---------- */
/* Flex/grid children shrink below content width instead of forcing page overflow */
.grid2>*,.stats>*,.chatwrap>*,.content>*,#treeRoot,#treeRoot>*,.course-h>*,.folder-h>*,.folder-view-head>*,.topbar>*{min-width:0}
.sp{min-width:0}
.notif .sp,.mrow .sp,.gresults .gr>div,.person>div,.course-title,.userchip .ud,.folder-view-head .breadcrumb{min-width:0}
/* Unbreakable strings (URLs, IDs, long filenames, mixed HE/EN) wrap inside their frames */
.bubble,.notif .nt,.notif .nb,.notif .nm,.gresults .gt,.gresults .gm,
.course-h .ct,.course-desc,.folder-h .ft,.folder-h .fm,.course-h .cm,
.mat .mt,.mat .md,.file-description,.file-path,.breadcrumb,.chathead,.person b,.person .mini,
.stat .sv,.stat .sl,.page-h h2,.page-h .sub,.modal-h,.modal-b,.confirm-name,.delete-warning,
.card-h,.card-h .link,.empty,.mini,.mrow .mt,.mrow .mm,.uplzone,.source-status,.auth-card,.idbox,
.arch-tag,.pill,.chip,.btn,.topbar .ttl,.userchip .un,.userchip .ur,.menu button{overflow-wrap:anywhere;word-break:break-word}
.tbl td,.tbl th{overflow-wrap:anywhere}
/* Fixed-size icon buttons no longer let their Hebrew labels spill outside the border */
.iconbtn{min-width:40px;width:auto;padding:0 9px;flex:none}
.notif .ni{width:auto;min-width:39px;padding:0 7px}
/* Chat: bubbles and composer stay inside the panel */
.chatinput textarea{min-width:0}
.chatinput .btn{flex:none}
.bubble{max-width:min(72%,100%)}
/* Menus, modals and dropdowns never exceed the viewport */
.menu{max-width:calc(100vw - 20px)}
.modal{min-width:0}
select{max-width:100%}
input,textarea{min-width:0}
/* Stats numbers wrap instead of forcing the grid wider */
.stat{min-width:0}
@media(max-width:760px){
  .topbar{gap:8px;padding:0 10px}
  .topbar .ttl{font-size:16px}
  .iconbtn{min-width:36px;padding:0 7px}
  .chatlist{max-height:180px}
  .modal-f{flex-wrap:wrap}
  .page-h .btn{flex:none}
  .searchbar input[type=text]{min-width:0;flex:1}
}

/* V7b: folder-view header balance - long back-button titles vs breadcrumb */
.folder-view-head .breadcrumb{flex:1 1 220px;min-width:200px}
.folder-view-head>.btn{flex:0 1 auto;max-width:100%;text-align:start;height:auto;padding-top:8px;padding-bottom:8px}
.folder-view-head .row-actions{flex:0 1 auto}
@media(max-width:760px){.folder-view-head .breadcrumb{min-width:0;flex-basis:100%}}

/* ---------- storage meter (V9) ---------- */
.storage-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.storage-row .sv2{font-size:24px;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.storage-row .sl2{color:var(--muted);font-size:13px;font-weight:600;margin-top:3px}
.storage-remain{text-align:end}
.storage-remain.warn .sv2{color:var(--warn)}
.storage-remain.danger .sv2{color:var(--danger)}
.progress.storage{height:10px;margin-top:12px}


/* ---------- V10: new admin-message popup on login ---------- */
.admin-popup-title{gap:12px;background:linear-gradient(135deg,#f7f9ff,#eef2ff)}
.admin-popup-title>div{min-width:0}
.admin-popup-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:13px;background:linear-gradient(135deg,#3d5af1,#2c3fc7);color:#fff;font-size:12px;font-weight:800;box-shadow:0 8px 18px -8px #2c3fc799}
.admin-message-list{display:grid;gap:12px;max-height:58vh;overflow-y:auto;background:#f7f9fc}
.admin-message-card{background:#fff;border:1px solid var(--line);border-inline-start:4px solid var(--primary2);border-radius:13px;padding:14px 16px;box-shadow:0 4px 14px rgba(13,25,48,.05);min-width:0}
.admin-message-from{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:9px}
.admin-message-from b{overflow-wrap:anywhere;word-break:break-word}
.admin-message-from time{margin-inline-start:auto;color:var(--muted);font-size:12px;white-space:nowrap}
.admin-message-mark{font-size:11px;font-weight:800;color:var(--primary);background:var(--primary-soft);padding:4px 7px;border-radius:99px;flex:none}
.admin-message-body{font-size:15px;line-height:1.65;color:var(--ink2);overflow-wrap:anywhere;word-break:break-word;white-space:normal}
@media(max-width:520px){.admin-message-from{align-items:flex-start;flex-wrap:wrap}.admin-message-from time{width:100%;margin-inline-start:0}.admin-message-list{padding:14px}.admin-popup-title{padding:15px}.admin-message-card{padding:12px}.admin-message-list+.modal-f .btn{flex:1 1 140px}}

.announcement-card{border-inline-start-color:var(--accent,#0d9488)}
.announcement-image{display:block;width:100%;max-height:360px;object-fit:contain;margin-top:12px;border-radius:11px;border:1px solid var(--line);background:#eef1f7}

/* ---------- V11: granular permissions, upload queue, announcement tracking ---------- */
.pill.owner{background:linear-gradient(135deg,#d3ab55,#b8860b);color:#fff}
.perm-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;cursor:pointer;font-weight:600;font-size:14.5px;background:#f8fafd;transition:border-color .15s,background .15s}
.perm-row:hover{border-color:var(--primary2);background:var(--primary-soft)}
.perm-row input{width:18px;height:18px;accent-color:var(--primary2);flex:none}
.upl-item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:10px;background:#fbfcff;min-width:0}
.upl-thumb{width:54px;height:54px;border-radius:10px;object-fit:cover;flex:none;border:1px solid var(--line)}
.upl-thumb.upl-kind{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:800;border:0}
.upl-mid{flex:1;min-width:0}
.upl-title{width:100%;padding:8px 11px;border:1.5px solid var(--line);border-radius:9px;background:#fff;font-size:14px;margin-bottom:5px}
.upl-title:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 3px var(--primary-soft)}
.upl-prog{margin-top:5px}
.upl-x{flex:none;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;padding:4px 6px;border-radius:8px}
.upl-x:hover{color:var(--danger);background:var(--danger-soft)}
.ann-item{border:1px solid var(--line);border-radius:13px;padding:12px 14px;margin-bottom:10px;background:#fbfcff;min-width:0}
.ann-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.ann-top .sp{flex:1}
.ann-body{margin:8px 0 4px;font-size:14.5px;line-height:1.5;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ann-meta{margin-top:4px}
.ann-reads{margin-top:6px}
.ann-reads summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--primary2)}
.ann-read-row{display:flex;justify-content:space-between;gap:10px;padding:5px 2px;border-bottom:1px dashed var(--line);font-size:13.5px}
.ann-read-row:last-child{border-bottom:0}
.drop-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:rgba(10,21,51,.55);pointer-events:none}
.drop-overlay .in{border:3px dashed #fff;border-radius:20px;padding:42px 56px;color:#fff;font-size:20px;font-weight:800;background:rgba(10,21,51,.55);text-align:center;max-width:88vw}
@media(max-width:520px){.upl-item{padding:8px;gap:9px}.upl-thumb{width:44px;height:44px}.drop-overlay .in{padding:26px 22px;font-size:16px}.ann-top{gap:6px}}


/* ---------- V13: premium calm polish + reports/search/activity ---------- */
::selection{background:#3a56e82c}
body{background:radial-gradient(1200px 520px at 88% -10%,#3a56e80a,transparent 62%),radial-gradient(1000px 480px at 2% 110%,#0c8f8409,transparent 60%),var(--bg)}
.card,.stat,.course{border-radius:var(--r);border-color:var(--line)}
.card-h{padding:16px 22px}
.card-b{padding:17px 22px}
.content{padding:30px 34px}
.page-h{margin-bottom:22px}
.page-h h2{font-size:24px}
.btn{border-radius:12px;padding:9px 17px}
.btn.sm{border-radius:10px}
.btn.primary{background:linear-gradient(140deg,#4160f2,#2b3cb3);box-shadow:0 10px 22px -10px #2b3cb3a6,inset 0 1px 0 #ffffff38}
.btn.primary:hover{background:linear-gradient(140deg,#3852dd,#25339c)}
.chip{border-radius:999px}
.chip.on{background:linear-gradient(140deg,#141f45,var(--nav));box-shadow:0 8px 16px -8px #0a13307a}
.stat{padding:20px 21px}
.stat .sv{font-size:29px}
.tbl th{background:#f8fafd;font-size:11px;padding:11px 16px}
.tbl td{padding:11px 16px}
.modal{border-radius:22px}
.modal-h{padding:18px 24px}
.modal-b{padding:23px 24px}
.modal-f{padding:16px 24px}
.sidebar{background:linear-gradient(172deg,#080f28 0%,var(--nav) 46%,var(--nav2) 100%)}
.sidebar .brand{padding:24px 22px 20px}
.sidebar .brand .mark{background:linear-gradient(135deg,#4160f2,#0c8f84)}
.nav button{padding:11px 14px;border-radius:12px}
.nav button.on{background:linear-gradient(90deg,#3a56e830,#3a56e810);box-shadow:inset 3px 0 0 var(--gold),0 6px 16px -8px #3a56e866}
.topbar{height:68px;background:rgba(255,255,255,.82)}
.userchip .av{background:linear-gradient(135deg,#4160f2,#0c8f84)}
.auth-card{border-radius:24px;padding:44px}
.auth-card .btn{border-radius:13px}
.gsearch input{background:#f2f4fa}
.field input,.field textarea,.field select{border-radius:12px;background:#f8fafd}
.uplzone{border-radius:14px;background:#f8fafd}

/* notification kind icons */
.notif .ni.alert{background:var(--warn-soft);color:var(--warn)}
.notif.unread .ni.alert{background:linear-gradient(135deg,#d97706,#a84f08);color:#fff;box-shadow:0 6px 14px -6px #a84f0877}
.notif .ni.cert{background:var(--ok-soft);color:var(--ok)}
.notif.unread .ni.cert{background:linear-gradient(135deg,#16a34a,#177a3c);color:#fff;box-shadow:0 6px 14px -6px #177a3c77}

/* filter bars (advanced search, activity) */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.filters input[type=text]{flex:1 1 240px;min-width:180px;padding:10px 15px;border:1.5px solid var(--line2);border-radius:12px;background:#fff;font-size:14px;transition:border-color .15s,box-shadow .15s}
.filters input[type=text]:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 4px var(--primary-soft)}
.filters select{padding:10px 13px;border:1.5px solid var(--line2);border-radius:12px;background:#fff;font-size:14px;font-weight:600;color:var(--ink2);cursor:pointer;max-width:220px;transition:border-color .15s,box-shadow .15s}
.filters select:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 4px var(--primary-soft)}
.filters .datef{display:flex;align-items:center;gap:7px}
.filters .datef label{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}
.filters .datef input{padding:10px 12px;border:1.5px solid var(--line2);border-radius:12px;background:#fff;font-size:13.5px;color:var(--ink2)}
.filters .datef input:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 4px var(--primary-soft)}
.filters .btn{flex:none}
@media(max-width:760px){.filters input[type=text]{flex:1 1 100%}.filters select{flex:1 1 45%}.filters .datef{flex:1 1 100%}.filters .datef input{flex:1}}

/* image thumbnail grid (Windows Explorer style) + lightbox */
.thumb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; padding: 14px 4px; }
.thumb-item { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 8px; cursor: pointer; transition: background .15s; }
.thumb-item:hover { background: rgba(255,255,255,.09); }
.thumb-img { width: 100%; height: 120px; border-radius: 8px; overflow: hidden; background: rgba(0,0,0,.25); display: flex; align-items: center; justify-content: center; }
.thumb-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.thumb-name { margin-top: 8px; font-weight: 700; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.thumb-file { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; direction: ltr; text-align: right; }
.img-lightbox { position: fixed; inset: 0; background: rgba(5,15,26,.88); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.img-lb-inner { max-width: 94vw; max-height: 92vh; overflow-y: auto; text-align: center; position: relative; background: #20395a; padding: 18px; border-radius: 16px; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 18px 60px rgba(0,0,0,.5); }
.img-lb-inner img { max-width: 100%; max-height: 70vh; border-radius: 12px; display: block; margin: 0 auto; }
.img-lb-cap { margin-top: 10px; color: #cfe6f7; font-size: 14px; word-break: break-all; }
.img-lb-close { position: sticky; top: 0; float: left; margin-bottom: 8px; }
.img-lb-inner .file-actions { display: flex; gap: 8px; justify-content: center; }
@media (max-width: 560px) {
  .thumb-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 10px; padding: 10px 2px; }
  .thumb-img { height: 90px; }
  .thumb-name { font-size: 12px; }
  .thumb-file { font-size: 10px; }
}
.thumb-icon { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 800; color: var(--acc, #7db4ff); background: rgba(125,180,255,.08); }
@media (max-width: 560px) { .thumb-icon { font-size: 16px; } }

/* Uniform folder icon (Explorer-style amber), one identity across all views */
.folder-ic{position:relative;display:inline-block;flex:none;width:20px;height:14px;margin-top:3px;background:linear-gradient(180deg,#f8c357,#eda52f);border-radius:3px;box-shadow:inset 0 0 0 1px rgba(146,94,8,.18)}
.folder-ic::before{content:'';position:absolute;top:-4px;inset-inline-start:1px;width:46%;height:4px;background:#f8c357;border-radius:2.5px 2.5px 0 0}
.folder-ic.big{width:23px;height:16px;margin-top:0}
.fi.folder-ic-tile{background:#fdf3dc}
.fi.folder-ic-tile .folder-ic{width:20px;height:14px;margin-top:4px}

/* Folder toolbar: sort + view toggle */
.folder-tools{display:flex;align-items:center;gap:8px;padding:8px 15px;border-top:1px solid var(--line);background:#fbfcfe}
.folder-tools select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:12.5px}
.folder-tools .sp{flex:1}
.vt-btn{border:1px solid var(--line);background:#fff;border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:15px;color:var(--muted);display:grid;place-items:center}
.vt-btn.on{background:var(--primary2);color:#fff;border-color:transparent}

/* Gallery lightbox navigation */
.lb-nav{position:absolute;top:46%;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.14);color:#fff;font-size:22px;cursor:pointer;line-height:1;display:grid;place-items:center;z-index:2}
.lb-nav:hover{background:rgba(255,255,255,.3)}
.lb-next{inset-inline-end:10px}
.lb-prev{inset-inline-start:10px}

/* V20: Yuzok Medic brand assets */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.brand-logo img{display:block;object-fit:contain;height:auto}
.auth-brand{justify-content:center;flex-direction:column;gap:7px;margin-bottom:4px}
.auth-brand img{width:min(260px,86%);max-height:146px}
.brand-context{font-size:13px;color:var(--muted);font-weight:700}
.sidebar-brand{justify-content:center;padding:17px 18px 13px!important}
.sidebar-brand img{width:176px;max-width:100%;filter:drop-shadow(0 5px 12px rgba(0,0,0,.28))}
.sidebar .foot{display:flex;align-items:center;gap:7px}.foot-mark{width:22px;height:22px;object-fit:contain;opacity:.82}
@media(max-width:520px){.auth-brand img{width:min(220px,82%)}.sidebar-brand img{width:164px}}

/* V21: bulk file actions and mobile menu close controls */
.sidebar-backdrop{display:none}
.sidebar-close{display:none;position:absolute;top:10px;inset-inline-end:10px;z-index:3;width:38px;height:38px;border:1px solid #ffffff24;border-radius:11px;background:#ffffff12;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.bulk-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:#f7f9fd;border:1px solid var(--line);border-radius:12px;margin-top:9px}
.bulk-all,.bulk-check{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700}.bulk-count{color:var(--muted);font-size:13px}.bulk-tools .btn{margin-inline-start:auto}
.bulk-check input,.bulk-all input{width:18px;height:18px;accent-color:var(--primary2);cursor:pointer}.mat.bulk-selected,.thumb-item.bulk-selected{background:#edf1ff;box-shadow:inset 0 0 0 2px var(--primary2)}
.thumb-item{position:relative}.thumb-check{position:absolute;top:8px;inset-inline-start:8px;z-index:3;padding:6px;border-radius:9px;background:rgba(255,255,255,.92);box-shadow:var(--shadow)}
.bulk-delete-list{margin:10px 0 0;padding-inline-start:22px;max-height:220px;overflow:auto}.bulk-delete-list li{margin:5px 0}
@media(max-width:960px){
 .sidebar{z-index:80}.sidebar-close{display:grid;place-items:center}.sidebar-brand{padding-top:50px!important}
 .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:70;background:rgba(3,9,25,.55);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
 .sidebar-backdrop.open{opacity:1;visibility:visible}.menu-open{overflow:hidden}
}
@media(max-width:520px){.bulk-tools{align-items:stretch}.bulk-tools .btn{width:100%;margin:0}.bulk-count{margin-inline-start:auto}.mat .bulk-check{align-self:flex-start;margin-top:7px}}
@media print{.sidebar-backdrop,.sidebar-close,.bulk-tools,.bulk-check{display:none!important}}

/* Square Yuzok logo, keep the full mark visible in auth and sidebar. */
.auth-brand img{width:min(164px,72%);max-height:164px;aspect-ratio:1;object-fit:contain}
.sidebar-brand img{width:142px;max-height:142px;aspect-ratio:1;object-fit:contain}
@media(max-width:520px){.auth-brand img{width:min(142px,68%);max-height:142px}.sidebar-brand img{width:132px;max-height:132px}}
/* Sidebar logo: no card/backdrop; original image shown exactly as-is on the navy sidebar. Login page logo untouched. */
.sidebar .sidebar-brand img{background:none;border-radius:0;padding:0;box-sizing:border-box;filter:none}
