:root{--bg: #f5faf9;--surface: #ffffff;--surface-2: #e9f6f3;--border: #d7ece7;--ink: #1f2e2b;--ink-soft: #6c8985;--ink-faint: #b7cbc7;--accent: #1b7e71;--accent-ink: #ffffff;--accent-soft: #e3f5f1;--mint: #58a884;--mint-soft: #dcf1e6;--warn: #e0a83e;--warn-soft: #fbecc9;--attention: #e0603f;--attention-soft: #fbe0d6;--shadow: rgba(31, 46, 43, .08);font-family:Mulish,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink)}body{margin:0}h1,h2,h3,h4{font-family:"Baloo 2",Mulish,system-ui,sans-serif;font-weight:700;text-wrap:balance;margin:0 0 .5em;color:var(--ink)}.eyebrow,.label-caps{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.app-shell{max-width:720px;margin:0 auto;padding:1.2rem 1rem calc(92px + env(safe-area-inset-bottom,0px))}.brand-header{display:flex;align-items:center;gap:12px;padding-bottom:.9rem;margin-bottom:1rem}.brand-left{display:flex;align-items:center;gap:10px}.brand-logo{width:38px;height:38px;object-fit:contain;flex-shrink:0}.brand-header h1{font-size:1.6rem;margin:0;color:var(--accent)}.brand-header .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:.78rem;font-weight:600;color:var(--ink-soft);text-align:right}.avatar{width:44px;height:44px;border-radius:50%;background:var(--surface-2);object-fit:cover;flex-shrink:0}.avatar.avatar-fallback{display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);font-size:1.1rem;font-weight:700}.brand-header .avatar{border:3px solid var(--surface);box-shadow:0 0 0 2px var(--accent-soft)}.notif-bell{position:relative;background:none;border:none;padding:6px;margin:0;color:var(--ink-soft);cursor:pointer;line-height:0}.notif-bell svg{width:22px;height:22px;stroke:currentColor}.notif-bell .badge-dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center}.notif-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:300px;max-height:360px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 40px -16px var(--shadow);z-index:41;text-align:left}.notif-panel .notif-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;border-bottom:1px solid var(--border)}.notif-panel .notif-header h4{margin:0;font-size:.85rem}.notif-panel .notif-header button{font-size:.65rem;padding:.25rem .55rem}.notif-item{padding:.6rem .9rem;border-bottom:1px solid var(--border);font-size:.75rem;font-weight:400;color:var(--ink);cursor:pointer}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:var(--accent-soft)}.notif-item .notif-time{display:block;margin-top:2px;font-size:.65rem;color:var(--ink-soft)}.notif-empty{padding:1rem .9rem;font-size:.75rem;color:var(--ink-soft)}.nav-bar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;gap:4px;background:var(--surface);border-top:1px solid var(--border);padding:10px 8px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 24px -16px var(--shadow);z-index:10}.nav-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--ink-faint);font-size:.64rem;font-weight:700;padding:6px 4px;border-radius:14px}.nav-bar a svg{width:20px;height:20px;stroke:currentColor}.nav-bar a.active{color:var(--accent);background:var(--accent-soft)}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1.15rem 1.25rem;margin-bottom:1rem;box-shadow:0 10px 24px -18px var(--shadow)}.card-attention{border-color:var(--attention);box-shadow:0 0 0 3px var(--attention-soft)}.card h3,.card h4{font-size:1rem}table{width:100%;border-collapse:collapse;background:transparent}th,td{padding:.6rem .4rem;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem}th{color:var(--ink-soft);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}tr:last-child td{border-bottom:none}input,select,textarea{font-family:Mulish,sans-serif;font-size:.92rem;border-radius:12px;border:1px solid var(--border);padding:.6rem .8rem;background:var(--surface-2);color:var(--ink)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}button{font-family:Mulish,sans-serif;font-weight:700;font-size:.85rem;cursor:pointer;border-radius:999px;padding:.75rem 1.2rem;background:var(--accent);color:var(--accent-ink);border:none;transition:transform .1s ease,opacity .15s ease}button:hover{opacity:.92}button:active{transform:scale(.98)}button:disabled{background:var(--surface-2);color:var(--ink-faint);cursor:not-allowed}button.ghost{background:var(--surface);color:var(--ink-soft);border:1px solid var(--border)}.segmented{display:inline-flex;flex-wrap:wrap;background:var(--surface-2);border-radius:999px;padding:3px;gap:2px}.segmented button{border-radius:999px;background:transparent;color:var(--ink-soft);font-size:.74rem;padding:.4rem .85rem;white-space:nowrap}.segmented button.on{background:var(--mint);color:#fff}.segmented button.off-on{background:var(--attention);color:#fff}.stat-row{display:flex;gap:10px;margin:0 0 1.2rem}.stat-row .stat{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:.8rem .5rem;text-align:center}.stat-row .stat .n{font-family:"Baloo 2",sans-serif;font-size:1.6rem;font-weight:700;color:var(--accent);line-height:1;display:block}.stat-row .stat .l{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.row-actions{display:flex;gap:.5rem;align-items:center}.day-toggle-row{display:flex;gap:4px;flex-wrap:wrap}.day-toggle-row button{padding:.4rem .6rem;font-size:.68rem}.hint{margin:.4rem 0 0;font-size:.72rem;color:var(--ink-soft)}.hint.warn{color:var(--attention)}.shift-line{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.shift-line:last-child{border-bottom:none}.shift-line .who{margin-left:auto;color:var(--ink-soft);font-size:.8rem;font-weight:600}.tag{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.25rem .6rem;font-size:.72rem;font-weight:700;white-space:nowrap}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.cal-header h3{margin:0}.cal-header .nav-btns{display:flex;gap:6px}.cal-header .nav-btns button{padding:.4rem .7rem;font-size:.8rem}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px}.cal-weekdays span{text-align:center;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}button.cal-day{position:relative;min-height:52px;border-radius:12px;background:var(--surface-2);color:var(--ink);padding:4px;display:flex;flex-direction:column;align-items:center;gap:3px;font-weight:400}.cal-day.outside{opacity:.35}.cal-day.today .cal-day-num{background:var(--accent);color:var(--accent-ink)}.cal-day.own{background:var(--accent-soft)}.cal-day.closed{background:repeating-linear-gradient(135deg,var(--surface-2) 0px,var(--surface-2) 5px,var(--border) 5px,var(--border) 6px)}.cal-day.closed .cal-day-num{color:var(--ink-faint)}.cal-day-num{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.cal-day-dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center;align-items:center}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-faint)}.cal-dot.own.frueh{background:var(--accent)}.cal-dot.own.spaet{background:transparent;border:1.5px solid var(--accent);width:5px;height:5px}.cal-dot.bake{background:var(--warn);border-radius:2px;transform:rotate(45deg)}.cal-day-more{font-size:.56rem;font-weight:700;color:var(--ink-soft);line-height:1}.cal-legend{display:flex;gap:12px;margin-top:.9rem;font-size:.68rem;color:var(--ink-soft);flex-wrap:wrap}.cal-legend span{display:flex;align-items:center;gap:5px}.cal-legend .cal-dot{width:8px;height:8px}.cal-legend .cal-dot.own.spaet{width:7px;height:7px}.badge{display:inline-block;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--surface-2);color:var(--ink-soft)}.badge.published{background:var(--mint-soft);color:var(--mint)}.badge.draft{background:var(--warn-soft);color:#97701c}
