:root{--bg-grad:linear-gradient(180deg, #fdf3e7 0%, #fbe8e3 55%, #f5dbe6 100%);--text:#5a4a46;--text-2:#8d7771;--text-3:#b09a94;--accent:#f29e8e;--accent-strong:#e0776a;--accent-soft:#fbe3df;--green:#6cc08b;--green-soft:#e3f3e8;--neutral:#c9b8b2;--card:#ffffffeb;--line:#f0e2de;--chip:#fbeee9;--hint:#fff4d9;--hint-line:#f3d98f;--sheet:#fffaf7;--radius:16px;--shadow:0 2px 8px #5a4a4614;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--drawer-h:50dvh;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:#f5dbe6}:root{--page-top:#fdf3e7}html[data-phase=dusk]{--bg-grad:linear-gradient(180deg, #fbd3b0 0%, #f3b9a9 50%, #cfa6c6 100%);--page-top:#fbd3b0;background:#cfa6c6}html[data-phase=night]{--bg-grad:linear-gradient(180deg, #232a52 0%, #3a3a6e 55%, #5a4f7e 100%);--page-top:#232a52;background:#5a4f7e}html[data-phase=night] .home>.hud-top>span,html[data-phase=night] .home>.greeting{color:#f4eefc}body{background:var(--bg-grad);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;font-family:system-ui,-apple-system,PingFang SC,Hiragino Sans GB,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px}button{cursor:pointer;background:0 0;border:none;padding:0}button:disabled{opacity:.45;cursor:default}h1,h2,h3,p{margin:0}.screen{min-height:100dvh;padding:calc(var(--safe-top) + 14px) max(16px, var(--safe-right)) calc(var(--safe-bottom) + 24px) max(16px, var(--safe-left));max-width:520px;margin:0 auto}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.spread{justify-content:space-between;align-items:center;gap:8px;display:flex}.muted{color:var(--text-2)}.faint{color:var(--text-3);font-size:13px}.title{font-size:20px;font-weight:800}.section-title{margin:18px 2px 8px;font-size:14px;font-weight:700}.btn{background:var(--chip);min-height:44px;color:var(--text);border-radius:22px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-weight:700;display:inline-flex}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 3px 10px #f29e8e73}.btn.ghost{color:var(--text-2);background:0 0;font-weight:600}.btn.block{width:100%}.btn.small{border-radius:17px;min-height:34px;padding:0 12px;font-size:14px}.link{color:var(--accent-strong);font-weight:600}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--text-2);font-size:13px;font-weight:600}.input,.select,.textarea{border:1.5px solid var(--line);background:#fff;border-radius:12px;outline:none;width:100%;padding:10px 12px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.textarea{resize:none;min-height:150px;line-height:1.6}.chip{background:var(--chip);color:var(--text-2);border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.lv{color:var(--accent-strong);background:var(--accent-soft);border-radius:9px;padding:1px 8px;font-size:12px;font-weight:700}.error-text{color:var(--accent-strong);font-size:14px}.check{border:2px solid var(--neutral);color:#fff;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:800;display:inline-flex}.check.on{background:var(--accent);border-color:var(--accent)}.home{max-width:520px;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left);flex-direction:column;margin:0 auto;display:flex;position:fixed;inset:0;overflow:hidden}.home.covered{visibility:hidden}.home.covered .pins{display:none}.page-layer{animation:.28s cubic-bezier(.22,1,.36,1) page-in}@keyframes page-in{0%{opacity:0;transform:translateY(24px)}}.hud-top{justify-content:space-between;align-items:center;padding:12px 18px 0;font-size:14px;font-weight:600;display:flex}.icon-btn{width:40px;height:40px;box-shadow:var(--shadow);background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.scene{z-index:0;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .6s;position:absolute;inset:0}.scene.ready{opacity:1}.scene-waking{text-align:center;color:var(--text-3);pointer-events:none;font-size:14px;font-weight:600;animation:.5s .8s both fade-in;position:absolute;top:50%;left:0;right:0}html[data-phase=night] .scene-waking{color:#f4eefcb3}.scene canvas{touch-action:none}.pins{pointer-events:none;position:absolute;inset:0;overflow:hidden}.pin{visibility:hidden;pointer-events:auto;position:absolute;top:0;left:0}.home>.hud-top,.home>.greeting,.home>.hud-bottom{z-index:1;pointer-events:none;position:relative}.home>.hud-top>*,.home>.hud-bottom>.hud-btn{pointer-events:auto}.home>.greeting,.home>.hud-bottom,.pins{transition:opacity .3s}.home.focused>.greeting,.home.focused>.hud-bottom,.home.focused .pins{opacity:0}.back-pill{min-height:40px;box-shadow:var(--shadow);color:var(--text);background:#ffffffeb;border-radius:20px;padding:0 16px;font-size:15px;font-weight:700;animation:.25s fade-in}.ring-pin-btn .ring-label{transform:translateX(calc(-50% + var(--label-shift,0px)));color:var(--text-2);white-space:nowrap;background:#ffffffe0;border-radius:8px;padding:0 6px;font-size:10.5px;font-weight:700;line-height:15px;position:absolute;top:calc(100% - 3px);left:50%;box-shadow:0 1px 3px #5a4a461a}.ring{filter:drop-shadow(0 2px 4px #5a4a4626);justify-content:center;align-items:center;display:inline-flex;position:relative}.ring svg{position:absolute;inset:0}.ring .ring-icon{font-size:15px;line-height:1;position:relative}.ring .ring-count{min-width:16px;height:16px;color:var(--text-2);background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-5px;box-shadow:0 1px 3px #5a4a4633}.ring.resting{opacity:.55}.ring-arc{transition:stroke-dasharray .9s cubic-bezier(.22,1,.36,1),stroke .9s,opacity .2s}.hud-bottom{padding:10px 0 calc(var(--safe-bottom) + 18px);justify-content:center;align-items:center;gap:26px;margin-top:auto;display:flex;position:relative}.hud-btn{background:#fffffff0;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:20px;display:flex;box-shadow:0 2px 8px #5a4a4624}.hud-btn.main{background:var(--accent);width:66px;height:66px;font-size:26px;box-shadow:0 4px 14px #f29e8e8c}.hud-chips{pointer-events:none;justify-content:center;gap:8px;display:flex;position:absolute;top:-22px;left:0;right:0}.hud-chips>*{pointer-events:auto}.pending-chip{color:var(--text-2);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:4px 12px;font-size:13px;font-weight:700}.backdrop{z-index:20;background:#46322d47;animation:.2s fade-in;position:fixed;inset:0}.sheet{z-index:21;max-width:520px;max-height:calc(100% - var(--safe-top) - 24px);background:var(--sheet);border-radius:24px 24px 0 0;flex-direction:column;margin:0 auto;animation:.28s cubic-bezier(.22,1,.36,1) slide-up;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #5a4a4624}.sheet.tall{height:calc(100% - var(--safe-top) - 24px)}.sheet-head{flex-shrink:0;padding:8px 18px 6px}.sheet-handle{background:#e6d6d1;border-radius:3px;width:38px;height:5px;margin:0 auto 10px}.sheet-title{justify-content:space-between;align-items:center;min-height:32px;font-size:17px;font-weight:800;display:flex}.sheet-body{-webkit-overflow-scrolling:touch;padding:6px 18px calc(var(--safe-bottom) + 20px);flex:1;overflow-y:auto}.sheet-foot{padding:10px 18px calc(var(--safe-bottom) + 14px);border-top:1px solid var(--line);background:var(--sheet);flex-shrink:0;align-items:center;gap:10px;display:flex}.drawer{z-index:10;max-width:520px;height:var(--drawer-h);background:var(--sheet);border-radius:24px 24px 0 0;flex-direction:column;margin:0 auto;transition:transform .45s cubic-bezier(.22,1,.36,1),height .3s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(calc(100% + 24px));box-shadow:0 -6px 24px #5a4a4624}.drawer.open{transform:translateY(0)}.drawer.dragging{transition:none}.drawer-more{padding:6px 0 6px 12px;font-size:14px}.drawer-level{font-size:13px}.drawer-head{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:8px 18px}@keyframes slide-up{0%{opacity:0;transform:translateY(40%)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}}.examples{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.example{background:var(--chip);color:var(--text-2);text-align:left;border-radius:12px;padding:6px 10px;font-size:13px}.quote{background:var(--chip);color:var(--text-2);white-space:pre-wrap;border-radius:12px;padding:10px 12px;font-size:14px}.item{border:1.5px solid var(--line);background:#fff;border-radius:14px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.item.low{background:var(--hint);border-color:var(--hint-line)}.item.off{opacity:.55}.item-main{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.item-fields{grid-template-columns:1fr 88px;gap:8px;display:grid}.item-fields .select,.item-fields .input{padding:7px 10px}.value-unit{position:relative}.value-unit .input{padding-right:34px}.value-unit span{color:var(--text-3);pointer-events:none;font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.item-note{color:var(--text-2);font-size:13px}.flag{color:#b8872a;font-size:12px;font-weight:700}.waiting{flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:40px 0 30px;display:flex}.cat-tail{transform-origin:70px 92px;animation:1.1s ease-in-out infinite alternate tail}.cat-body{animation:1.6s ease-in-out infinite bob}@keyframes tail{0%{transform:rotate(-14deg)}to{transform:rotate(16deg)}}@keyframes bob{50%{transform:translateY(-3px)}}.dots span{animation:1.2s infinite dot;display:inline-block}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dot{50%{opacity:.2}}.flag-wave{transform-origin:0 0;animation:1.8s ease-in-out infinite alternate wave}@keyframes wave{to{transform:skewY(8deg)scaleX(.92)}}.quick-group+.quick-group{margin-top:16px}.quick-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;display:grid}.quick-btn{border:1.5px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:62px;padding:10px 6px;font-size:14px;font-weight:700;transition:transform .12s;display:flex}.quick-btn:active{transform:scale(.95)}.quick-btn small{color:var(--text-3);font-size:12px;font-weight:500}.quick-btn.done{border-color:var(--green);background:var(--green-soft)}.xpbar{background:#f3e4e0;border-radius:4px;height:8px;margin-top:6px;overflow:hidden}.xpbar i{background:var(--accent);border-radius:4px;height:100%;transition:width .8s;display:block}.bars{justify-content:space-between;align-items:flex-end;height:72px;margin-top:10px;display:flex;position:relative}.bars i{background:#f6b6a9;border-radius:5px 5px 2px 2px;width:11%;min-height:2px;display:block}.bars i.today{background:var(--accent-strong)}.goal-line{border-top:1.5px dashed #9fcfb0;position:absolute;left:0;right:0}.days{color:var(--text-3);justify-content:space-between;margin-top:3px;font-size:11px;display:flex}.days span{text-align:center;width:11%}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.stats>div{background:var(--chip);color:var(--text-2);border-radius:12px;padding:8px 10px;font-size:12px}.stats b{color:var(--text);font-size:16px;display:block}.tabs{gap:6px;margin-top:12px;padding-bottom:2px;display:flex;overflow-x:auto}.tab{background:var(--chip);color:var(--text-2);border-radius:14px;flex-shrink:0;padding:5px 12px;font-size:13px;font-weight:600}.tab.on{background:var(--accent);color:#fff}.ms-row{gap:10px;padding:4px 0;font-size:14px;display:flex}.ms-row .faint{flex-shrink:0;width:48px}.list-row{border-bottom:1px solid var(--line);text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 0;display:flex}.list-row:last-child{border-bottom:none}.page-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.back{box-shadow:var(--shadow);background:#ffffffeb;border-radius:14px;padding:5px 12px;font-size:14px;font-weight:600}.trend{align-items:flex-end;gap:6px;height:64px;display:flex}.trend i{background:#f6b6a9;border-radius:4px 4px 2px 2px;flex:1;min-height:2px}.toasts{left:0;right:0;bottom:calc(var(--safe-bottom) + 150px);z-index:40;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{pointer-events:auto;color:#fff;background:#463834eb;border-radius:18px;align-items:center;gap:14px;max-width:90%;padding:10px 16px;font-size:14px;animation:.25s slide-up;display:flex}.toast button{color:#ffd1c7;font-weight:700}.center-screen{min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 38px);flex-direction:column;justify-content:center;gap:18px;display:flex}.hero{text-align:center}.hero svg{width:190px;height:auto}.hero-3d{height:min(56dvh,500px);margin:0 -16px}.unrevealed{visibility:hidden}.reveal{animation:.4s both fade-in}.steps{justify-content:center;gap:6px;display:flex}.steps i{background:#ead9d3;border-radius:3px;width:22px;height:5px}.steps i.on{background:var(--accent)}.goal-editor{grid-template-columns:1fr 90px;gap:8px;margin-top:8px;display:grid}.toggle{background:#e6d6d1;border-radius:15px;flex-shrink:0;width:50px;height:30px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--green)}.toggle.on:after{transform:translate(20px)}.install-hint{background:var(--hint);border:1.5px solid var(--hint-line);color:#8a6a24;border-radius:14px;padding:10px 12px;font-size:13px}.ring-pin-btn{padding:5px;display:block;position:relative}.ring-pin-btn .ring{display:flex}.greeting{text-align:center;margin-top:2px}.greeting b{font-size:22px;font-weight:800;display:block}.section-row{align-items:baseline}
