/* Bổ sung cho phiên bản chạy thật (form, flash, cắt ảnh, trình xem iframe…) */
[hidden]{display:none!important}
.muted{color:var(--ink3)}.small{font-size:12.5px}.nowrap{white-space:nowrap}.center{text-align:center}.b2{font-weight:600;color:var(--ink2)}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:13.5px}
.lnk{color:var(--sun-d);font-weight:700}
.err{color:var(--berry)}.err svg.i{width:13px;height:13px;vertical-align:-2px}
button.btn{border:0}.btn.sec{border:1.5px solid var(--line)}.btn.wide{width:100%;justify-content:center;padding:13px}
.btn.busy{opacity:.6;pointer-events:none}.btn.busy svg.i{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn:disabled{opacity:.55;cursor:default}

/* header search as form */
.hdr .search input{border:0;background:none;outline:0;flex:1;font-size:14px;min-width:0}
.hero .bigsearch input{flex:1;border:0;outline:0;font-size:15px;min-width:0;background:none}
.searchbar{margin:18px 0 6px}.searchbar .bigsearch{display:flex;background:#fff;border-radius:999px;padding:7px 7px 7px 22px;box-shadow:0 10px 30px rgba(232,112,31,.10);max-width:680px;align-items:center;gap:10px;color:var(--ink3);border:1px solid var(--line)}
.searchbar input{flex:1;border:0;outline:0;font-size:15px;background:none;min-width:0;width:100%}
.mmenu{border:0;cursor:pointer}
a.chip{cursor:pointer}a.chip:hover{border-color:#d9d1c7}
.tag{text-decoration:none}

/* topic icon in cards */
.tcard .ic{overflow:hidden}.tcard .ic img{width:100%;height:100%;object-fit:cover}
.tcard .ic b,.tbanner .ic b{font-size:26px}
.ic.sm{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;overflow:hidden;flex:none;font-size:20px}.ic.sm img{width:100%;height:100%;object-fit:cover}
.tbanner .ic{overflow:hidden;flex:none}.tbanner .ic img{width:100%;height:100%;object-fit:cover}
.tbanner .tb-txt{flex:1;min-width:0;padding-right:20px}
.tbanner.has-img .tb-txt{max-width:calc(100% - 330px)}
.tbanner .deco{position:static;transform:none;margin-left:auto}
.tbanner .deco img{width:260px;height:162px;object-fit:cover;border-radius:18px;border:5px solid #fff;box-shadow:0 10px 24px rgba(0,0,0,.08);transform:rotate(-2.5deg);display:block}

.thumb-ph{position:absolute;inset:0;display:grid;place-items:center}.thumb-ph svg.i{width:34px;height:34px;opacity:.5}
.rel .th .thumb-ph svg.i,.tl .th .thumb-ph svg.i{width:18px;height:18px}
.tl .th,.rel .th{position:relative}

/* topics list page */
.tlist{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.tbig{position:relative;border-radius:22px;overflow:hidden;min-height:170px;display:flex;align-items:flex-end;border:1px solid rgba(0,0,0,.04)}
.tbig .tb-img{position:absolute;right:0;top:0;width:52%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent,#000 35%);mask-image:linear-gradient(90deg,transparent,#000 35%)}
.tbig .tb-body{position:relative;display:flex;gap:16px;align-items:center;padding:22px;max-width:62%}
.tbig .ic{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;overflow:hidden;flex:none;background:#fff!important}.tbig .ic img{width:100%;height:100%;object-fit:cover}
.tbig b{font-size:19px;display:block}.tbig small{color:var(--ink2);font-weight:600}.tbig p{font-size:13.5px;color:var(--ink2);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tbig:hover{box-shadow:0 14px 28px rgba(0,0,0,.07)}

/* filters */
.filters select.sel{appearance:none;-webkit-appearance:none;padding-right:30px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E8C9A' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 10px center/14px no-repeat;cursor:pointer;font:inherit;font-size:14px;font-weight:600}
select.sel{appearance:none;-webkit-appearance:none;padding-right:30px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E8C9A' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 10px center/14px no-repeat;cursor:pointer;font:inherit;font-size:14px;font-weight:600;border:1.5px solid var(--line);border-radius:12px;padding:8px 30px 8px 12px;color:var(--ink2)}

/* empty */
.empty{background:#fff;border:1px dashed #E3DCD3;border-radius:20px;padding:40px 20px;text-align:center;color:var(--ink2);display:flex;flex-direction:column;align-items:center;gap:6px}
.empty img{width:120px;height:120px;margin-bottom:6px}.empty b{font-size:16px;color:var(--ink)}.empty p{font-size:14px;color:var(--ink3)}
.empty.big{margin:60px 0;padding:60px 20px}.empty.big .btn{margin-top:14px}
.viewer .empty{border:0}

/* flash */
.flashes{margin-bottom:16px;display:flex;flex-direction:column;gap:8px}
.flash{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:14px;font-size:14px;font-weight:600;background:var(--mint-l);color:#1F7F56}
.flash svg.i{width:18px;height:18px;margin-top:1px}
.flash.error{background:var(--berry-l);color:#B8344C}
.flash.warn{background:#FFF4D6;color:#8A6200;margin-top:14px}.flash.warn a{text-decoration:underline;margin-left:4px}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#2B2A35;color:#fff;padding:12px 20px;border-radius:14px;font-weight:600;font-size:14px;z-index:100;box-shadow:0 12px 30px rgba(0,0,0,.25);max-width:min(560px,90vw)}
.toast.error{background:#B8344C}

/* lesson viewer (iframe/video) */
.player{background:#111;aspect-ratio:16/9}
.player iframe,.player video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.strip{align-items:stretch}
.strip .it{cursor:pointer;color:inherit}.strip .it .th{position:relative}
.strip .it .thumb-ph svg.i{width:20px;height:20px}
.strip-act{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-right:6px;flex-wrap:wrap}
.tabs .tab{cursor:pointer}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px}
.gimg{background:#F2EEE9}
.gimg:hover img{transform:scale(1.04)}.gimg img{transition:transform .25s}
.pdfv2{display:grid;grid-template-columns:150px minmax(0,1fr);background:#EEF0F3;min-height:620px}
.pdfv2 .pages{padding:12px;display:flex;flex-direction:column;gap:10px;border-right:1px solid #DADDE2;background:#E6E8EC;overflow:auto;max-height:720px}
.pdfv2 .pg{background:#fff;border-radius:8px;border:2px solid transparent;overflow:hidden;font-size:12px;font-weight:600;color:var(--ink2);display:block}
.pdfv2 .pg.on{border-color:var(--sun)}
.pdfv2 .pg img{width:100%;aspect-ratio:1/1.3;object-fit:cover;object-position:top;display:block;background:#fafafa}
.pdfv2 .pg .pgic{display:grid;place-items:center;aspect-ratio:1/1.3;background:#FDE3E7;color:#D9445F}.pdfv2 .pg .pgic svg.i{width:28px;height:28px}
.pdfv2 .pg>span:last-child{display:block;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmain{display:flex;flex-direction:column;min-width:0;padding:14px;gap:12px;background:#EEF0F3}
.pmain .pdfbar{margin:0;justify-content:flex-start}
.pmain .pdfbar .sp{flex:1}
.pmain iframe{flex:1;width:100%;min-height:600px;border:0;border-radius:10px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.08)}
.pdfv2.single{grid-template-columns:minmax(0,1fr)}.pdfv2.single .pages{display:none}
.pmain .pdfbar .pgno{font-size:12.5px;font-weight:700;color:var(--ink3);white-space:nowrap;margin-right:4px}
.pdfview{flex:none;height:min(78vh,820px);min-height:420px;overflow:auto;border-radius:10px;background:#D7DBE0;padding:16px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;outline:none;min-width:0}
.pdfview.frame{padding:0;background:#fff}.pdfview.frame iframe{width:100%;height:100%;min-height:0;box-shadow:none;border-radius:10px}
.pdfview .pdfpg{flex:none;margin:0 auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12);border-radius:2px;overflow:hidden;max-width:none}
.pdfview .pdfpg canvas{display:block;width:100%;height:100%}
.pdfview .pdfmsg{margin:auto;color:var(--ink3);font-weight:600;font-size:14px}
.pmain:fullscreen{padding:10px}.pmain:fullscreen .pdfview{flex:1;height:auto;min-height:0}
.pmain .pdfbar [data-pdfzoom]{display:none}
.pmain:fullscreen .pdfbar [data-pdfzoom],.pmain:-webkit-full-screen .pdfbar [data-pdfzoom],.pmain.fs-fallback .pdfbar [data-pdfzoom]{display:grid}
.pmain.fs-fallback{position:fixed;inset:0;z-index:200;padding:10px;border-radius:0}.pmain.fs-fallback .pdfview{flex:1;height:auto;min-height:0}
.ib{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#F2EEE9;color:var(--ink2)}
.lb .ib{background:rgba(255,255,255,.12);color:#fff;width:40px;height:40px;border-radius:12px}
.lb .photo{display:grid;place-items:center;background:#1d1b24;width:min(900px,80vw);aspect-ratio:4/3}
.lb .photo img{position:static!important;width:100%;height:100%;object-fit:contain!important}
.lb .lbcap{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:#fff;color:var(--ink);font-weight:800;font-size:20px;padding:6px 22px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.15);white-space:nowrap}
.lb .thumbs{overflow-x:auto;padding:16px 20px 24px;justify-content:flex-start}
.lb .thumbs button{flex:none;width:84px;height:60px;border-radius:10px;overflow:hidden;opacity:.55;border:2px solid transparent;padding:0}
.lb .thumbs button.on{opacity:1;border-color:var(--sun)}.lb .thumbs img{width:100%;height:100%;object-fit:cover}
.lb .thumbs:before,.lb .thumbs:after{content:"";margin:auto}
.lb .arrow{border:0;color:#fff;cursor:pointer}
.mlist{max-height:560px;overflow:auto;margin-right:-8px;padding-right:4px}
.mrow{color:inherit}.mrow:hover{background:#FAF6F1}
.mrow em.staff{font-style:normal;color:#B07A00}
.mrow b{max-width:240px}
.ltitle h1{word-wrap:break-word}

/* ADMIN */
body.admin{background:#F7F5F2}
.aside{position:sticky;top:0;height:100vh;overflow:auto}
.aside .navbtn{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;font-weight:600;color:var(--ink2);font-size:14.5px;width:100%;text-align:left}
.aside .navbtn svg.i{width:18px;height:18px}.aside .navbtn:hover,.aside a:hover{background:#FAF6F1}
.aside .drvcard .ok.off{background:#D9A21A;box-shadow:0 0 0 3px rgba(217,162,26,.2)}
.aside .drvcard a{color:#2F7BE5;font-weight:700}
.adm-menu{display:none}
.atop{flex-wrap:wrap}
.atop .crumb a{color:var(--ink3)}
.st-published{background:#E6F7EF;color:#1F8A5F}.st-draft{background:#FFF4D6;color:#B07A00}.st-hidden{background:#F0EEEC;color:#7A7680}
.acts a,.acts button{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--ink2);background:#F7F3EE}
.acts a:hover,.acts button:hover{background:#EFE8E0}
.acts form{display:contents}
.acts .del{color:var(--berry);background:var(--berry-l)}
.tscroll{overflow-x:auto}
.ptool .search input{border:0;background:none;outline:0;font-size:14px;flex:1;min-width:0}
.ptool b{font-size:15px}
.pager a,.pager span{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#F7F3EE;color:var(--ink2)}
.pager .pp a.on{background:var(--ink);color:#fff}
.tl .th img{width:100%;height:100%;object-fit:cover}
.tl a{color:inherit}
td .tag{font-size:12.5px}
.bthumb{display:block;width:96px;height:56px;border-radius:10px;overflow:hidden}.bthumb img{width:100%;height:100%;object-fit:cover}
.av{flex:none}
tr.dragging{opacity:.4;background:#FFF6EC}
td.h{cursor:grab;color:#C9C2BA;width:24px}
.dash{display:grid;grid-template-columns:1fr 380px;gap:20px}
.bar-row{display:grid;grid-template-columns:140px 1fr 30px;gap:10px;align-items:center;font-size:13.5px;font-weight:600;color:var(--ink2);margin:8px 0}
.bar-row .bar{height:10px;border-radius:9px;background:#F2EEE9;overflow:hidden}.bar-row .bar i{display:block;height:100%;border-radius:9px}
.bar-row b{text-align:right}
.warn-card{background:#FFFBEF;border-color:#F4E1A8}.warn-card h3{color:#8A6200}.warn-card p{margin:8px 0;font-size:14px}
.card.narrow{max-width:620px}
.card h3 svg.i{width:18px;height:18px}

/* form controls */
.fld{display:block;margin-bottom:16px}
.fld>span:first-child,.lbl2{display:block;font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:7px}
.fld em{font-style:normal;font-weight:500}
input.inp,select.inp,textarea.inp{display:block;width:100%;font:inherit;font-size:14.5px;outline:0;color:var(--ink)}
.inp:focus,.inp:focus-within{border-color:var(--sun);box-shadow:0 0 0 4px rgba(255,138,61,.12)}
select.inp{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E8C9A' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 12px center/14px no-repeat;padding-right:34px}
textarea.inp{resize:vertical;line-height:1.5}
label.inp input,.inp.prefix input{border:0;outline:0;flex:1;font:inherit;font-size:14px;background:none;min-width:0}
.inp:disabled{background:#F7F5F2;color:var(--ink3)}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.seg label{flex:1;cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label span{display:block;text-align:center;padding:10px 0;border-radius:12px;border:1.5px solid var(--line);font-weight:700;font-size:13.5px;color:var(--ink2)}
.seg input:checked+span{border-color:var(--sun);background:var(--sun-l);color:var(--sun-d)}
.seg input:focus-visible+span{box-shadow:0 0 0 3px rgba(255,138,61,.3)}
.check{display:flex;gap:10px;align-items:center;font-weight:600;font-size:14px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--sun)}
.hint{font-size:12.5px;color:var(--ink3);margin:8px 0 12px}
.drvlink{flex-wrap:wrap}.drvlink .grow,.addfile .grow{flex:1;min-width:240px}
.sync.err{background:var(--berry-l);color:#B8344C}
.mt tr.missing td{opacity:.55}.mt tr.empty-row td{padding:18px 8px}
button.tg{border:0;cursor:pointer;padding:0}
.addfile{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.preview-card{max-width:300px;margin:0 auto}
.preview-card .thumb{position:relative}
.savebar{position:sticky;bottom:0;z-index:5;margin:6px -34px -40px;box-shadow:0 -6px 20px rgba(0,0,0,.04)}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.sw{width:42px;height:42px;border-radius:12px;font-weight:800;font-size:14px;border:2px solid transparent;display:grid;place-items:center;cursor:pointer;position:relative}
.sw.on{border-color:var(--ink)}
.sw.custom{background:#fff;border:1.5px dashed #D6CEC4;color:var(--ink2)}.sw.custom input{position:absolute;inset:0;opacity:0;cursor:pointer}
.preview-tcard{max-width:260px}
.howto{margin-top:12px;background:#FCFAF8;border:1px solid var(--line);border-radius:14px;padding:12px 16px;font-size:13.5px;color:var(--ink2)}
.howto summary{cursor:pointer;font-weight:700;color:var(--ink)}.howto ol{padding-left:20px;margin-top:8px}.howto li{margin:5px 0}

/* picker */
.picker .pk-prev{aspect-ratio:var(--ratio);border-radius:16px;overflow:hidden;background:#F2EEE9;display:grid;place-items:center;max-height:260px;margin:0 auto}
.picker[data-prefix="icon"] .pk-prev{max-width:200px}
.picker .pk-prev img{width:100%;height:100%;object-fit:cover}
.pk-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--ink3);font-weight:600}.pk-empty svg.i{width:30px;height:30px}
.pk-meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink3);font-weight:600;margin-top:8px}
.picker .srcopt{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}
.picker .srcopt button{border:1.5px solid var(--line);border-radius:12px;padding:10px 6px;text-align:center;font-size:12.5px;font-weight:700;color:var(--ink2);display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff}
.picker .srcopt button.on{border-color:var(--sun);background:var(--sun-l);color:var(--sun-d)}
.picker .srcopt svg.i{width:18px;height:18px}
.picker .pick{max-height:236px;overflow:auto;padding:2px}
.picker .pick button{aspect-ratio:1;border-radius:10px;overflow:hidden;position:relative;border:2.5px solid transparent;padding:0;background:#F2EEE9}
.picker .pick button.on{border-color:var(--sun)}
.picker .pick img{width:100%;height:100%;object-fit:cover;display:block}
.vbadge{position:absolute;right:4px;bottom:4px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.55);display:grid;place-items:center}.vbadge svg{width:9px;height:9px;fill:#fff;stroke:none}

/* cropper */
.crop-modal{width:min(720px,94vw)}
.crop-stage{position:relative;overflow:hidden;border-radius:12px;background:#222;margin-top:14px;cursor:grab;touch-action:none;max-height:60vh}
.crop-stage:active{cursor:grabbing}
.crop-stage img{position:absolute;left:0;top:0;max-width:none;user-select:none;-webkit-user-drag:none}
.crop-grid{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 33.2%,rgba(255,255,255,.45) 33.3%,transparent 33.5%,transparent 66.5%,rgba(255,255,255,.45) 66.6%,transparent 66.8%),linear-gradient(transparent 33.2%,rgba(255,255,255,.45) 33.3%,transparent 33.5%,transparent 66.5%,rgba(255,255,255,.45) 66.6%,transparent 66.8%);box-shadow:inset 0 0 0 2px #fff}
.crop-load{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:600;padding:20px;text-align:center}
.crop-zoom{display:flex;align-items:center;gap:12px;margin:14px 0 18px;font-weight:800;color:var(--ink3)}.crop-zoom input{flex:1;accent-color:var(--sun)}
.modal .fld{margin-bottom:18px}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;background-size:cover;background-position:right bottom;padding:20px}
.login-card{background:rgba(255,255,255,.96);border-radius:26px;padding:34px;width:min(420px,100%);box-shadow:0 30px 70px rgba(0,0,0,.18)}
.login-card .logo{margin-bottom:22px}.login-card h1{font-size:26px;letter-spacing:-.4px}.login-card p{margin:4px 0 18px}
.login-card .back{display:block;text-align:center;margin-top:16px;color:var(--ink3);font-weight:600;font-size:13.5px}
.login-page .foot,.login-page .hdr{display:none}

@media (max-width:1100px){
  .egrid,.dash{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .adm{grid-template-columns:1fr}
  .aside{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:30;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.15)}
  body.aside-open .aside{transform:none}
  .adm-menu{display:grid;margin-bottom:12px}
  .amain{padding:18px 16px 40px}
  .savebar{margin:6px -16px -40px;padding:12px 16px;flex-wrap:wrap}
  .tlist{grid-template-columns:1fr}
  .lgrid{grid-template-columns:repeat(2,1fr)}
  .lwrap{grid-template-columns:1fr}
  .tbanner.has-img .tb-txt{max-width:none}.tbanner .deco{display:none}
  .gallery{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  body.nav-open .nav{display:flex;position:absolute;top:60px;left:0;right:0;background:#fff;flex-direction:column;padding:10px 16px 16px;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(0,0,0,.06)}
  .hdr .mmenu{display:grid}
  .row2,.row3{grid-template-columns:1fr;gap:0}
  .kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:14px}
  .gallery{grid-template-columns:repeat(2,1fr);padding:10px;gap:8px}
  .pdfv2{grid-template-columns:minmax(0,1fr)}.pdfv2 .pages{flex-direction:row;max-height:none;border-right:0;border-bottom:1px solid #DADDE2}.pdfv2 .pg{width:96px;flex:none}
  .pmain iframe{min-height:480px}
  .pdfview{height:70vh;padding:8px;gap:8px}.pmain{padding:8px}.pmain .pdfbar{gap:6px;flex-wrap:wrap}
  .tbig .tb-body{max-width:none}.tbig .tb-img{opacity:.35;width:100%}
  .tbanner{flex-direction:column;align-items:flex-start;gap:14px}
  .lb .photo{width:94vw}.lb .arrow{display:none}
  .filters .sp{display:none}
  .ptool{flex-wrap:wrap}
  .atop h1{font-size:22px}
}

/* tải lên Google Drive */
.dropzone{border:2px dashed #E3D3C2;border-radius:16px;background:#FFFBF6;padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;cursor:pointer;transition:.15s}
.dropzone:hover,.dropzone.over{border-color:var(--sun);background:var(--sun-l)}
.dropzone .dz-ic{width:46px;height:46px;border-radius:14px;background:#fff;color:var(--sun-d);display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.05)}
.dropzone .dz-ic svg.i{width:22px;height:22px}
.dropzone b{font-size:15px}
.dropzone .lnk{font-size:inherit}
.uplist{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px}
.uprow{display:grid;grid-template-columns:minmax(0,1fr) 180px 130px 30px;gap:12px;align-items:center;background:#FCFAF8;border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:13.5px}
.uprow .up-name{min-width:0}.uprow .up-name b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uprow .up-name small{color:var(--ink3);font-weight:600}
.uprow .up-st{font-size:12.5px;font-weight:700;color:var(--ink3)}
.uprow.done .up-st{color:#1F8A5F}.uprow.failed .up-st{color:var(--berry)}.uprow.failed{background:var(--berry-l)}
.uprow .ib{width:28px;height:28px;font-size:18px}
.uprow.active .ib,.uprow.done .ib{visibility:hidden}
.progress{height:8px;border-radius:9px;background:#EEE7DF;overflow:hidden}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#FFB067,var(--sun));border-radius:9px;transition:width .25s}
.uprow.done .progress i{background:var(--mint)}
.linkbox{margin-top:14px}
.warn-t{color:#B07A00;font-weight:600}
.gconn{display:flex;gap:12px;align-items:center;background:#F7F5F2;border-radius:14px;padding:12px 14px}
.gconn.ok{background:var(--mint-l)}
.gconn>div{flex:1;min-width:0}.gconn b{display:block;font-size:14.5px}.gconn small{color:var(--ink2);font-size:12.5px}
.gconn .dot{width:10px;height:10px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(61,190,139,.2);flex:none}
.gconn .dot.off{background:#D9A21A;box-shadow:0 0 0 4px rgba(217,162,26,.2)}
.gbtns{display:flex;gap:14px;align-items:center;margin:4px 0 6px;flex-wrap:wrap}
.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px;color:var(--ink2)}
code.grow{font-size:12.5px;word-break:break-all;color:var(--ink2)}
button.lnk{border:0;background:none;padding:0;cursor:pointer}
.modal .opt input{width:18px;height:18px;margin-top:2px;accent-color:var(--berry);flex:none}
label.opt{cursor:pointer}
@media (max-width:640px){.uprow{grid-template-columns:minmax(0,1fr) 30px}.uprow .progress{grid-column:1/-1;grid-row:2}.uprow .up-st{grid-column:1/-1}}
.mt td.nowrap .ib{display:inline-grid;vertical-align:middle;margin-left:6px;width:32px;height:32px}
.mt td.nowrap .tg{vertical-align:middle}
.dropzone .lnk svg.i,.hint .lnk svg.i{width:13px;height:13px;vertical-align:-2px}
.act-rename{display:flex;gap:8px;align-items:center}.act-rename .inp{max-width:340px;padding:8px 12px}
.acts button:disabled{opacity:.35;cursor:not-allowed}
