:root{--pink-bg-top:#fff6f9;--pink-bg-bottom:#ffdcea;--pink:#ff7fa5;--pink-deep:#f2588a;--shu:#e94709;--ink:#4a3a40;--ink-soft:#8a7580;--card:rgba(255,255,255,0.92)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body,html{height:100%}body{font-family:Hiragino Maru Gothic ProN,Hiragino Sans,Yu Gothic,sans-serif;color:var(--ink);background:linear-gradient(180deg,var(--pink-bg-top) 0,var(--pink-bg-bottom) 100%) fixed;min-height:100dvh;font-size:16px;line-height:1.6}.app{max-width:480px;margin:0 auto;padding:12px 14px calc(84px + env(safe-area-inset-bottom))}.appTitle{text-align:center;font-size:15px;letter-spacing:.18em;color:var(--pink-deep);font-weight:700;padding:6px 0 10px}.card{background:var(--card);border-radius:20px;padding:16px;margin-bottom:14px;box-shadow:0 4px 18px rgba(242,88,138,.1)}.cardTitle{font-size:13px;font-weight:700;color:var(--pink-deep);letter-spacing:.08em;margin-bottom:10px}.coachRow{display:flex;gap:10px;align-items:flex-start}.coachAvatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#ffd3e2,#ff9fbe);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;overflow:hidden;border:2px solid #fff;box-shadow:0 2px 8px rgba(242,88,138,.25)}.coachAvatar img{width:100%;height:100%;object-fit:cover}.coachBubble{background:#fff;border:1.5px solid #ffd3e2;border-radius:4px 16px 16px 16px;padding:10px 12px;font-size:14px;flex:1 1}.vision{display:flex;gap:12px}.visionImg{width:110px;height:140px;border-radius:16px;flex-shrink:0;background:linear-gradient(160deg,#ffe9f1,#ffc9dc);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:12px;text-align:center;overflow:hidden;border:2px dashed #ffb1cb;cursor:pointer}.visionImg img{width:100%;height:100%;object-fit:cover}.visionNums{flex:1 1;display:flex;flex-direction:column;gap:8px}.numRow{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}.numRow b{font-size:18px;color:var(--pink-deep)}.goalNote{font-size:13px;color:var(--ink-soft)}.gauge{background:#ffe3ee;height:14px;overflow:hidden;margin-top:4px}.gauge,.gaugeFill{border-radius:999px}.gaugeFill{background:linear-gradient(90deg,var(--pink),var(--pink-deep));height:100%;transition:width .4s}.gaugeLabel{font-size:12px;color:var(--ink-soft);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(90deg,var(--pink),var(--pink-deep));color:#fff;border:none;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:700;width:100%;cursor:pointer}.btn:active{transform:scale(.98)}.btnGhost{background:#fff;color:var(--pink-deep);border:1.5px solid var(--pink)}.btnSmall{padding:8px 14px;font-size:13px;width:auto}.markRow{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.markLabel{font-size:14px}.marks{display:flex;gap:8px}.mark{width:44px;height:44px;border-radius:50%;border:1.5px solid #ffd3e2;background:#fff;font-size:18px;color:var(--ink-soft);cursor:pointer}.mark.on{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;border-color:transparent;font-weight:700}.emojiRow{display:flex;gap:8px;justify-content:space-between}.emoji{flex:1 1;font-size:24px;padding:8px 0;border-radius:14px;border:1.5px solid #ffd3e2;background:#fff;cursor:pointer}.emoji.on{background:#ffe3ee;border-color:var(--pink-deep)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid #ffd3e2;background:#fff;color:var(--ink);border-radius:999px;padding:9px 14px;font-size:14px;cursor:pointer}.chip.on{background:linear-gradient(90deg,var(--pink),var(--pink-deep));color:#fff;border-color:transparent;font-weight:700}.logItem{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed #ffd9e7;font-size:14px}.logItem:last-child{border-bottom:none}.logThumb{width:52px;height:52px;border-radius:12px;object-fit:cover;background:#ffe9f1}.logDel{margin-left:auto;background:none;border:none;color:#c9a5b3;font-size:16px;cursor:pointer;padding:6px}.weekTable{width:100%;border-collapse:collapse;font-size:13px}.weekTable th{color:var(--ink-soft);font-weight:500;padding:4px 2px;font-size:11px}.weekTable td{text-align:center;padding:6px 2px;border-top:1px dashed #ffd9e7}.weekTable .dayCol{text-align:left;white-space:nowrap}.today{color:var(--pink-deep);font-weight:700}.field{margin-bottom:10px}.field label{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:3px}.field input,.field textarea{width:100%;border:1.5px solid #ffd3e2;border-radius:12px;padding:10px 12px;font-size:16px;background:#fff;color:var(--ink)}.fieldRow{display:flex;gap:10px}.fieldRow .field{flex:1 1}.tabbar{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);border-top:1px solid #ffd9e7;display:flex;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:480px;margin:0 auto}.tabbtn{background:none;border:none;font-size:11px;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 10px;border-radius:12px;cursor:pointer}.tabbtn .ico{font-size:22px}.tabbtn.on{color:var(--pink-deep);font-weight:700;background:#ffe9f1}.hint{font-size:12px;color:var(--ink-soft)}.sectionGap{height:6px}.center{text-align:center}.saveToast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);background:var(--pink-deep);color:#fff;border-radius:999px;padding:10px 22px;font-size:14px;font-weight:700;box-shadow:0 6px 20px rgba(242,88,138,.4);animation:pop .25s ease;z-index:50}@keyframes pop{0%{transform:translateX(-50%) scale(.8);opacity:0}to{transform:translateX(-50%) scale(1);opacity:1}}