:root{--navy: #1F3864;--blue: #2E5FA3;--weekly-bg: #EAF4FB;--weekly-accent: #2E5FA3;--purple-bg: #F0EBF8;--purple-accent: #5B3A8E;--gold-bg: #FFF8EC;--gold-accent: #8A5C00;--owner-jessie: #FDE8D8;--owner-marcus: #D8EAF8;--owner-hire: #E2EFDA;--bg: #F4F6FA;--card: #FFFFFF;--border: #E2E6EC;--text: #1B2330;--muted: #5C6675;--radius: 12px;--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .06);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{background:var(--bg);padding-bottom:env(safe-area-inset-bottom)}button{font:inherit;cursor:pointer}.app{max-width:1100px;margin:0 auto;padding:12px 12px 84px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 4px 12px}.app-header h1{font-size:18px;margin:0;color:var(--navy)}.sync-pill{font-size:11px;padding:3px 8px;border-radius:999px;background:#eef2f7;color:var(--muted);white-space:nowrap}.sync-pill.live{background:#e3f4e8;color:#1d7a3d}.dash-row{display:grid;gap:12px;margin-bottom:12px}.dash-row.two{grid-template-columns:1fr 1fr}.dash-row.three{grid-template-columns:1fr 1fr 1fr}@media (max-width: 640px){.dash-row.two,.dash-row.three{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:10px 12px;color:#fff}.panel-header h2{margin:0;font-size:14px;font-weight:700;letter-spacing:.2px}.panel-sub{font-size:11px;opacity:.9;margin-top:2px}.panel-body{padding:8px 10px 10px;overflow-y:auto;max-height:360px}.panel.navy .panel-header{background:var(--navy)}.panel.blue .panel-header{background:var(--weekly-accent)}.panel.blue{background:var(--weekly-bg)}.panel.purple .panel-header{background:var(--purple-accent)}.panel.purple{background:var(--purple-bg)}.panel.gold .panel-header{background:var(--gold-accent)}.panel.gold{background:var(--gold-bg)}.progress{height:6px;border-radius:999px;background:#ffffff59;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:#fff;border-radius:999px;transition:width .3s ease}.progress-label{font-size:11px;opacity:.95;margin-top:4px}.task{border-bottom:1px solid var(--border);padding:7px 2px}.task:last-child{border-bottom:none}.task-main{display:flex;align-items:flex-start;gap:8px}.task-check{width:20px;height:20px;flex:0 0 auto;margin-top:1px;accent-color:var(--blue)}.task-name{flex:1;font-size:14px;line-height:1.35}.task.done .task-name{text-decoration:line-through;color:var(--muted)}.task-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.badge{font-size:10px;padding:2px 6px;border-radius:999px;background:#eef2f7;color:var(--muted);white-space:nowrap}.howto-btn{background:none;border:none;color:var(--blue);font-size:12px;padding:2px 0;text-align:left}.howto-panel{margin:6px 0 2px 28px;padding:8px 10px 8px 12px;background:#f7f9fc;border-left:3px solid var(--blue);border-radius:0 8px 8px 0;font-size:13px;line-height:1.5}.howto-panel ol,.howto-panel ul{margin:0;padding-left:18px}.howto-panel li{margin-bottom:3px}.howto-panel p{margin:0}.howto-panel strong{color:var(--navy)}.group-label{font-size:10px;font-weight:700;color:var(--weekly-accent);text-transform:uppercase;letter-spacing:.5px;padding:8px 0 2px;border-top:1px solid #c2d9ec;margin-top:4px}.group-label:first-child{border-top:none;margin-top:0}.badge.hire-badge{background:#4a7c3f;color:#fff;margin-right:5px;font-weight:700}.owner-row{display:flex;gap:6px;margin:6px 0 0 28px;flex-wrap:wrap}.owner-btn{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--muted)}.owner-btn.active.jessie{background:var(--owner-jessie);color:#7a3e1a;border-color:#f3ccb0}.owner-btn.active.marcus{background:var(--owner-marcus);color:#1f4e79;border-color:#b6d4ef}.owner-btn.active.hire{background:var(--owner-hire);color:#44632a;border-color:#c5dfb0}.note-input{width:calc(100% - 28px);margin:6px 0 2px 28px;border:1px solid var(--border);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px;resize:none;overflow:hidden;background:#fff}.note-input:focus{outline:2px solid var(--blue);outline-offset:-1px}.proj-add{display:flex;gap:6px;margin-bottom:8px}.proj-add input{flex:1;border:1px solid var(--border);border-radius:8px;padding:7px 9px;font:inherit;font-size:13px}.proj-add button{border:none;border-radius:8px;background:var(--gold-accent);color:#fff;padding:0 12px;font-weight:600}.proj{border-bottom:1px solid var(--border);padding:7px 2px}.proj:last-child{border-bottom:none}.proj-top{display:flex;align-items:flex-start;gap:8px}.proj-text{flex:1;font-size:14px}.proj.done .proj-text{text-decoration:line-through;color:var(--muted)}.proj-del{background:none;border:none;color:#b0392f;font-size:16px;line-height:1;padding:0 4px}.prio-row{display:flex;gap:6px;margin:6px 0 0 28px}.prio-btn{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--muted)}.prio-btn.active.High{background:#fdecec;color:#b0392f;border-color:#f3c4c0}.prio-btn.active.Med{background:#fff5e0;color:#8a5c00;border-color:#f0dca8}.prio-btn.active.Low{background:#eef5ec;color:#44632a;border-color:#cfe3c4}.accordion-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.accordion-head{width:100%;text-align:left;border:none;background:var(--navy);color:#fff;padding:12px 14px;font-size:15px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.accordion-body{padding:6px 12px 10px}.section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px}.section h2{margin:0 0 8px;font-size:15px;color:var(--navy)}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:20}.tabbar button{flex:1;border:none;background:none;padding:9px 4px;font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px}.tabbar button .ico{font-size:18px;line-height:1}.tabbar button.active{color:var(--navy);font-weight:700}.empty{color:var(--muted);font-size:13px;padding:10px 2px}
