:root{--bg0: #e8f2ef;--bg1: #f4faf7;--ink: #1a2e28;--ink-soft: #4a635a;--line: rgba(26, 46, 40, .1);--card: rgba(255, 255, 255, .72);--accent: #2f6f5e;--shadow: 0 18px 50px rgba(26, 46, 40, .08);--radius: 22px;--font-display: "Fraunces", "Noto Serif SC", serif;--font-body: "Noto Sans SC", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);min-height:100vh;min-height:100dvh;background:radial-gradient(900px 500px at 10% -10%,#d7ebe3 0%,transparent 55%),radial-gradient(700px 420px at 100% 0%,#f3e6d8 0%,transparent 50%),linear-gradient(180deg,var(--bg0),var(--bg1) 40%,#eef5f2);line-height:1.55;overflow-x:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation}button:focus,button:focus-visible,button:active{outline:none;-webkit-tap-highlight-color:transparent}.no-select,.mood-grid,.chips,.nav,.mood-mini,.mode-chips,.cal-grid{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.app-shell{max-width:1100px;margin:0 auto;padding:20px 18px 96px;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));padding-bottom:max(96px,calc(24px + env(safe-area-inset-bottom)))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 4px 24px}.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.brand-mark{font-family:var(--font-display);font-size:1.85rem;font-weight:700;letter-spacing:.02em}.brand-sub{font-size:.82rem;color:var(--ink-soft)}.nav{display:flex;gap:4px;background:#ffffff8c;border:1px solid var(--line);border-radius:999px;padding:5px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow-x:auto;max-width:min(78vw,720px);-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{padding:8px 12px;border-radius:999px;font-size:.84rem;color:var(--ink-soft);transition:background .2s ease,color .2s ease;white-space:nowrap}.nav button.active{background:var(--accent);color:#fff}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:#ffffffb3;font-size:.84rem;color:var(--ink-soft)}.user-chip strong{color:var(--ink);font-weight:600}.user-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.user-chip button{color:var(--accent);font-weight:600;font-size:.82rem;padding:0 2px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:stretch;min-height:min(68vh,620px);margin-bottom:28px}.hero-copy{display:flex;flex-direction:column;justify-content:flex-end;padding:28px 8px 18px;animation:rise .7s ease both}.hero-copy h1{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.12;font-weight:700;margin-bottom:14px;max-width:12ch}.hero-copy p{color:var(--ink-soft);max-width:36ch;margin-bottom:22px;font-size:1.02rem}.cta-row{display:flex;gap:10px;flex-wrap:wrap}.btn-primary,.btn-ghost,.btn-soft{border-radius:999px;padding:12px 20px;font-weight:600;transition:transform .2s ease,box-shadow .2s ease,background .2s}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 10px 24px #2f6f5e47}.btn-primary:hover{transform:translateY(-1px)}.btn-ghost{border:1px solid var(--line);background:#ffffff80}.btn-soft{background:#2f6f5e1a;color:var(--accent)}.hero-panel{border-radius:28px;overflow:hidden;position:relative;background:linear-gradient(160deg,#2f6f5ee0,#2f6f5e8c),radial-gradient(circle at 30% 20%,#f0d7b8,transparent 45%),#2f6f5e;color:#f7fffb;padding:28px;box-shadow:var(--shadow);animation:floatIn 1s ease both}.hero-panel:after{content:"";position:absolute;inset:auto -20% -30% 20%;height:70%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 60%);animation:drift 8s ease-in-out infinite alternate}.hero-panel h2{font-family:var(--font-display);font-size:1.55rem;margin-bottom:8px;position:relative;z-index:1}.hero-panel p{opacity:.9;position:relative;z-index:1;margin-bottom:18px}.mood-mini{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;position:relative;z-index:1}.mood-mini button{aspect-ratio:1;border-radius:18px;background:#ffffff24;border:1px solid rgba(255,255,255,.18);font-size:1.35rem;transition:.2s ease}.mood-mini button:hover,.mood-mini button.selected{background:#ffffff47;transform:translateY(-2px) scale(1.04)}.section{margin-bottom:28px;animation:rise .55s ease both}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-head h2{font-family:var(--font-display);font-size:1.55rem}.section-head p{color:var(--ink-soft);font-size:.92rem}.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.field{margin-bottom:14px}.field label{display:block;font-size:.86rem;color:var(--ink-soft);margin-bottom:6px;font-weight:500}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:#ffffffd9;border-radius:14px;padding:11px 13px;outline:none}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#2f6f5e73;box-shadow:0 0 0 3px #2f6f5e1f}.mood-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.mood-opt{border:1px solid var(--line);border-radius:16px;padding:12px 6px;text-align:center;background:#ffffffb3;transition:border-color .15s ease,background .15s ease,transform .15s ease;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important;touch-action:manipulation;outline:none!important;box-shadow:none}.mood-opt *,.mood-opt:before,.mood-opt:after{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;pointer-events:none}.mood-opt .emoji{font-size:1.5rem;display:block;margin-bottom:4px}.mood-opt .name{font-size:.78rem;color:var(--ink-soft)}.mood-opt.selected{border-color:var(--accent);background:#2f6f5e1a;transform:translateY(-2px)}.mood-opt:hover{border-color:#2f6f5e59}.mood-opt:active{transform:scale(.98);background:#2f6f5e14}.mood-opt:focus,.mood-opt:focus-visible,.mood-opt:focus-within{outline:none!important;box-shadow:none}.mood-opt::selection,.mood-opt *::selection{background:transparent;color:inherit}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:.84rem;background:#ffffffb3;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important;touch-action:manipulation;outline:none!important}.chip:focus,.chip:focus-visible{outline:none!important;box-shadow:none}.chip.on{background:#2f6f5e1f;border-color:#2f6f5e59;color:var(--accent);font-weight:600}.range-row{display:flex;align-items:center;gap:12px}.range-row input[type=range]{flex:1;accent-color:var(--accent)}.intensity-val{min-width:42px;text-align:center;font-weight:700;color:var(--accent)}.insight-list{display:grid;gap:10px}.insight{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:16px;background:#ffffff8c;border:1px solid var(--line)}.insight .bar{height:8px;border-radius:999px;background:#2f6f5e1f;overflow:hidden;margin-top:6px}.insight .bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#6aa88f);border-radius:inherit}.care-card{min-height:180px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s ease}.care-card:hover{transform:translateY(-3px)}.care-card .tag{display:inline-flex;width:fit-content;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px;background:#2f6f5e1a;color:var(--accent);margin-bottom:10px}.care-card h3{font-family:var(--font-display);font-size:1.2rem;margin-bottom:6px}.care-card p{color:var(--ink-soft);font-size:.9rem}.care-card .meta{margin-top:14px;font-size:.8rem;color:var(--ink-soft);display:flex;justify-content:space-between;align-items:center;gap:8px}.timeline{display:grid;gap:10px}.entry{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:start;padding:14px;border-radius:18px;border:1px solid var(--line);background:#fff9}.entry .emoji{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:1.6rem;background:#2f6f5e1a}.entry h4{font-size:1rem;margin-bottom:2px}.entry .note{color:var(--ink-soft);font-size:.88rem}.entry .time{font-size:.78rem;color:var(--ink-soft);white-space:nowrap}.entry .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.entry .tags span{font-size:.72rem;padding:3px 8px;border-radius:999px;background:#1a2e280f}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stats-4{grid-template-columns:repeat(4,1fr)}.stat{padding:14px;border-radius:16px;background:#ffffff8c;border:1px solid var(--line);text-align:center}.stat strong{display:block;font-family:var(--font-display);font-size:1.45rem;line-height:1.25;margin-bottom:2px;word-break:break-word}.stat span{font-size:.8rem;color:var(--ink-soft)}.chart{display:flex;align-items:end;gap:8px;height:140px;padding:8px 4px 0}.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:end}.chart .col .pill{width:100%;border-radius:10px 10px 6px 6px;background:linear-gradient(180deg,#6aa88f,var(--accent));min-height:8px;transition:height .4s ease}.chart .col small{font-size:.7rem;color:var(--ink-soft)}.empty{text-align:center;padding:28px 12px;color:var(--ink-soft)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:.3s ease;z-index:50;font-size:.9rem}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.disclaimer{margin-top:18px;font-size:.78rem;color:var(--ink-soft);text-align:center}.report-quote{font-family:var(--font-display);font-size:1.25rem;line-height:1.45;margin-bottom:14px}.report-body{color:var(--ink-soft);font-size:.95rem}.report-body p+p{margin-top:10px}.week-compare{padding:18px 16px 16px}.compare-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.compare-head h3{font-family:var(--font-display);font-size:1.25rem;margin-bottom:4px}.compare-head p{font-size:.84rem;color:var(--ink-soft)}.compare-legend{display:flex;gap:12px;font-size:.8rem;color:var(--ink-soft);align-items:center}.compare-legend .swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}.compare-legend .swatch.prev{background:#b7c5bc}.compare-legend .swatch.curr{background:var(--accent)}.compare-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.compare-metric{padding:12px 10px 10px;border-radius:16px;background:#ffffff8c;border:1px solid var(--line);text-align:center}.compare-metric-label strong{display:block;font-size:.82rem;margin-bottom:2px}.compare-metric-label small{display:block;font-size:.68rem;color:var(--ink-soft);line-height:1.3;margin-bottom:8px}.compare-pair{display:flex;align-items:end;justify-content:center;gap:8px;height:88px;margin-bottom:6px}.compare-bar-wrap{flex:1;max-width:36px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:4px}.compare-bar-wrap span{font-size:.68rem;color:var(--ink-soft)}.compare-bar{width:100%;border-radius:8px 8px 4px 4px;min-height:8px;transition:height .35s ease}.compare-bar.prev{background:#b7c5bc}.compare-bar.curr{background:linear-gradient(180deg,#6aa88f,var(--accent))}.compare-delta{font-size:.78rem;font-weight:600;color:var(--ink-soft)}.compare-delta.up{color:var(--accent)}.compare-delta.down{color:#a06b45}.compare-delta.neutral{color:var(--ink-soft)}.compare-trend h4{font-family:var(--font-display);font-size:1rem;margin-bottom:10px}.compare-chart{display:flex;align-items:end;gap:6px;height:120px;padding:4px 2px 0}.compare-day{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:6px}.compare-day-bars{flex:1;width:100%;display:flex;align-items:end;justify-content:center;gap:3px;min-height:0}.compare-day-bars .pill{width:42%;max-width:14px;border-radius:8px 8px 4px 4px;min-height:6px}.compare-day-bars .pill.prev{background:#b7c5bc}.compare-day-bars .pill.curr{background:linear-gradient(180deg,#6aa88f,var(--accent))}.compare-day small{font-size:.7rem;color:var(--ink-soft)}.compare-notes{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.92rem;line-height:1.55}.compare-notes p+p{margin-top:8px}.mood-calendar{padding:18px 16px 16px}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.cal-title{flex:1;text-align:center}.cal-title strong{display:block;font-family:var(--font-display);font-size:1.45rem}.cal-title span{display:block;margin-top:2px;font-size:.8rem;color:var(--ink-soft)}.cal-actions{display:flex;align-items:center;gap:6px}.cal-nav{width:40px;height:40px;padding:0;display:grid;place-items:center;font-size:1.4rem;line-height:1}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;text-align:center;color:var(--ink-soft);font-size:.78rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-cell{position:relative;aspect-ratio:.85;min-height:64px;border-radius:14px;border:1px solid transparent;background:#ffffff73;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px}.cal-cell.empty{background:transparent;pointer-events:none}.cal-cell.in-week{background:#2f6f5e0f;border-color:#2f6f5e1f}.cal-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px #2f6f5e40;background:#2f6f5e1a}.cal-cell.today .cal-day{color:var(--accent);font-weight:700}.cal-cell.has-mood{background:#ffffffbf}.cal-day{font-size:.92rem;font-weight:600;line-height:1}.cal-mood{font-size:1.15rem;line-height:1.1;min-height:1.2em}.cal-cell:not(.has-mood) .cal-mood{color:#1a2e2833;font-size:.9rem}.cal-count{position:absolute;top:4px;right:5px;font-size:.62rem;color:var(--accent);font-weight:700}.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:.78rem;color:var(--ink-soft);align-items:center}.cal-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}.cal-legend .dot.today{background:var(--accent)}.cal-legend .dot.week{background:#2f6f5e40;border:1px solid rgba(47,111,94,.35)}.mood-mix{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mood-mix span{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#2f6f5e14;font-size:.82rem}.action-row{display:flex;gap:8px;flex-wrap:wrap}.breathe-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;padding:24px 12px;position:relative}.breathe-ring{width:180px;height:180px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#cfe8de,#2f6f5e 70%);box-shadow:0 0 0 18px #2f6f5e1f,0 20px 50px #2f6f5e38;display:grid;place-items:center;color:#f7fffb;transition:transform .35s ease;will-change:transform}.breathe-ring.idle{transform:scale(.92)}.breathe-ring.inhale{animation:inhaleGrow var(--phase-ms, 4s) ease-in-out forwards}.breathe-ring.hold{animation:holdPulse var(--phase-ms, 7s) ease-in-out forwards}.breathe-ring.exhale{animation:exhaleShrink var(--phase-ms, 8s) ease-in-out forwards}.breathe-label{font-family:var(--font-display);font-size:1.6rem;margin-top:22px;text-align:center}.breathe-sub{color:var(--ink-soft);margin-top:6px;font-size:.92rem;text-align:center}.breathe-meta{margin-top:18px;display:flex;gap:18px;color:var(--ink-soft);font-size:.88rem}.breathe-modes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.mode-chip{border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:#ffffffb3;font-size:.84rem}.mode-chip.on{background:#2f6f5e1f;border-color:#2f6f5e59;color:var(--accent);font-weight:600}.streak-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.streak-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:#ffffffb3;border:1px solid var(--line);font-size:.88rem}.streak-pill strong{color:var(--accent);font-family:var(--font-display);font-size:1.1rem}.streak-pill.ok{background:#2f6f5e1f;border-color:#2f6f5e47}.chip.custom{padding-right:8px}.chip .chip-x{margin-left:6px;opacity:.55;font-size:.9rem;line-height:1}.chip .chip-x:hover{opacity:1}.trigger-add{display:flex;gap:8px;margin-top:10px;align-items:stretch}.trigger-add input{flex:1 1 auto;min-width:0;width:100%;border:1px solid var(--line);background:#ffffffd9;border-radius:14px;padding:10px 12px;outline:none;font-size:.9rem}.trigger-add .btn-soft{flex:0 0 auto;white-space:nowrap}.trigger-add input:focus{border-color:#2f6f5e73;box-shadow:0 0 0 3px #2f6f5e1f}.trigger-add input::placeholder{color:var(--ink-soft);opacity:1}.record-solo{max-width:720px;margin:0 auto}.record-next-hint{margin-top:12px;text-align:center;font-size:.85rem;color:var(--ink-soft)}.goods-care-card{margin-bottom:4px}.goods-box-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:860px){.goods-box-grid{grid-template-columns:1fr}}.record-layout{align-items:stretch}.record-main,.record-side-card{display:flex;flex-direction:column;min-height:100%;height:100%}.record-main .field-grow{flex:1;display:flex;flex-direction:column}.record-main .field-grow textarea{flex:1;min-height:110px}.record-side-card{justify-content:space-between;gap:18px}.record-side-top h3,.record-latest-block h3{font-family:var(--font-display);font-size:1.15rem;margin-bottom:8px}.record-latest-block{padding-top:14px;border-top:1px solid var(--line);margin-top:auto}.field-hint{margin-left:6px;font-size:.78rem;font-weight:400;color:var(--ink-soft)}.field-note{margin-top:8px;font-size:.82rem;color:var(--ink-soft);line-height:1.45}.goods-box{display:grid;gap:10px;margin:10px 0 4px}.goods-progress{font-size:.85rem;color:var(--ink-soft);margin-bottom:4px}.goods-progress strong{color:var(--accent, #2f6f5e);font-family:var(--font-display)}.goods-item{display:grid;gap:6px;font-size:.82rem;color:var(--ink-soft)}.goods-item input{border:1px solid var(--line);background:#ffffffe6;border-radius:12px;padding:10px 12px;outline:none;color:var(--ink);font-size:.92rem}.goods-item input:focus{border-color:#2f6f5e73;box-shadow:0 0 0 3px #2f6f5e1f}.record-side-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.record-latest{display:grid;gap:6px}.record-latest strong{font-family:var(--font-display);font-size:1.15rem}.record-latest span{color:var(--ink-soft);font-size:.85rem}.record-latest em{font-style:normal;color:var(--ink);font-size:.92rem;line-height:1.5}.follow-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:18px 0}.follow-box{text-align:center;padding:18px 12px;border-radius:18px;background:#fff9;border:1px solid var(--line)}.follow-box .num{font-family:var(--font-display);font-size:2rem;color:var(--accent)}.follow-box .lbl{font-size:.82rem;color:var(--ink-soft);margin-top:4px}.follow-arrow{font-size:1.4rem;color:var(--ink-soft)}.delta-good{color:var(--accent);font-weight:700}.delta-neutral{color:var(--ink-soft);font-weight:600}.entry .after{margin-top:6px;font-size:.8rem;color:var(--accent)}.card-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:16px;overflow:hidden}.card-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a2e2873;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.card-modal-panel{position:relative;z-index:1;width:min(400px,100%);max-height:min(88vh,780px);overflow:hidden;display:flex;flex-direction:column;gap:10px;background:#ffffffeb;border:1px solid var(--line);border-radius:24px;padding:14px 14px 12px;box-shadow:var(--shadow);border-top:4px solid var(--card-accent, var(--accent));scrollbar-width:none;-ms-overflow-style:none}.card-modal-panel::-webkit-scrollbar{display:none;width:0;height:0}.card-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-shrink:0}.card-modal-head strong{font-family:var(--font-display);font-size:1.1rem}.card-modal-head p{color:var(--ink-soft);font-size:.82rem;margin-top:4px}.card-modal-preview{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#f4faf7;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;scrollbar-width:none;-ms-overflow-style:none}.card-modal-preview::-webkit-scrollbar{display:none;width:0;height:0}.card-modal-preview img{display:block;width:100%;height:auto;max-height:min(58vh,520px);object-fit:contain}.card-modal-panel .action-row{flex-shrink:0;margin:0}.range-picker-panel{width:min(420px,100%);max-height:none}.range-options{display:grid;gap:10px}.range-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:#ffffffbf;transition:transform .2s ease,border-color .2s ease,background .2s ease}.range-option:hover{transform:translateY(-1px);border-color:#2f6f5e59;background:#2f6f5e14}.range-option strong{display:block;font-size:1.02rem;margin-bottom:4px}.range-option span{display:block;font-size:.82rem;color:var(--ink-soft)}.range-option em{font-style:normal;font-weight:700;color:var(--accent);font-family:var(--font-display);font-size:1.05rem;white-space:nowrap}.auth-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom))}.auth-card{width:min(440px,100%);background:#ffffffd1;border:1px solid var(--line);border-radius:28px;padding:28px 22px 22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:floatIn .7s ease both}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand .mark{font-family:var(--font-display);font-size:2.2rem;font-weight:700}.auth-brand p{color:var(--ink-soft);margin-top:6px;font-size:.92rem}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#2f6f5e14;border-radius:999px;padding:5px;margin-bottom:18px}.auth-tabs button{border-radius:999px;padding:10px 12px;font-weight:600;color:var(--ink-soft)}.auth-tabs button.active{background:#fff;color:var(--accent);box-shadow:0 6px 16px #2f6f5e1f}.auth-error{background:#c45a3a1a;color:#9a3f28;border-radius:14px;padding:10px 12px;font-size:.86rem;margin-bottom:12px}.auth-actions{display:grid;gap:10px;margin-top:8px}.auth-actions .btn-primary,.auth-actions .btn-ghost{width:100%;text-align:center}.auth-hint{margin-top:14px;text-align:center;font-size:.8rem;color:var(--ink-soft)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes floatIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes drift{0%{transform:translate(0)}to{transform:translate(-30px)}}@keyframes inhaleGrow{0%{transform:scale(.78)}to{transform:scale(1.18)}}@keyframes holdPulse{0%,to{transform:scale(1.18)}50%{transform:scale(1.22)}}@keyframes exhaleShrink{0%{transform:scale(1.18)}to{transform:scale(.78)}}@media(max-width:860px){.hero,.grid-2,.grid-3,.stats,.stats-4{grid-template-columns:1fr}.compare-metrics{grid-template-columns:1fr 1fr}.mood-grid{grid-template-columns:repeat(3,1fr)}.hero{min-height:auto;gap:14px;margin-bottom:18px}.hero-copy{padding:8px 2px 4px}.hero-copy h1{max-width:none;font-size:clamp(1.85rem,8vw,2.5rem)}.hero-copy p{font-size:.95rem;max-width:none}.hero-panel{padding:20px;border-radius:22px}.topbar{flex-direction:column;align-items:stretch;gap:12px;padding:4px 0 14px}.topbar-right{width:100%;justify-content:space-between}.brand-sub{display:none}.nav{position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));max-width:none;width:auto;z-index:40;display:flex;justify-content:space-between;align-items:stretch;gap:0;padding:6px;box-shadow:0 12px 30px #1a2e2829;background:#ffffffeb}.nav button{flex:1 1 0;min-width:0;width:0;padding:10px 2px;font-size:.72rem}.app-shell{padding:14px 14px 108px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(108px,calc(88px + env(safe-area-inset-bottom)))}.section-head{align-items:flex-start}.section-head h2{font-size:1.35rem}.section-head .action-row{width:100%}.section-head .action-row .btn-primary,.section-head .action-row .btn-ghost{flex:1;text-align:center}.entry{grid-template-columns:48px 1fr;gap:10px}.entry .emoji{width:48px;height:48px;font-size:1.35rem}.entry .time{grid-column:2;justify-self:start;margin-top:-2px}.stat strong{font-size:1.2rem}.stats,.stats-4{gap:8px}.cta-row .btn-primary,.cta-row .btn-ghost{flex:1;text-align:center}.card{padding:16px;border-radius:18px}.mood-opt{padding:10px 4px}.mood-opt .emoji{font-size:1.3rem}.follow-compare{grid-template-columns:1fr;gap:8px}.follow-arrow{display:none}.breathe-stage{min-height:300px;padding:12px 0}.breathe-ring{width:150px;height:150px}.toast{left:14px;right:14px;bottom:max(84px,calc(72px + env(safe-area-inset-bottom)));transform:translateY(16px);text-align:center}.toast.show{transform:translateY(0)}.card-modal{padding:10px;align-items:end}.card-modal-panel{width:100%;max-height:min(86vh,760px);border-radius:20px 20px 16px 16px}.auth-card{padding:24px 18px 18px;border-radius:24px}.cal-toolbar{flex-wrap:wrap}.cal-title{order:-1;flex:1 0 100%;margin-bottom:4px}.cal-cell{min-height:56px;border-radius:12px}.cal-mood{font-size:1.05rem}.cal-day{font-size:.84rem}}@media(max-width:420px){.mood-mini{gap:5px}.mood-mini button{border-radius:14px;font-size:1.15rem}.nav button{padding:10px 1px;font-size:.68rem}.user-chip span.hide-xs{display:none}}
