:root{--accent: #0b3b26;--accent-2: #03140c;--text: #03140c;--bg: #f4faf6;--card: #ffffff;--accent-soft: #cff3dd;--accent-mid: #3f7d5c;--good: #22b455;--prog: #2f6cb0;--prog-soft: #e4eef8;--warn: #d97706;--warn-text: #b45309;--warn-soft: #fdf1e0;--bad: #dc2626;--bad-text: #b91c1c;--bad-soft: #fde8e8;--muted: #5b6b62;--line: #dde9e2;--fill: #e6eee9;--radius: 14px;--shadow: 0 1px 2px rgba(3, 20, 12, .05), 0 4px 16px rgba(3, 20, 12, .05);--glass-bg: rgba(244, 250, 246, .74);--glass-tint: rgba(207, 243, 221, .18);--glass-edge: rgba(255, 255, 255, .75);--glass-blur: blur(18px) saturate(180%);--glass-shadow: 0 8px 28px rgba(3, 20, 12, .14), 0 1px 3px rgba(3, 20, 12, .08);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.47;font-optical-sizing:auto;text-size-adjust:100%;-webkit-text-size-adjust:100%;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body.no-scroll{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0;text-align:inherit}h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.01em}button{touch-action:manipulation;-webkit-user-select:none;user-select:none}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:14px}.center{text-align:center}.bad{color:var(--bad)}.pre{white-space:pre-wrap}.layout{min-height:100vh;min-height:100dvh;display:flex}.sidebar{display:none}.main{flex:1;min-width:0;display:flex;flex-direction:column}.content{padding:16px 16px calc(112px + var(--safe-bottom));width:100%;max-width:980px;margin:0 auto}.glass{background:linear-gradient(180deg,#ffffff47,#fff0 55%),var(--glass-tint),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 0 var(--glass-edge),inset 0 0 0 .5px #ffffff59,var(--glass-shadow)}html.lg-refract .bottom-nav,html.lg-refract .fab,html.lg-refract .toast{-webkit-backdrop-filter:url(#lg-refract) blur(14px) saturate(190%);backdrop-filter:url(#lg-refract) blur(14px) saturate(190%)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + var(--safe-top)) 16px 12px;background:linear-gradient(180deg,#f4faf6e6,#f4faf6a8);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:box-shadow .2s ease}html.scrolled .topbar{box-shadow:inset 0 -.5px #fffc,0 1px #0b3b260f,0 10px 18px -14px #03140c4d}.topbar-title{font-size:28px;font-weight:700;line-height:1.1;letter-spacing:-.022em}.topbar-date{color:var(--muted);font-size:13px}.bottom-nav{position:fixed;z-index:20;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(10px + var(--safe-bottom));max-width:460px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding:5px;border-radius:30px}.bottom-nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:54px;padding:6px 0 5px;border-radius:25px;font-size:12px;font-weight:600;color:var(--muted);transition:transform .22s cubic-bezier(.2,.9,.25,1),background-color .16s ease,color .16s ease}.bottom-nav button.active{color:var(--accent);font-weight:700;background:#cff3ddb8;box-shadow:inset 0 1px #ffffffb3}.bottom-nav button:active{transform:scale(1.06);background:#ffffffb3;transition-duration:80ms}@media(min-width:900px){.sidebar{display:flex;flex-direction:column;gap:6px;width:250px;flex-shrink:0;padding:20px 14px;background:#e6f1ea;position:sticky;top:0;height:100vh;height:100dvh}.bottom-nav,.topbar-me{display:none}.content{padding:8px 28px 48px}.topbar{padding:22px 28px 14px}}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand-name{font-weight:700;font-size:17px;letter-spacing:-.01em}.brand-sub{font-size:12px;color:var(--muted)}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}.side-nav button{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:#2c3d34;font-weight:500}.side-nav button.active{background:#fff;color:var(--accent);font-weight:650;box-shadow:0 1px 2px #03140c0f}.side-me{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px}.side-me.active{background:#fff}.side-me span{display:flex;flex-direction:column;min-width:0}.side-me b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-me small{color:var(--muted);font-size:12px}.demo-banner{margin:0 16px;padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--accent-soft) 60%,white);color:var(--accent);font-size:13px}@media(min-width:900px){.demo-banner{margin:0 28px 8px}}.stack{display:flex;flex-direction:column;gap:14px}.stack.narrow{max-width:620px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.card-head h3{font-size:16px;display:flex;align-items:center;gap:6px}.list{display:flex;flex-direction:column;gap:8px}.avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;color:#fff;font-weight:600;letter-spacing:.02em}.task-swipe{--swipe: 0;position:relative;border-radius:14px;isolation:isolate}.task-swipe.can-swipe{touch-action:pan-y}.task-swipe-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:14px;display:flex;align-items:center;gap:10px;padding-left:18px;font-weight:700;font-size:16px;color:var(--accent-2);background:color-mix(in srgb,var(--good) calc(var(--swipe) * 100%),var(--accent-soft));opacity:min(1,calc(var(--swipe) * 20))}.task-swipe-ic{display:inline-flex;width:30px;height:30px;border-radius:50%;align-items:center;justify-content:center;background:#ffffff8c;transform:scale(calc(.7 + var(--swipe) * .3))}.task-swipe.armed .task-swipe-ic{background:#fff}.task-card{position:relative;display:flex;align-items:stretch;width:100%;min-height:64px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;will-change:transform}.task-swipe.swiping .task-card{box-shadow:0 6px 18px #03140c1f}.task-card.is-done .task-title{color:var(--muted);text-decoration:line-through;text-decoration-color:#5b6b6299}.prio-bar{align-self:stretch;width:4px;flex-shrink:0;background:#c9dbd0}.task-check{flex-shrink:0;width:52px;display:flex;align-items:center;justify-content:center}.task-check span{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid #9fb8a9;color:transparent;background:#fff;transition:transform .22s cubic-bezier(.2,.9,.25,1),background-color .16s ease,border-color .16s ease,color .16s ease}.task-check.on span{background:var(--good);border-color:var(--good);color:var(--accent-2)}.task-check:active span{transform:scale(.86);transition-duration:60ms}.task-check-gap{width:14px;flex-shrink:0}.task-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:12px 14px 12px 0;text-align:left}.prio-bar.pr-high{background:var(--bad)}.prio-bar.pr-low{background:#e2ebe5}.task-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.task-title{font-weight:600;font-size:16px;line-height:1.35}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;font-size:13px;font-weight:600}.st-new{background:var(--fill);color:#33443b}.st-progress{background:var(--prog-soft);color:var(--prog)}.st-done{background:var(--good);color:var(--accent-2)}.pr-high{background:var(--bad-soft);color:var(--bad-text)}.pr-normal{background:var(--fill);color:#33443b}.pr-low{background:#eff4f1;color:var(--muted)}.due{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:var(--muted)}.due-overdue{color:var(--bad)}.due-today,.due-soon{color:var(--warn-text)}.due-today svg,.due-soon svg{color:var(--warn)}.due-done{color:var(--muted)}.occ{display:flex;align-items:center;gap:14px;width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:#fff}.occ-time{--kc: var(--accent);font-weight:700;font-variant-numeric:tabular-nums;color:var(--kc);background:color-mix(in srgb,var(--kc) 10%,white);padding:6px 9px;border-radius:9px;font-size:14px;box-shadow:inset 3px 0 0 var(--kc)}.occ-main b+.kind-badge{margin-top:3px}.occ-main{align-items:flex-start}.occ-main{flex:1;min-width:0;display:flex;flex-direction:column}.empty{text-align:center;padding:18px 8px;display:flex;flex-direction:column;gap:6px;align-items:center}.empty-title{font-weight:600}.hero{display:flex;flex-direction:column;gap:10px}.hero-hello{font-size:18px;font-weight:600}.hero-card{display:flex;flex-direction:column;gap:6px;width:100%;padding:18px;border-radius:18px;color:#fff;background:linear-gradient(135deg,var(--accent-2) 0%,var(--accent) 50%,var(--accent-mid) 100%);border-bottom:3px solid var(--accent-soft);box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 30%,transparent)}.hero-card.is-empty{background:#fff;color:var(--muted);box-shadow:var(--shadow);border-bottom:0}.occ.is-past{opacity:.55}.attention .card-head h3{color:var(--bad)}.hero-label{font-size:13px;opacity:.85}.hero-title{font-size:22px;font-weight:700;line-height:1.15;letter-spacing:-.018em}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;opacity:.95}.hero-meta svg:not(:first-child){margin-left:8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);text-align:left}.stat b{font-size:26px;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat span{font-size:14px;color:var(--muted)}.stat.bad b{color:var(--bad)}.stat.good b{color:var(--text);display:inline-flex;align-items:center;gap:6px}.stat.good b:after{content:"";width:20px;height:20px;border-radius:50%;flex-shrink:0;background:var(--good) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2303140C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat}.quick{display:flex;gap:10px}.quick .btn{flex:1}.week-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.week-title{font-weight:600;display:flex;gap:10px;align-items:baseline}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.wday{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;border-radius:12px;border:1px solid transparent}.wday-name{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.wday-num{font-size:17px;font-weight:600}.wday.today .wday-num{color:var(--accent)}.wday.sel{background:var(--accent);border-color:var(--accent)}.wday.sel .wday-name,.wday.sel .wday-num{color:#fff}.dots{display:flex;gap:3px;height:5px}.dots i{width:5px;height:5px;border-radius:50%;background:var(--accent)}.wday.sel .dots i{background:#fff}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.toolbar select,.toolbar .search{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:16px}.toolbar .search{flex:1;min-width:140px}.seg{display:inline-flex;background:var(--fill);border-radius:10px;padding:3px}.seg button{min-height:40px;padding:6px 16px;border-radius:8px;font-weight:500;color:#33443b}.seg button.on{background:#fff;color:var(--text);box-shadow:0 1px 3px #00000014}form .seg{display:flex;margin-bottom:14px}form .seg button{flex:1;text-align:center}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chips button{white-space:nowrap;min-height:40px;padding:8px 14px;border-radius:99px;background:#fff;border:1px solid var(--line);font-size:14px}.chips button b{margin-left:4px;color:var(--muted)}.chips button.warn b{color:var(--bad)}.chips button.on{background:var(--accent);border-color:var(--accent);color:#fff}.chips button.on b{color:var(--accent-soft)}.chips button.on.warn b{color:#fff}.small-chips{margin:-6px 0 14px;flex-wrap:wrap}.small-chips button{padding:4px 10px;font-size:13px}.person{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.person:last-child{border-bottom:0}.person-main{flex:1 1 200px;min-width:0;display:flex;flex-direction:column}.person-stats{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted);margin-top:2px}.person-stats span{white-space:nowrap}.person-stats b{color:var(--text)}.person-stats .bad b{color:var(--bad)}@media(max-width:560px){.person .btn{margin-left:54px}}.profile-head{display:flex;align-items:center;gap:14px}.perm-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:14px}.switch{display:flex;align-items:center;gap:10px;margin-bottom:12px;cursor:pointer}.switch input{width:20px;height:20px;accent-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:46px;padding:0 18px;border-radius:11px;background:#fff;border:1px solid var(--line);font-weight:600}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-sm{height:40px;padding:0 14px;font-size:14px}.btn-block{width:100%}.btn-danger-ghost{color:var(--bad)}.icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.link-btn{color:var(--accent);font-size:14px;font-weight:500;padding:8px 0}.fab{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(86px + var(--safe-bottom));z-index:15;width:58px;height:58px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ffffff38,#fff0 50%),#0b3b26d6;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px #ffffff73,inset 0 0 0 .5px #ffffff40,0 10px 24px #0b3b2652,0 2px 6px #03140c2e}@media(min-width:900px){.fab{bottom:28px;right:28px}}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;flex:1;min-width:0}.field-label{font-size:13px;font-weight:600;color:#2c3d34}.field-hint{font-size:12px;color:var(--muted)}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid #cbdad1;border-radius:10px;background:#fff;font-size:16px}.field input,.field select{height:44px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.toolbar .search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.row{display:flex;gap:10px}.note{background:var(--accent-soft);color:var(--accent);padding:10px 12px;border-radius:10px;font-size:14px}.error{background:var(--bad-soft);color:var(--bad-text);padding:10px 12px;border-radius:10px;font-size:14px}.modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f142366;opacity:0}.modal{position:relative;width:100%;max-height:92vh;max-height:92dvh;background:linear-gradient(180deg,#ffffff80,#fff0 120px),#fafdfbe0;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border-radius:26px 26px 0 0;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom);box-shadow:inset 0 1px #ffffffe6,0 -10px 40px #03140c2e;transform:translate3d(0,100%,0);will-change:transform}.modal[data-mode=dialog],.modal[data-mode=fade]{transform:none;opacity:0}.modal-head{position:relative;display:flex;align-items:center;justify-content:space-between;padding:18px 16px 8px;touch-action:none;-webkit-user-select:none;user-select:none}.modal.dragging,.modal.dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing}.modal-head h2{font-size:17px;letter-spacing:-.01em}.grabber{position:absolute;top:7px;left:50%;width:38px;height:5px;margin-left:-19px;border-radius:3px;background:#c3d3ca}.modal-body{padding:4px 16px 18px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(min-width:640px){.modal-root{align-items:center}.modal{max-width:560px;border-radius:26px;max-height:88vh;box-shadow:inset 0 1px #ffffffe6,0 24px 60px #03140c40}.grabber{display:none}.modal-head{padding-top:14px;touch-action:auto}}.detail-title{font-size:22px;line-height:1.15;letter-spacing:-.018em;margin-bottom:10px}.facts{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:14px 0;font-size:14px}.facts dt{color:var(--muted);display:flex;align-items:center}.facts dd{margin:0;display:flex;align-items:center;gap:6px}.section-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;margin:16px 0 8px}.agenda{background:var(--bg);padding:10px 12px;border-radius:10px;margin:0}.status-seg{position:relative;display:grid;grid-template-columns:repeat(3,1fr);background:var(--fill);border-radius:12px;padding:3px;margin-bottom:10px}.status-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / 3);background:#fff;border-radius:9px;box-shadow:0 1px 3px #0000001a,0 0 0 .5px #0000000a;transition:transform .32s cubic-bezier(.2,.9,.25,1)}.status-seg button{position:relative;z-index:1;height:38px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:14px;font-weight:600;color:#33443b;border-radius:9px}.status-seg button.on{color:var(--text)}.status-seg button:nth-child(3).on{color:var(--prog)}.status-seg button:last-child.on{color:var(--accent-2)}.status-seg button:last-child.on svg{color:var(--accent-2);background:var(--good);border-radius:50%;padding:2px}.detail-actions{display:flex;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 15% 0%,color-mix(in srgb,var(--accent-soft) 80%,transparent) 0,transparent 55%),radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--accent-mid) 22%,transparent) 0,transparent 45%),var(--bg)}.login-card{width:100%;max-width:400px;background:#fff;border-radius:22px;padding:28px 22px;box-shadow:var(--shadow)}.login-brand{text-align:center;margin-bottom:20px}.login-brand h1{font-size:26px;margin:10px 0 4px}.login-card .note{margin-bottom:14px}.login-card .link-btn{display:block;margin:10px auto 0}.splash{min-height:100vh;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center}.splash img{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{transform:scale(.92);opacity:.7}}.toast{--tx: 0;position:fixed;left:16px;z-index:100;bottom:calc(92px + var(--safe-bottom));max-width:calc(100% - 110px);display:flex;align-items:center;gap:14px;min-height:48px;padding:8px 8px 8px 18px;border-radius:24px;background:linear-gradient(180deg,#ffffff24,#fff0 60%),#03140cdb;color:#fff;font-size:15px;font-weight:500;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px #ffffff47,0 12px 32px #03140c47;transform:translate(var(--tx));animation:toast-in .38s cubic-bezier(.2,.9,.25,1) both}.toast.leaving{animation:toast-out .2s cubic-bezier(.75,0,.8,.1) both}.toast-err{background:#dc2626f2}.toast-action{color:var(--accent-soft);font-weight:700;white-space:nowrap;min-height:36px;padding:0 14px;border-radius:18px;background:#ffffff1a}.toast-action:active{background:#ffffff38}@keyframes toast-in{0%{transform:translate(var(--tx),24px);opacity:0}}@keyframes toast-out{to{transform:translate(var(--tx),24px);opacity:0}}@media(min-width:900px){.toast{--tx: -50%;left:50%;bottom:28px;max-width:480px}}.btn,.task-open,.occ,.stat,.wday,.chips button,.seg button,.fab,.hero-card,.icon-btn,.side-nav button,.side-me,.link-btn,.toast-action{transition:transform .16s cubic-bezier(.2,.9,.25,1),background-color .16s ease,border-color .16s ease}.btn:active,.occ:active,button.stat:active,.chips button:active,.seg button:active,.hero-card:active,.icon-btn:active,.side-nav button:active,.side-me:active,.toast-action:active{transform:scale(.97);transition-duration:60ms}.wday:active{transform:scale(.92);transition-duration:60ms}.fab:active{transform:scale(1.07);background:linear-gradient(180deg,#ffffff4d,#ffffff0f),#0b3b26cc;transition-duration:80ms}.task-card:has(.task-open:active),.occ:active{background:#f3f9f5}.btn:active{background:#eef5f0}.btn-primary:active{background:var(--accent-2)}@media(hover:hover)and (pointer:fine){.task-card:has(.task-open:hover),.occ:hover,.btn:hover{border-color:#b9d3c3}.fab:hover{background:linear-gradient(180deg,#ffffff47,#ffffff05 55%),#0b3b26d6}.bottom-nav button:hover:not(.active){background:#ffffff73}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-danger-ghost:hover{background:var(--bad-soft);border-color:var(--bad-soft)}.icon-btn:hover,.wday:hover:not(.sel){background:var(--bg)}.side-nav button:hover:not(.active),.side-me:hover:not(.active){background:#fff9}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}.toast{animation:fade-in .2s ease both!important}.toast.leaving{animation:fade-out .15s ease both!important}.status-thumb{transition:none}.splash img{animation:none}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@media(prefers-reduced-transparency:reduce){.topbar{background:var(--bg)}.bottom-nav,.glass,.modal{background:#fff}.fab{background:var(--accent)}.toast{background:var(--accent-2)}.topbar,.bottom-nav,.glass,.modal,.fab,.toast{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}@media(prefers-contrast:more){:root{--muted: #3d4a43;--line: #8fa598}.topbar,.bottom-nav,.glass,.modal{background:#fff}.fab{background:var(--accent)}.toast{background:var(--accent-2)}.topbar,.bottom-nav,.glass,.modal,.fab,.toast{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.topbar{border-bottom:1px solid #5b6b62}.bottom-nav{border:1.5px solid #3d4a43;box-shadow:none}.bottom-nav button.active{background:var(--accent);color:#fff;box-shadow:none}.modal{border:1.5px solid #3d4a43}.fab,.toast{border:1.5px solid #fff;outline:1.5px solid var(--accent-2)}.card,.stat{border:1px solid #8fa598}}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;padding:20px;display:flex;align-items:center;justify-content:center;background:#0f142366;animation:fade-in .16s ease both}.confirm-box{background:#fff;border-radius:18px;padding:20px;width:100%;max-width:360px;box-shadow:0 24px 60px #0f142340;animation:pop-in .26s cubic-bezier(.2,.9,.25,1) both}@keyframes pop-in{0%{transform:scale(.94);opacity:0}}.confirm-box p{margin:0 0 16px;font-weight:600;font-size:16px}.confirm-btns{display:flex;gap:8px}.confirm-btns .btn{flex:1}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:active{background:#b91c1c}.modal[data-mode=panel]{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:24px 0 0 24px;transform:translate3d(100%,0,0);box-shadow:inset 1px 0 #ffffffe6,-18px 0 50px #03140c29,-1px 0 #03140c0f;overscroll-behavior-x:none}.modal[data-mode=panel] .modal-head{padding:22px 20px 10px;touch-action:none;cursor:grab}.modal[data-mode=panel] .modal-body{padding:4px 20px 24px;flex:1}.modal-root:has(.modal[data-mode=panel]) .modal-backdrop{background:#0f142338}.modal[data-mode=panel] .modal-head h2:after{content:attr(data-hint);display:block;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:0}.install-card{background:linear-gradient(135deg,#e9f7ee,#fff)}.install-steps{margin:0 0 8px;padding-left:20px;display:flex;flex-direction:column;gap:6px}.ios-share{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:13px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:linear-gradient(135deg,var(--accent-mid),var(--accent) 55%,var(--accent-2));color:#fff;font-weight:800;letter-spacing:-.03em;box-shadow:inset 0 -3px 0 var(--accent-soft),inset 0 1px #ffffff40}.brand-logo{display:block;width:auto;max-width:160px;object-fit:contain}.brand{align-items:center}.brand-name{font-weight:800;letter-spacing:.01em}.login-network{margin-top:12px;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.login-brand h1{margin-top:2px}.login-brand .brand-mark,.login-brand .brand-logo{margin:0 auto}.splash .brand-mark{animation:pulse 1.2s ease-in-out infinite}.kind-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 7px;border-radius:99px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;width:fit-content}.kind-badge i{width:6px;height:6px;border-radius:50%}.kind-picker{display:flex;flex-wrap:wrap;gap:6px}.kind-picker button{--kc: var(--accent);display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:13.5px;font-weight:600;color:#2c3d34}.kind-picker button i{width:8px;height:8px;border-radius:50%;background:var(--kc)}.kind-picker button.on{border-color:var(--kc);background:color-mix(in srgb,var(--kc) 10%,white);color:var(--kc)}.kind-picker button:active{transform:scale(.96)}.team-summary{padding:0 4px}.team-summary b{color:var(--text)}.role-pill{display:inline-block;margin-left:6px;padding:0 7px;border-radius:99px;font-size:11px;font-weight:700;background:var(--accent-soft);color:var(--accent)}.section-title{font-size:14px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 4px}.count{min-width:26px;height:26px;padding:0 8px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:var(--fill);color:#33443b;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.count-bad{background:var(--bad-soft);color:var(--bad-text)}.hello{display:flex;flex-direction:column;gap:4px;padding:2px 4px 0}.hello-name{font-size:22px;font-weight:700;letter-spacing:-.015em}.hello-sum{margin:0;font-size:17px;color:#2c3d34}.hello-sum.is-bad{color:var(--bad);font-weight:600}.done-week{display:inline-flex;align-items:center;gap:8px;margin-top:6px;font-size:15px;color:#2c3d34}.done-week b{font-variant-numeric:tabular-nums}.done-dot{width:22px;height:22px;border-radius:50%;background:var(--good);color:var(--accent-2);display:inline-flex;align-items:center;justify-content:center}.task-group .card-head h3{font-size:17px}.grp-overdue .card-head h3{color:var(--bad)}.grp-overdue .count{background:var(--bad-soft);color:var(--bad-text)}.grp-today .card-head h3{color:var(--warn-text)}.grp-today .count{background:var(--warn-soft);color:#92400e}.disclose{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:16px}.disclose-ic{color:var(--muted);transform:rotate(90deg);transition:transform .22s cubic-bezier(.2,.9,.25,1)}.disclose-ic.open{transform:rotate(-90deg)}.load{display:flex;flex-direction:column}.load-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 4px;border-bottom:1px solid var(--line);border-radius:10px}.load-row:last-child{border-bottom:0}.load-row:active{background:#f3f9f5}.load-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.load-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.load-bar{height:6px;border-radius:3px;background:var(--fill);overflow:hidden}.load-bar i{display:block;height:100%;border-radius:3px;background:var(--accent-mid)}.load-nums{display:flex;flex-direction:column;align-items:flex-end;font-size:14px;color:var(--muted);white-space:nowrap}.load-nums b{color:var(--text);font-size:17px;font-variant-numeric:tabular-nums}.load-late{color:var(--bad);font-weight:600;font-size:13px}.fab{transition:transform .22s cubic-bezier(.2,.9,.25,1),background-color .16s ease}.fab svg{transition:transform .26s cubic-bezier(.2,.9,.25,1)}.fab.open svg{transform:rotate(45deg)}.fab-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:14;background:#03140c2e;animation:fade-in .16s ease both}.fab-menu{position:fixed;z-index:16;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(154px + var(--safe-bottom));display:flex;flex-direction:column;padding:6px;border-radius:22px;min-width:210px;transform-origin:calc(100% - 29px) calc(100% + 39px);animation:menu-in .26s cubic-bezier(.2,.9,.25,1) both}.fab-menu button{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 16px;border-radius:16px;font-size:17px;font-weight:600;color:var(--accent-2);transition:transform .16s cubic-bezier(.2,.9,.25,1),background-color .12s ease}.fab-menu button svg{color:var(--accent-mid)}.fab-menu button:active{transform:scale(1.03);background:#ffffffbf}@media(hover:hover)and (pointer:fine){.fab-menu button:hover{background:#fff9}}@keyframes menu-in{0%{transform:scale(.6);opacity:0;filter:blur(4px)}}@media(min-width:900px){.fab-menu{bottom:98px;right:28px}}.empty{padding:22px 12px;gap:8px}.empty-icon{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);margin-bottom:2px}.empty-title{font-size:17px}.empty .muted{max-width:340px;font-size:15px}.hero-card.is-empty{gap:4px}.hero-card.is-empty .muted{font-size:15px}.card-head h3{font-size:17px}.occ-time{text-align:center;line-height:1.2}@media(prefers-reduced-motion:reduce){.fab-menu{animation:fade-in .15s ease both!important}.fab.open svg{transform:none}}@media(prefers-reduced-transparency:reduce){.fab-menu{background:#fff;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}@media(prefers-contrast:more){.fab-menu{background:#fff;border:1.5px solid #3d4a43;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.task-check span{border-color:#3d4a43}}.badge.st-items{background:var(--fill);color:#33443b;gap:4px}.badge.st-items.all{background:var(--accent-soft);color:var(--accent)}.badge.st-req{background:var(--warn-soft);color:#92400e}.badge.st-thanks{background:var(--accent-soft);color:var(--accent)}.thanks-note{display:flex;align-items:center;gap:8px;margin:4px 0 14px;padding:12px 14px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-weight:600}.thanks-note svg,.btn-thanks svg{color:var(--accent-mid)}.btn-thanks{color:var(--accent);border-color:#b9d3c3;background:#fff;margin-bottom:14px}.btn-thanks.btn-sm{margin-bottom:0;flex-shrink:0}.btn-thanks:active{background:var(--accent-soft)}.checklist{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}.check-item{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 8px;border-radius:10px;cursor:pointer}.check-item input{position:absolute;opacity:0;width:1px;height:1px}.check-box{width:24px;height:24px;flex-shrink:0;border-radius:7px;border:2px solid #9fb8a9;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;transition:background-color .14s ease,border-color .14s ease,transform .2s cubic-bezier(.2,.9,.25,1)}.check-item.on .check-box{background:var(--good);border-color:var(--good);color:var(--accent-2)}.check-item.on>span:last-child{color:var(--muted);text-decoration:line-through}.check-item:active .check-box{transform:scale(.88)}.check-item input:focus-visible+.check-box{outline:3px solid var(--accent-soft);outline-offset:2px}.check-item input:disabled~*{cursor:default}@media(hover:hover)and (pointer:fine){.check-item:hover{background:#f3f9f5}}.checklist-edit{display:flex;flex-direction:column;gap:6px}.checklist-edit-row{display:flex;gap:6px;align-items:center}.checklist-edit-row input{flex:1}.checklist-edit-row .icon-btn{flex-shrink:0;color:var(--muted)}.checklist-edit-row .icon-btn:disabled{opacity:.35}.due-preview{margin:-4px 0 14px;font-size:14px;color:var(--muted)}.due-preview b{color:var(--text)}.load-hint{margin:-8px 0 14px;font-size:14px;color:var(--muted)}.load-hint.is-heavy{color:#92400e;font-weight:600}.small-chips+.small-chips{margin-top:-8px}.req-card{margin:4px 0 14px;padding:14px;border-radius:14px;background:var(--warn-soft);border:1px solid #f6dcb4}.req-card.mine{background:#fff;border-color:var(--line)}.req-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#92400e}.req-card.mine .req-head{color:var(--text);font-weight:600}.req-head svg{flex-shrink:0}.req-dates{font-size:15px;margin-bottom:4px}.req-dates s,.req-row s{color:var(--muted)}.req-reason{margin:0 0 12px;color:#2c3d34}.req-card .field{margin-bottom:10px}.req-card .link-btn{padding-bottom:0}.req-entry{margin-bottom:4px}.count-req{background:var(--warn-soft);color:#92400e}.req-row{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px}.req-row-main,.thank-row-main{display:flex;align-items:flex-start;gap:12px;text-align:left}.req-row-main>span,.thank-row-main>span{display:flex;flex-direction:column;gap:2px;min-width:0}.req-row .req-reason{margin:2px 0 0;color:#2c3d34}.req-actions{display:flex;gap:8px;padding-left:44px}.req-actions .btn{flex:1}.thank-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.thank-row:last-child{border-bottom:0}.thank-row-main{flex:1;min-width:0}.thank-row-main b{display:block;overflow:hidden;text-overflow:ellipsis}.progress{display:flex;flex-direction:column;gap:6px}.progress-text{font-size:15px;font-weight:600}.progress.all .progress-text{color:var(--accent)}.progress-bar{height:8px;border-radius:4px;background:var(--fill);overflow:hidden}.progress-bar i{display:block;height:100%;border-radius:4px;background:var(--accent-mid);transition:width .4s cubic-bezier(.2,.9,.25,1)}.progress.all .progress-bar i{background:var(--good)}.occ-prog{color:var(--accent-mid);font-weight:600}.team-week{display:flex;align-items:center;gap:14px}.team-week b{font-size:17px}.done-dot.big{width:40px;height:40px;flex-shrink:0}.person-stats .good-stat b{color:var(--accent)}.migrate-banner{background:var(--warn-soft);color:#92400e}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;animation:celebrate-out .4s ease 2s both}.celebrate-check{width:92px;height:92px;border-radius:50%;background:var(--good);color:var(--accent-2);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px #22b4552e,0 16px 40px #03140c40;animation:celebrate-pop .62s cubic-bezier(.34,1.56,.64,1) both}.celebrate-text{padding:10px 18px;border-radius:99px;background:#fff;color:var(--accent-2);font-weight:700;font-size:17px;box-shadow:0 8px 24px #03140c29;animation:celebrate-rise .42s cubic-bezier(.2,.9,.25,1) .16s both}.celebrate-burst{position:absolute;width:0;height:0;top:50%;left:50%;margin-top:-40px}.celebrate-burst i{position:absolute;width:10px;height:10px;margin:-5px;border-radius:50%;background:var(--accent-mid);opacity:0;transform:rotate(calc(var(--i) * 36deg)) translateY(0);animation:celebrate-burst .76s cubic-bezier(.2,.9,.25,1) .12s both}.celebrate-burst i:nth-child(odd){background:var(--good);width:8px;height:8px}.celebrate-burst i:nth-child(3n){background:var(--accent-soft)}@keyframes celebrate-pop{0%{transform:scale(.3);opacity:0}}@keyframes celebrate-rise{0%{transform:translateY(12px);opacity:0}}@keyframes celebrate-burst{0%{opacity:1;transform:rotate(calc(var(--i) * 36deg)) translateY(-30px) scale(1)}to{opacity:0;transform:rotate(calc(var(--i) * 36deg)) translateY(-110px) scale(.4)}}@keyframes celebrate-out{to{opacity:0}}@media(prefers-reduced-motion:reduce){.celebrate-burst{display:none}.celebrate-check,.celebrate-text{animation:fade-in .2s ease both!important}.celebrate{animation:celebrate-out .3s ease 2s both!important}}.login-lang{display:flex;width:fit-content;margin:-8px 0 14px auto}.login-lang button,.onb-lang button{min-height:36px;padding:4px 14px;font-weight:600}.lang-seg{display:flex}.lang-seg button{flex:1;text-align:center;min-height:44px;font-weight:600}.tips-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.onb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:85;display:flex;flex-direction:column;padding:calc(14px + var(--safe-top)) 0 calc(18px + var(--safe-bottom));background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--accent-soft) 85%,transparent) 0,transparent 55%),radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--accent-mid) 18%,transparent) 0,transparent 50%),var(--bg);animation:fade-in .22s ease both}.onb-top{display:flex;align-items:center;justify-content:space-between;padding:0 20px;max-width:520px;width:100%;margin:0 auto}.onb-skip{font-size:16px;padding:10px 4px;min-height:44px}.onb-track{flex:1;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.onb-track::-webkit-scrollbar{display:none}.onb-slide{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 32px;gap:14px}.onb-art{margin-bottom:14px}.onb-icon{width:132px;height:132px;border-radius:40px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(145deg,var(--accent-mid),var(--accent) 60%,var(--accent-2));box-shadow:inset 0 1px #ffffff4d,inset 0 -4px 0 var(--accent-soft),0 18px 40px #0b3b2640}.onb-title{font-size:26px;line-height:1.15;letter-spacing:-.02em;max-width:420px}.onb-text{margin:0;font-size:17px;line-height:1.5;color:#2c3d34;max-width:400px}.onb-bottom{display:flex;flex-direction:column;align-items:center;gap:18px;padding:0 24px;max-width:520px;width:100%;margin:0 auto}.onb-dots{display:flex;gap:8px}.onb-dots i{width:8px;height:8px;border-radius:4px;background:#b9d3c3;transition:width .26s cubic-bezier(.2,.9,.25,1),background-color .2s ease}.onb-dots i.on{width:24px;background:var(--accent)}.onb-next{height:52px;font-size:17px}@media(prefers-reduced-motion:reduce){.onb-dots i{transition:none}}
