:root{
  --bg:#f5f2ed;--card:#fffdf9;--text:#23211f;--muted:#817b74;--border:#e6e0d8;
  --accent:#2f6f5e;--accent-soft:#e2eee9;--danger:#a44343;--shadow:0 10px 35px rgba(52,43,33,.07);
  --field-bg:#fffdfa;--field-text:#23211f;--placeholder:#948c83;--focus:#2f6f5e;
  --work:#5b7cfa;--home:#36a269;--personal:#a86ce8;--health:#e06c75;--study:#d89b36;--travel:#2e9da8;
}
@media(prefers-color-scheme:dark){:root{--bg:#151513;--card:#1e1d1a;--text:#f3eee8;--muted:#aaa39b;--border:#3a3732;--accent:#78b7a4;--accent-soft:#223b34;--shadow:none;--field-bg:#292722;--field-text:#f7f2ec;--placeholder:#9d968d;--focus:#78b7a4}}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}body{min-height:100vh}
button,input,textarea,select{font:inherit;color:inherit}.hidden{display:none!important}
button{cursor:pointer}.main{color:var(--text);background:transparent;border:0;text-align:left;padding:0}.main b{color:var(--text)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 55%,transparent);outline-offset:2px}
.app{max-width:760px;margin:auto;padding:env(safe-area-inset-top) 14px calc(92px + env(safe-area-inset-bottom));min-height:100vh}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 2px 13px}.topbar h1{font-size:28px;margin:2px 0 0;letter-spacing:-.7px}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.circle{width:44px;height:44px;border-radius:15px;border:0;font-size:24px}.primary{background:var(--accent);color:white;border:0}.ghost{background:transparent;border:1px solid var(--border)}
.screen{display:none}.screen.active{display:block}.panel{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:15px;margin-bottom:12px;box-shadow:var(--shadow)}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-head h2,.calendar-toolbar h2{font-size:18px;margin:0}.muted{color:var(--muted)}.link{border:0;background:transparent;color:var(--accent);padding:6px}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}.summary{padding:13px;border-radius:20px;background:var(--card);border:1px solid var(--border)}.summary b{display:block;font-size:22px;margin-top:5px}.summary span{font-size:12px;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:8px}.empty{padding:16px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:18px}
.item{position:relative;display:flex;gap:11px;align-items:flex-start;border:1px solid var(--border);border-radius:18px;padding:12px;background:transparent;width:100%;text-align:left}.item .main{min-width:0;flex:1}.item b{display:block;font-weight:600}.item small{display:block;color:var(--muted);margin-top:3px}.time{width:54px;font-weight:650;font-size:14px}.event{border-left:4px solid var(--cat,var(--accent))}.plan-dot{width:20px;text-align:center;font-size:20px;color:var(--cat,var(--accent))}
.check{appearance:none;width:22px;height:22px;border:1.5px solid var(--cat,var(--muted));border-radius:50%;margin:0;flex:none;display:grid;place-items:center}.check:checked{background:var(--cat,var(--accent));border-color:var(--cat,var(--accent))}.check:checked:after{content:"✓";color:white;font-size:13px}.done b{text-decoration:line-through;color:var(--muted)}
.sub-progress{font-size:12px;color:var(--muted)}.sublist{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:7px}.subrow{display:flex;gap:9px;align-items:center}.subrow .check{width:19px;height:19px}
.calendar-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;margin-bottom:10px}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays span{text-align:center;color:var(--muted);font-size:11px;padding:3px}
.calendar-panel{padding:10px}.day{min-height:92px;border:1px solid transparent;border-radius:14px;padding:6px;overflow:hidden;background:transparent;text-align:left}.day.selected{border-color:var(--accent);background:var(--accent-soft)}.day.out{opacity:.25}.day-num{font-size:12px;font-weight:650}.cal-entry{display:block;margin-top:3px;border-left:3px solid var(--cat,var(--accent));padding:2px 3px;background:rgba(128,128,128,.08);border-radius:5px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-count{font-size:9px;color:var(--muted);margin-top:2px}
.day-block-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:12px 0 7px}
.filter-row{display:flex;gap:7px;overflow:auto;margin:0 0 12px}.chip{border:1px solid var(--border);background:var(--card);border-radius:14px;padding:9px 13px;white-space:nowrap}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.soft-callout{background:var(--accent-soft);padding:14px;border-radius:20px;margin-bottom:12px;font-size:14px}
.menu-list{padding:4px}.menu-list button{display:flex;gap:13px;width:100%;padding:14px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left}.menu-list button:last-child{border-bottom:0}.menu-list span{font-size:20px}.menu-list b,.menu-list small{display:block}.menu-list small{color:var(--muted);margin-top:2px}
.bottom-nav{position:fixed;z-index:20;left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom));width:min(calc(100% - 20px),740px);display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:color-mix(in srgb,var(--card) 94%,transparent);border:1px solid var(--border);border-radius:24px;padding:7px;backdrop-filter:blur(18px);box-shadow:var(--shadow)}
.bottom-nav button{border:0;background:transparent;border-radius:17px;padding:7px 2px;color:var(--muted)}.bottom-nav button.active{color:var(--accent);background:var(--accent-soft)}.bottom-nav span,.bottom-nav small{display:block}.bottom-nav span{font-size:19px}.bottom-nav small{font-size:10px;margin-top:2px}.bottom-nav .add-nav{background:var(--accent);color:white}
.modal{position:fixed;z-index:50;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;justify-content:center}.sheet{width:min(100%,760px);max-height:92vh;overflow:auto;background:var(--card);border-radius:28px 28px 0 0;padding:10px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -15px 45px rgba(0,0,0,.18)}.grabber{width:42px;height:5px;border-radius:9px;background:var(--border);margin:0 auto 12px}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sheet-head h2{margin:2px 0 0;font-size:22px}
.form{display:flex;flex-direction:column;gap:12px}.form label>span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.field,textarea.field,select.field{width:100%;border:1px solid var(--border);border-radius:15px;padding:12px;background:var(--field-bg)!important;color:var(--field-text)!important;-webkit-text-fill-color:var(--field-text);caret-color:var(--field-text);color-scheme:light dark;min-height:46px}.field::placeholder,textarea.field::placeholder{color:var(--placeholder);opacity:1;-webkit-text-fill-color:var(--placeholder)}select.field option{background:var(--card);color:var(--text)}input.field:-webkit-autofill,input.field:-webkit-autofill:hover,input.field:-webkit-autofill:focus{-webkit-text-fill-color:var(--field-text);-webkit-box-shadow:0 0 0 1000px var(--field-bg) inset;transition:background-color 9999s ease-out 0s}.field:focus{border-color:var(--focus)}.field:disabled{opacity:.62}.toggle-row{display:flex;align-items:center;gap:10px;padding:3px 1px}.toggle-row input{width:20px;height:20px}.event-times.hidden-times{display:none}.form-hint{font-size:12px;color:var(--muted);margin-top:-5px}.category-label{display:inline-flex;align-items:center;gap:4px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions{display:flex;gap:8px}.actions button,.form>button{min-height:46px;border-radius:15px;padding:10px 14px;border:1px solid var(--border);background:transparent}.actions .primary,.form>button.primary{border:0;background:var(--accent);color:white}.danger{color:var(--danger)!important}
.kind-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.kind{border:1px solid var(--border);background:transparent;border-radius:20px;padding:16px;text-align:left}.kind b,.kind small{display:block}.kind small{color:var(--muted);margin-top:4px}.kind .emoji{font-size:24px;margin-bottom:7px}
.ai-preview{display:flex;flex-direction:column;gap:8px}.preview-item{border:1px solid var(--border);border-radius:17px;padding:12px}.preview-item small{display:block;color:var(--muted);margin-top:3px}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,380px);background:var(--card);border:1px solid var(--border);border-radius:28px;padding:24px;box-shadow:var(--shadow)}.login-card h1{margin:5px 0}.login-card p{color:var(--muted);line-height:1.45}.login-card input{width:100%;padding:13px;border:1px solid var(--border);border-radius:15px;background:var(--field-bg);color:var(--field-text);-webkit-text-fill-color:var(--field-text);margin:8px 0}.login-card input::placeholder{color:var(--placeholder)}.login-card button{width:100%;padding:13px;border-radius:15px}.error{color:var(--danger);font-size:13px;margin-top:8px}
.small{border-radius:12px;padding:8px 12px}
@media(max-width:480px){.app{padding-left:10px;padding-right:10px}.day{min-height:78px;padding:4px}.cal-entry{font-size:8px}.summary b{font-size:19px}.twocol{grid-template-columns:1fr}}

