@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap";:root{--paper:#fbf6ee;--ink:#2b2620;--ink-soft:#6b6258;--line:#e2d9c8;--coral:#d9603b;--coral-deep:#b8492a;--moss:#5c7259;--gold:#c99a3e;--card:#fff;--font-display:"Fraunces", serif;--font-body:"Inter", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius:16px;--shadow-sm:0 1px 2px #2b26200d;--shadow:0 1px 2px #2b26200a, 0 6px 18px #2b26200f;--shadow-lg:0 8px 30px #2b26201f;--shadow-coral:0 4px 14px #d9603b52;--coral-grad:linear-gradient(135deg, #e36e45 0%, #c44e2b 100%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--paper:#1b1714;--ink:#f0e9dc;--ink-soft:#a99e8d;--line:#36302a;--coral:#e8754e;--coral-deep:#f0875c;--moss:#8aa585;--gold:#d8b164;--card:#24201a;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #00000059, 0 6px 18px #00000073;--shadow-lg:0 10px 34px #0000008c;--shadow-coral:0 4px 14px #e8754e52;--coral-grad:linear-gradient(135deg, #e8754e 0%, #d0552f 100%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .badge.open{color:var(--gold);background:#3a2d1c}[data-theme=dark] .badge.accepted{color:var(--moss);background:#223026}[data-theme=dark] .badge.completed{color:#ada0e6;background:#2a2740}[data-theme=dark] .badge.canceled{color:var(--ink-soft);background:#2e2820}[data-theme=dark] .badge.short-notice{color:var(--gold);background:#3a2d1c}[data-theme=dark] .nav-link.active,[data-theme=dark] .btn-danger{color:var(--coral-deep);background:#3a241b}[data-theme=dark] .hero-card{background:linear-gradient(135deg,#2a2018 0%,#341f16 100%);border-color:#43291e}[data-theme=dark] .sk{background:linear-gradient(90deg,#2a251f 25%,#332d25 37%,#2a251f 63%)}[data-theme=dark] .request-card:hover{border-color:#4a4136}[data-theme=dark] .text-input:focus{background:#211d17}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(1100px 600px at 100% -5%,#d9603b0f,#0000 60%),radial-gradient(900px 500px at -10% 0,#5c72590d,#0000 55%);background-attachment:fixed;margin:0}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--card);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:4px;width:220px;padding:28px 20px;display:flex}.brand{font-family:var(--font-display);color:var(--coral-deep);letter-spacing:-.01em;margin:0 0 28px 4px;font-size:22px;font-weight:600}.nav-link{color:var(--ink-soft);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14.5px;font-weight:500;display:flex}.nav-link:hover{background:var(--paper);color:var(--ink)}.nav-link.active{color:var(--coral-deep);background:#fbeae2}.nav-badge{background:var(--coral);border-radius:50%;width:8px;height:8px;margin-left:auto}.main{flex:1;min-width:0;padding:40px}.main-inner{width:100%;max-width:780px;margin:0 auto}.page-title{font-family:var(--font-display);color:var(--ink);margin:0 0 6px;font-size:30px;font-weight:600}.page-subtitle{color:var(--ink-soft);margin:0 0 28px;font-size:14.5px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.request-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);align-items:flex-start;gap:14px;margin-bottom:12px;padding:16px 18px;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.avatar{color:#fff;font-family:var(--font-display);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;line-height:1;display:flex}.rc-body{flex-direction:column;flex:1;min-width:0;display:flex}.rc-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rc-title{font-size:15.5px;font-weight:600}.rc-top .badge{margin-left:auto}.rc-when{font-family:var(--font-mono);color:var(--ink-soft);margin-top:3px;font-size:12.5px}.request-card:hover{box-shadow:var(--shadow-lg);border-color:#d9cdb8;transform:translateY(-2px)}.request-card:active{transform:translateY(0)}.request-card{border-left:3px solid #0000}.request-card.status-open{border-left-color:var(--gold)}.request-card.status-accepted{border-left-color:var(--moss)}.request-card.status-completed{border-left-color:#6b5da6}.request-card.status-canceled{border-left-color:var(--ink-soft)}.request-card.short-notice{border-left-color:var(--gold)}.skeleton-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;margin-bottom:12px;padding:18px 20px;display:flex}.sk{background:linear-gradient(90deg,#efe7d8 25%,#f7f1e6 37%,#efe7d8 63%) 0 0/400% 100%;border-radius:6px}@media (prefers-reduced-motion:no-preference){.sk{animation:1.4s infinite shimmer}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.sk-date{flex-shrink:0;width:78px;height:34px}.sk-line{height:12px}.request-meta{align-items:baseline;gap:14px;display:flex}.request-date{font-family:var(--font-mono);color:var(--ink-soft);min-width:92px;font-size:13px}.request-title{font-size:15.5px;font-weight:600}.request-sub{color:var(--ink-soft);margin-top:2px;font-size:13px}.badge{letter-spacing:.01em;border-radius:100px;align-items:center;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge.open{color:var(--gold);background:#fdf1e2}.badge.accepted{color:var(--moss);background:#eaf1e8}.badge.completed{color:#6b5da6;background:#edeaf6}.badge.canceled{color:var(--ink-soft);background:#f3edea}.badge.short-notice{color:#a6781e;background:#fdf1e2}.btn{cursor:pointer;border:none;border-radius:10px;padding:9px 18px;font-size:14px;font-weight:600;transition:transform 50ms,opacity .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--coral-grad);color:#fff;box-shadow:var(--shadow-coral)}.btn-primary:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 6px 18px #d9603b6b}.btn-secondary{background:var(--paper);color:var(--ink);border:1px solid var(--line)}.btn-secondary:hover:not(:disabled){background:var(--line)}.btn-danger{color:var(--coral-deep);background:#fbeae2}.empty-state{text-align:center;color:var(--ink-soft);padding:52px 24px}.empty-state .icon{background:var(--paper);border:1px solid var(--line);border-radius:22px;justify-content:center;align-items:center;width:66px;height:66px;margin:0 auto 16px;font-size:30px;display:flex}.empty-state p{max-width:340px;margin:0 auto;line-height:1.55}.empty-state a{color:var(--coral-deep);font-weight:600}.login-screen{background:radial-gradient(800px 500px at 50% -10%, #d9603b1f, transparent 60%), radial-gradient(700px 500px at 0% 110%, #5c72591a, transparent 55%), var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);width:100%;max-width:384px;box-shadow:var(--shadow-lg);border-radius:20px;padding:38px 34px}.login-logo{background:var(--coral-grad);width:52px;height:52px;box-shadow:var(--shadow-coral);border-radius:16px;justify-content:center;align-items:center;margin-bottom:18px;font-size:26px;display:flex}.login-title{font-family:var(--font-display);margin:0 0 8px;font-size:28px;font-weight:600}.login-sub{color:var(--ink-soft);margin:0 0 24px;font-size:14px}.field-label{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.text-input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:10px;margin-bottom:16px;padding:11px 13px;font-size:15px;transition:border-color .15s,box-shadow .15s,background .15s}.text-input:focus{border-color:var(--coral);background:#fff;outline:none;box-shadow:0 0 0 3px #d9603b26}.error-text{color:var(--coral-deep);margin:-6px 0 14px;font-size:13.5px}.hint-text{color:var(--ink-soft);margin-top:14px;font-size:12.5px}.spinner-wrap{min-height:100vh;color:var(--ink-soft);justify-content:center;align-items:center;display:flex}.notif-item{border-bottom:1px solid var(--line);gap:12px;padding:14px 16px;display:flex}.notif-item:last-child{border-bottom:none}.notif-dot{background:var(--coral);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-dot.read{background:0 0}.household-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:18px 20px}.household-head{align-items:center;gap:12px;display:flex}.household-name{font-family:var(--font-display);margin:0 0 2px;font-size:18px;font-weight:600}.owners-line{color:var(--ink-soft);font-size:13px}.child-pills{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.child-pill{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:100px;align-items:center;gap:8px;padding:5px 13px 5px 5px;font-size:13.5px;font-weight:600;transition:border-color .15s;display:inline-flex}.child-pill:hover{border-color:var(--coral)}.profile-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.detail-row{border-bottom:1px solid var(--line);padding:12px 0}.detail-row:last-of-type{border-bottom:none}.detail-row .field-label{margin-bottom:3px}.detail-row .detail-value{font-size:14.5px}.private-tag{color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:100px;align-items:center;gap:6px;margin-bottom:14px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.sidebar-new{text-align:center;width:100%;margin-bottom:14px}.sidebar-user{color:var(--ink-soft);margin-bottom:8px;font-size:13px}.nav-icon{font-size:16px;line-height:1}.hero-card{background:linear-gradient(135deg,#fff4ec 0%,#fce6da 100%);border-color:#f2d7c8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px;display:grid}.stat-card{color:inherit;text-decoration:none;transition:border-color .15s,transform 50ms}.stat-card:hover{border-color:var(--coral)}.stat-card:active{transform:scale(.99)}.stat-num{font-size:28px;font-weight:700;line-height:1.1}.stat-label{color:var(--ink-soft);margin-top:4px;font-size:14px}.page-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.btn-sm{white-space:nowrap;padding:7px 13px;font-size:13px}.filter-chips{flex-wrap:wrap;gap:8px;margin:0 0 20px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:100px;align-items:center;gap:6px;padding:7px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.chip:hover{background:var(--paper)}.chip.active{background:var(--coral);border-color:var(--coral);color:#fff}.chip-count{background:var(--paper);color:var(--ink-soft);border-radius:100px;padding:1px 7px;font-size:12px;font-weight:700}.chip.active .chip-count{color:#fff;background:#ffffff40}.segmented{background:var(--paper);border:1px solid var(--line);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.segment{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;border-radius:9px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.segment:hover{color:var(--ink)}.segment.active{background:var(--card);color:var(--coral-deep);box-shadow:var(--shadow-sm)}.section-heading{margin:0 0 10px;font-size:16px}.section-heading .count{color:var(--ink-soft);font-weight:400}.day-group{margin-bottom:22px}.day-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 10px 2px;font-size:12.5px;font-weight:500}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.main>*{animation:.3s cubic-bezier(.2,.7,.2,1) rise}}.mobile-topbar,.bottom-nav,.fab,.sheet-backdrop{display:none}@media (width<=720px){.app-shell{flex-direction:column}.sidebar{display:none}.mobile-topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:20;justify-content:space-between;align-items:center;padding:12px 18px;display:flex;position:sticky;top:0}.topbar-bell{border-radius:10px;padding:6px;font-size:20px;line-height:1;position:relative}.bell-badge{margin:0;position:absolute;top:2px;right:2px}.main{padding:20px 16px;padding-bottom:calc(84px + env(safe-area-inset-bottom));max-width:none}.bottom-nav{z-index:20;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 4px 8px;font-size:11px;font-weight:600;display:flex;position:relative}.tab-icon{opacity:.55;font-size:20px;line-height:1;transition:opacity .15s,transform .15s;position:relative}.tab.active{color:var(--coral-deep)}.tab.active .tab-icon{opacity:1;transform:translateY(-1px)}.tab.active:before{content:"";background:var(--coral);border-radius:0 0 3px 3px;width:26px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.tab-label{letter-spacing:.01em}.fab{right:18px;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--coral-grad);color:#fff;width:58px;height:58px;box-shadow:var(--shadow-coral), var(--shadow-lg);z-index:21;border-radius:50%;justify-content:center;align-items:center;font-size:30px;transition:transform .12s;display:flex;position:fixed}.fab:active{transform:scale(.92)}.sheet-backdrop{z-index:30;background:#2b262066;display:block;position:fixed;inset:0}.sheet{background:var(--card);padding:8px 18px calc(20px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;animation:.2s sheet-up;position:fixed;bottom:0;left:0;right:0}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{background:var(--line);border-radius:100px;width:40px;height:4px;margin:6px auto 12px}.sheet-greeting{font-family:var(--font-display);margin:0 2px 10px;font-size:18px;font-weight:600}.sheet-link{color:var(--ink);border-radius:12px;align-items:center;gap:12px;padding:14px 12px;font-size:15px;font-weight:500;display:flex}.sheet-link:hover,.sheet-link.active{background:var(--paper)}.sheet-link .nav-badge{margin-left:auto}.page-title{font-size:25px}.request-card{padding:16px}.btn{padding:11px 18px}.text-input{padding:13px;font-size:16px}}
