:root{--charcoal:#24262a;--brown:#4a3b32;--brown-light:#5d4a3e;--green:#6f9a6a;--green-dark:#2f4a33;--text:#ece6dc;--text-soft:#a8a196}body{background:var(--charcoal);color:var(--text);margin:0;font-family:Patrick Hand,Segoe Print,cursive;font-size:1.15rem}main{max-width:32rem;margin:0 auto;padding:1.25rem 1rem 6rem}.tabbar{padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));background:var(--charcoal);border-top:2px solid var(--brown-light);justify-content:center;gap:.5rem;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;max-width:10rem;min-height:2.75rem;color:var(--text-soft);border-radius:1rem;flex:1;line-height:2.75rem;text-decoration:none}.tabbar a[aria-current=page]{color:var(--text);background:var(--green-dark);outline:2px solid var(--green)}.card{background:var(--brown);border-radius:0 0 1.25rem 1.25rem;padding:1.1rem;box-shadow:0 6px 16px #00000059}h1{margin:0 0 .25rem;font-size:2rem;font-weight:400}h2{color:var(--text-soft);margin:1.25rem 0 .25rem;font-size:1.4rem;font-weight:400}p{margin:.25rem 0}.checklist{margin:0;padding:0;list-style:none}.checklist li{background:var(--brown-light);border-radius:.9rem;margin:.5rem 0;padding:0 .9rem}.checklist label{align-items:center;gap:.75rem;padding:.7rem 0;font-size:1.25rem;display:flex}.checklist input{width:1.5rem;height:1.5rem;accent-color:var(--green)}.checklist input:checked+span{color:var(--text-soft);text-decoration:line-through}.left{background:var(--green-dark);border-radius:1rem;margin-top:.75rem;padding:.3rem .9rem;display:inline-block}.empty{text-align:center;padding:2rem 0;font-size:1.4rem}.timer{background:var(--brown-light);text-align:center;border-radius:1rem;margin-top:1rem;padding:.75rem}.timer h3{margin-top:0}.phase{font-size:1.4rem}.phase.study{color:var(--green)}.phase.break{color:#d9a566}.ring{width:14rem;max-width:100%;margin:.5rem auto 1rem;position:relative}.ring svg{width:100%;display:block;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:12px}.ring-track{stroke:var(--brown)}.ring-progress{stroke:var(--green);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.ring.break .ring-progress{stroke:#d9a566}.clock{justify-content:center;align-items:center;margin:0;font-size:3.2rem;display:flex;position:absolute;inset:0}.buttons{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.buttons button{font:inherit;background:var(--green-dark);color:var(--text);border:2px solid var(--green);cursor:pointer;border-radius:1rem;min-height:2.75rem;padding:.6rem 1.1rem}.plan-title{color:var(--text-soft);margin-top:1.25rem}.plan{flex-wrap:wrap;justify-content:center;gap:.4rem;padding:0;list-style:none;display:flex}.plan li{background:var(--brown);border-radius:.9rem;padding:.25rem .7rem;font-size:1rem}.plan li.current{background:var(--green-dark);outline:2px solid var(--green)}h3{color:var(--text-soft);margin:1rem 0 .25rem;font-size:1.3rem;font-weight:400}.date{color:var(--text-soft);margin-bottom:.75rem}.event-list,.week-list{margin:0;padding:0;list-style:none}.event{background:var(--brown-light);border-radius:.9rem;margin:.5rem 0}.event-row{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.75rem;min-height:2.75rem;padding:.8rem .9rem;text-decoration:none;display:flex}.event-row .time{min-width:5rem;color:var(--text-soft)}.event-row .title{flex:1;font-size:1.25rem}.event-row:after{content:"›";color:var(--text-soft);font-size:1.6rem}.kind{background:var(--green-dark);border-radius:.75rem;padding:.1rem .6rem;font-size:.9rem}.kind.meal{background:#5a4a2e}.kind.class{background:#3a3f55}.back-link{color:var(--text-soft);margin-bottom:.5rem;display:inline-block}.week-list li{background:var(--brown-light);border-radius:.9rem;gap:.75rem;margin:.5rem 0;padding:.7rem .9rem;display:flex}.week-list .when{min-width:7.5rem;color:var(--text-soft)}.nextup{background:var(--green-dark);border:2px solid var(--green);color:var(--text);border-radius:1.25rem;margin-bottom:1.25rem;padding:.9rem 1.1rem;text-decoration:none;display:block;box-shadow:0 6px 16px #00000059}.nextup .label{color:var(--text-soft);margin:0}.nextup-title{margin:.1rem 0 .3rem;font-size:1.7rem}.nextup .after{color:var(--text-soft)}.signin{text-align:center;border-radius:1.25rem;padding:2rem 1.25rem}.signin h1{font-size:2.4rem}.signin button.primary{font:inherit;color:var(--text);background:var(--green-dark);border:2px solid var(--green);cursor:pointer;border-radius:1rem;min-height:3rem;margin-top:.75rem;padding:.8rem 1.6rem;font-size:1.3rem}.signin button:disabled{opacity:.6;cursor:default}.fine{color:var(--text-soft);font-size:1rem}.problem{color:#e8a49c;background:var(--brown-light);border-radius:.9rem;padding:.6rem .9rem}.kind.extracurricular{background:#4a3a5a}.kind.exercise{background:#3f5a52}.kind.work{background:#5a4040}.kind.appointment{background:#5a5a3a}.kind.social{background:#5a3f4e}.kind.other{background:#3a3d42}.topbar{color:var(--text-soft);justify-content:flex-end;align-items:center;gap:.25rem;margin-bottom:.5rem;font-size:1rem;display:flex}.topbar span{margin-right:auto}.topbar button{font:inherit;color:var(--text-soft);cursor:pointer;background:0 0;border:0;min-height:2.75rem;padding:.5rem .6rem;font-size:1rem;text-decoration:underline}.kind.relaxation{background:#3a5560}.tag-picker{color:var(--text-soft);align-items:center;gap:.6rem;margin:.75rem 0;display:flex}.tag-picker select{font:inherit;color:var(--text);background:var(--brown-light);border:2px solid var(--green);border-radius:.8rem;min-height:2.75rem;padding:.4rem .7rem}.filters{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.filters button{font:inherit;color:var(--text);background:var(--brown-light);cursor:pointer;border:2px solid #0000;border-radius:1rem;min-height:2.75rem;padding:.5rem 1.1rem}.filters button[aria-pressed=true]{background:var(--green-dark);border-color:var(--green)}.spots{margin:.5rem 0;padding:0;list-style:none}.spots li{background:var(--brown-light);border-radius:.9rem;justify-content:space-between;gap:.75rem;margin:.4rem 0;padding:.7rem .9rem;display:flex}.spots li.match{outline:2px solid var(--green)}.spots .title{flex:1}.spots .walk{color:var(--text-soft);white-space:nowrap}.spots+button.link{font:inherit;color:var(--text-soft);cursor:pointer;background:0 0;border:0;min-height:2.75rem;margin:.25rem auto .75rem;text-decoration:underline;display:block}.halls,.dishes{margin:.5rem 0;padding:0;list-style:none}.hall{background:var(--brown-light);border-radius:.9rem;margin:.5rem 0;padding:.7rem .9rem}.hall-head{justify-content:space-between;gap:.75rem;font-size:1.25rem;display:flex}.hall-head .walk{color:var(--text-soft);white-space:nowrap}.hall p{margin:.25rem 0}.hall button.link{font:inherit;color:var(--text-soft);cursor:pointer;background:0 0;border:0;min-height:2.75rem;text-decoration:underline}.dishes li{border-top:1px solid var(--brown);padding:.35rem 0}.badge{border-radius:.7rem;margin-left:.25rem;padding:.05rem .5rem;font-size:.85rem}.badge.veg{background:var(--green-dark)}.badge.allergen{background:#5a4040}.day-nav{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.day-title{text-align:center;flex:1}.day-title .date{margin-bottom:0}.day-step{min-width:2.75rem;min-height:2.75rem;color:var(--text);background:var(--brown-light);border-radius:1rem;justify-content:center;align-items:center;font-size:2rem;text-decoration:none;display:flex}.add-event,.action-link{font:inherit;color:var(--text);background:var(--green-dark);border:2px solid var(--green);cursor:pointer;box-sizing:border-box;border-radius:1rem;min-height:2.75rem;margin-top:.75rem;padding:.6rem 1.4rem;text-decoration:none;display:inline-block}.event-actions{flex-wrap:wrap;gap:.5rem;display:flex}.event-actions .action-link{margin-top:.5rem}.event-form{flex-direction:column;gap:.75rem;margin-top:.75rem;display:flex}.event-form label{color:var(--text-soft);flex-direction:column;flex:1;gap:.25rem;display:flex}.event-form input{font:inherit;color:var(--text);background:var(--brown-light);border:2px solid var(--green);box-sizing:border-box;border-radius:.8rem;width:100%;min-height:2.75rem;padding:.5rem .7rem}.form-times{gap:.75rem;display:flex}.event-form button.primary{font:inherit;color:var(--text);background:var(--green-dark);border:2px solid var(--green);cursor:pointer;border-radius:1rem;min-height:3rem;padding:.7rem 1.4rem;font-size:1.3rem}.goal-row{gap:.5rem;display:flex}.goal-row input{flex:1;min-width:0}.event-form select{font:inherit;color:var(--text);background:var(--brown-light);border:2px solid var(--green);border-radius:.8rem;min-height:2.75rem;padding:.4rem .7rem}.plan-list{margin:.5rem 0;padding:0;list-style:none}.plan-block{background:var(--brown-light);border-radius:.9rem;align-items:center;gap:.75rem;margin:.5rem 0;padding:.7rem .9rem;display:flex}.plan-block.suggested{outline:2px solid var(--green)}.plan-block .time{min-width:6.5rem;color:var(--text-soft);font-size:1rem}.plan-block .title{flex:1}.plan-block .title small{color:var(--text-soft);font-size:1rem;display:block}.plan-tag{background:var(--brown);border-radius:.75rem;padding:.1rem .6rem;font-size:.9rem}.plan-block.suggested .plan-tag{background:var(--green-dark)}.link-button{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;align-self:flex-start;min-height:2.75rem;padding:.5rem 0;text-decoration:underline}.goal-rows{flex-direction:column;gap:.5rem;display:flex}.confirm-box{background:var(--brown-light);border:2px solid var(--green);border-radius:1rem;margin:.75rem 0;padding:.75rem 1rem}.event-row .title small{color:var(--text-soft);font-size:1rem;display:block}.event-row .time{line-height:1.3}.due-block{margin-bottom:1.25rem}.due-block h1{font-size:1.6rem}.due-block .empty{color:var(--text-soft);padding:.75rem 0;font-size:1.15rem}.week-list .title small{color:var(--text-soft);font-size:1rem;display:block}.file-pick{cursor:pointer}.preview{white-space:pre-wrap;word-break:break-word;background:var(--brown-light);font:inherit;border-radius:.9rem;max-height:16rem;padding:.75rem .9rem;font-size:1rem;overflow:auto}.review-row{background:var(--brown-light);border-radius:.9rem;flex-direction:column;gap:.5rem;padding:.7rem .8rem;display:flex}.event-form .review-title{flex-direction:row;align-items:center;gap:.6rem}.review-title input[type=checkbox]{width:1.5rem;height:1.5rem;accent-color:var(--green);flex:none}.review-row .form-times{flex-wrap:wrap}.review-row .form-times input,.review-row .form-times select{flex:1;min-width:7rem}.review-row .fine{margin:0}.suggested-goals button:disabled{opacity:.6;cursor:default}.leftover{margin:.25rem 0 .5rem;padding-left:1.25rem}.suggested-hall{background:var(--green-dark);border:2px solid var(--green);border-radius:.9rem;margin:.5rem 0;padding:.6rem .9rem}