/* v4.9 training + daily criteria tracker */
.training-task{border-left:4px solid #36A269}
.day.training-done{background:rgba(54,162,105,.16);border-color:rgba(54,162,105,.52)}
.day.training-done .day-num{color:#24754a;font-weight:800}
.bottom-nav{grid-template-columns:repeat(6,1fr)}
.tracker-calendar-panel{padding-top:8px}
.tracker-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:2px 4px 10px;color:var(--muted);font-size:11px}
.tracker-legend span{display:flex;gap:5px;align-items:center}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.legend-dot.green{background:#36A269}.legend-dot.yellow{background:#D89B36}.legend-dot.red{background:#C75353}
.tracker-day{min-height:64px;display:flex;flex-direction:column;justify-content:space-between}.tracker-count{font-size:10px;font-weight:700;color:var(--muted);margin-top:8px}.tracker-day.tracker-green{background:rgba(54,162,105,.20);border-color:rgba(54,162,105,.48)}.tracker-day.tracker-yellow{background:rgba(216,155,54,.20);border-color:rgba(216,155,54,.48)}.tracker-day.tracker-red{background:rgba(199,83,83,.18);border-color:rgba(199,83,83,.42)}.tracker-day.selected{outline:2px solid var(--accent);outline-offset:1px}
.tracker-day-summary{display:flex;align-items:baseline;gap:8px;margin:-2px 0 12px;color:var(--muted)}.tracker-day-summary b{font-size:22px;color:var(--text)}
.criterion-row{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:18px;padding:9px 10px;background:transparent}.criterion-main{border:0;background:transparent;display:flex;align-items:center;gap:9px;min-width:0;flex:1;text-align:left}.criterion-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.criterion-icon{width:28px;height:28px;border-radius:10px;background:var(--accent-soft);display:grid;place-items:center;flex:none}.criterion-actions{display:flex;gap:5px}.criterion-state{width:35px;height:35px;border-radius:12px;border:1px solid var(--border);background:transparent;font-weight:800}.criterion-state.done.active{background:#36A269;color:#fff;border-color:#36A269}.criterion-state.failed.active{background:#C75353;color:#fff;border-color:#C75353}.criterion-state.clear{color:var(--muted)}
@media(max-width:480px){.bottom-nav button{padding-left:0;padding-right:0}.bottom-nav small{font-size:9px}.tracker-day{min-height:57px}.criterion-row{padding:8px}.criterion-state{width:32px;height:32px}}
.day.training-done.selected{outline:2px solid var(--accent);outline-offset:1px}


/* v5.3 Tracker Pro */
.tracker-pro-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.tracker-pro-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:12px;min-width:0}
.tracker-pro-card span,.tracker-pro-card small{display:block;color:var(--muted);font-size:11px}
.tracker-pro-card b{display:block;font-size:22px;margin:4px 0 2px}
.tracker-analytics-panel{overflow:hidden}
.tracker-stats-list{display:flex;flex-direction:column;gap:9px}
.tracker-stat-row{border:1px solid var(--border);border-radius:18px;padding:11px;background:transparent}
.tracker-stat-head{display:flex;align-items:center;gap:9px}
.tracker-stat-name{min-width:0;flex:1}.tracker-stat-name b,.tracker-stat-name small{display:block}.tracker-stat-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracker-stat-name small{color:var(--muted);font-size:11px;margin-top:2px}
.tracker-stat-streak{font-size:17px;font-weight:750;white-space:nowrap}
.tracker-stat-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin:9px 0 7px}.tracker-stat-meta b{color:var(--text)}
.tracker-progress{height:7px;border-radius:99px;background:var(--border);overflow:hidden}.tracker-progress i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.criterion-title{min-width:0}.criterion-title b,.criterion-title small{display:block}.criterion-title small{font-size:10px;color:var(--muted);margin-top:2px}
@media(max-width:480px){.tracker-pro-summary{grid-template-columns:1fr 1fr}.tracker-pro-card:last-child{grid-column:1/-1}.tracker-stat-meta{gap:6px 10px}}


/* v5.4 Trips */
.trip-list{display:grid;grid-template-columns:1fr;gap:12px}.trip-card{min-height:160px;border:0;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#7b86a8,#3d4969);background-size:cover;background-position:center;text-align:left;color:#fff;padding:18px;display:flex;align-items:flex-end;box-shadow:var(--shadow)}.trip-card div{display:flex;flex-direction:column;gap:4px}.trip-card small{opacity:.86}.trip-card b{font-size:25px}.trip-card span{font-size:13px;opacity:.9}.trip-back{margin-bottom:10px}.trip-hero{margin-bottom:12px}.trip-hero-bg{min-height:210px;border-radius:26px;background:linear-gradient(135deg,#7a86a8,#414b67);background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:20px;color:#fff;overflow:hidden}.trip-hero-bg small,.trip-hero-bg span{display:block;opacity:.9}.trip-hero-bg h2{font-size:30px;margin:3px 0}.trip-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:-18px;padding:0 10px;position:relative}.trip-hero-stats>div{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;padding:10px;text-align:center}.trip-hero-stats b,.trip-hero-stats small{display:block}.trip-hero-stats small{font-size:10px;color:var(--muted);margin-top:2px}.trip-tabs{display:flex;overflow:auto;gap:6px;padding:4px 0 12px;scrollbar-width:none}.trip-tabs button{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:9px 12px;white-space:nowrap;color:var(--text)}.trip-tabs button.active{background:var(--text);color:var(--card)}.trip-members{display:flex;gap:8px;flex-wrap:wrap}.trip-members>span{display:flex;flex-direction:column;background:var(--soft);border-radius:15px;padding:8px 10px}.trip-members small{font-size:9px;color:var(--muted)}.trip-budget>b{font-size:19px}.trip-budget small{display:block;color:var(--muted);margin-top:5px}.trip-categories{margin-top:10px}.trip-categories>div,.balance-people>div,.balance-transfer{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.trip-day{margin-bottom:18px}.trip-day>.eyebrow{margin-bottom:6px}.positive{color:#258a55}.negative{color:#c65353}.trip-candidate{width:100%}
