:root{--bg: #f6f3ee;--card: #ffffff;--text: #24302f;--muted: #6d7877;--line: #e6e0d6;--accent: #2b6f6b;--accent-soft: #e2efed;--warm: #f2a541;--danger: #c8402f;--ok: #2e8b57;--shadow: 0 1px 2px rgba(36, 48, 47, .06), 0 4px 16px rgba(36, 48, 47, .05);--radius: 16px;--note-gelb: #fff4c2;--note-gruen: #dcf2df;--note-blau: #dceaf8;--note-rosa: #fbe0e6;--note-grau: #ecebe8;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #161b1b;--card: #20282a;--text: #e9eeec;--muted: #97a3a1;--line: #313b3c;--accent: #58b0a8;--accent-soft: #23393a;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--note-gelb: #3d3720;--note-gruen: #233a29;--note-blau: #22313f;--note-rosa: #3d262c;--note-grau: #2c3132;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:ui-rounded,SF Pro Rounded,Nunito,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}body.no-scroll{overflow:hidden}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.6rem;font-weight:800;letter-spacing:-.01em}h2{font-size:1.08rem;font-weight:700}h3.sub{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 8px}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:var(--card)}textarea{resize:vertical}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}.pre{white-space:pre-wrap}.row{display:flex;align-items:center}.wrap{flex-wrap:wrap}.gap-xs{gap:4px}.gap-s{gap:8px}.grow{flex:1}.push-right{margin-left:auto}.splash{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.btn{border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:8px 16px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;color:var(--text)}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.07)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:var(--danger)}.btn.small{padding:4px 12px;font-size:.88rem}.btn.big{padding:12px 20px;font-size:1.05rem}.btn.full{width:100%}.btn:disabled{opacity:.55;cursor:default}.icon-btn{border:0;background:transparent;cursor:pointer;padding:6px 8px;border-radius:8px;color:var(--muted)}.icon-btn:hover{background:var(--accent-soft);color:var(--text)}.app{min-height:100vh;padding-bottom:76px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 20px;padding-top:max(10px,env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.1rem;cursor:pointer}.topnav{display:none;gap:4px;margin-left:12px}.topnav a{padding:7px 14px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:700}.topnav a:hover{color:var(--text)}.topnav a.active{background:var(--accent-soft);color:var(--accent)}.user-menu{margin-left:auto;position:relative}.user-btn{border:0;background:none;padding:0;cursor:pointer;border-radius:50%}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0}.menu{position:absolute;right:0;top:44px;z-index:30;min-width:200px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column}.menu-name{font-weight:800;padding:6px 10px 0}.menu-role{color:var(--muted);font-size:.85rem;padding:0 10px 8px;border-bottom:1px solid var(--line);margin-bottom:4px}.menu button{text-align:left;border:0;background:none;padding:9px 10px;border-radius:8px;cursor:pointer}.menu button:hover{background:var(--accent-soft)}.content{max-width:1180px;margin:0 auto;padding:20px 16px}.page{display:flex;flex-direction:column;gap:14px}.page.narrow{max-width:680px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(6,1fr);background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 7px;text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:700}.bottomnav a.active{color:var(--accent)}.bn-icon{font-size:1.3rem;line-height:1;filter:grayscale(.6)}.bottomnav a.active .bn-icon{filter:none}@media (min-width: 900px){.topnav{display:flex}.bottomnav{display:none}.app{padding-bottom:0}.content{padding:28px 24px}}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:8px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.more-link{font-weight:700;font-size:.9rem;text-decoration:none;margin-top:4px}.empty{text-align:center;color:var(--muted);padding:18px 8px}.empty-icon{font-size:2rem;margin-bottom:4px}.error-box{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);padding:10px 12px;border-radius:10px;font-weight:600}.ok-box{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);padding:10px 12px;border-radius:10px;font-weight:600}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:800;flex:none;box-shadow:0 0 0 2px var(--card)}.tag{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:.8rem;font-weight:700;white-space:nowrap}.tag.warn{background:color-mix(in srgb,var(--warm) 25%,transparent)}.tag.ok{background:color-mix(in srgb,var(--ok) 18%,transparent)}.tag.parent{background:color-mix(in srgb,var(--accent) 20%,transparent)}.tag.child{background:color-mix(in srgb,var(--warm) 25%,transparent)}.tag-cloud,.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:2px solid var(--line);background:var(--card);border-radius:999px;padding:5px 13px;font-weight:700;font-size:.9rem;cursor:pointer}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.segmented{display:inline-flex;background:var(--card);border-radius:999px;padding:4px;box-shadow:var(--shadow);align-self:flex-start}.segmented button{border:0;background:none;padding:6px 18px;border-radius:999px;font-weight:700;cursor:pointer;color:var(--muted)}.segmented button.on{background:var(--accent);color:#fff}.hello h1{font-size:1.9rem}.dash-grid{display:grid;gap:14px;grid-template-columns:1fr}@media (min-width: 760px){.dash-grid{grid-template-columns:1fr 1fr}}.family-overview{display:flex;flex-direction:column;gap:8px}.fam-row{display:flex;align-items:center;gap:10px}.fam-name{font-weight:700;flex:1}.ev-list{display:flex;flex-direction:column;gap:6px}.ev-item{text-align:left;border:0;cursor:pointer;width:100%;background:color-mix(in srgb,var(--c) 10%,var(--card));border-left:5px solid var(--c);border-radius:10px;padding:8px 12px;display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}.ev-item:hover{background:color-mix(in srgb,var(--c) 18%,var(--card))}.ev-time{grid-column:1 / -1;font-size:.8rem;font-weight:700;color:var(--muted)}.ev-title{font-weight:700}.detail-list{display:flex;flex-direction:column;gap:10px}.cal-layout{display:grid;gap:14px;grid-template-columns:1fr}@media (min-width: 1000px){.cal-layout{grid-template-columns:1fr 340px;align-items:start}}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px}.cal-wd{text-align:center;font-size:.78rem;font-weight:800;color:var(--muted);padding:4px 0}.cal-day{border:0;background:transparent;border-radius:10px;cursor:pointer;text-align:left;min-height:58px;padding:5px;display:flex;flex-direction:column;gap:3px;min-width:0}.cal-day:hover{background:var(--accent-soft)}.cal-day.other{opacity:.4}.cal-day.selected{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.cal-num{font-weight:700;font-size:.9rem;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}.cal-day.today .cal-num{background:var(--accent);color:#fff}.cal-evs{display:none;flex-direction:column;gap:2px;min-width:0}.cal-ev{font-size:.74rem;font-weight:700;padding:1px 6px;border-radius:5px;background:color-mix(in srgb,var(--c) 18%,var(--card));border-left:3px solid var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-more{font-size:.72rem;color:var(--muted);font-weight:700;padding-left:4px}.cal-dots{display:flex;gap:3px;flex-wrap:wrap;padding-left:4px}.cal-dots i{width:7px;height:7px;border-radius:50%;display:block}.cal-dots i.task-dot{background:transparent;border:1.5px solid var(--warm)}@media (min-width: 700px){.cal-day{min-height:96px}.cal-evs{display:flex}.cal-dots i:not(.task-dot){display:none}}.day-panel h2:first-letter{text-transform:uppercase}.task{display:flex;align-items:center;gap:12px;padding:8px 2px;border-bottom:1px solid var(--line)}.task:last-child{border-bottom:0}.task-main{flex:1;min-width:0}.task-title{font-weight:700}.task.done .task-title{text-decoration:line-through;color:var(--muted)}.task-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:.82rem;color:var(--muted)}.due.overdue{color:var(--danger);font-weight:700}.due.today{color:var(--accent);font-weight:700}.check-btn{width:28px;height:28px;flex:none;border-radius:9px;border:2.5px solid var(--accent);background:transparent;cursor:pointer;display:grid;place-items:center;font-weight:900;color:#fff;font-size:.95rem;padding:0}.check-btn.on{background:var(--accent)}.check-btn:disabled{border-color:var(--line);cursor:not-allowed}.group-title{display:flex;align-items:center;gap:8px}.group-title.overdue{color:var(--danger)}.count{background:var(--accent-soft);color:var(--text);border-radius:999px;padding:0 9px;font-size:.8rem}.shop-add{flex-direction:row;flex-wrap:wrap}.shop-add input:first-child{flex:3 1 160px}.shop-add .qty{flex:1 1 80px}.shop-add select{flex:1 1 140px;width:auto}.shop-group h2{font-size:.95rem;color:var(--muted)}.shop-item{display:flex;align-items:center;gap:12px;padding:9px 2px;cursor:pointer;border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none}.shop-item:last-child{border-bottom:0}.shop-name{flex:1;font-weight:700;font-size:1.05rem}.shop-item.done .shop-name{text-decoration:line-through;color:var(--muted);font-weight:600}.bought{opacity:.85}.search{max-width:360px}.notes-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.note{position:relative;border:0;border-radius:14px;padding:14px;text-align:left;cursor:pointer;min-height:120px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow);color:var(--text)}.note:hover{transform:translateY(-1px)}.note h3{font-size:1rem;padding-right:20px}.note p{margin:0;white-space:pre-wrap;font-size:.92rem;flex:1;overflow-wrap:anywhere}.note-date{font-size:.75rem;color:var(--muted)}.pin{position:absolute;top:10px;right:10px}.member-row{display:flex;align-items:center;gap:12px;border:0;background:none;text-align:left;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer;width:100%}.member-row:last-child{border-bottom:0}.member-row:hover{background:var(--accent-soft);border-radius:10px}.member-row.inactive{opacity:.5}.member-info{flex:1;display:flex;flex-direction:column}.swatch{width:32px;height:32px;border-radius:50%;border:3px solid var(--card);box-shadow:0 0 0 1.5px var(--line);cursor:pointer;padding:0}.swatch.on{box-shadow:0 0 0 3px var(--accent)}.form{display:flex;flex-direction:column;gap:12px}.form label,.field{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:.88rem}.form label.check{flex-direction:row;align-items:center;gap:8px;font-size:.95rem}.form label.check input{width:18px;height:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#141c1c73;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--card);width:100%;max-width:520px;max-height:92vh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 600px){.modal-backdrop{align-items:center;padding:20px}.modal{border-radius:20px}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px;gap:8px}.modal-body{padding:8px 18px 16px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}.modal-foot .danger{margin-right:auto}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:32px 28px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;text-align:center}.login-card img{align-self:center}.login-card label{display:flex;flex-direction:column;gap:5px;text-align:left;font-weight:700;font-size:.88rem}.login-card p{margin:-6px 0 4px}.filters{display:flex;flex-direction:column;gap:8px}@media (min-width: 900px){.filters{flex-direction:row;flex-wrap:wrap;gap:8px 20px}}.st-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 8px;border-radius:999px;white-space:nowrap;font-size:.78rem;font-weight:700;color:var(--text);background:color-mix(in srgb,var(--c, var(--muted)) 16%,transparent)}.st-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;flex:none}.icon-choice{width:42px;height:42px;border-radius:12px;border:2px solid var(--line);background:var(--card);font-size:1.3rem;cursor:pointer}.icon-choice.on{border-color:var(--accent);background:var(--accent-soft)}.ev-where{grid-column:1 / -1}.where-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 14px}.where-label{font-weight:700;color:var(--muted);font-size:.9rem}.seg-st{display:flex;gap:6px;flex-wrap:wrap}.seg-st button{border:2px solid var(--line);background:var(--bg);border-radius:999px;padding:6px 14px;font-weight:700;cursor:pointer}.seg-st button.on{color:#fff;background:var(--accent);border-color:var(--accent)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:1 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:11px 16px;cursor:pointer;font-weight:800;background:var(--card);box-shadow:var(--shadow);color:var(--muted)}.tabs button.on{background:var(--c, var(--accent));color:#fff}.tab-count{background:#00000014;border-radius:999px;padding:0 8px;font-size:.8rem}.tabs button.on .tab-count{background:#ffffff40}.install-grid{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width: 600px){.install-grid{grid-template-columns:1fr 1fr}}.install-box{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.install-box.here{border-color:var(--accent);background:var(--accent-soft)}.install-box ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:3px}.kbd{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:0 6px;background:var(--card);font-weight:700}.hint-box{background:color-mix(in srgb,var(--warm) 18%,transparent);padding:10px 12px;border-radius:10px}.link-btn{border:0;background:none;padding:0;color:var(--accent);font-weight:700;text-decoration:underline;cursor:pointer}html{-webkit-text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,a,.shop-item,.cal-day{touch-action:manipulation}@media (hover: none){.note:hover{transform:none}.check-btn{width:32px;height:32px}.chip,.seg-st button{padding:7px 14px}}@media (min-width: 740px) and (max-width: 899px){.content{padding:24px 28px}.cal-day{min-height:92px}}@media (display-mode: standalone){.topbar{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}}.admin-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs a{flex:0 0 auto;padding:9px 16px;border-radius:12px;text-decoration:none;font-weight:800;background:var(--card);color:var(--muted);box-shadow:var(--shadow);white-space:nowrap}.admin-tabs a.active{background:var(--accent);color:#fff}.admin-narrow{display:flex;flex-direction:column;gap:14px;max-width:760px}.tag.admin{background:color-mix(in srgb,var(--danger) 16%,transparent)}.stat-grid{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}@media (min-width: 760px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;display:flex;flex-direction:column;color:var(--muted);font-weight:700;font-size:.85rem}.stat-num{font-size:1.6rem;font-weight:800;color:var(--text)}.list-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row.as-button{width:100%;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer}.tag.run-done{background:color-mix(in srgb,var(--ok) 20%,transparent)}.tag.run-failed,.tag.run-rolled_back{background:color-mix(in srgb,var(--danger) 18%,transparent)}.tag.run-running,.tag.run-restarting{background:color-mix(in srgb,var(--warm) 25%,transparent)}.run-log{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0;font-size:.8rem;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}.update-run.phase-done{box-shadow:0 0 0 2px var(--ok),var(--shadow)}.update-run.phase-failed{box-shadow:0 0 0 2px var(--danger),var(--shadow)}.update-run.phase-restarting h2,.update-run.phase-running h2{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.dropzone{border:2px dashed var(--line);border-radius:14px;padding:22px;text-align:center;cursor:pointer;position:relative;font-weight:700;color:var(--muted)}.dropzone:hover,.dropzone.has-file{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.dropzone input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.link-icon{font-size:1.3rem;width:28px;text-align:center}.link-url{display:block;overflow-wrap:anywhere}.audit-filters{gap:10px}.filter-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}@media (min-width: 900px){.filter-grid{grid-template-columns:repeat(4,1fr)}}.filter-grid label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.82rem}.audit-list{display:flex;flex-direction:column}.audit-item{display:grid;grid-template-columns:62px 30px 1fr;gap:8px;align-items:start;background:var(--card);padding:10px 12px;border-bottom:1px solid var(--line)}.audit-list>div:first-child .audit-item,.audit-list h3+.audit-item{border-radius:12px 12px 0 0}.audit-time{font-size:.8rem;font-weight:700;color:var(--muted);padding-top:4px;font-variant-numeric:tabular-nums}.audit-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.audit-label{font-weight:600;overflow-wrap:anywhere}.a-badge{font-size:.74rem;font-weight:800;padding:1px 8px;border-radius:999px}.a-create{background:color-mix(in srgb,var(--ok) 18%,transparent)}.a-update{background:color-mix(in srgb,#2f7de1 18%,transparent)}.a-delete{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.a-done{background:color-mix(in srgb,var(--accent) 22%,transparent)}.a-login{background:var(--accent-soft)}.a-system{background:color-mix(in srgb,var(--warm) 25%,transparent)}.audit-changes{margin:4px 0 0;padding-left:16px;font-size:.88rem}.audit-changes del{color:var(--danger);text-decoration:line-through}.audit-changes ins{color:var(--ok);text-decoration:none;font-weight:700}.audit-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.75rem;color:var(--muted);margin-top:3px}.avatar.sys{background:var(--muted)}.pin-app .topbar .brand{cursor:default}.pin-card{gap:12px}.pin-who{justify-content:center}.pin-dots{display:flex;justify-content:center;gap:12px;margin:4px 0}.pin-dots i{width:16px;height:16px;border-radius:50%;border:2.5px solid var(--accent);display:block}.pin-dots i.on{background:var(--accent)}.pin-dots.shake{animation:shake .35s}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.keypad button{height:62px;border-radius:18px;border:0;background:var(--bg);font-size:1.5rem;font-weight:700;cursor:pointer;touch-action:manipulation}.keypad button:active{background:var(--accent-soft)}.keypad .kp-ok{background:var(--accent);color:#fff}.keypad .kp-ok:disabled{opacity:.4}.keypad .kp-alt{color:var(--muted)}.pin-remember{display:flex;gap:8px;align-items:flex-start;text-align:left;font-size:.85rem;font-weight:600}.pin-remember input{width:18px;height:18px;flex:none;margin-top:2px}.who-tag{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;white-space:nowrap}.who-tag b{font-weight:700}@media (max-width: 480px){.who-tag .muted{display:none}}.shop-item.done .who-tag{font-size:.78rem}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-weight:700}.desk-search input{max-width:420px}.folder-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.folder-card{position:relative;background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:14px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;cursor:pointer;min-height:92px}.folder-card:hover{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.folder-icon{font-size:2rem;line-height:1}.folder-name{font-weight:700;overflow-wrap:anywhere}.folder-shared{position:absolute;right:36px;top:10px;font-size:.9rem}.folder-edit{position:absolute;right:4px;top:4px}.file-row{gap:6px}.file-open{flex:1;display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;cursor:pointer;min-width:0;padding:0}.file-icon{font-size:1.5rem;width:30px;text-align:center;flex:none}.file-name{overflow-wrap:anywhere}.usage{display:flex;flex-direction:column;gap:4px}.usage-bar{height:8px;background:var(--line);border-radius:999px;overflow:hidden}.usage-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}.drop-active{outline:3px dashed var(--accent);outline-offset:6px;border-radius:16px}.preview-img{max-width:100%;border-radius:10px;display:block;margin:0 auto}.preview-frame{width:100%;height:70vh;border:0;border-radius:10px;background:#fff}.list-row.inactive{opacity:.55}body.kiosk-mode{overscroll-behavior:none;user-select:none;-webkit-user-select:none}.kiosk{height:100vh;height:100dvh;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;background:var(--bg);font-size:18px}.kiosk.splash{display:grid;place-items:center}.k-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px 6px}.k-clock{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.k-time{font-size:3.2rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.k-date{font-size:1.15rem;color:var(--muted);font-weight:700}.k-user{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.k-hello{font-weight:800;font-size:1.15rem}.k-countdown{background:color-mix(in srgb,var(--warm) 30%,transparent);padding:4px 10px;border-radius:999px;font-weight:700}.k-btn{border:2px solid var(--line);background:var(--card);border-radius:16px;padding:12px 20px;min-height:52px;font-size:1.05rem;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;color:var(--text);touch-action:manipulation}.k-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.k-btn.ghost{background:transparent}.k-btn:disabled{opacity:.5}.k-icon{border:0;background:none;font-size:1.4rem;color:var(--muted);padding:8px;cursor:pointer}.k-main{overflow-y:auto;padding:8px 24px 12px}.k-slide{display:flex;flex-direction:column;gap:14px;animation:k-fade .4s ease}@keyframes k-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.k-slide-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.k-slide-head h2,.k-card h2{font-size:1.6rem}.k-card{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:18px 20px;display:flex;flex-direction:column;gap:10px}.k-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.k-empty{color:var(--muted);font-size:1.2rem;text-align:center;padding:20px}.k-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:8px 24px calc(12px + env(safe-area-inset-bottom))}.k-tabs button{position:relative;overflow:hidden;border:0;border-radius:18px;background:var(--card);box-shadow:var(--shadow);padding:10px 6px;font-size:1rem;font-weight:800;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;touch-action:manipulation}.k-tabs button.on{background:var(--accent);color:#fff}.k-tab-icon{font-size:1.7rem;line-height:1.1}.k-progress{position:absolute;left:0;bottom:0;height:4px;background:#fffc;animation:k-progress linear forwards}@keyframes k-progress{0%{width:0}to{width:100%}}.k-cal{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 900px){.k-cal{grid-template-columns:1.1fr 1fr;align-items:start}}.k-event{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 12px;border-left:6px solid var(--c);background:color-mix(in srgb,var(--c) 10%,var(--card));border-radius:12px;padding:8px 12px}.k-event.big{padding:14px 16px}.k-event.big .k-event-title{font-size:1.35rem}.k-event-time{font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;min-width:4.2em}.k-event-title{font-weight:800}.k-event-meta{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem}.k-day{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.k-day:last-child{border-bottom:0}.k-day-label{font-weight:800;color:var(--muted);padding-top:8px}.k-day-events{display:flex;flex-direction:column;gap:6px}.k-columns{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.k-col{gap:6px}.k-col-head{display:flex;align-items:center;gap:10px;font-size:1.2rem;padding-bottom:6px;border-bottom:1px solid var(--line)}.k-col-head .count{margin-left:auto}.k-all{font-size:1.6rem}.k-task{display:flex;align-items:center;gap:12px;padding:6px 0}.k-task.done .k-task-title{text-decoration:line-through;color:var(--muted)}.k-check{width:40px;height:40px;border-radius:12px;font-size:1.2rem}.k-task-title{font-weight:700;font-size:1.08rem}.k-task-meta{display:flex;gap:10px;font-size:.85rem;color:var(--muted)}.k-tabs-inline{display:flex;gap:8px;flex-wrap:wrap}.k-tabs-inline button{border:0;background:var(--card);box-shadow:var(--shadow);border-radius:14px;padding:10px 16px;font-weight:800;font-size:1rem;cursor:pointer;color:var(--muted);display:inline-flex;gap:8px;align-items:center}.k-tabs-inline button.on{background:var(--accent);color:#fff}.k-shop{columns:2 320px;column-gap:14px}.k-shop-group{break-inside:avoid;margin-bottom:14px}.k-shop-group h3{color:var(--muted);font-size:1rem}.k-shop-item{display:flex;align-items:center;gap:12px;padding:10px 2px;border:0;border-bottom:1px solid var(--line);background:none;width:100%;text-align:left;cursor:pointer;color:var(--text)}.k-shop-item:last-child{border-bottom:0}.k-shop-item .check-btn{width:32px;height:32px}.k-shop-name{flex:1;font-size:1.25rem;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.k-shop-who{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;font-weight:700;white-space:nowrap}.k-shop-who small{color:var(--muted);font-weight:600}.k-notes{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));padding:6px}.k-note{min-height:170px;transform:rotate(var(--tilt));font-size:1.05rem}.k-note h3{font-size:1.2rem}.k-note-full{font-size:1.3rem}.k-family{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.k-person{align-items:center;text-align:center;border-top:6px solid var(--c)}.k-person h3{font-size:1.5rem}.k-where{font-weight:800;font-size:1.1rem}.k-person-stats{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;color:var(--muted)}.k-person-stats b{color:var(--text);font-size:1.3rem}.k-person-stats .warn b{color:var(--danger)}.k-next{font-size:.95rem;background:var(--accent-soft);border-radius:10px;padding:4px 10px}.k-birthdays{flex-direction:row;flex-wrap:wrap;gap:8px 24px;font-size:1.1rem}.k-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#141c1c8c;display:grid;place-items:center;padding:20px}.k-panel{background:var(--card);border-radius:26px;padding:26px;width:min(560px,100%);max-height:92dvh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;align-items:stretch;box-shadow:0 20px 60px #00000040}.k-panel.wide{width:min(1100px,100%);background:var(--bg)}.k-panel.center{align-items:center;text-align:center}.k-panel h2{font-size:1.6rem;text-align:center}.k-steps{text-align:left;font-size:1.1rem;display:flex;flex-direction:column;gap:6px}.k-who-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.k-who{border:2px solid var(--line);background:var(--bg);border-radius:20px;padding:16px 8px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:1.15rem;font-weight:800;cursor:pointer;color:var(--text)}.k-who:disabled{opacity:.45;cursor:not-allowed}.k-who small{font-weight:600;color:var(--muted);font-size:.8rem}.k-pin-who{justify-content:center}.k-keypad button{height:76px;font-size:1.9rem}.k-form .k-input{font-size:1.25rem;padding:14px 16px;border-radius:14px}.k-label{font-weight:800;color:var(--muted)}.k-chips{display:flex;flex-wrap:wrap;gap:8px}.k-chips .chip{padding:10px 18px;font-size:1.05rem}.k-chips .chip.on{color:#fff}.k-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.k-row.end{justify-content:flex-end}.k-row .k-input{flex:1;min-width:150px}.k-check-label{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.05rem}.k-check-label input{width:24px;height:24px}@media (max-width: 700px){.kiosk{font-size:16px}.k-time{font-size:2.4rem}.k-tabs span:not(.k-tab-icon){font-size:.75rem}.k-head,.k-main,.k-tabs{padding-left:12px;padding-right:12px}}.hol-banner{display:inline-block;border-radius:10px;padding:4px 10px;font-weight:700;font-size:.88rem;background:color-mix(in srgb,#2f7de1 14%,var(--card))}.hol-banner.feiertag{background:color-mix(in srgb,var(--warm) 26%,var(--card))}.hol-banner.now{box-shadow:inset 0 0 0 2px var(--accent)}.hol-banner.big{font-size:1.15rem;padding:8px 14px}.hol-strip{display:flex;flex-wrap:wrap;gap:8px}.cal-hol{font-size:.68rem;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:none}@media (min-width: 700px){.cal-hol{display:block}}.cal-day.ferien{background:color-mix(in srgb,#2f7de1 7%,transparent)}.cal-day.holiday .cal-num{color:var(--danger)}.cal-day.today.holiday .cal-num{color:#fff}.code-input{font-size:1.5rem;letter-spacing:.25em;text-align:center;font-variant-numeric:tabular-nums}.qr-box{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.qr-box img{background:#fff;padding:8px;border-radius:12px}.qr-box>div{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}.secret{font-size:1rem;letter-spacing:.08em;padding:6px 8px;border-radius:8px;word-break:break-all}.setup-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.backup-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.backup-codes code{font-size:1.15rem;padding:8px;text-align:center;border-radius:8px;letter-spacing:.06em}.brand-version{font-size:.7rem;font-weight:700;color:var(--muted);margin-left:2px;align-self:flex-end;padding-bottom:3px}.menu-version{color:var(--muted);font-size:.75rem;padding:8px 10px 2px;border-top:1px solid var(--line);margin-top:4px}.app-footer{text-align:center;color:var(--muted);font-size:.75rem;padding:28px 0 8px}.login-version{margin:4px 0 0;text-align:center}.k-version{position:fixed;right:12px;bottom:6px;font-size:.7rem;color:var(--muted);opacity:.7;pointer-events:none;z-index:1}@media (max-width: 760px){.brand-version{display:none}}
