/*
Programm: Mobile Einkaufsliste
Datei: app.css
Bereich: BCSE Mobile / Darstellung
Kurzbeschreibung:
- Responsive Darstellung fuer Anmeldung und Einkaufslisten auf Mobiltelefonen.

Aktuelle Version: BETA.0003

Changelog
=========
- 2026-06-21 | BETA.0001 | Mobile Oberflaeche mit klaren Status- und Touchzustaenden erstellt.
- 2026-06-21 | BETA.0002 | Ruhigen Drehzustand fuer die manuelle Synchronisation ergaenzt.
- 2026-06-21 | BETA.0003 | Sync-Zeit und schmale Offline-Warnung gestaltet.
*/
:root{
  color-scheme:light;
  --bg:#f1f4f2;
  --surface:#fff;
  --text:#17201d;
  --muted:#68736e;
  --line:#d9dfdc;
  --primary:#176b54;
  --primary-soft:#e1f0ea;
  --danger:#a53636;
}
*{box-sizing:border-box}
html{font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg)}
body{margin:0;color:var(--text);background:var(--bg);letter-spacing:0}
button,input{font:inherit}
.login-shell{min-height:100dvh;display:grid;place-items:center;padding:24px}
.login-panel{width:min(100%,390px);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:28px}
.brand-mark{width:48px;height:48px;display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:8px;font-size:1.3rem;font-weight:800}
h1{font-size:1.45rem;margin:14px 0 2px}.muted{color:var(--muted);margin:0 0 24px}
label{display:block;margin:16px 0 6px;font-size:.88rem;font-weight:650}
input{width:100%;min-height:46px;border:1px solid #aeb8b3;border-radius:6px;padding:10px 12px;background:#fff}
input:focus{outline:3px solid rgba(23,107,84,.16);border-color:var(--primary)}
button{border:0}.primary{background:var(--primary);color:#fff;border-radius:6px;padding:12px 16px;font-weight:750}
.full{width:100%;margin-top:22px}.message{padding:11px 12px;border-radius:6px;margin:16px 0}.error{background:#fae8e8;color:var(--danger)}
.app-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}
.app-header h1{margin:1px 0 0;font-size:1.2rem}.eyebrow{color:var(--muted);font-size:.78rem}
.sync-status{margin-top:3px;color:var(--muted);font-size:.72rem;min-height:1em}
.icon-button{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:1.25rem}
.sync-button{display:grid;place-items:center;line-height:1;cursor:pointer}
.sync-button.is-syncing{animation:sync-spin .8s linear infinite;pointer-events:none}
@keyframes sync-spin{to{transform:rotate(360deg)}}
.connection-banner{display:none;padding:8px 14px;background:#a53636;color:#fff;text-align:center;font-size:.78rem;font-weight:650}
body.is-offline .connection-banner{display:block}
.list-shell{max-width:720px;margin:0 auto;padding:14px 12px calc(30px + env(safe-area-inset-bottom))}
.day-section{margin-bottom:18px}.day-heading{display:flex;justify-content:space-between;align-items:end;padding:8px 3px}
.day-label{font-weight:800;font-size:1.08rem}.day-weekday{margin-left:8px;color:var(--muted);font-size:.85rem}.day-progress{font-size:.78rem;color:var(--muted)}
.items{display:grid;gap:7px}.shopping-item{width:100%;min-height:64px;display:grid;grid-template-columns:34px 1fr;align-items:center;text-align:left;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--text)}
.shopping-item:active{transform:scale(.995)}.check{width:27px;height:27px;display:grid;place-items:center;border:2px solid #8d9993;border-radius:5px;font-weight:900;color:#fff}
.item-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.item-name{font-weight:680;overflow-wrap:anywhere}.item-quantity{flex:0 0 auto;color:var(--muted);font-size:.88rem}
.shopping-item.is-bought{background:var(--primary-soft);border-color:#abd0c1}.shopping-item.is-bought .check{background:var(--primary);border-color:var(--primary)}.shopping-item.is-bought .item-name{text-decoration:line-through;color:#50605a}
.shopping-item.is-saving{opacity:.55;pointer-events:none}.empty-state{margin-top:20px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;gap:5px}.empty-state span{color:var(--muted)}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);background:#202824;color:#fff;border-radius:6px;padding:10px 14px;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100% - 32px)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:700px){.list-shell{padding-top:24px}.shopping-item{min-height:70px}}
