:root{--bg: #fbf4ec;--surface: #ffffff;--surface-2: #fcecdd;--peach: #f5d0ae;--ink: #353b4e;--ink-soft: #7b8196;--line: #efddcb;--primary: #e87150;--primary-dark: #d6593a;--primary-soft: #fce0d4;--accent: #f4a35c;--navy: #353b4e;--win: #2fa37a;--win-soft: #d8f1e7;--partial: #ef9d2b;--partial-soft: #fdeccb;--danger: #d6455f;--radius: 18px;--radius-sm: 12px;--tap: 52px;--sidebar: 248px;--shadow: 0 2px 10px rgba(53, 59, 78, .07);--shadow-lift: 0 8px 24px rgba(53, 59, 78, .16)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:Mulish,system-ui,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;margin:0;color:var(--navy)}button{font-family:inherit;font-size:1rem;cursor:pointer;color:inherit}input,select{font-family:inherit;font-size:1rem}img{max-width:100%;display:block}.shell{display:flex;min-height:100vh}.main{flex:1;display:flex;flex-direction:column;min-width:0}.content{width:100%;max-width:1280px;margin:0 auto;padding:26px 32px 56px;flex:1}.narrow{max-width:760px;margin:0 auto}.sidebar{width:var(--sidebar);flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-family:Fraunces,serif;font-size:1.5rem;font-weight:700;color:var(--primary);padding:4px 10px 20px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-link{display:flex;align-items:center;gap:12px;border:none;background:none;color:var(--ink-soft);padding:12px 14px;border-radius:var(--radius-sm);font-weight:800;font-size:1rem;text-align:left}.side-link:hover{background:var(--surface-2)}.side-link.active{background:var(--primary-soft);color:var(--primary-dark)}.side-foot{margin-top:auto;padding:10px;color:var(--ink-soft);font-size:.85rem}.tabbar{display:none}@media(max-width:859px){.sidebar{display:none}.content{padding:14px 14px 104px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:40}.tabbar button{flex:1;border:none;background:none;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;font-weight:800;padding:6px 2px;border-radius:12px}.tabbar button .ic{line-height:1}.tabbar button.active{color:var(--primary)}.tabbar button.active .ic{transform:translateY(-1px)}}.page-head{margin-bottom:16px}.page-head h1{font-size:1.85rem;letter-spacing:-.01em}.page-head p,.sub{color:var(--ink-soft);margin:2px 0 0}.muted{color:var(--ink-soft);font-size:.9rem}.empty{color:var(--ink-soft);text-align:center;padding:32px 16px}.center{text-align:center}.row{display:flex;align-items:center;gap:10px}.spacer{flex:1}.card{background:var(--surface);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card+.card{margin-top:14px}.btn{width:100%;min-height:var(--tap);border:none;border-radius:14px;background:var(--primary);color:#fff;font-weight:800;font-size:1.05rem;padding:12px;transition:transform .06s ease,background .15s}.btn:hover{background:var(--primary-dark)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55}.btn.secondary{background:var(--surface-2);color:var(--navy)}.btn.secondary:hover{background:var(--peach)}.btn.ghost{background:none;color:var(--primary-dark);border:1.5px solid var(--line)}.btn.win{background:var(--win)}.btn.danger{background:var(--danger)}.btn-sm{min-height:40px;font-size:.95rem;padding:8px 14px;width:auto;border-radius:11px}.field{margin-bottom:14px}.field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px;color:var(--navy)}.input,select.input{width:100%;min-height:var(--tap);border:1.5px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface);color:var(--ink)}.input:focus{outline:none;border-color:var(--primary)}.pick{max-width:380px;margin:8vh auto 0;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:0 8px}.pick h1{font-size:2.2rem;color:var(--primary)}.login-logo{filter:drop-shadow(0 6px 14px rgba(232,113,80,.3))}.searchbar{position:sticky;top:0;z-index:20;background:var(--bg);padding:6px 0 10px;margin:-6px 0 6px}.search-input{width:100%;min-height:var(--tap);border:1.5px solid var(--line);border-radius:999px;padding:10px 18px;background:var(--surface);box-shadow:var(--shadow)}.search-input:focus{outline:none;border-color:var(--primary)}.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);padding:8px 15px;border-radius:999px;font-weight:800;font-size:.9rem;white-space:nowrap;transition:transform .06s ease}.chip:active{transform:scale(.95)}.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.chip.focus.active{background:var(--primary);border-color:var(--primary)}.pip{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;box-shadow:var(--shadow);transition:transform .08s ease,box-shadow .15s;margin-bottom:10px}.pip:active{transform:scale(.985)}.pip .dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;background:var(--primary)}.pip .pip-body{flex:1;min-width:0;display:flex;flex-direction:column}.pip .pip-name{font-weight:800;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pip .pip-meta{font-size:.8rem;color:var(--ink-soft);text-transform:capitalize}.pip .pip-act{display:flex;gap:6px;align-items:center;flex-shrink:0}.icon-btn{border:none;background:var(--surface-2);width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--navy);flex-shrink:0}.icon-btn:active{transform:scale(.92)}.icon-btn.coral{background:var(--primary);color:#fff}.icon-btn.win{background:var(--win);color:#fff}.badge{font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.03em}.badge.custom{background:var(--accent)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#353b4e73;z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease}.sheet{background:var(--surface);width:100%;max-width:640px;max-height:88vh;overflow-y:auto;border-radius:22px 22px 0 0;padding:8px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:var(--shadow-lift);animation:slideup .24s cubic-bezier(.22,1,.36,1)}.sheet-grip{width:42px;height:5px;border-radius:3px;background:var(--line);margin:8px auto 12px}.sheet h2{font-size:1.5rem;margin-bottom:4px}.sheet-imgs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.sheet-imgs img{border-radius:12px;background:var(--surface-2);aspect-ratio:4/3;object-fit:cover}.sheet-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.steps{padding-left:18px;margin:8px 0}.steps li{margin-bottom:8px}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet-backdrop.center{align-items:center;padding:16px}.sheet.modal{border-radius:22px;max-width:460px}.daycols{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:760px){.daycols{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start}}.daycard{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.daycard.drop-over{outline:2px dashed var(--primary);outline-offset:2px}.daycard h3{font-size:1.15rem}.day-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.day-input{border:none;border-bottom:1.5px solid transparent;font-family:Fraunces,serif;font-size:1.15rem;font-weight:600;color:var(--navy);background:none;flex:1;min-width:0}.day-input:focus{outline:none;border-bottom-color:var(--primary)}.targets{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--ink-soft);font-size:.85rem}.stepper{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}.stepper button{width:34px;height:34px;border:none;background:var(--surface-2);color:var(--navy);font-weight:800;font-size:1.1rem;display:grid;place-items:center}.stepper button:active{background:var(--peach)}.stepper .val{min-width:34px;text-align:center;font-weight:800}.weight{display:flex;align-items:center;gap:12px;margin:8px 0}.weight input[type=range]{flex:1;accent-color:var(--primary);height:28px}.weight .kg{font-family:Fraunces,serif;font-weight:700;font-size:1.3rem;color:var(--primary-dark);min-width:84px;text-align:right}.todo-pip{border-left:4px solid var(--accent)}.done-pip.win{border-left:4px solid var(--win);background:var(--win-soft)}.done-pip.partial{border-left:4px solid var(--partial);background:var(--partial-soft)}.done-pip.not_done{border-left:4px solid var(--ink-soft);opacity:.7}.section-label{font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;margin:18px 4px 8px}.bigprogress{height:12px;border-radius:8px;background:var(--surface-2);overflow:hidden;margin:10px 0}.bigprogress>span{display:block;height:100%;background:var(--win);transition:width .3s ease}.update-banner{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:200;background:var(--navy);color:#fff;border-radius:14px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:var(--shadow-lift)}.update-actions{display:flex;gap:8px;flex-shrink:0}.update-btn{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:800;min-height:42px}.update-dismiss{background:transparent;color:#cfd3e0;border:none;padding:10px;min-height:42px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;text-align:center}.stat .num{font-family:Fraunces,serif;font-size:2rem;font-weight:700;color:var(--primary)}.stat .lab{color:var(--ink-soft);font-weight:700;font-size:.85rem}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(90px + env(safe-area-inset-bottom));background:var(--navy);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;z-index:80;box-shadow:var(--shadow-lift);animation:fade .2s ease}
