: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}
/* Teil 4: Aktionen, Dialoge, Freigaben */
.actions{display:flex;flex-wrap:wrap;gap:.6rem;padding:.2rem 1rem .4rem}
.tabs{display:flex;gap:.4rem}
.tabs .btn{padding:.4rem .9rem;font-size:.85rem}
.chip{display:inline-block;border-radius:999px;padding:.12rem .6rem;font-size:.75rem;font-weight:500;background:var(--green);color:var(--on-green);margin-right:.3rem}
.chip.wine{background:var(--wine);color:#fff}
.chip.plain{background:transparent;color:var(--muted);border:1px solid var(--line)}
[data-theme="dark"] .chip.wine{color:#0D1A13}
.share{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem;margin-bottom:.7rem}
.share h3{margin:0 0 .3rem;font-weight:500;font-size:1.05rem}
.share .sub{color:var(--muted);font-size:.85rem;margin-bottom:.6rem;word-break:break-all}
.share .row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}
dialog{border:0;border-radius:20px;padding:1.5rem;background:var(--surface);color:var(--ink);width:min(30rem,calc(100% - 2rem));box-shadow:0 8px 40px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(0,0,0,.55)}
dialog h2{font-size:1.4rem;margin-bottom:.8rem}
select{width:100%;font:inherit;padding:.65rem .8rem;border-radius:12px;border:1.5px solid var(--line);background:var(--page);color:var(--ink)}
.check{display:flex;gap:.6rem;align-items:center;margin:.9rem 0 0;font-size:.95rem;color:var(--ink)}
.check input{width:auto}
.dlgbtns{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.2rem}
.linkbox{display:flex;gap:.5rem;margin:.6rem 0}
.linkbox input{flex:1}
.qr{display:grid;place-items:center;background:#fff;border-radius:16px;padding:1rem;margin:.8rem auto;width:fit-content}
.qr svg{width:12rem;height:12rem;display:block}
.progress{color:var(--muted);font-size:.9rem;padding:0 1rem}
