:root{--bg:#f4f6f9;--card:#fff;--ink:#1b2430;--mut:#667085;--line:#dfe4ec;--pri:#1f3a5f;--pri2:#2c5282;--acc:#c8102e;--ok:#18794e;--warn:#b54708;--err:#b42318;--r:10px;--sh:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--pri2)}
h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:.2rem 0 .8rem}h3{font-size:1rem;margin:.2rem 0 .5rem}
code{background:#eef1f6;padding:.1rem .35rem;border-radius:4px;font-size:.85em}
.small{font-size:.85rem;color:var(--mut)}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9rem}
.empty{color:var(--mut);padding:1.5rem;text-align:center;background:var(--card);border:1px dashed var(--line);border-radius:var(--r)}
.notice{background:#eef4ff;border:1px solid #cfe0ff;border-radius:8px;padding:.5rem .75rem}
.okmsg{color:var(--ok)}.errmsg{color:var(--err)}
.top{align-items:start}
/* auth */
.plain{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:1rem}
.authbox{width:100%;max-width:520px;background:var(--card);border-radius:14px;box-shadow:var(--sh);padding:1.5rem 1.5rem 1.25rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit;margin-bottom:.75rem}
.logo{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--pri);color:#fff;font-weight:700;font-size:.9rem;letter-spacing:.5px}
.brandname{font-weight:700;font-size:1.05rem}
/* forms */
.stack{display:flex;flex-direction:column;gap:.7rem}.narrow{max-width:420px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.88rem;color:#344054;font-weight:500}
label.chk{flex-direction:row;align-items:center;gap:.45rem;font-weight:400}
input,select,textarea{font:inherit;color:inherit;padding:.55rem .65rem;border:1px solid #c7cfdb;border-radius:8px;background:#fff;min-width:0;width:100%}
input[type=checkbox]{width:auto}input[type=file]{padding:.4rem}
input:focus,select:focus,textarea:focus{outline:2px solid #9bb7e0;border-color:var(--pri2)}
.inlineform{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}.inlineform input,.inlineform select{width:auto;flex:1 1 180px}
form.inline{display:inline}
.btn{display:inline-block;font:inherit;font-weight:600;padding:.5rem .9rem;border-radius:8px;border:1px solid #c7cfdb;background:#fff;color:var(--ink);cursor:pointer;text-decoration:none;text-align:center;line-height:1.3}
.btn:hover{background:#f2f5fa}.btn.sm{padding:.3rem .6rem;font-size:.85rem}
.btn.primary{background:var(--pri);border-color:var(--pri);color:#fff}.btn.primary:hover{background:var(--pri2)}
.btn.danger{background:#fff;border-color:#f1b5ae;color:var(--err)}.btn.danger:hover{background:#fef3f2}
.btn.warn{border-color:#f5cf9c;color:var(--warn)}.btn.ghost{border-color:transparent;background:transparent;color:var(--pri2)}
.linkbtn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;padding:0}
.btnrow{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.flash{padding:.6rem .85rem;border-radius:8px;margin:0 0 .75rem;border:1px solid;word-break:break-word}
.flash.ok{background:#ecfdf3;border-color:#abefc6;color:#05603a}.flash.error{background:#fef3f2;border-color:#fecdca;color:#912018}.flash.warn{background:#fffaeb;border-color:#fedf89;color:#93370d}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:1rem 1.1rem;margin-bottom:1rem}
.card.center{text-align:center;max-width:520px;margin:2rem auto}
.card.link{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.2rem}.card.link:hover{box-shadow:0 2px 8px rgba(16,24,40,.15)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:1rem}
.counters .num{font-size:1.9rem;font-weight:700;color:var(--pri)}.counters .num.hot{color:var(--acc)}
.dl{display:grid;grid-template-columns:170px 1fr;gap:.35rem .75rem;margin:0 0 .75rem}.dl dt{color:var(--mut)}.dl dd{margin:0;word-break:break-word}
.plainlist{list-style:none;margin:0;padding:0}.plainlist li{padding:.3rem 0;border-bottom:1px solid #eef1f6}.plainlist li.unread{font-weight:600}
.rowbetween{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.badge{display:inline-block;min-width:1.35rem;padding:0 .4rem;border-radius:999px;background:var(--acc);color:#fff;font-size:.75rem;font-weight:700;text-align:center;line-height:1.35rem;margin-left:.4rem}
.pill{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;background:#eef1f6;color:#344054;white-space:nowrap}
.pill.approved{background:#d1fadf;color:#05603a}.pill.pending,.pill.needs_info{background:#fef0c7;color:#93370d}.pill.rejected,.pill.refused,.pill.disabled{background:#fee4e2;color:#912018}.pill.suspended{background:#ffead5;color:#9c2a10}.pill.unverified{background:#e0eaff;color:#1d3a8a}
/* shell */
.top{}
header.top{display:flex;align-items:center;gap:.75rem;padding:.55rem 1rem;background:var(--pri);color:#fff;position:sticky;top:0;z-index:30}
header.top .brand{margin:0;color:#fff}header.top .logo{background:#fff;color:var(--pri)}
.who{margin-left:auto;display:flex;gap:1rem;align-items:center;font-size:.9rem}.who a{color:#fff}.who .linkbtn{color:#fff}
.burger{display:none;font-size:1.5rem;cursor:pointer;line-height:1;width:auto;color:#fff}
.navtoggle{position:absolute;opacity:0;pointer-events:none}
.shell{display:flex;min-height:calc(100vh - 52px)}
.side{width:262px;flex:0 0 262px;background:#fff;border-right:1px solid var(--line);padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px}
.navitem{display:flex;justify-content:space-between;align-items:center;padding:.55rem .75rem;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:500}
.navitem:hover{background:#f2f5fa}.navitem.on{background:#e7eefb;color:var(--pri);font-weight:700}
.navgroup{margin:.9rem .75rem .25rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700}
.main{flex:1;min-width:0;padding:1.25rem 1.5rem 3rem}
.scrim{display:none}
/* browse */
.browse{display:grid;grid-template-columns:270px 1fr;gap:1.25rem;align-items:start}
.treewrap{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:.5rem .6rem;position:sticky;top:64px;max-height:calc(100vh - 80px);overflow:auto}
.treewrap>summary{font-weight:700;padding:.3rem .2rem;cursor:pointer}
.tree,.tree ul{list-style:none;margin:0;padding-left:.9rem}.tree{padding-left:0}
.tree details>summary{list-style:none;cursor:pointer}.tree summary::-webkit-details-marker{display:none}
.tree summary::before{content:"▸";display:inline-block;width:1rem;color:var(--mut);font-size:.8rem}.tree details[open]>summary::before{content:"▾"}
.tree li.leaf{padding-left:1rem}
.tl{display:inline-block;padding:.15rem .3rem;border-radius:6px;color:var(--ink);text-decoration:none;font-size:.9rem}.tl:hover{background:#f2f5fa}.tl.on{background:#e7eefb;font-weight:700}.tl.dim{color:var(--mut);font-style:italic}.tl.co{font-weight:600}
.listpane{min-width:0}
.searchbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.9rem}.searchbar input[type=search]{flex:1 1 220px;width:auto}.searchbar select{width:auto}
.crumbs{font-size:.88rem;color:var(--mut);margin-bottom:.4rem}
.viewbar{display:flex;justify-content:space-between;align-items:center;margin:.5rem 0}
.toggle{display:inline-flex;border:1px solid #c7cfdb;border-radius:8px;overflow:hidden}.toggle button{font:inherit;border:0;background:#fff;padding:.3rem .75rem;cursor:pointer}.toggle button.on{background:var(--pri);color:#fff}
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem;margin-bottom:1rem}
.item{display:flex;align-items:center;gap:.7rem;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:.6rem .75rem;text-decoration:none;color:inherit;min-width:0}
.item.folder:hover{box-shadow:0 2px 8px rgba(16,24,40,.15)}.item.dim{opacity:.6}
.item .ico{font-size:1.6rem;line-height:1}.item .meta{min-width:0;flex:1;display:flex;flex-direction:column}
.fname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sub{font-size:.82rem;color:var(--mut);overflow:hidden;text-overflow:ellipsis}
.acts{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}
.thumb{position:relative;display:grid;place-items:center;width:52px;height:52px;flex:0 0 52px;border-radius:8px;background:#eef1f6;overflow:hidden;text-decoration:none}
.thumb img,.thumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.items.list{display:flex;flex-direction:column;gap:.5rem}.items.list .thumb video{display:none}.items.list .desc{display:none}
.items.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.8rem}
.items.grid .item.file{flex-direction:column;align-items:stretch;padding:.5rem}
.items.grid .thumb{width:100%;height:140px;flex:none}.items.grid .thumb .ico{font-size:2.4rem}
.items.grid .acts{justify-content:flex-start}
.admintools{margin-top:1.5rem;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:.6rem 1rem}.admintools>summary{cursor:pointer;font-weight:700}
.toolgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:.8rem}
.toolgrid>form,.toolgrid>div{border:1px solid var(--line);border-radius:8px;padding:.75rem}
/* tables */
.tablewrap{overflow-x:auto;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:1rem}
.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);padding:.6rem .75rem;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:.6rem .75rem;border-bottom:1px solid #eef1f6;vertical-align:top}.tbl tr.sub td{background:#fafbfd}
.note{border-left:3px solid #c7cfdb;padding:.25rem .6rem;margin:.35rem 0;background:#fff}.note.rejection{border-color:var(--err)}.note.info_request{border-color:var(--warn)}.note.approval{border-color:var(--ok)}
.pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin:1rem 0}
.coblock{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;margin:.5rem 0}.coblock>summary{cursor:pointer}
.rowsel{flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem .5rem;border-bottom:1px solid #f0f2f7}.rowsel select{width:auto;max-width:55%}
.previewbox{display:flex;align-items:center;justify-content:center;min-height:240px}.pv{max-width:100%;max-height:520px;border:0}iframe.pv{width:100%;height:520px}video.pv{width:100%}
.bar{display:grid;grid-template-columns:180px 1fr auto;gap:.75rem;align-items:center;margin:.3rem 0}.barfill{background:#eef1f6;border-radius:999px;height:10px;overflow:hidden}.barfill>div{background:var(--pri2);height:100%}
tr.cat-security td:first-child{border-left:3px solid var(--acc)}
.progress{height:10px;background:#eef1f6;border-radius:999px;overflow:hidden}.progress>div{height:100%;width:0;background:var(--pri2);transition:width .15s}
/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(10,15,25,.86);z-index:100;display:flex;align-items:center;justify-content:center;padding:2.5rem 1rem 1rem}
.lightbox[hidden]{display:none}.lbbody{max-width:96vw;max-height:88vh;width:100%;display:flex;justify-content:center}.lbbody img,.lbbody video{max-width:100%;max-height:88vh;background:#000}.lbbody iframe{width:min(1000px,96vw);height:88vh;border:0;background:#fff}
.lbclose{position:absolute;top:.6rem;right:.8rem;background:#fff;border:0;border-radius:999px;width:2.2rem;height:2.2rem;font-size:1rem;cursor:pointer}
/* responsive */
@media (max-width:960px){
  .browse{grid-template-columns:1fr}.treewrap{position:static;max-height:none}
  .burger{display:block}
  .side{position:fixed;top:52px;bottom:0;left:0;z-index:40;transform:translateX(-105%);transition:transform .2s;box-shadow:var(--sh);overflow:auto}
  .navtoggle:checked ~ .shell .side{transform:none}
  .navtoggle:checked ~ .shell .scrim{display:block;position:fixed;inset:52px 0 0 0;background:rgba(10,15,25,.4);z-index:35}
  .main{padding:1rem .85rem 3rem}.who .whoname{display:none}
}
@media (max-width:720px){
  .two{grid-template-columns:1fr}.dl{grid-template-columns:1fr;gap:0}.dl dt{margin-top:.5rem}
  .tbl thead{display:none}.tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{border-bottom:6px solid var(--bg);padding:.35rem 0}.tbl td{border:0;padding:.25rem .75rem;display:flex;justify-content:space-between;gap:1rem}
  .tbl td[data-l]::before{content:attr(data-l);color:var(--mut);font-size:.78rem;flex:0 0 38%}.tbl td>*{text-align:right}
  .tbl tr.sub td{display:block}.bar{grid-template-columns:1fr}
  .items.list .acts{flex-basis:100%;justify-content:flex-start}.items.list .item.file{flex-wrap:wrap}
  .rowsel select{max-width:50%}
}

.logobar{background:#fff;border-radius:8px;padding:.2rem .6rem}.logobar img{display:block;height:32px;width:auto}
.logocenter{justify-content:center;margin-bottom:1.1rem}.logocenter img{height:56px;width:auto;max-width:100%}
