:root{--bg:#f7f4ee;--surface:#fffdf9;--ink:#1e1d1a;--muted:#716e67;--faint:#a09b91;--line:#e5dfd5;--brand:#9a7159;--red:#ff385b;--yellow:#ffd53d;--green:#00d173;--blue:#3968a1;--nav-height:48px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{min-height:100dvh;background:var(--bg)}button,textarea,input{font:inherit;color:inherit}button{cursor:pointer}.app-shell{width:min(100%,430px);min-height:100dvh;margin:auto;padding:env(safe-area-inset-top) 20px calc(env(safe-area-inset-bottom) + 28px)}
.topbar{position:sticky;z-index:20;top:env(safe-area-inset-top);height:var(--nav-height);display:grid;grid-template-columns:48px 1fr 48px;align-items:center;background:#f7f4eef2}.topbar strong{text-align:center;color:var(--ink);font-size:14px;font-weight:600}.icon-button,.text-button{height:44px;border:0;background:transparent}.icon-button{width:44px;border:0;border-radius:50%;font-size:22px}.icon-button:active,.text-button:active{background:#ebe6dd}.icon-button:disabled,.text-button:disabled{cursor:default;opacity:.35}.text-button{border-radius:12px;color:var(--muted);font-size:13px}.progress{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.progress i{height:3px;border-radius:99px;background:#ded8cd}.progress i.done{background:var(--ink)}.progress i.current{background:var(--brand)}
.content{padding-top:36px}h1,p{margin:0}.step-number{color:var(--faint);font:600 12px/1 ui-monospace,monospace;letter-spacing:.12em}.content h1{margin-top:10px;font-size:34px;line-height:1.25;letter-spacing:-.045em}.helper{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.65}.choice-list{display:grid;gap:12px;margin-top:38px}.choice{min-height:96px;display:grid;grid-template-columns:50px 1fr 20px;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:22px;background:#fffdf9c9;text-align:left}.choice-orb{width:48px;height:48px;border-radius:52% 48% 58% 42%}.choice b,.choice small{display:block}.choice b{font-size:18px}.choice small{margin-top:5px;color:var(--muted);font-size:12px}.choice .arrow{color:var(--faint);font-size:22px}.choice-orb.positive{background:conic-gradient(var(--yellow),var(--green),var(--yellow))}.choice-orb.negative{background:conic-gradient(var(--red),var(--blue),var(--red))}
.energy-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:35px}.energy-card{min-height:230px;padding:22px 12px;border:1px solid var(--line);border-radius:25px;background:#fffdf9c9}.energy-art{position:relative;display:block;width:104px;height:102px;margin:auto}.energy-art i{position:absolute;display:block;background:var(--energy-main)}.energy-card.high .energy-art i:nth-child(1){width:72px;height:72px;left:16px;top:15px;border-radius:52% 48% 44% 56%;animation:energy-pulse 3.1s ease-in-out infinite}.energy-card.high .energy-art i:nth-child(2){width:17px;height:17px;right:0;top:4px;border-radius:50%;opacity:.58;animation:energy-orbit 4.6s ease-in-out infinite}.energy-card.high .energy-art i:nth-child(3){width:11px;height:11px;left:3px;bottom:7px;border-radius:50%;opacity:.35;animation:energy-orbit 3.8s ease-in-out -1.2s infinite reverse}.energy-card.low .energy-art i:nth-child(1){width:82px;height:62px;left:11px;top:23px;border-radius:44% 56% 61% 39%/57% 43% 57% 43%;animation:energy-float 4.4s ease-in-out infinite}.energy-card.low .energy-art i:nth-child(2){width:27px;height:16px;right:0;bottom:8px;border-radius:55% 45% 60% 40%;opacity:.45;animation:energy-float 5.2s ease-in-out -1.7s infinite reverse}.energy-card.low .energy-art i:nth-child(3){width:10px;height:10px;left:4px;top:8px;border-radius:50%;opacity:.28;animation:energy-orbit 5.6s ease-in-out infinite}.energy-card b,.energy-card small{display:block}.energy-card b{margin-top:24px;font-size:17px}.energy-card small{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}@keyframes energy-pulse{50%{transform:scale(1.08) rotate(5deg);border-radius:42% 58% 54% 46%/60% 42% 58% 40%}}@keyframes energy-float{50%{transform:translate(3px,-6px) rotate(-4deg);border-radius:58% 42% 46% 54%/43% 57% 43% 57%}}@keyframes energy-orbit{50%{transform:translate(5px,7px) scale(1.12)}}
.quadrant-label{display:inline-flex;align-items:center;gap:7px;margin-top:18px;padding:7px 10px;border-radius:99px;background:var(--soft);color:var(--label-color);font-size:12px}.quadrant-label i{width:8px;height:8px;border-radius:50%;background:var(--accent)}.emotion-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:var(--gap);margin-top:18px}.emotion-button{min-width:0;min-height:var(--chip-height);padding:7px 3px 6px;border:1px solid var(--line);border-radius:var(--chip-radius);background:#fffdf9c9;font-size:var(--chip-font);font-weight:550;line-height:1.15}.emotion-button>span,.emotion-button>small{display:block}.emotion-button>small{max-width:100%;margin-top:4px;overflow:hidden;color:var(--faint);font-size:10px;font-weight:450;line-height:1.05;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.emotion-grid.density-5 .emotion-button>small{font-size:8px;letter-spacing:-.045em}.emotion-button.selected{border:2px solid var(--accent);background:var(--soft);color:var(--label-color);transform:translateY(-2px)}.emotion-button.selected>small{color:inherit;opacity:.72}.primary{width:100%;min-height:54px;margin-top:18px;border:0;border-radius:18px;background:var(--ink);color:#fff;font-weight:650}.primary:disabled{background:#ded8ce;color:#aaa49a}.selected-card{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;margin-top:24px;padding:14px;border:1px solid var(--line);border-radius:20px;background:#fffdf9c9}.selected-card i{width:48px;height:48px;border-radius:52% 48% 58% 42%;background:var(--accent)}.selected-card small,.selected-card b{display:block}.selected-card small{color:var(--muted);font-size:11px}.selected-card b{margin-top:3px;font-size:17px}.selected-card button{border:0;background:transparent;color:var(--muted);font-size:12px}.field{margin-top:22px}.field label{display:block;font-size:14px;font-weight:600}.intensity{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.intensity button{height:48px;border:1px solid var(--line);border-radius:14px;background:#fffdf9c9}.intensity button.selected{border-color:var(--accent);background:var(--soft)}textarea,input[type="datetime-local"]{width:100%;margin-top:11px;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fffdf9c9;outline:0}textarea{min-height:112px;resize:vertical;font-size:16px;line-height:1.6}.error{margin-top:12px;color:#9b3344;font-size:13px}.loading{display:grid;min-height:100dvh;place-items:center;color:var(--muted)}
.learn{display:flex;width:100%;justify-content:space-between;margin-top:12px;padding:12px 2px;border:0;background:transparent;color:var(--muted);font-size:13px}.learn small{color:var(--faint)}
.today-header{margin-top:20px}.today-header p{color:var(--muted);font-size:13px}.today-header h1{margin-top:4px;font-size:38px}.tone-card{position:relative;height:208px;margin-top:22px;overflow:hidden;contain:layout paint;border:1px solid #ded6c9;border-radius:29px;background:#f1ebe2}.tone-card>span{position:absolute;z-index:3;left:18px;top:18px;padding:6px 10px;border-radius:99px;background:#fffdf2;box-shadow:0 3px 14px #514a3e0a;font-size:12px}.tone-blob{position:absolute;z-index:1;left:0;top:0;border-radius:52% 48% 58% 42%;background:var(--blob);background:color-mix(in srgb,var(--blob) 72%,white);filter:blur(3px) saturate(.92);opacity:.66;mix-blend-mode:multiply;will-change:transform,border-radius;animation:blob-morph 8.4s ease-in-out infinite alternate}.tone-blob:nth-child(2n){animation-duration:10.2s}.tone-blob:nth-child(3n){animation-duration:7.6s}@keyframes blob-morph{to{border-radius:38% 62% 45% 55%/61% 39% 58% 42%}}.tone-drop{position:fixed;z-index:50;width:16px;height:16px;border-radius:50%;background:var(--drop-color);pointer-events:none;will-change:transform}.tone-impact{position:absolute;z-index:2;width:22px;height:8px;border-radius:50%;background:var(--drop-color);opacity:0;filter:blur(1px);pointer-events:none}.today-action{z-index:4;position:relative;width:calc(100% - 32px);min-height:52px;margin:-26px 16px 0;border:0;border-radius:17px;background:var(--surface);font-weight:650;box-shadow:0 10px 28px #1f1d1817}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-top:31px}.section-heading h2{margin:0;font-size:19px}.section-heading span{color:var(--faint);font-size:12px}.entry-list{display:grid;gap:8px;margin-top:12px}.entry{display:grid;grid-template-columns:12px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fffdf9b8}.entry>i{width:12px;height:48px;border-radius:99px;background:var(--entry-color)}.entry b{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:10px}.entry time{display:inline-block;flex:0 0 auto;color:var(--faint);font-size:11px;font-weight:400}.entry p{display:block;margin-top:5px;overflow:hidden;color:var(--muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}.empty{margin-top:35px;text-align:center;color:var(--muted);font-size:13px}
.tone-empty{position:absolute;inset:0;display:grid;place-items:center;color:#8d867b;font-size:13px}.setting-options{display:grid;gap:10px;margin-top:30px}.setting-options button{display:flex;align-items:center;justify-content:space-between;padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--surface);text-align:left}.setting-options b,.setting-options small{display:block}.setting-options small{margin-top:4px;color:var(--muted)}.setting-options button.selected{border-color:var(--ink)}.setting-options i{font-style:normal}
.has-bottom-nav{padding-bottom:calc(env(safe-area-inset-bottom) + 96px)}.bottom-nav{position:fixed;z-index:30;left:50%;bottom:0;width:min(100%,430px);height:calc(68px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;padding:7px 48px env(safe-area-inset-bottom);transform:translateX(-50%);border-top:1px solid #e5dfd5cc;background:#f7f4eef2;backdrop-filter:blur(16px)}.bottom-nav button{display:grid;place-items:center;gap:1px;border:0;border-radius:14px;background:transparent;color:var(--faint);font-size:11px}.bottom-nav i{font-style:normal;font-size:18px;line-height:1}.bottom-nav button.active{color:var(--ink)}
.calendar-head{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-top:18px}.calendar-head h1{margin:0;text-align:center;font-size:24px}.calendar-head button{height:42px;border:0;border-radius:50%;background:transparent;font-size:24px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{margin-top:27px;color:var(--faint);font-size:11px;text-align:center}.calendar-grid{row-gap:10px;margin-top:10px}.calendar-cell{display:grid;min-width:0;width:100%;height:52px;place-items:center;border:0;background:transparent;padding:4px}.calendar-cell>span{display:grid;width:min(100%,44px);height:auto;aspect-ratio:1/1;place-items:center;border-radius:50%;font-size:13px}.calendar-cell.has-entries>span{background:var(--day-fill);color:#1e1d1a;font-weight:650;box-shadow:inset 0 0 0 1px #ffffff73}.calendar-cell.is-today>span{outline:1.5px solid var(--ink);outline-offset:2px}.calendar-note{margin-top:26px;text-align:center;color:var(--muted);font-size:12px}.day-content{padding-top:24px}
.entry{width:100%;color:inherit;text-align:left}.entry span{min-width:0}.detail{padding-top:28px}.detail-orb{display:block;width:78px;height:74px;border-radius:53% 47% 58% 42%;background:var(--accent);animation:energy-float 5s ease-in-out infinite}.detail h1{margin-top:18px}.detail-time{margin-top:8px;color:var(--muted);font-size:13px}.detail-row{display:flex;justify-content:space-between;margin-top:30px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.detail-row span,.detail-note>span{color:var(--muted)}.detail-note{margin-top:24px}.detail-note>span{font-size:13px}.detail-note p{margin-top:10px;font-size:16px;line-height:1.7;white-space:pre-wrap}.danger{width:100%;min-height:48px;margin-top:40px;border:1px solid #e8b9c1;border-radius:16px;background:transparent;color:#a43145}.secondary{width:100%;min-height:50px;border:1px solid var(--ink);border-radius:16px;background:transparent;font-weight:600}.export-section{margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}.export-section h2{margin:9px 0 0;font-size:24px}.date-range{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.date-range label{color:var(--muted);font-size:12px}.date-range input{width:100%;margin-top:7px;padding:11px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.export-section .secondary{margin-top:16px}
.dialog-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 20px) 20px calc(env(safe-area-inset-bottom) + 20px);background:#1f1e1b47}.confirm-dialog{width:min(100%,340px);padding:24px;border-radius:26px;background:var(--surface);box-shadow:0 24px 70px #1f1d1833}.confirm-dialog h2{margin:0;font-size:22px}.confirm-dialog p{margin-top:8px;color:var(--muted);font-size:14px;line-height:1.6}.confirm-dialog>div{display:grid;gap:8px;margin-top:22px}.confirm-dialog .primary{margin-top:0}.dialog-abandon{min-height:50px;border:0;border-radius:16px;background:transparent;color:#9b3344;font-weight:600}.save-recovery{padding-top:72px}
@media(min-width:700px){body{background:#e9e5dd}.app-shell{margin:0 auto;min-height:100dvh;background:var(--bg)}.bottom-nav{box-shadow:0 -10px 30px #1f1d180a}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
