:root{--paper:#f7f5ef;--ink:#28352d;--muted:#899087;--green:#536f59;--line:#e6e3da;--peach:#f1e0d2;--yellow:#e9c875;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#eeece5;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.app-shell{width:min(100%,470px);min-height:100vh;margin:0 auto;background:var(--paper);padding:0 27px 28px;box-shadow:0 14px 70px #24281d12;overflow:hidden}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.01em}.brand-mark{height:27px;width:27px;display:grid;place-items:center;border-radius:9px;background:var(--green);color:#fff;font:600 15px var(--serif);position:relative}.brand-mark span{font:700 10px var(--sans);color:#ead18d;margin-left:-2px}.avatar-pair{display:flex;border:0;background:none;padding:0 3px;cursor:pointer}.avatar{display:grid;place-items:center;width:29px;height:29px;border:2px solid var(--paper);border-radius:50%;font-weight:700;font-size:10px}.avatar-a{background:#e6c6ae;color:#654e3d}.avatar-b{background:#b8c6ad;color:#3f5941;margin-left:-8px}.welcome{padding:22px 0 25px;border-bottom:1px solid var(--line);position:relative}.date-label,.eyebrow{font-size:9px;letter-spacing:.18em;font-weight:700;color:#8b9287}.welcome h1{font:500 36px/1.12 var(--serif);letter-spacing:-.035em;margin:14px 0 9px}.welcome h1 em{color:var(--green);font-weight:500}.welcome-copy{margin:0;color:#7f857c;font-size:12px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:24px}.day{height:56px;border:1px solid transparent;background:transparent;border-radius:14px;color:#777e76;font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.day span:first-child{font-size:9px;font-weight:600;letter-spacing:.05em}.day span:last-child{font-size:13px;font-weight:600;color:var(--ink)}.day.selected{background:var(--green);color:#dce5d9}.day.selected span:last-child{color:#fff}.day.today:not(.selected){border-color:#cbd3c7}.day-heading{display:flex;align-items:flex-end;justify-content:space-between;padding:24px 0 15px}.eyebrow{margin:0 0 7px}.day-heading h2{font:500 25px var(--serif);margin:0;letter-spacing:-.025em}.task-count{font:500 10px var(--sans);color:#9a9e95;margin-left:5px;vertical-align:middle}.add-button{border:0;background:var(--green);color:white;border-radius:22px;padding:10px 14px;font:600 11px var(--sans);cursor:pointer;box-shadow:0 4px 10px #536f5922}.add-button span{font-size:15px;vertical-align:-1px;margin-right:4px}.filters{display:flex;gap:7px;padding:0 0 14px;overflow:auto;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{white-space:nowrap;border:1px solid var(--line);border-radius:18px;background:transparent;padding:7px 11px;color:#797f77;font:500 10px var(--sans);cursor:pointer}.filter span{margin-left:4px;color:#9ea198}.filter.active{background:#e6ebe2;color:#405b44;border-color:#e6ebe2}.task-list{display:flex;flex-direction:column;gap:9px}.task-card{min-height:78px;background:#fffefa;border:1px solid #eeece4;border-radius:15px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;padding:12px 12px;gap:10px;transition:transform .18s,opacity .2s}.task-icon{width:39px;height:39px;border-radius:13px;display:grid;place-items:center;font-size:18px}.tone-peach{background:#f4e6db;color:#aa7655}.tone-green{background:#e5ebdf;color:#5c765a}.tone-yellow{background:#f5edcf;color:#a68a43}.tone-lilac{background:#eae6ef;color:#756b8b}.task-name{font-size:12px;font-weight:700;line-height:1.3}.task-meta{display:flex;align-items:center;gap:6px;color:#91968e;font-size:9px;margin-top:5px}.time-dot{width:3px;height:3px;background:#b5b8af;border-radius:50%}.repeat-mark{color:#829381;font-size:11px}.task-actions{display:flex;align-items:center;gap:6px}.claim-button{border:1px solid #dfe5dc;color:#56735c;background:#f5f7f2;border-radius:15px;padding:7px 9px;font:600 9px var(--sans);cursor:pointer;white-space:nowrap}.claim-button:hover{background:#e8eee5}.owner-pill{display:flex;align-items:center;gap:5px;background:#f5f3ec;border-radius:14px;padding:4px 8px 4px 4px;color:#74786f;font-size:9px;white-space:nowrap}.mini-avatar{height:20px;width:20px;border-radius:50%;display:grid;place-items:center;background:#e6c6ae;color:#654e3d;font-size:8px;font-weight:700}.mini-avatar.m{background:#b8c6ad;color:#3f5941}.complete-button{height:25px;width:25px;border:1px solid #e4e4dc;border-radius:50%;background:transparent;color:#a3a79e;cursor:pointer;font-size:12px}.done-card{opacity:.62}.done-card .task-name{text-decoration:line-through}.done-card .complete-button{background:var(--green);border-color:var(--green);color:white}.empty-state{text-align:center;padding:30px 14px;color:#858b81;font-size:12px;background:#fffefa;border:1px dashed #deded4;border-radius:15px}.empty-state strong{display:block;color:var(--ink);font:500 19px var(--serif);margin-bottom:6px}.ritual-card{margin-top:22px;min-height:125px;border-radius:16px;background:#e9eee5;display:flex;align-items:center;padding:19px 18px;position:relative;overflow:hidden}.ritual-card .eyebrow{color:#788879}.ritual-card h3{font:500 20px/1.15 var(--serif);margin:0 0 7px}.ritual-card p:last-child{font-size:10px;color:#7f887d;margin:0}.ritual-ornament{font-size:54px;color:#b8c6af;opacity:.62;margin-right:14px;align-self:flex-start;line-height:1}.ritual-spark{position:absolute;right:16px;top:14px;color:#c2a764;font-size:15px}footer{display:flex;justify-content:space-between;color:#9da096;font-size:8px;font-weight:600;letter-spacing:.14em;padding:20px 2px 0}.modal-backdrop{position:fixed;inset:0;background:#1f2921a8;display:flex;align-items:flex-end;justify-content:center;z-index:5;padding:16px}.modal-backdrop[hidden]{display:none}.task-modal{position:relative;width:min(100%,440px);max-height:92vh;overflow:auto;background:var(--paper);border-radius:22px;padding:27px 23px 20px;box-shadow:0 20px 60px #1115;animation:rise .22s ease-out}@keyframes rise{from{transform:translateY(20px);opacity:.6}to{transform:none;opacity:1}}.close-modal{position:absolute;right:18px;top:15px;border:0;background:#ebe9e1;border-radius:50%;height:29px;width:29px;font-size:19px;color:#646c63;cursor:pointer}.task-modal h2{font:500 26px var(--serif);margin:0 0 17px}.preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:19px}.preset{border:1px solid var(--line);border-radius:12px;background:#fffefa;padding:9px 3px 8px;color:#6e766d;font:500 9px var(--sans);cursor:pointer}.preset span{display:block;font-size:17px;margin-bottom:4px;color:var(--green)}.preset.chosen{border-color:#829781;background:#edf1e9;color:#456448}form label{display:block;font-size:10px;font-weight:600;color:#737a70;margin:0 0 6px}input,select{width:100%;height:40px;border:1px solid #e3e1d8;background:#fffefa;border-radius:10px;padding:0 11px;font:500 11px var(--sans);color:var(--ink);outline:none}input:focus,select:focus{border-color:#829781;box-shadow:0 0 0 3px #536f5915}form>input{margin-bottom:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:13px}.submit-task{width:100%;height:44px;border:0;border-radius:12px;background:var(--green);color:#fff;font:600 12px var(--sans);margin-top:3px;cursor:pointer}.submit-task span{font-size:16px;margin-left:7px}.modal-note{text-align:center;color:#969b91;font-size:9px;margin:12px 0 0}@media(min-width:600px){.modal-backdrop{align-items:center}.app-shell{min-height:100vh}}@media(max-width:360px){.app-shell{padding-left:19px;padding-right:19px}.welcome h1{font-size:33px}.task-card{grid-template-columns:38px minmax(0,1fr) auto;padding:11px 9px;gap:7px}.claim-button{padding:7px 6px}.owner-pill{padding-right:5px}.ritual-ornament{margin-right:9px}}
