@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f7f6f2;--ink:#343c38;--muted:#7d847e;--line:#e3e5dd;--green:#526952;--soft:#e8edde;--gold:#bb975f;--white:#fff;--radius:22px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button{border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #aa8957;outline-offset:4px}button,input,select,textarea{border-radius:10px}.shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:38px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:#f0f0e9}.brand{font:700 24px Manrope,sans-serif;letter-spacing:-1.3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.brandmark{font-size:39px;color:var(--green)}.beta{font:9px 'DM Sans';letter-spacing:3px;margin-left:45px;margin-top:-15px}.navlabel,.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--muted)}.navlabel{margin:60px 12px 20px}.nav{display:flex;align-items:center;gap:13px;width:100%;padding:14px 13px;margin:4px 0;text-align:left;color:#727c71;font-size:20px}.nav span{font-size:13px}.nav small{font-size:10px;margin-left:auto;border:1px solid #d4d9cc;border-radius:6px;padding:3px}.nav:hover,.nav.active{background:#e0e7d7;color:#3e533b}.sidebottom{margin-top:auto;padding-top:32px}.seed{display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding:12px 8px 24px;margin-bottom:15px}.seed>span{font-size:32px;color:#ae986f}.seed p{font-size:13px;line-height:1.6;color:#858b7d}.quiet{font-size:12px;color:#727d72;padding:8px}.sidebottom>small{display:block;font-size:10px;margin:12px 8px;color:#8c9488}main{max-width:1620px;width:100%;margin:auto;padding:30px 44px 18px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:30px;border-bottom:1px solid var(--line);gap:20px}header p{font-size:12px;margin:6px 0 0;color:var(--muted)}.headeractions{display:flex;align-items:center;gap:22px}.localbadge{font-size:11px;color:#7d857b;white-space:nowrap}.localbadge i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#86a079;margin-right:6px}.primary{background:var(--green);color:white;padding:13px 20px;border-radius:11px;font-weight:500;font-size:12px}.primary:hover{background:#405b40}.secondary{border:1px solid var(--line);background:#fff;padding:11px 16px;font-size:12px}.heading{margin:30px 0 24px;display:flex;justify-content:space-between;align-items:end;gap:20px}h1{font:500 clamp(27px,3vw,40px) Manrope,sans-serif;letter-spacing:-1.5px;margin:0 0 9px}h2{font:600 18px Manrope,sans-serif;margin:0;letter-spacing:-.5px}h3{font:600 15px Manrope,sans-serif;margin:0}.subtitle{color:var(--muted);font-size:13px;line-height:1.7;margin:0}.dashboard{display:grid;grid-template-columns:minmax(320px,1.18fr) minmax(320px,1fr);gap:25px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.companion{background:#e9e6e2;position:relative;min-height:410px;display:flex;flex-direction:column}.companiontop{padding:24px 25px 0;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.pill{background:#ffffffa6;border:1px solid #fff9;border-radius:20px;padding:7px 11px;font-size:10px;letter-spacing:.5px}.companionimg{width:100%;height:280px;object-fit:cover;mix-blend-mode:multiply;transition:transform .4s}.companionimg.celebrate{animation:happy .75s}.companionimg.pet{animation:happy .55s}.companionbottom{padding:0 26px 22px;margin-top:auto}.companionname{display:flex;align-items:center;justify-content:space-between;margin:8px 0}.companionname h2{font-size:25px}.companionname small{font-size:10px;color:#72695c}.quote{font-size:12px;color:#79756e;margin:8px 0 20px}.progress{height:5px;border-radius:9px;background:#d7d5cf;overflow:hidden}.progress>div{height:100%;background:var(--gold);border-radius:9px;transition:width .6s}.xplabel{display:flex;justify-content:space-between;font-size:10px;color:#817969;margin-top:9px}.habitat-actions{display:flex;gap:8px;margin-top:18px}.habitat-actions button{background:#fff7;border:1px solid #fff8;border-radius:9px;padding:8px 12px;font-size:11px}.taskpanel{padding:25px}.cardtop{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px;gap:10px}.cardtop small{font-size:11px;color:var(--muted)}.count{font-size:11px;color:var(--muted);font-weight:400;margin-left:8px}.tabs{display:flex;gap:6px;background:#f3f4ef;padding:4px;border-radius:9px;margin:16px 0}.tabs button{flex:1;padding:8px;font-size:11px;color:var(--muted)}.tabs .selected{background:#fff;box-shadow:0 2px 6px #24352408;color:var(--ink)}.task{padding:16px 0;border-bottom:1px solid #eef0e9}.taskrow{display:flex;gap:12px;align-items:flex-start}.check{width:20px;height:20px;flex:0 0 20px;border:1px solid #cdd4c7;border-radius:7px;font-size:12px;margin-top:1px;padding:0;background:#fff}.check.checked{background:var(--green);border-color:var(--green);color:#fff}.tasktext{min-width:0;flex:1}.tasktitle{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.done .tasktitle{text-decoration:line-through;color:#92998c}.taskmeta{font-size:10px;color:#8a9386;margin-top:6px;display:flex;gap:10px;flex-wrap:wrap}.taskmeta .tag{background:#f0f3e8;color:#788267;border-radius:4px;padding:2px 6px}.xp{color:#a68952;font-size:11px;white-space:nowrap;margin-top:4px}.steps{padding:10px 0 0 32px}.step{display:flex;gap:9px;align-items:center;margin:9px 0;font-size:11px;color:#858b7c}.step .check{width:15px;height:15px;flex-basis:15px;border-radius:4px;font-size:9px}.more{font-size:18px;color:#919987;padding:0 3px}.empty{padding:34px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;color:#8a9285;font-size:12px;line-height:1.8}.empty .emptyicon{font-size:31px;font-weight:400;color:#a5af95}.addline{width:100%;text-align:left;color:#7e8a73;padding:18px 0 0;font-size:12px}.lowergrid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:25px}.focus{padding:24px;background:#edf0e7}.focustop{display:flex;justify-content:space-between;gap:15px}.focus h2{font-size:15px}.focus p{font-size:11px;color:#7f8974}.timerline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}.timer{font:400 39px Manrope,sans-serif;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.focus select{background:transparent;border:0;color:#79866e;font-size:11px;margin-top:7px;max-width:100%}.weekcard{padding:24px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:24px}.day{display:flex;flex-direction:column;align-items:center;gap:10px;padding:11px 3px;border-radius:12px;font-size:12px}.day small{font-size:9px;color:var(--muted)}.day b{font-weight:500}.day.active{background:#e8eddf}.dot{height:4px;width:4px;background:#a1ad90;border-radius:50%}.dot.off{opacity:0}.weeknote{font-size:11px;color:#92998a;line-height:1.6;margin-top:16px}.stats{display:flex;gap:32px;margin-top:23px;padding-top:21px;border-top:1px solid var(--line)}.stat b{font:500 24px Manrope;display:block}.stat span{font-size:10px;color:#8a9281}.sectionhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.creaturecard{background:#ece9e4;border:1px solid #e1dfd8;border-radius:18px;overflow:hidden;position:relative}.creaturecard img{width:100%;aspect-ratio:1.5;object-fit:cover;mix-blend-mode:multiply}.creatureinfo{padding:18px}.creatureinfo h3{display:flex;justify-content:space-between}.creatureinfo p{font-size:11px;color:#837f72;line-height:1.7}.creatureinfo button{width:100%;margin-top:8px}.creaturecard.chosen{outline:2px solid #90a17e;outline-offset:3px}.projectgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project{padding:24px;text-align:left;cursor:pointer}.project .symbol{display:block;color:#a0ac8e;font-size:28px;margin-bottom:25px}.project .subtitle{font-size:11px;margin:15px 0}.project .progress{height:4px}.journalentry{display:flex;align-items:center;gap:16px;padding:19px 25px;border-bottom:1px solid var(--line)}.journalentry img{width:62px;height:46px;object-fit:cover;border-radius:10px}.journalentry p{flex:1;margin:0;line-height:1.8;font-size:12px}.journalentry small{display:block;color:var(--muted);font-size:10px}.flowgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.flow{padding:26px}.flow ol{font-size:12px;color:#7d8872;line-height:2.3;padding-left:20px}.flow button{margin-top:10px}.agenda{padding:26px;margin-top:24px}.dateinput{border:1px solid var(--line);background:#fff;padding:9px;font-size:12px}.agenda .taskmeta{font-size:11px}footer{padding:32px 0 5px;display:flex;justify-content:space-between;color:#969e90;font-size:10px}dialog{border:1px solid var(--line);border-radius:23px;padding:34px;width:min(580px,calc(100% - 26px));max-height:90vh;color:var(--ink);box-shadow:0 20px 100px #23332330}dialog::backdrop{background:#24352466;backdrop-filter:blur(4px)}dialog h2{font-size:24px;margin:3px 0 10px}.close{position:absolute;right:18px;top:12px;font-size:25px;color:#8b9283}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:8px;margin:18px 0;font-size:11px;color:#7d8576}.field input,.field select,.field textarea{border:1px solid #dce1d4;background:#fafbf7;padding:12px;color:var(--ink);width:100%;font-size:13px}.field textarea{resize:vertical;min-height:95px}.field small{font-size:10px;line-height:1.6}.formactions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.choicegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:20px}.choicegrid button{padding:15px;background:#f1f4ea;font-size:12px}.error{color:#a25146;font-size:12px;line-height:1.6;margin-top:14px}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);background:#354c37;color:#fff;padding:15px 25px;border-radius:12px;box-shadow:0 10px 40px #182a1922;opacity:0;pointer-events:none;transition:.3s;z-index:20;max-width:90vw;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}#storageWarning{background:#fff0df;border:1px solid #e4c99d;padding:15px;border-radius:12px;margin-top:18px;font-size:12px;line-height:1.8}#storageWarning button{border-bottom:1px solid currentColor;border-radius:0}.progressnote{font-size:11px;color:#8c927e;line-height:1.8;margin-top:20px}.stages{display:flex;gap:8px;margin:22px 0}.stage{flex:1;padding-top:12px;border-top:3px solid #e7eadf;font-size:10px;color:#989f8d}.stage.unlocked{border-color:#a9b798;color:#52694a}.stage small{display:block;margin-top:5px}.onboard{background:#e8ede0;border:1px solid #d9e1ce;border-radius:14px;padding:18px 22px;display:flex;align-items:center;gap:18px;margin:0 0 24px;font-size:12px;line-height:1.7}.onboard p{flex:1;margin:0}.onboard strong{display:block}.onboard>span{font-size:24px;color:#92a27f}@keyframes happy{30%{transform:translateY(-9px) rotate(-2deg)}70%{transform:translateY(-4px) rotate(2deg)}}
@media(min-width:1450px){main{padding:35px 60px}.companionimg{height:345px}}@media(max-width:1150px){main{padding:24px}.shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:30px 15px}.dashboard{gap:16px;grid-template-columns:1fr 1fr}.lowergrid{gap:16px}.collection{grid-template-columns:repeat(2,1fr)}.localbadge{display:none}.projectgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.shell{display:block}.sidebar{position:static;width:100%;height:auto;display:block;padding:15px 20px;border-bottom:1px solid var(--line)}.brand{font-size:20px}.brandmark{font-size:28px}.beta{margin:0;font-size:8px}.navlabel,.sidebottom{display:none}nav{display:flex;overflow-x:auto;gap:3px;margin-top:14px}.nav{width:auto;min-width:max-content;padding:9px;gap:7px}.nav span{font-size:11px}.nav small{display:none}main{padding:20px}.dashboard{grid-template-columns:1fr 1fr}.taskpanel{padding:19px}.companionimg{height:230px}.companiontop{padding:18px}.companionbottom{padding:0 18px 20px}.lowergrid{grid-template-columns:1fr 1fr}.timer{font-size:30px}.timerline{gap:10px}.timerline .primary{padding:11px}.focus,.weekcard{padding:19px}.onboard{align-items:flex-start}}@media(max-width:640px){header{padding-bottom:20px}.eyebrow{font-size:8px;letter-spacing:1.3px}.headeractions .primary{padding:11px 13px}.dashboard,.lowergrid,.flowgrid{grid-template-columns:1fr}.companionimg{height:auto;max-height:320px;object-fit:contain}.companion{min-height:0}.companiontop{padding-bottom:5px}.taskpanel{min-height:270px}.collection{gap:12px}.creatureinfo{padding:13px}.creatureinfo h3{font-size:14px}.creatureinfo p{font-size:10px}.creatureinfo button{padding:10px 8px}.projectgrid{grid-template-columns:1fr 1fr}.project{padding:18px}h1{font-size:29px}.onboard{flex-wrap:wrap;gap:10px}.onboard button{margin-left:36px}footer span{display:none}.heading{margin:25px 0 22px}.stages{gap:6px}.stage{font-size:8px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Controls shared by the functional views. */
.mobile-settings{display:none}.row{display:flex;gap:8px;align-items:center}.overdue{color:#9b6e43}.field-value{padding:12px 0;color:var(--ink)}.sample{display:block;margin:0 auto 28px}.danger{color:#9a5c4b;padding:11px 14px}.settings-detail{margin-top:25px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;line-height:1.8;color:#7d8576}.settings-detail strong{color:var(--ink)}.recovery{padding:18px;background:#fff4e4;border-radius:12px;font-size:12px;line-height:1.8;margin-top:20px}.recovery button{margin:5px}.focus-icon{width:62px;text-align:center;font-size:30px;color:#8c9b7d}.focus small{font-size:11px;color:#7f8974}.game-status{min-height:45px;margin:26px 0 10px;color:var(--green);font-size:14px;text-align:center}.game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.game-key{height:104px;font-size:36px;background:#edf0e7;border:2px solid transparent;transition:background .2s,transform .2s}.game-key:disabled{opacity:1;cursor:default}.game-key.lit{background:#ecdbaa;border-color:#aa8957;transform:scale(1.04);box-shadow:0 0 25px #e2c98255}.game-key:not(:disabled):hover{background:#dce7d3}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.taskpanel{max-height:760px;overflow:auto}.tasktitle,.project h2,.creatureinfo h3,.companionname h2,.flow li,.journalentry p{overflow-wrap:anywhere}.game-key:not(:disabled):active{transform:scale(.95)}.habitat-actions{flex-wrap:wrap}.formactions{flex-wrap:wrap}button:hover{filter:brightness(.98)}
@media(max-width:850px){.mobile-settings{display:flex}}@media(max-width:640px){.formgrid{grid-template-columns:1fr}.formgrid .field{margin:9px 0}.cardtop{flex-wrap:wrap}.heading{align-items:start;flex-wrap:wrap}.journalentry{padding:16px}.taskpanel{max-height:none}.stats{gap:24px}.game-key{height:90px}}

/* Areas group projects without duplicating them. */
.area-toolbar{margin-bottom:24px}.area-toolbar>.eyebrow{display:block;margin-bottom:10px}.area-filters,.area-tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.area-filters{row-gap:10px}.area-filter{padding:9px 14px;border:1px solid var(--line);background:transparent;font-size:12px;color:var(--ink)}.area-filter.selected{background:#dfe7d6;border-color:#aebd9c;color:#3f5738}.area-tag{display:inline-block;border-radius:7px;padding:4px 8px;background:#edf0e7;color:#617254;font-size:10px;line-height:1.5;overflow-wrap:anywhere}.area-tags{margin:12px 0 18px}.area-choices{border:1px solid var(--line);border-radius:12px;margin:20px 0;padding:16px;display:flex;gap:10px;flex-wrap:wrap}.area-choices legend{font-size:13px;padding:0 6px}.area-choices legend small{color:#7d8576;font-size:11px;margin-left:8px}.area-choices label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:9px 12px;cursor:pointer;font-size:12px;overflow-wrap:anywhere}.area-choices input{width:16px;height:16px;flex:0 0 auto;accent-color:#657e51}.area-choices label:has(input:checked){background:#edf0e7;border-color:#aebd9c}.row{flex-wrap:wrap}.project .area-tags{min-height:25px}.area-filters button{overflow-wrap:anywhere;max-width:100%}
.proposal{margin:22px 0;padding:20px 0;border-top:1px solid var(--line)}.proposal textarea{min-height:116px}.priority-tag{color:#80552a;background:#f1e6cf;border-radius:7px;padding:4px 8px;font-size:10px}

/* Weekly time budgets and daily time routines. */
dialog.wide{width:min(1020px,calc(100% - 26px))}.weekly-table-wrap{overflow:auto;margin:22px 0;max-height:55vh}.weekly-table{border-collapse:collapse;width:100%;min-width:750px;font-size:12px}.weekly-table th,.weekly-table td{padding:10px 6px;border-bottom:1px solid var(--line);text-align:center}.weekly-table th:first-child{text-align:left;min-width:150px;max-width:210px;overflow-wrap:anywhere}.weekly-table thead{position:sticky;top:0;background:#fafbf7;z-index:1}.weekly-table input{width:65px;min-height:40px;border:1px solid #dce1d4;border-radius:8px;background:#fafbf7;padding:8px;color:var(--ink);font:inherit}.budget-row{background:#edf0e7}.plan-summary{font-size:13px;line-height:1.7;color:#617254}.week-allocations{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin:24px 0}.week-allocations>div{padding:12px 10px;background:#f6f7f1;border-radius:10px;font-size:11px;overflow-wrap:anywhere}.week-allocations small{display:block;color:#7d8576;margin-top:6px;font-size:10px}.week-allocations p{font-size:11px;line-height:1.5;border-top:1px solid var(--line);padding-top:8px}.week-allocations b{display:block;color:#617254}.routine-item{padding:16px 0;border-bottom:1px solid var(--line)}.routine-item:last-child{border:0}.routine-item h3{margin:0;font-size:14px;overflow-wrap:anywhere}.routine-item .progress{margin:10px 0}.routine-item .quiet{margin-top:4px}.focus-project .field{margin:12px 0}.focus-project select{font-size:12px}.weekcard>.primary{margin-right:8px}
@media(max-width:1100px){.week-allocations{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.week-allocations{grid-template-columns:repeat(2,minmax(0,1fr))}dialog.wide{padding:24px 18px}}

.ritual-days{display:flex;flex-wrap:wrap;gap:12px;padding:10px 0}.ritual-days label{display:flex;align-items:center;gap:5px}.ritual-days input{width:auto}#ritualWeekdays{border:1px solid var(--line,#ddd);border-radius:12px;margin:16px 0;padding:12px}#ritualScheduleFields[hidden],#ritualWeekdays[hidden],#ritualEndField[hidden]{display:none}

.goal-section{margin:24px 0}.goal-card{padding:24px;margin:16px 0}.goal-card>.progress{margin-bottom:20px}.goal-card>.cardtop{gap:12px}.goal-card h2{overflow-wrap:anywhere}
