:root{--bg: #faf5ec;--card: #ffffff;--ink: #2b2620;--muted: #97897a;--line: #ede4d6;--clay: #d96c47;--radius: 18px;--shadow: 0 2px 12px rgba(120, 90, 60, .08)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 500px at 50% -200px,#ffe9d6,#ffe9d600 70%),var(--bg);color:var(--ink);font-family:Hiragino Sans,Yu Gothic UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:720px;margin:0 auto;padding:20px 16px 48px}.app-head .date{margin:4px 0 0;font-size:13px;color:var(--muted);letter-spacing:.04em}.app-head h1{margin:2px 0 14px;font-size:24px;font-weight:600}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;margin-bottom:8px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0;border:1.5px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .1s}.chip:active{transform:scale(.96)}.chip.active{border-color:var(--clay);background:#fdeee6;color:var(--clay)}.stack{display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.card-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.card-head h2{margin:0;font-size:16px;font-weight:600}.hint{font-size:12px;color:var(--muted)}.vision-card{background:linear-gradient(160deg,#fff9f0,#fff 60%)}.vision-label{margin:0 0 6px;font-size:12px;letter-spacing:.12em;color:var(--clay);font-weight:700}.vision-text{margin:0 0 14px;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:22px;line-height:1.5;font-weight:600}.vision-text.small{font-size:17px;margin-bottom:0}.level-badge{margin-left:8px;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 8px;letter-spacing:.05em}.icon-btn{border:none;background:none;color:var(--muted);font-size:15px;cursor:pointer;margin-left:6px}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tile{border-radius:12px;min-height:72px;padding:10px;font-size:12px;font-weight:700;line-height:1.4;display:flex;align-items:flex-end;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.25)}.tile-0{background:linear-gradient(150deg,#5b9bd5,#3fa98c)}.tile-1{background:linear-gradient(150deg,#7c6fe0,#c46fa8)}.tile-2{background:linear-gradient(150deg,#e0a33f,#d96c47)}.tile-3{background:linear-gradient(150deg,#d96c47,#c46fa8)}@media(max-width:480px){.board{grid-template-columns:repeat(2,1fr)}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:480px){.stats{grid-template-columns:1fr 1fr}}.stat{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:12px 14px}.stat-label{margin:0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-value{margin:4px 0 6px;font-size:22px;font-weight:700}.bar{height:7px;background:#f1eade;border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}.row:last-of-type{border-bottom:none}.row input[type=checkbox]{width:22px;height:22px;accent-color:var(--clay);flex-shrink:0}.row-title{flex:1;font-size:15px;transition:opacity .2s}.row.done .row-title{text-decoration:line-through;opacity:.45}.tag{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;flex-shrink:0}.streak{font-size:12px;color:var(--clay);font-weight:700}.empty{color:var(--muted);font-size:13px;line-height:1.7}.add-row{display:flex;gap:8px;margin-top:12px}.add-row input,.add-row select{border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;background:#fffdf9;color:var(--ink)}.add-row input{flex:1;min-width:0}.add-row button{border:none;background:var(--clay);color:#fff;font-weight:700;border-radius:10px;padding:9px 16px;font-size:14px;cursor:pointer}.radar{display:block;max-width:300px;margin:0 auto}.score-editor{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.score-row{display:flex;align-items:center;gap:10px;padding:5px 0}.score-label{width:72px;font-size:12px;font-weight:700}.score-row input[type=range]{flex:1;accent-color:var(--clay)}.score-num{width:20px;text-align:right;font-size:13px;font-weight:700}.link-btn{border:none;background:none;color:var(--clay);font-size:13px;font-weight:600;cursor:pointer}.ladder{display:flex;flex-direction:column;gap:14px}.ladder-item{border-left:3px solid var(--line);padding-left:14px}.ladder-horizon{margin:0;font-size:12px;color:var(--muted)}.ladder-title{margin:2px 0 6px;font-size:15px;font-weight:600}.ladder-meta{margin:6px 0 0;font-size:13px;color:var(--muted)}.num{width:72px;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13px;text-align:right}.steps{margin:8px 0 2px;display:flex;flex-direction:column;gap:2px}.step-row{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0;cursor:pointer}.step-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--clay);flex-shrink:0}.step-row.done span{text-decoration:line-through;opacity:.45}.ladder-meta .link-btn{margin-left:10px;font-size:12px}.habit{padding:6px 0;border-bottom:1px solid var(--line)}.habit:last-child{border-bottom:none}.habit .row{border-bottom:none;padding-bottom:4px}.dots{display:flex;gap:6px;padding-left:34px;padding-bottom:8px}.dot{width:12px;height:12px;border-radius:50%;background:#efe8db}.done-log{cursor:default}.log-date{font-size:12px;color:var(--muted);width:40px;flex-shrink:0}.celebrate{position:relative;background:linear-gradient(120deg,#fdeee6,#fff6e3);border-radius:var(--radius);padding:16px 20px;font-weight:700;text-align:center;overflow:hidden}.confetti i{position:absolute;top:-10px;left:calc(var(--i) * 7.5%);width:7px;height:11px;border-radius:2px;background:hsl(calc(var(--i) * 40),75%,60%);animation:fall 1.6s ease-in calc(var(--i) * .12s) infinite}@keyframes fall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(90px) rotate(300deg);opacity:0}}.dream-edit textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:18px;line-height:1.5;color:var(--ink);background:#fffdf9;resize:vertical}.dream-edit-btns{display:flex;gap:8px;margin:8px 0 14px}.dream-edit-btns button{border:none;background:var(--clay);color:#fff;font-weight:700;border-radius:10px;padding:8px 18px;font-size:13px;cursor:pointer}.dream-edit-btns .ghost{background:none;color:var(--muted);border:1.5px solid var(--line)}.tag-due{background:#f1eade;color:#8a7a63}.tag-overdue{background:#fbe3dc;color:#c0492a}.tag-done{background:#e3f2ea;color:#2f8f68}.month-input{width:130px;flex-shrink:0}.goal-form{border:1.5px dashed var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.goal-form-row{display:flex;gap:8px;align-items:center}.goal-form input,.goal-form select{border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px;background:#fffdf9;color:var(--ink);min-width:0;width:100px}.goal-form .grow{flex:1;width:auto}.goal-form select{width:auto;flex-shrink:0}.goal-form .sep{color:var(--muted)}.goal-form .hint{margin:0}.goal-form-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.goal-form-btns button{border:none;background:var(--clay);color:#fff;font-weight:700;border-radius:10px;padding:8px 16px;font-size:13px;cursor:pointer}.goal-form-btns .ghost{background:none;color:var(--muted);border:1.5px solid var(--line)}.goal-form-btns .danger{background:none;color:#c0492a;border:1.5px solid #f0c4b6;margin-left:auto}.done-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.cal{margin:4px 0 10px 34px;max-width:300px}.cal-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;margin-bottom:6px}.cal-head button{border:1.5px solid var(--line);background:var(--card);border-radius:8px;width:28px;height:28px;cursor:pointer;color:var(--muted);font-size:15px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:10px;color:var(--muted);padding-bottom:2px}.cal-day{aspect-ratio:1;border:1.5px solid var(--line);border-radius:8px;background:var(--card);font-size:12px;color:var(--ink);cursor:pointer;padding:0}.cal-day.on{color:#fff;font-weight:700}.cal-day.today{outline:2px solid var(--clay);outline-offset:1px}.cal-day:disabled{opacity:.3;cursor:default}.btn-danger{background:none;color:#c0492a;border:1.5px solid #f0c4b6;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer;flex-shrink:0}.name-input{border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;background:#fffdf9;color:var(--ink);width:100%;margin-bottom:8px}.wish-count{margin:0;font-size:14px;color:var(--muted);font-weight:700}.wish-count-num{font-size:26px;color:var(--clay)}.add-row.wrap{flex-wrap:wrap}.stat-sub{margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.4}.hint.center{display:block;text-align:center;margin:4px 0 0}.board-actions{margin-top:8px;text-align:right}.board-editor{border-top:1px solid var(--line);margin-top:10px;padding-top:12px;display:flex;flex-direction:column;gap:8px}.seg-row{display:flex;gap:8px}.seg{border:1.5px solid var(--line);background:var(--card);color:var(--muted);border-radius:10px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer}.seg.active{border-color:var(--clay);background:#fdeee6;color:var(--clay)}.upload-btn{display:inline-flex;align-items:center;gap:6px;border:1.5px dashed var(--line);border-radius:10px;padding:9px 14px;font-size:13px;color:var(--muted);cursor:pointer;align-self:flex-start}.upload-btn.small{padding:8px 10px;flex-shrink:0}.tile-edit-row{display:flex;gap:8px;align-items:center}.tile-edit-row input[type=text],.tile-edit-row input:not([type]){flex:1;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;background:#fffdf9;color:var(--ink);min-width:0}.board-image{width:100%;border-radius:12px;display:block}.app-foot{margin-top:28px;text-align:center;font-size:11px;color:var(--muted)}
