:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#333f38;background:#f7f5f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg:#f7f5f0;--card:#fffdf9;--sub:#f0eee8;--fg:#333f38;--muted:#7b837c;--line:#e6e5dd;--green:#527b69;--green-light:#e1eee5;--red:#a35d55;--orange:#be874c;--shadow:0 8px 30px #2c312a08}*{box-sizing:border-box}html[data-theme=dark]{color-scheme:dark;--bg:#292d2f;--card:#353a3c;--sub:#42494a;--fg:#ecece4;--muted:#b0b7b2;--line:#505757;--green:#89b59c;--green-light:#3f5a4b;--red:#d88a81;--orange:#e0aa66;--shadow:0 10px 30px #0002}body{margin:0;background:var(--bg);color:var(--fg)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.4}.shell{max-width:740px;margin:0 auto;min-height:100dvh;padding:0 20px 110px}.top{height:84px;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:800;font-size:27px;display:flex;gap:10px;align-items:center;letter-spacing:-1.1px}.brand-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--green);color:white;font-weight:700}.period{color:var(--green)}.top-right{display:flex;align-items:center;gap:14px}.connection{font-size:11px;color:#47886a}.connection.offline{color:var(--orange)}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--sub);font-weight:700}h1{font-size:clamp(27px,5vw,38px);line-height:1.15;margin:7px 0 10px;letter-spacing:-1px}h2{font-size:19px;margin:0 0 12px}h3{font-size:15px;margin:14px 0 10px}.eyebrow{font-weight:600;color:var(--green);font-size:13px}.muted{color:var(--muted)}p{line-height:1.55}small,.small{font-size:12px}.tiny{font-size:11px}.center{text-align:center}.card{border:1px solid var(--line);background:var(--card);border-radius:19px;box-shadow:var(--shadow)}.bottom-nav{position:fixed;z-index:10;left:50%;transform:translateX(-50%);bottom:0;padding:9px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom));max-width:740px;width:100%;display:flex;justify-content:space-around;background:color-mix(in srgb,var(--card) 95%,transparent);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.nav-btn{background:transparent;color:var(--muted);min-width:0;flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;border-radius:12px;padding:7px 2px}.nav-btn.active{color:var(--green);background:var(--green-light)}.nav-icon{font-size:23px;line-height:1.15}.nav-btn small{font-size:10px}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:27px 0 20px}.day-box{border-radius:14px;background:var(--card);border:1px solid var(--line);height:82px;color:var(--fg);display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:7px 1px}.day-box b{font-size:17px}.day-box small{color:var(--muted);font-size:11px}.day-box span{font-weight:700}.day-box.today{outline:2px solid var(--green)}.complete span,.week-counter.complete{color:#40825b}.missing span,.week-counter.missing{color:var(--red)}.pending span,.week-counter.pending{color:var(--orange)}.primary,.secondary{border-radius:12px;font-weight:650;padding:13px 17px;min-height:44px}.primary{background:var(--green);color:white}.secondary{background:var(--sub);color:var(--fg);border:1px solid var(--line)}.wide{width:100%;margin:5px 0}.big{font-size:16px;min-height:55px}.streak-row,.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.stat-box{padding:17px;display:flex;flex-direction:column;gap:8px}.stat-box>b{font-size:24px}.stat-box .muted{font-size:12px}.section-title{margin:28px 0 12px;display:flex;justify-content:space-between;align-items:center}.section-title h2{margin:0}.week{margin:11px 0;overflow:hidden}.week-head{padding:17px;width:100%;background:none;display:flex;justify-content:space-between;align-items:center;color:var(--fg);text-align:left;gap:12px}.week-head small{color:var(--muted);margin-left:5px}.week-counter{font-size:13px;font-weight:700}.week-body{padding:0 17px 10px}.week-section{border-top:1px solid var(--line);padding:13px 0}.week-section summary{list-style:none;display:flex;justify-content:space-between;cursor:pointer}.week-section summary::-webkit-details-marker{display:none}.week-section p{font-size:13px;color:var(--muted);margin:10px 0}.mini-day{display:block;width:100%;text-align:left;color:var(--fg);background:var(--sub);border-radius:8px;margin-top:5px;padding:9px;font-size:12px}.mini-day span{color:var(--muted)}.back-link{background:none;color:var(--green);margin:5px 0 24px;padding:0}.page-heading,.rating-head,.rating-foot,.detail-head{display:flex;align-items:center;justify-content:space-between}.step-label{color:var(--muted);font-weight:650}.progress{display:flex;gap:5px;margin:18px 0 27px}.progress-segment{height:6px;border-radius:10px;flex:1;background:var(--line)}.progress-segment.filled{background:var(--green)}.step-header{margin-bottom:22px}.step-header h2{margin:0 0 4px;font-size:24px}.selected{border:1px solid var(--line);background:var(--card);border-radius:15px;padding:15px;margin:15px 0}.chip-line{display:flex;gap:7px;overflow:auto;margin-top:11px;padding:3px 0}.chip{flex-shrink:0;border-radius:20px;padding:9px 11px;background:var(--green-light);color:var(--fg);font-size:12px}.input{width:100%;min-width:0;border-radius:11px;border:1px solid var(--line);background:var(--card);color:var(--fg);padding:13px 14px;outline:none}.input:focus{border-color:var(--green)}.activity-category{margin:23px 0}.activity-category h3{margin-bottom:12px}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tile{position:relative;border-radius:15px;background:var(--card);border:1px solid var(--line);min-width:0;overflow:hidden}.tile.selected-tile{background:var(--green-light);border-color:var(--green)}.tile-main{background:none;color:var(--fg);display:flex;flex-direction:column;align-items:center;gap:7px;width:100%;min-height:116px;padding:12px 3px 17px}.emoji{font-size:27px}.tile-name{font-size:11px;line-height:1.25;min-height:27px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.tile-main strong{font-size:12px}.tile-minus,.tile-edit{position:absolute;bottom:3px;background:transparent;color:var(--fg);font-size:15px}.tile-minus{left:5px}.tile-edit{right:5px}.wizard-buttons{display:flex;justify-content:space-between;gap:12px;margin:32px 0}.stack{display:grid;gap:12px}.rating{padding:17px}.rating-head b{font-size:16px}.rating-num{font-size:25px;color:var(--green)}.rating-num.unset{color:var(--muted)}.rating-num small{font-size:12px;color:var(--muted)}.range{width:100%;margin:20px 0 8px;accent-color:var(--green);height:22px}.range-unset{opacity:.5}.rating-foot{gap:7px;color:var(--muted)}.text-btn{background:transparent;color:var(--green);padding:5px;font-size:12px}.note-card,.sleep-card{padding:18px}.note-card label{display:block;margin-bottom:13px}.note{resize:vertical;min-height:135px;line-height:1.6}.note-card>.small{margin-top:12px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.two-fields label,.form-card label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}.sleep-duration{padding:15px;background:var(--sub);margin:15px 0;border-radius:10px}.button-row{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.review-row{width:100%;padding:18px;text-align:left;color:var(--fg)}.review-row p{font-size:13px;color:var(--muted);margin:9px 0}.review-row small{color:var(--green)}.warning{color:var(--orange)}.tabs{display:flex;gap:7px;background:var(--sub);border-radius:11px;padding:5px;margin:12px 0}.tabs button{flex:1;min-width:0;border-radius:8px;padding:12px 8px;background:transparent;color:var(--muted)}.tabs button.active{background:var(--card);color:var(--green);font-weight:700;box-shadow:var(--shadow)}.stats-card,.form-card{padding:19px;margin:20px 0}.calendar-header{display:flex;justify-content:space-between;align-items:center}.calendar-header h2{margin:0;text-transform:capitalize}.calendar-header button,.detail-head button{background:var(--sub);color:var(--fg);border-radius:10px;font-size:25px;padding:2px 12px}.stats-card>.input{margin:8px 0 20px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0}.weekdays{text-align:center;color:var(--muted);font-size:13px}.calendar-day{min-height:60px;border-radius:9px;background:var(--sub);color:var(--fg);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px}.calendar-day.complete,.mini-square.complete,.mini-dot.complete{background:#b4dcc1}.calendar-day.missing,.mini-square.missing{background:#e7c4bf}.calendar-day.pending,.mini-square.pending,.mini-dot.pending{background:#eed6b8}.calendar-day.neutral,.mini-square.neutral,.mini-dot.neutral{background:#c6cac5}.calendar-day.today{outline:2px solid var(--green)}.calendar-day sup{font-size:10px}.calendar-day.activity-zero{background:#e4efe6}.legend{display:flex;align-items:center;gap:7px;margin-top:17px;color:var(--muted);font-size:11px;flex-wrap:wrap}.mini-dot{width:11px;height:11px;border-radius:3px}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.month-tile{padding:10px;border-radius:11px;background:var(--sub);color:var(--fg);text-align:left}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:9px}.mini-square{aspect-ratio:1;border-radius:1px;background:#d4d5d0}.period-row{display:flex;gap:9px;align-items:center}.period-row select:first-of-type{width:70px}.form-card h2{margin:21px 0 12px}.form-card h2:first-child{margin-top:0}.focus-chips{display:flex;gap:8px;flex-wrap:wrap}.focus-chip{padding:9px 11px;border-radius:25px;background:var(--sub);color:var(--fg);font-size:12px}.focus-chip.active{background:var(--green-light);outline:1px solid var(--green)}.checkbox-row{display:flex!important;flex-direction:row!important;align-items:center;gap:13px!important;margin:20px 0}.checkbox-row input{accent-color:var(--green);width:20px;height:20px}.checkbox-row span{display:flex;flex-direction:column;gap:5px}.checkbox-row small{color:var(--muted);font-weight:400}.search-input{margin:16px 0 22px}.search-result{width:100%;display:block;padding:17px;color:var(--fg);text-align:left;margin-bottom:10px}.search-result p{margin:6px 0 0;font-size:13px;color:var(--muted)}.settings-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.settings-item small{display:block;color:var(--muted)}.upload{display:block;position:relative;background:var(--sub);padding:12px;border-radius:10px}.upload input{max-width:100%}.danger-link{background:transparent;color:var(--red);padding:12px 0}.overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#161d1a88;padding:16px}.dialog{width:min(480px,100%);max-height:90dvh;overflow:auto;background:var(--card);color:var(--fg);padding:24px;border-radius:22px;box-shadow:0 20px 80px #0004}.dialog>label{display:block;margin:15px 0;font-weight:600;font-size:13px}.dialog>label .input{margin-top:7px}.dialog.tall{max-height:83dvh}.detail-head{gap:9px}.detail-head h2{font-size:16px;margin:0;text-align:center}.detail-note{white-space:pre-wrap;overflow-wrap:anywhere}.list-button{width:100%;display:block;text-align:left;padding:12px;background:var(--sub);color:var(--fg);margin:7px 0;border-radius:10px}.toast{position:fixed;z-index:40;bottom:98px;left:50%;transform:translateX(-50%);max-width:90%;min-width:250px;padding:13px 18px;background:var(--fg);color:var(--bg);border-radius:13px;text-align:center;box-shadow:var(--shadow)}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:20px}.auth-wrap{width:min(440px,100%)}.brand.large{font-size:40px}.auth-wrap h1{margin-top:32px}.auth-wrap .form-card label{margin:17px 0}.auth-wrap .text-btn{display:block;margin:12px auto}@media(min-width:850px){.shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:400px){.shell{padding-left:13px;padding-right:13px}.tile-grid{gap:5px}.tile-main{min-height:106px}.emoji{font-size:24px}.week-strip{gap:4px}.day-box{height:75px}.day-box b{font-size:15px}.stats-card,.form-card{padding:14px}.calendar{gap:4px}.calendar-day{min-height:47px}}
