:root{color:#f3f7f5;background:#0b0f0d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;line-height:1.4;--bg: #0b0f0d;--border: #1d2925;--text: #f3f7f5;--muted: #8c9a93;--accent: #2dcf9f;--danger: #ff7b7b;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.2, .8, .2, 1);--dur-fast: .16s;--dur-med: .24s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,rgba(45,207,159,.08),transparent 28%),var(--bg);color:var(--text)}button,textarea,input{font:inherit}button{border:0;cursor:pointer;appearance:none;outline:none;transition:transform var(--dur-fast) var(--ease-soft),background-color var(--dur-fast) var(--ease-soft),border-color var(--dur-fast) var(--ease-soft),color var(--dur-fast) var(--ease-soft),box-shadow var(--dur-med) var(--ease-soft),opacity var(--dur-fast) var(--ease-soft)}button:disabled{cursor:not-allowed;opacity:.55}textarea,input{width:100%;border-radius:14px;border:1px solid var(--border);background:#0e1311;color:var(--text)}textarea{min-height:92px;resize:vertical;padding:12px 14px}textarea::placeholder{color:#6f7c75}.app-shell{width:min(100%,720px);margin:0 auto;min-height:100dvh;padding:18px 14px calc(120px + env(safe-area-inset-bottom,0px))}.app-shell-home{height:100dvh;overflow:hidden}h1,h2,h3,p{margin-top:0}h2,h3{margin-bottom:0;font-size:1.02rem;line-height:1.15;text-transform:capitalize}.muted{color:var(--muted)}.panel{border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,#151d1afa,#0f1513fa);box-shadow:0 14px 36px #0000003d;animation:panel-in var(--dur-med) var(--ease-out)}.auth-panel,.today-panel,.history-panel,.placeholder-panel{padding:16px;display:grid;gap:14px}.auth-panel{max-width:560px;gap:12px}.dev-user{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 0}.dev-user div{padding:12px;border-radius:16px;border:1px solid var(--border);background:#ffffff05}.dev-user dt{margin-bottom:4px;color:var(--muted);font-size:.76rem}.dev-user dd{margin:0;overflow-wrap:anywhere;font-weight:600}.home-grid{display:flex;flex-direction:column;gap:12px;height:calc(100dvh - 150px - env(safe-area-inset-bottom,0px));min-height:0;overflow:hidden}.home-sticky{position:relative;z-index:2;flex:0 0 auto;display:grid;gap:12px;padding-bottom:0;background:transparent}.month-toolbar,.month-chip,.day-log-head,.history-topline,.scale-head,.section-heading{display:flex;align-items:center;gap:12px}.month-toolbar,.history-topline,.scale-head,.section-heading,.day-log-head{justify-content:space-between}.month-arrow,.month-chip{min-height:44px;border-radius:16px;border:1px solid var(--border);background:#ffffff08;color:var(--text)}.month-arrow:hover,.month-chip:hover,.day-pill:hover,.state-mini:hover,.history-card:hover,.picker-option:hover,.nav-item:hover,.danger-button:hover{transform:translateY(-1px)}.month-arrow:active,.day-pill:active,.picker-option:active,.primary-cta:active,.secondary-button:active,.fab-button:active,.nav-item:active,.picker-inline-trigger:active,.danger-button:active{transform:scale(.985);filter:brightness(1.04)}.month-arrow{width:42px;font-size:1.35rem;flex:0 0 auto}.month-chip{flex:1;justify-content:center;padding:0 14px;font-weight:600}.month-chip-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.month-chip-caret{color:var(--muted);font-size:.86rem}.day-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(54px,1fr);gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.day-strip::-webkit-scrollbar{display:none}.day-pill{min-height:64px;padding:8px 6px;border-radius:18px;border:1px solid rgba(255,255,255,.05);background:#ffffff08;color:var(--text);display:grid;gap:4px;place-items:center;transition:transform var(--dur-fast) var(--ease-soft),background-color var(--dur-med) var(--ease-soft),border-color var(--dur-med) var(--ease-soft),box-shadow var(--dur-med) var(--ease-soft)}.day-pill.active{border-color:#2dcf9f8c;background:#2dcf9f1f;box-shadow:0 10px 20px #2dcf9f14}.day-pill.disabled{opacity:.38}.day-weekday{color:var(--muted);font-size:.64rem;text-transform:uppercase}.day-number{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid transparent;font-weight:700;transition:border-color var(--dur-med) var(--ease-soft),box-shadow var(--dur-med) var(--ease-soft),color var(--dur-fast) var(--ease-soft)}.day-number.has-entry{border-color:#2dcf9fb8;box-shadow:0 0 0 3px #2dcf9f14;color:#e9fff6}.state-preview{display:grid;gap:10px}.state-preview.compact-two{grid-template-columns:repeat(2,minmax(0,1fr))}.history-panel>.section-heading{display:none}.history-panel{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden;height:100%;position:relative;padding-bottom:12px}.state-mini{padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.04);background:#ffffff08;transition:transform var(--dur-fast) var(--ease-soft),border-color var(--dur-med) var(--ease-soft),background-color var(--dur-med) var(--ease-soft),box-shadow var(--dur-med) var(--ease-soft)}.state-mini-title{display:block;margin-bottom:8px;color:var(--muted);font-size:.8rem}.state-mini-value{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:28px;font-weight:600}.muted-value,.muted-inline,.section-subtle,.day-log-head span{color:var(--muted)}.section-subtle,.day-log-head span{font-size:.82rem}.history-list,.day-log-body{display:grid;gap:10px}.history-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 4px 20px 0;align-content:start;-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 18px,black calc(100% - 28px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,black 18px,black calc(100% - 28px),transparent 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.day-log-group{display:grid;gap:10px;padding:0;border:0;background:transparent}.day-log-head{display:none}.history-stack{display:block}.history-card{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;padding:12px;border-radius:20px;border:1px solid rgba(255,255,255,.05);background:#ffffff05;transition:transform var(--dur-fast) var(--ease-soft),border-color var(--dur-med) var(--ease-soft),background-color var(--dur-med) var(--ease-soft),box-shadow var(--dur-med) var(--ease-soft)}.history-card.tappable{cursor:pointer}.history-card.tappable:hover{border-color:#2dcf9f2e;background:#ffffff08;box-shadow:0 12px 24px #0000002e}.history-media{display:grid;gap:8px;align-content:start}.history-bubbles{display:flex;gap:8px}.history-bubble{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;border:1px solid rgba(255,255,255,.05);background:#ffffff08;transition:transform var(--dur-fast) var(--ease-soft),border-color var(--dur-med) var(--ease-soft),background-color var(--dur-med) var(--ease-soft)}.history-bubble.mood{background:linear-gradient(180deg,#57c27124,#ffffff08)}.history-bubble.energy{background:linear-gradient(180deg,#2dcf9f1f,#ffffff08)}.history-caption{margin-bottom:0;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;line-height:1.2}.history-body{display:grid;gap:4px;align-content:start}.history-date-large,.history-time,.history-details{margin-bottom:0}.history-date-large{font-weight:700}.history-time{color:var(--muted);font-size:.82rem}.history-details{margin-top:6px;min-height:40px;color:#d3ddd7;font-size:.9rem;line-height:1.4}.history-details.placeholder{color:#617069}.history-actions{display:flex;gap:8px}.history-delete{display:none}.primary-cta,.secondary-button{min-height:50px;border-radius:16px;font-weight:700}.primary-cta{background:linear-gradient(180deg,#32d6a7,#1fb58a);color:#06110d;box-shadow:0 14px 26px #2dcf9f38}.primary-cta:hover{transform:translateY(-1px);box-shadow:0 18px 30px #2dcf9f47}.secondary-button{background:#ffffff0f;color:var(--text)}.fab-button{position:fixed;right:max(18px,calc((100vw - min(100vw,720px))/2 + 18px));bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:25;width:58px;height:58px;border-radius:50%;background:linear-gradient(180deg,#32d6a7,#1fb58a);color:#07110d;font-size:2rem;line-height:1;box-shadow:0 18px 34px #2dcf9f42;animation:fab-float 3.2s ease-in-out infinite}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(100%,720px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.05);background:#090d0beb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-item{min-height:56px;display:grid;gap:4px;place-items:center;border-radius:14px;background:transparent;color:#74817b;padding:6px 4px;transition:transform var(--dur-fast) var(--ease-soft),color var(--dur-fast) var(--ease-soft),background-color var(--dur-fast) var(--ease-soft)}.nav-item.active{color:var(--accent);background:#2dcf9f0f}.nav-icon{font-size:1.06rem;line-height:1}.nav-label{font-size:.74rem;line-height:1.05}.sheet-overlay{position:fixed;inset:0;z-index:30;display:grid;align-items:end;background:#03070694;animation:fade-in var(--dur-fast) var(--ease-out)}.sheet-shell{animation:sheet-in var(--dur-med) var(--ease-out);will-change:transform,opacity}.sheet{border-radius:28px 28px 0 0;border:1px solid rgba(255,255,255,.06);border-bottom:0;background:linear-gradient(180deg,#141b18,#0f1412);box-shadow:0 -24px 48px #0000006b;padding:12px 16px calc(18px + env(safe-area-inset-bottom,0px));transition:transform var(--dur-med) var(--ease-out);touch-action:pan-x}.sheet-grabber{width:44px;height:5px;margin:0 auto 12px;border-radius:999px;background:#ffffff29;transition:background-color var(--dur-fast) var(--ease-soft),transform var(--dur-fast) var(--ease-soft)}.sheet:hover .sheet-grabber{background:#ffffff38}.sheet-header{display:grid;gap:6px;margin-bottom:14px}.sheet-form{display:grid;gap:16px}.calendar-window-overlay{position:fixed;inset:0;z-index:35;padding:12px;background:#030706b8;animation:fade-in var(--dur-fast) var(--ease-out)}.calendar-window{width:min(100%,720px);height:calc(100dvh - 24px);margin:0 auto;padding:14px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:28px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#141b18,#0f1412);box-shadow:0 18px 42px #00000061;display:grid;gap:14px;overflow:hidden;animation:panel-in var(--dur-med) var(--ease-out)}.calendar-window-header,.calendar-window-actions{display:flex;align-items:center}.calendar-window-header{justify-content:space-between;gap:10px}.calendar-window-header h2{flex:1;text-align:center}.calendar-window-actions{gap:8px}.calendar-close{width:42px;min-height:44px;border-radius:16px;border:1px solid var(--border);background:#ffffff08;color:var(--text);font-size:1.5rem;line-height:1}.calendar-sheet-body{display:grid;gap:14px;overflow-y:auto;min-height:0;padding-right:2px}.calendar-mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;border-radius:16px;border:1px solid rgba(255,255,255,.05);background:#ffffff08}.calendar-mode-button{min-height:36px;border-radius:12px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:700}.calendar-mode-button.active{background:#2dcf9f1f;color:#ecfff8;box-shadow:inset 0 0 0 1px #2dcf9f33}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.74rem}.calendar-weekday-averages{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekday-average{display:grid;place-items:center}.calendar-weekday-average-badge{min-width:28px;padding:2px 6px;border-radius:999px;border:1px solid var(--weekday-accent, rgba(255, 255, 255, .08));background:var(--weekday-fill, rgba(255, 255, 255, .03));color:#f2f7f4;text-align:center;font-size:.68rem;font-weight:700;line-height:1.2}.calendar-weekday-average-badge.empty{border-color:#ffffff0d;background:#ffffff05;color:var(--muted)}.calendar-day-empty{min-height:42px}.calendar-day{position:relative;min-height:46px;padding:6px 4px;border-radius:16px;border:var(--day-count-ring, 1px) solid rgba(255,255,255,.05);background:var(--day-fill, rgba(255, 255, 255, .03));color:var(--text);display:grid;place-items:center;gap:2px;box-shadow:inset 0 0 0 1px #ffffff03}.calendar-day.empty{background:#ffffff05;border-color:#ffffff0a}.calendar-day.disabled{opacity:.38;cursor:not-allowed}.calendar-day.today{box-shadow:inset 0 0 0 1px #ffffff0a,0 0 0 1px #ffffff4d}.calendar-day.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px #ffffff0a,0 0 0 1px #2dcf9f8c}.calendar-day.dense{border-width:2px}.calendar-day-number{font-weight:700;font-size:.92rem}.calendar-day-mood-strip,.calendar-day-energy-strip{position:absolute;left:8px;right:8px;bottom:6px;height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.calendar-day-mood-fill,.calendar-day-energy-fill{display:block;height:100%;border-radius:inherit;background:var(--day-accent, var(--accent))}.calendar-day-note-dot{position:absolute;bottom:6px;right:7px;width:5px;height:5px;border-radius:999px;background:#f2f6f4;opacity:.88}.calendar-day.mode-energy .calendar-day-note-dot,.calendar-day.mode-mood .calendar-day-note-dot{bottom:13px}.calendar-summary{padding:14px;gap:12px}.calendar-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.calendar-summary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.calendar-empty-copy{margin-bottom:0}.calendar-summary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.picker-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:4px 2px 0}.picker-inline-trigger{padding:0;background:transparent;color:var(--accent);text-align:left;font-weight:700;transition:transform var(--dur-fast) var(--ease-soft),color var(--dur-fast) var(--ease-soft),opacity var(--dur-fast) var(--ease-soft)}.picker-inline-trigger:hover{color:#86e6c9}.picker-inline-trigger.date{color:#78dabb}.picker-inline-trigger.time{color:#78dabb;text-align:right}.picker-inline .picker-label{display:none}.native-picker{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.note-field{display:grid;gap:8px}.note-field span{font-weight:700}.scale-row{display:grid;gap:10px;margin:0;padding:0;border:0}.scale-row legend{padding:0;font-weight:700}.scale-selected{color:var(--text);font-size:.88rem;font-weight:700}.scale-actions{display:grid;grid-template-columns:repeat(5,minmax(44px,1fr));gap:8px}.picker-option{min-width:44px;min-height:48px;display:grid;place-items:center;border-radius:18px;border:1px solid var(--border);background:#111715;transition:transform var(--dur-fast) var(--ease-soft),border-color var(--dur-med) var(--ease-soft),background-color var(--dur-med) var(--ease-soft),box-shadow var(--dur-med) var(--ease-soft)}.picker-option.active{border-color:var(--accent, #2dcf9f);background:color-mix(in srgb,var(--accent, #2dcf9f) 15%,#111715);box-shadow:0 12px 22px #0003,0 0 0 1px #ffffff05}.link-button{justify-self:start;padding:0;background:transparent;color:var(--accent);font-weight:700}.sheet-actions{display:grid;gap:10px}.danger-button{min-height:48px;border-radius:16px;background:#ff7b7b24;color:#ff9b9b;font-weight:700;box-shadow:inset 0 0 0 1px #ff7b7b1f}.toast{position:fixed;left:14px;right:14px;top:calc(12px + env(safe-area-inset-top,0px));z-index:40;margin:0 auto;width:min(100%,420px);padding:12px 14px;border-radius:14px;font-size:.92rem;transition:transform .18s ease,opacity .18s ease;touch-action:pan-x;animation:toast-in .22s var(--ease-out)}.toast.success{background:#1c533df5;color:#e9fff5}.toast.error{background:#682424f5;color:#ffe9e9}.toast-top{-webkit-user-select:none;user-select:none}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fab-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(min-width:860px){.home-grid{height:calc(100dvh - 150px - env(safe-area-inset-bottom,0px))}.history-panel{max-height:calc(100dvh - 150px - env(safe-area-inset-bottom,0px))}}@media(max-width:560px){.app-shell{padding-inline:12px}.dev-user,.sheet-actions{grid-template-columns:1fr}.history-card{grid-template-columns:104px minmax(0,1fr);gap:10px}.history-bubble{width:44px;height:44px}}
