.logo small{font:500 .9rem var(--font-b);margin-left:.2rem}
.login{max-width:520px}.login form{max-width:none}
.msg{padding:.9rem 1.2rem;border-radius:16px;font-size:1rem;margin:1rem 0 0}
.msg.err{background:color-mix(in srgb,#d64545 14%,var(--surface));border:2px solid #d64545}
.msg.ok{background:var(--sea-soft);border:2px solid var(--sea);max-width:720px}
.drop{display:grid;gap:.3rem;place-items:center;text-align:center;padding:1.8rem 1rem;border:2px dashed var(--sea);border-radius:24px;background:var(--sea-soft);cursor:pointer;font-weight:600;transition:background .2s,transform .2s}
.drop:hover,.drop:focus-within,.drop.over{background:var(--sun);color:#16243B;transform:translateY(-2px)}
.drop small{font-weight:400;color:inherit}
.vh{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.meter{height:10px;border-radius:99px;background:var(--line);overflow:hidden}
.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sea),var(--sun));transition:width .2s}
.up{padding:0;overflow:hidden;display:flex;flex-direction:column}
.up .pic{aspect-ratio:16/10;background:var(--sea-soft);display:grid;place-items:center;overflow:hidden}
.up .pic img,.up .pic video{width:100%;height:100%;object-fit:cover;background:#000}
.up .txt{padding:1.3rem 1.5rem 1.6rem;display:grid;gap:.5rem}
.up .kind{color:var(--sea);font-weight:600;font-size:.95rem}
.up .acts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.6rem}
.up .acts form{margin:0;display:block}
.btn.sm{min-height:40px;padding:0 1.1rem;font-size:.98rem}
.btn.danger{background:transparent;color:#c0392b;border-color:#c0392b}
.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.row input{flex:1;min-width:150px}
.tblw{overflow-x:auto;margin-top:2.5rem;border:1px solid var(--line);border-radius:24px;background:var(--surface)}
.tbl{width:100%;border-collapse:collapse;font-size:1rem}
.tbl th,.tbl td{text-align:left;padding:.9rem 1.1rem;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}.tbl .tag{margin:0;font-size:.85rem}
.tbl input{padding:.5rem .7rem;font-size:1rem;border-radius:12px}
.dash{display:grid;grid-template-columns:1.4fr .6fr;gap:1.5rem;margin-top:2rem;align-items:start}
.stats{display:grid;gap:1rem}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:1.4rem 1.6rem;transition:transform .25s,box-shadow .3s}
.stat:hover{transform:translateY(-4px);box-shadow:8px 10px 0 var(--sea-soft)}
.stat b{display:block;font:700 2.2rem/1.1 var(--font-h);letter-spacing:-.02em}.stat span{color:var(--muted)}
.stat.alt{background:var(--sea-soft);border-color:transparent}.stat.dark{background:var(--ink);color:var(--bg);border-color:transparent}.stat.dark span{color:inherit;opacity:.8}
.drop .ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--sun);color:#16243B;font:700 1.5rem var(--font-h);animation:bob 4s ease-in-out infinite}
.msg.ok{animation:pop .5s cubic-bezier(.3,1.5,.5,1) both}
.empty{display:grid;justify-items:start;gap:1rem;margin-top:1.5rem}
.empty .shape{width:64px;height:64px;position:relative}.empty .shape i{position:absolute;border-radius:50%}
.empty .shape i:first-child{width:42px;height:42px;background:var(--sea);left:0;top:0}.empty .shape i:last-child{width:34px;height:34px;background:var(--sun);right:0;bottom:0}
.badge{display:inline-block;padding:.15rem .8rem;border-radius:999px;font:600 .9rem var(--font-b);background:var(--sea-soft);color:var(--ink)}.badge.video{background:var(--sun);color:#16243B}
.ut .acts{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.ut .acts form{margin:0;display:block}
.ut tbody tr{transition:background .2s}.ut tbody tr:hover{background:var(--sea-soft)}
.ut select{padding:.5rem .7rem;font-size:1rem;border-radius:12px;width:auto}
.tbl form{margin:0;display:flex;max-width:none}
@media(max-width:860px){.dash{grid-template-columns:1fr}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
@media(max-width:760px){.ut thead{display:none}.ut,.ut tbody,.ut tr,.ut td{display:block}.ut tr{padding:1rem 1.1rem;border-bottom:1px solid var(--line)}
.ut td{border:0;padding:.25rem 0}.ut td[data-l]::before{content:attr(data-l)": ";color:var(--muted);font-size:.95rem}.ut .acts{justify-content:flex-start;margin-top:.6rem}}
