:root{--page:#E7EFE6;--surface:#F8FBF6;--ink:#121413;--muted:#5b6b60;--green:#1E5A3A;--on-green:#fff;--wine:#7C1D32;--line:#c9d6c9}
[data-theme="dark"]{--page:#0D1A13;--surface:#11211A;--ink:#E6EFE8;--muted:#8fa597;--green:#86C9A0;--on-green:#0D1A13;--wine:#EBA1B2;--line:#27402f}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:Roboto,system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:400;background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased}
h1,h2{font-weight:300;margin:0}
a{color:var(--green)}
.hidden{display:none!important}
button{font:inherit;cursor:pointer}
.btn{border:0;border-radius:999px;padding:.65rem 1.3rem;font-weight:500;background:var(--green);color:var(--on-green)}
.btn.ghost{background:transparent;color:var(--green);border:1.5px solid var(--green)}
.btn.small{padding:.4rem .9rem;font-size:.85rem}
.btn:focus-visible,.card:focus-visible,.thumb:focus-visible{outline:3px solid var(--green);outline-offset:2px}
/* Login */
#login{min-height:100%;display:grid;place-items:center;padding:1.5rem}
.sheet{background:var(--surface);border-radius:20px;padding:2rem;width:min(26rem,100%);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.sheet h1{font-size:1.7rem;margin-bottom:.3rem}
.sheet p{color:var(--muted);margin:.2rem 0 1.2rem}
label{display:block;font-size:.85rem;color:var(--muted);margin:.8rem 0 .25rem}
input{width:100%;font:inherit;padding:.65rem .8rem;border-radius:12px;border:1.5px solid var(--line);background:var(--page);color:var(--ink)}
input:focus{outline:2px solid var(--green);border-color:var(--green)}
.err{color:var(--wine);font-size:.9rem;margin-top:.8rem;min-height:1.2rem}
.sheet .btn{width:100%;margin-top:1rem}
/* App */
header.bar{position:sticky;top:0;z-index:5;display:flex;gap:.6rem;align-items:center;padding:.7rem 1rem;background:var(--surface);border-bottom:1px solid var(--line)}
header.bar .title{font-weight:500;margin-right:auto}
nav.crumbs{padding:1rem 1rem .2rem;font-size:.95rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.3rem}
nav.crumbs button{background:none;border:0;color:var(--green);padding:0;font-weight:500}
nav.crumbs span.cur{color:var(--ink)}
main{padding:.5rem 1rem 3rem}
.meta{color:var(--muted);font-size:.9rem;margin:.3rem 0 1rem}
.section{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1.2rem 0 .6rem}
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.7rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem;text-align:left;color:var(--ink);font-weight:500}
.card small{display:block;color:var(--muted);font-weight:400;margin-top:.2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem}
.thumb{aspect-ratio:1;border:0;padding:0;border-radius:10px;overflow:hidden;background:var(--surface)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.empty{color:var(--muted);padding:2rem 0}
footer.foot{padding:1.5rem 1rem;color:var(--muted);font-size:.85rem;text-align:center}
/* Großansicht */
#lb{position:fixed;inset:0;z-index:20;background:#0D1A13;color:#E6EFE8;display:flex;flex-direction:column}
#lb .top{display:flex;gap:.6rem;align-items:center;padding:.7rem 1rem}
#lb .top .name{margin-right:auto;font-size:.9rem;color:#8fa597;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#lb .btn{background:#86C9A0;color:#0D1A13}
#lb .btn.ghost{background:transparent;color:#86C9A0;border-color:#86C9A0}
#lb .stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;touch-action:pan-y}
#lb img{max-width:100%;max-height:100%;object-fit:contain}
#lb .nav{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;border-radius:50%;border:0;background:rgba(17,33,26,.7);color:#E6EFE8;font-size:1.4rem}
#lb .prev{left:.6rem}#lb .next{right:.6rem}
#lb .count{padding:.6rem;text-align:center;color:#8fa597;font-size:.85rem}
