:root{--bg:#fbf6ee;--paper:#fff;--ink:#2b2530;--muted:#7b7282;--line:#eee6da;--accent:#e5704f;--today:#fff4d6;--radius:22px;--shadow:0 1px 2px #3c28140d, 0 8px 28px -12px #3c28142e;color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-family:Nunito,system-ui,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:radial-gradient(900px 500px at 0% -10%, #ffe7d6 0%, transparent 60%), radial-gradient(800px 500px at 110% 0%, #e0f0ea 0%, transparent 55%), var(--bg);min-height:100vh;margin:0}button{font:inherit;color:inherit}h1,h2{letter-spacing:.01em;margin:0;font-family:Fredoka,Nunito,system-ui,sans-serif;font-weight:600}.page{gap:18px;max-width:1360px;margin:0 auto;padding:28px 16px 40px;display:grid}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:14px;display:flex}.logo{color:#fff;background:linear-gradient(135deg,#f08a5d,#e5596b);border-radius:18px;place-items:center;width:56px;height:56px;display:grid;transform:rotate(-4deg);box-shadow:0 8px 20px -8px #e5596bb3}h1{font-size:clamp(1.5rem,3.5vw,2.1rem);line-height:1.1}.sub{color:var(--muted);margin:4px 0 0;font-weight:600}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progress-pill{box-shadow:var(--shadow);color:var(--muted);background:#fff;border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:600}.progress-pill strong{color:var(--ink);font-size:1.05rem}.btn{cursor:pointer;border:0;border-radius:999px;padding:9px 16px;font-size:.9rem;font-weight:700;transition:transform .12s,background .15s,box-shadow .15s}.btn:active{transform:scale(.97)}.btn.ghost{box-shadow:inset 0 0 0 1.5px var(--line);background:#ffffffb3}.btn.ghost:hover{background:#fff}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover{background:#453b4d}.link{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0 0 0 6px;font-weight:800;text-decoration:underline}.card{background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow)}.palette{padding:18px 18px 20px}.palette-head{flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-bottom:14px;display:flex}.palette-head h2{font-size:1.25rem}.hint{color:var(--muted);margin:0;font-size:.92rem}.tasks{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;display:grid}.task-tile{background:var(--tint);color:var(--ink);cursor:grab;border:0;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:inset 0 0 0 2px #0000}.task-tile:hover{box-shadow:0 8px 18px -10px var(--ink), inset 0 0 0 2px transparent;transform:translateY(-2px)}.task-tile.selected{box-shadow:inset 0 0 0 3px var(--ink), 0 8px 18px -8px var(--ink);transform:translateY(-2px)}.task-tile:active{cursor:grabbing}.tile-icon{width:52px;height:52px;color:var(--ink);background:#fff;border-radius:16px;place-items:center;display:grid;box-shadow:0 2px 6px -3px #00000040}.tile-label{text-align:center;font-size:.8rem;font-weight:700;line-height:1.15}.board{padding:8px;overflow:hidden}.scroller{border-radius:calc(var(--radius) - 8px);overflow-x:auto}.grid{grid-template-columns:178px repeat(7,minmax(118px,1fr));gap:4px;min-width:1000px;display:grid}.corner,.day-head{padding:12px 8px 10px}.day-head{border-radius:14px 14px 6px 6px;flex-direction:column;align-items:center;display:flex;position:relative}.day-name{font-family:Fredoka,Nunito,sans-serif;font-size:1.02rem;font-weight:600}.day-date{color:var(--muted);font-size:.82rem;font-weight:600}.day-head.weekend .day-name{color:var(--accent)}@media screen{.day-head.today{background:var(--today)}}.today-badge{color:#4a3500;text-transform:uppercase;letter-spacing:.06em;background:#f5b82e;border-radius:999px;padding:1px 8px;font-size:.68rem;font-weight:800;position:absolute;top:-2px;right:8px}.member{z-index:2;background:color-mix(in srgb, var(--c) 14%, #fff);border-radius:14px;align-items:center;gap:12px;padding:12px 12px 12px 10px;display:flex;position:sticky;left:0}.avatar{background:var(--c);color:#fff;width:44px;height:44px;box-shadow:0 0 0 3px #fff, 0 4px 10px -4px var(--c);border-radius:50%;flex:none;place-items:center;font-family:Fredoka,Nunito,sans-serif;font-size:1.3rem;font-weight:600;display:grid}.member-info{flex:1;gap:3px;min-width:0;display:grid}.name,.name-input{border-radius:6px;margin-left:-4px;padding:0 4px;font-family:Fredoka,Nunito,sans-serif;font-size:1.1rem;font-weight:600}.name{text-align:left;cursor:text;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;overflow:hidden}.name:hover{background:#ffffffb3}.name-input{outline:2px solid var(--c);width:100%;color:inherit;background:#fff;border:0}.meter{background:#ffffffd9;border-radius:99px;height:6px;overflow:hidden}.meter span{border-radius:inherit;background:var(--c);height:100%;transition:width .3s;display:block}.count{color:var(--muted);font-size:.75rem;font-weight:700}.cell{background:color-mix(in srgb, var(--c) 5%, #fff);min-height:104px;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--c) 12%, #fff);border-radius:14px;flex-wrap:wrap;align-content:flex-start;gap:6px;padding:8px;transition:background .15s,box-shadow .15s;display:flex;position:relative}.cell.weekend{background:color-mix(in srgb, var(--c) 8%, #fcf9f4)}@media screen{.cell.today{background:color-mix(in srgb, var(--c) 6%, var(--today));box-shadow:inset 0 0 0 2px #f5d77e}}.cell.over{background:color-mix(in srgb, var(--c) 18%, #fff);box-shadow:inset 0 0 0 2.5px var(--c)}.stamping .cell:hover{box-shadow:inset 0 0 0 2.5px var(--c)}.cell-add{z-index:0;border-radius:inherit;cursor:copy;background:0 0;border:0;position:absolute;inset:0}.cell-add:focus-visible{outline:3px solid var(--c)}.stamping .cell:hover:after{content:"+";color:var(--c);pointer-events:none;font-size:1.4rem;font-weight:800;position:absolute;bottom:4px;right:8px}.chip{z-index:1;animation:.22s ease-out pop;position:relative}.chip-main{background:var(--tint);width:52px;height:52px;color:var(--ink);cursor:pointer;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--ink) 18%, transparent);border:0;border-radius:15px;place-items:center;transition:transform .12s,opacity .2s,filter .2s;display:grid}.chip-main:hover{transform:scale(1.06)}.chip.done .chip-main{opacity:.45;filter:saturate(.4)}.check{color:#fff;pointer-events:none;background:#2fa36b;border-radius:50%;place-items:center;width:20px;height:20px;animation:.25s ease-out pop;display:grid;position:absolute;bottom:-4px;left:-4px;box-shadow:0 0 0 2px #fff}.chip-x{background:var(--ink);color:#fff;cursor:pointer;opacity:0;border:0;border-radius:50%;place-items:center;width:20px;height:20px;padding:0;font-size:14px;line-height:1;transition:opacity .12s,transform .12s;display:grid;position:absolute;top:-6px;right:-6px;transform:scale(.7)}.chip:hover .chip-x,.chip-x:focus-visible{opacity:1;transform:scale(1)}@media (hover:none){.chip-x{opacity:.55;transform:scale(.85)}}.chip[draggable=true]{cursor:grab}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.foot{text-align:center;color:var(--muted);padding:0 12px;font-size:.82rem}:focus-visible{outline-offset:2px;outline:3px solid #f5b82e}@media (width<=640px){.page{padding-top:18px}.logo{width:46px;height:46px}.grid{grid-template-columns:132px repeat(7,minmax(104px,1fr));min-width:860px}.member{gap:8px;padding:10px 8px}.avatar{width:34px;height:34px;font-size:1rem}.tasks{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{@page{size:A4 landscape;margin:10mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.page{gap:10px;max-width:none;padding:0}.actions,.hint,.chip-x,.foot,.today-badge{display:none!important}.card{box-shadow:none}.board{order:1;padding:0}.palette{order:2;padding:0}.palette-head{margin-bottom:6px}.palette-head h2{font-size:1rem}.tasks{grid-template-columns:repeat(11,1fr);gap:4px}.task-tile{border-radius:10px;padding:6px 2px}.tile-icon{border-radius:10px;width:38px;height:38px}.tile-label{font-size:.62rem}.scroller{overflow:visible}.grid{grid-template-columns:150px repeat(7,1fr);min-width:0}.member{gap:8px;padding:8px}.avatar{width:32px;height:32px;font-size:1rem}.cell{min-height:70px}.chip,.check{animation:none}}
