:root{--bg:#f3f6fb;--panel:#ffffff;--ink:#14213d;--muted:#5c6b8a;--faint:#8996b1;--line:#dbe3f0;--accent:#1f6fe0;--accent-ink:#fff;--accent-soft:#e6f0ff;--ok:#157347;--bad:#b42318;--warn:#b25e09;--hover:#eef3fb;--shadow:0 10px 30px rgba(20,33,61,.16);--folder:#e0a82e;--radius:10px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a1020;--panel:#111b33;--ink:#e6edf7;--muted:#9fb0cc;--faint:#6f81a3;--line:#23335a;--accent:#4a9bff;--accent-ink:#06142b;--accent-soft:#16294d;--ok:#4cc38a;--bad:#ff7b72;--warn:#e3a04a;--hover:#16233f;--shadow:0 10px 30px rgba(0,0,0,.5);--folder:#e0b24a}}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14.5px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}
.boot{padding:40px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12.5px}.num{text-align:right;white-space:nowrap}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;text-decoration:none;color:var(--ink);white-space:nowrap}
.btn:hover{background:var(--hover)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn--primary:hover{filter:brightness(1.08);background:var(--accent)}
.btn--danger{color:var(--bad)}.btn--sm{padding:4px 9px;font-size:13px}.btn--icon{padding:6px;border-color:transparent;background:transparent}.btn[disabled]{opacity:.5;pointer-events:none}
input[type=text],input[type=password],input[type=search],input[type=number],input[type=email],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
label.f{display:block;font-size:12.5px;color:var(--muted);margin:12px 0 4px}label.chk{display:flex;gap:8px;align-items:center;margin:10px 0;font-size:14px}label.chk input{width:auto}
svg.i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
/* Anmeldung */
.login{min-height:100%;display:grid;place-items:center;padding:20px}.login__card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 26px 22px;box-shadow:var(--shadow)}
.login__card img{height:88px;width:auto;max-width:100%;margin-bottom:14px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.side__logo{width:30px;height:30px;border-radius:8px}.login__card h1{margin:0 0 4px;font-size:22px}.err{color:var(--bad);margin:10px 0 0;font-size:13.5px}.ok{color:var(--ok)}
/* Rahmen */
.shell{display:grid;grid-template-columns:230px 1fr;min-height:100%}
.side{background:var(--panel);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow:auto}
.side__brand{display:flex;align-items:center;gap:8px;padding:2px 8px 14px;font-weight:700;font-size:18px;letter-spacing:-.01em}.side__brand small{font-weight:400;color:var(--faint);font-size:12px;margin-left:auto}
.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;cursor:pointer}.nav:hover{background:var(--hover)}.nav.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.nav__h{margin:14px 10px 4px;font-size:12px;color:var(--faint)}
.quota{margin-top:auto;padding:12px 8px 0;font-size:12.5px;color:var(--muted)}.quota__bar{height:6px;background:var(--line);border-radius:4px;overflow:hidden;margin:6px 0}.quota__bar i{display:block;height:100%;background:var(--accent)}.quota__bar.hi i{background:var(--warn)}
.user{display:flex;align-items:center;gap:8px;padding:10px 8px 0;font-size:13px}.user b{display:block;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.main{min-width:0;padding:18px 24px 40px}.top{display:flex;gap:12px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.top h1{font-size:20px;margin:0;flex:1;min-width:140px}
.search{max-width:280px;flex:1}.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.crumbs{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin:2px 0 12px;font-size:15px}.crumbs a{text-decoration:none;color:var(--ink);padding:3px 6px;border-radius:6px;cursor:pointer}.crumbs a:hover{background:var(--hover)}.crumbs span{color:var(--faint)}
/* Dateiliste */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
table.files{width:100%;border-collapse:collapse}table.files th{font-weight:500;color:var(--muted);text-align:left;font-size:12.5px;padding:9px 12px;border-bottom:1px solid var(--line)}
table.files td{padding:7px 12px;border-bottom:1px solid var(--line);vertical-align:middle}table.files tr:last-child td{border-bottom:0}
table.files tbody tr:hover{background:var(--hover)}table.files tr.sel{background:var(--accent-soft)}
.fname{display:flex;gap:10px;align-items:center;min-width:0}.fname a{color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.fname a:hover{color:var(--accent)}
.fico{color:var(--faint)}.fico.dir{color:var(--folder)}td.chkc,th.chkc{width:34px;padding-right:0}td.act{width:46px;text-align:right}
.empty{padding:60px 20px;text-align:center;color:var(--muted)}.empty h3{margin:0 0 6px;color:var(--ink)}
.drop{position:fixed;inset:0;background:color-mix(in srgb,var(--accent) 14%,transparent);border:3px dashed var(--accent);display:none;place-items:center;font-size:22px;font-weight:600;color:var(--accent);z-index:50;pointer-events:none}
.drop.on{display:grid}
/* Menü / Dialoge */
.menu{position:fixed;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:5px;z-index:60;min-width:190px}
.menu button{display:flex;width:100%;gap:10px;align-items:center;padding:8px 10px;background:none;border:0;border-radius:6px;cursor:pointer;text-align:left}.menu button:hover{background:var(--hover)}.menu .d{color:var(--bad)}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.ov{position:fixed;inset:0;background:rgba(8,14,28,.55);display:grid;place-items:center;padding:16px;z-index:70}
.dlg{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:20px 22px}.dlg.wide{max-width:900px}
.dlg h3{margin:0 0 12px;font-size:17px}.dlg .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}
.pv{display:flex;flex-direction:column;gap:10px}.pv img,.pv video{max-width:100%;max-height:70vh;margin:auto;display:block}.pv iframe{width:100%;height:70vh;border:1px solid var(--line);border-radius:8px;background:#fff}.pv pre{white-space:pre-wrap;word-break:break-word;max-height:70vh;overflow:auto;background:var(--bg);padding:12px;border-radius:8px}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:90;box-shadow:var(--shadow);max-width:90vw}
.upq{position:fixed;right:16px;bottom:16px;width:320px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:55;overflow:hidden}.upq h4{margin:0;padding:10px 14px;font-size:13.5px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.upq ul{list-style:none;margin:0;padding:6px 14px 10px;max-height:220px;overflow:auto}.upq li{font-size:12.5px;padding:4px 0}.upq li .p{height:4px;background:var(--line);border-radius:3px;margin-top:3px}.upq li .p i{display:block;height:100%;background:var(--accent);border-radius:3px}
.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-weight:500;color:var(--muted);font-size:12.5px;padding:8px 10px;border-bottom:1px solid var(--line)}.tbl td{padding:8px 10px;border-bottom:1px solid var(--line)}.tbl tr:last-child td{border-bottom:0}
.tag{display:inline-block;padding:1px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:12px}.tag.off{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}.card h2{margin:0 0 4px;font-size:16px}.card p{margin:4px 0 10px}
.picker{border:1px solid var(--line);border-radius:8px;max-height:260px;overflow:auto}.picker a{display:flex;gap:8px;padding:7px 10px;cursor:pointer;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.picker a:hover{background:var(--hover)}
code.k{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:2px 6px;user-select:all;word-break:break-all}
/* Öffentliche Freigabe */
body.pub{display:grid;place-items:start center;padding:28px 14px;min-height:100%}.pub__card{width:100%;max-width:760px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow)}
.pub__logo{height:32px;width:auto;margin-bottom:12px}.pub__card h1{font-size:20px;margin:6px 0 10px;word-break:break-word}.pub__tbl{width:100%;border-collapse:collapse;margin:12px 0}.pub__tbl th,.pub__tbl td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}.pub__tbl a{color:var(--ink)}.pub__tbl .num{text-align:right}
.pub__form{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}.pub__form input[type=password]{max-width:260px}.pub__img{max-width:100%;margin-top:14px;border-radius:8px}
@media (max-width:820px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.side__brand{width:100%}.quota{display:none}.nav__h{display:none}.main{padding:14px 12px 40px}
 .hide-s{display:none}table.files th:nth-child(4),table.files td:nth-child(4){display:none}}
@media (prefers-reduced-motion:no-preference){.dlg{animation:pop .12s ease-out}@keyframes pop{from{transform:scale(.97);opacity:.4}}}

.user--btn{width:100%;background:none;border:0;border-radius:10px;cursor:pointer;text-align:left;margin-top:6px}.user--btn:hover{background:var(--hover)}
.avatar{flex:none;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:inline-grid;place-items:center;font-weight:700;font-size:13px;letter-spacing:.02em}
.umenu{min-width:260px}.umenu__head{display:flex;gap:10px;align-items:center;padding:6px 8px 4px}.umenu__head b{display:block}.umenu__h{padding:4px 10px 2px;font-size:12px;color:var(--muted)}
.avatar{object-fit:cover}
#avp .avatar{width:72px;height:72px;font-size:24px}

.crop{position:relative;margin:10px auto;border-radius:12px;overflow:hidden;background:#fff;cursor:grab;max-width:100%}.crop canvas{display:block;width:100%;height:100%}.crop__ring{position:absolute;inset:0;pointer-events:none;border-radius:50%;box-shadow:0 0 0 400px rgba(0,0,0,.55),inset 0 0 0 2px rgba(255,255,255,.85)}
.umenu button{width:100%}

:root[data-theme=dark]{--bg:#0a1020;--panel:#111b33;--ink:#e6edf7;--muted:#9fb0cc;--faint:#6f81a3;--line:#23335a;--accent:#4a9bff;--accent-ink:#06142b;--accent-soft:#16294d;--ok:#4cc38a;--bad:#ff7b72;--warn:#e3a04a;--hover:#16233f;--shadow:0 10px 30px rgba(0,0,0,.5);--folder:#e0b24a}
.dense table.files td{padding:3px 12px}.dense .nav{padding:5px 10px}.dense table.files th{padding:6px 12px}
.pref{display:grid;grid-template-columns:200px 1fr;gap:6px 16px;align-items:center;margin:10px 0;max-width:640px}.pref>label{color:var(--muted);font-size:13.5px;margin:0}.pref select,.pref input[type=text],.pref input[type=email],.pref input[type=tel],.pref input[type=url],.pref input[type=password],.pref input[type=number]{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;font:inherit;max-width:320px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;background:none;color:inherit;padding:7px 14px;cursor:pointer;font:inherit}.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}@media(max-width:620px){.pref{grid-template-columns:1fr}}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:0 0 16px;overflow-x:auto}.tabs a{padding:9px 14px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}.tabs a:hover{color:var(--ink)}.tabs a.on{color:var(--accent);border-color:var(--accent);font-weight:600}.bar2{height:8px;border-radius:99px;background:var(--hover);overflow:hidden}.bar2 i{display:block;height:100%;background:var(--accent)}
.nav.nav--cloud{margin:auto 0 8px;justify-content:center;background:#f59e0b;color:#1b1300;font-weight:700;padding:10px 12px;box-shadow:0 2px 10px rgba(245,158,11,.35)}.nav.nav--cloud:hover{background:#ffb02e}.nav.nav--cloud svg{stroke:currentColor}

/* Obere Leiste: Marke, Module, Benutzer */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;height:56px;padding:0 16px;background:var(--panel);border-bottom:1px solid var(--line)}
.topbar__brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap}.topbar__brand small{font-weight:400;color:var(--faint);font-size:12px}
.topbar__mods{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar__mods::-webkit-scrollbar{display:none}
.nav.tnav{padding:7px 12px;white-space:nowrap}
.topbar__user{width:auto;margin:0;display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;flex:none}.topbar__name{display:flex;flex-direction:column;line-height:1.15;text-align:left}.topbar__name b{font-size:13.5px}
.topbar .nav--cloud{margin:0;padding:8px 14px;flex:none}
.shell{min-height:calc(100vh - 56px)}.side{top:56px;height:calc(100vh - 56px)}
@media (max-width:820px){.topbar{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.topbar__mods{order:3;width:100%;flex:none}.topbar__name{display:none}.topbar__brand small{display:none}.side{top:0;height:auto}.shell{min-height:0}}
