:root{--bg:#fafaf8;--surface:#fff;--text-primary:#1a1a18;--text-secondary:#6b6b66;--border:#e8e6e1;--accent:#b8823f;--accent-secondary:#3e5c55;--on-accent:#fff;--accent-soft:#b8823f1f;--teal-soft:#3e5c551f;--danger:#b5473c;--overlay:#14120e66;--photo-bg:#efede8;--text:var(--text-primary);--muted:var(--text-secondary);--line:var(--border);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius:12px;--font-ui:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-serif:"Noto Serif KR", "Apple Myungjo", "Nanum Myeongjo", serif;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--tabbar-h:60px;font-family:var(--font-ui);color:var(--text-primary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#15161a;--surface:#1c1d22;--text-primary:#f2f1ed;--text-secondary:#9a9a94;--border:#2a2b30;--accent:#d9a468;--accent-secondary:#5c8079;--on-accent:#15161a;--accent-soft:#d9a46829;--teal-soft:#5c80792e;--danger:#e07a70;--overlay:#0009;--photo-bg:#101114;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#15161a;--surface:#1c1d22;--text-primary:#f2f1ed;--text-secondary:#9a9a94;--border:#2a2b30;--accent:#d9a468;--accent-secondary:#5c8079;--on-accent:#15161a;--accent-soft:#d9a46829;--teal-soft:#5c80792e;--danger:#e07a70;--overlay:#0009;--photo-bg:#101114;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg);height:100%}body{background:var(--bg);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;min-height:100%;margin:0;font-size:15px;line-height:1.5}input,textarea,select,.memo-text,.item .title,.install ol,.post .caption{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}button,.chip,.cal-day,.tabbar button{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,select,textarea{font:inherit;color:inherit}svg{flex:none;display:block}.app{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.screen{padding:var(--space-4) var(--space-4) calc(var(--tabbar-h) + var(--sab) + var(--space-7));flex:1}.topbar{z-index:20;align-items:baseline;gap:var(--space-2);padding:calc(var(--space-4) + var(--sat)) var(--space-4) var(--space-3);background:var(--bg);display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:20px;font-weight:600;line-height:1.3}.topbar .sub{color:var(--text-secondary);align-items:center;gap:var(--space-1);margin-left:auto;font-size:13px;display:inline-flex}.tabbar{max-width:480px;height:calc(var(--tabbar-h) + var(--sab));background:var(--surface);border-top:1px solid var(--border);padding-bottom:var(--sab);z-index:30;grid-template-columns:repeat(2,1fr);align-items:center;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{height:100%;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex}.tabbar button.on{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.section-title{color:var(--text-primary);margin:var(--space-5) 0 var(--space-3);align-items:center;gap:var(--space-2);font-size:17px;font-weight:600;line-height:1.3;display:flex}.section-title .count{color:var(--text-secondary);font-size:13px;font-weight:400}.empty{color:var(--text-secondary);padding:var(--space-6) 0;font-size:15px;line-height:1.6}.btn{padding:var(--space-3) var(--space-4);background:var(--accent);color:var(--on-accent);justify-content:center;align-items:center;gap:var(--space-2);border-radius:10px;font-size:15px;font-weight:500;line-height:1.3;display:inline-flex}.btn.ghost{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn.teal{background:var(--accent-secondary);color:#fff}.btn.danger{background:var(--danger);color:#fff}.btn.block{width:100%}.btn:disabled{opacity:.4}.danger-text{color:var(--danger)!important}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);align-items:center;gap:var(--space-1);border-radius:20px;padding:6px 12px;font-size:13px;display:inline-flex}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.chip.sm{padding:4px 10px;font-size:12px}.chip.add{border-style:dashed;padding-left:8px;padding-right:8px}.chip-input{align-items:center;gap:var(--space-1);border:1px solid var(--accent);background:var(--surface);border-radius:20px;padding:2px 4px 2px 10px;display:inline-flex}.chip-input input{background:0 0;border:0;outline:none;width:72px;padding:2px 0;font-size:13px}.chip-input button{background:var(--accent);color:var(--on-accent);border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.custom-cats{flex-wrap:wrap;gap:6px;display:flex}.custom-cats .chip .x{opacity:.7;margin-left:2px;display:inline-flex}.hint{color:var(--text-secondary);margin:6px 0 0;font-size:13px;line-height:1.5}.hint.err{color:var(--danger)}.item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);display:flex}.item .thumb{background:var(--bg);border:1px solid var(--border);width:44px;height:44px;color:var(--text-secondary);border-radius:10px;flex:none;place-items:center;display:grid;overflow:hidden}.item .body{flex:1;min-width:0}.item .title{font-size:15px;font-weight:500;line-height:1.3}.item .meta{color:var(--text-secondary);flex-wrap:wrap;gap:6px;margin-top:3px;font-size:13px;display:flex}.item.done .title,.item.done .meta{color:var(--text-secondary)}.item.done .thumb{opacity:.6}.item .done-mark{color:var(--accent);padding:var(--space-1);display:inline-flex}.like{color:var(--text-secondary);padding:var(--space-1);opacity:.55;transition:transform .15s}.like.on{color:var(--accent);opacity:1}.like:active{transform:scale(1.2)}.badge-match{color:var(--accent);font-weight:500}.check-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-secondary);margin-bottom:var(--space-2);border-radius:10px;flex:none;place-items:center;transition:transform .15s;display:grid}.check-btn:active{color:var(--accent);transform:scale(.88)}.roulette{padding:var(--space-5) var(--space-4)}.roulette h2{margin:0 0 var(--space-1);font-size:17px;font-weight:600;line-height:1.3}.roulette>p{margin:0 0 var(--space-4);color:var(--text-secondary);font-size:13px}.pick{align-items:center;gap:var(--space-3);border:1px solid var(--border);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--bg);border-radius:10px;animation:.2s ease-out both pop;display:flex}.pick .n{border:1px solid var(--accent-secondary);width:24px;height:24px;color:var(--accent-secondary);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:500;display:grid}@keyframes pop{0%{opacity:0;transform:translateY(6px)}}.spinning .btn.teal{opacity:.7}.sheet-bg{background:var(--overlay);z-index:50;justify-content:center;align-items:flex-end;animation:.18s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{background:var(--surface);border-top:1px solid var(--border);width:100%;max-width:480px;padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;max-height:88vh;animation:.24s cubic-bezier(.2,.9,.3,1) both up;overflow-y:auto}@keyframes up{0%{transform:translateY(100%)}}.sheet h3{margin:0 0 var(--space-4);font-size:17px;font-weight:600;line-height:1.3}.field{margin-bottom:var(--space-4)}.field>label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;display:block}.field input[type=text],.field input[type=date],.field textarea,.select{border:1px solid var(--border);width:100%;padding:var(--space-3);background:var(--surface);border-radius:10px;outline:none;font-size:15px}.field input[type=date]{font-family:var(--font-serif);font-weight:500}.field input:focus,.field textarea:focus,.select:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:72px;line-height:1.5}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-secondary) 50%), linear-gradient(135deg, var(--text-secondary) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.more-toggle{color:var(--accent);padding:var(--space-1) 0;margin-bottom:var(--space-3);font-size:13px;font-weight:500}.fab{right:calc(50% - 240px + var(--space-4));bottom:calc(var(--tabbar-h) + var(--sab) + var(--space-4));background:var(--accent);width:52px;height:52px;color:var(--on-accent);z-index:25;outline:3px solid var(--bg);border-radius:50%;place-items:center;display:grid;position:fixed}@media (width<=512px){.fab{right:var(--space-4)}}.nudge{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);gap:var(--space-2);margin-bottom:var(--space-3);color:var(--text-primary);align-items:center;font-size:13px;display:flex}.nudge svg{color:var(--accent)}.onboard{padding:calc(var(--space-7) + var(--sat)) var(--space-5) calc(var(--space-6) + var(--sab));text-align:center}.onboard .logo{color:var(--accent);place-items:center;display:grid}.onboard h1{margin:var(--space-4) 0 var(--space-2);font-size:20px;font-weight:600;line-height:1.3}.onboard p{color:var(--text-secondary);margin:0 0 var(--space-5);font-size:15px;line-height:1.5}.onboard .field{text-align:left}.code-box{font-family:var(--font-serif);letter-spacing:4px;padding:var(--space-4);margin:var(--space-4) 0;color:var(--accent);font-size:28px;font-weight:500}.toast{left:var(--space-3);right:var(--space-3);bottom:calc(var(--tabbar-h) + var(--sab) + var(--space-5));z-index:40;background:var(--surface);max-width:456px;color:var(--text-primary);border:1px solid var(--accent);padding:var(--space-3) var(--space-4);gap:var(--space-2);border-radius:10px;align-items:center;margin:0 auto;font-size:13px;line-height:1.5;display:flex;position:fixed}.toast .x{color:var(--accent);flex:none;margin-left:auto;font-weight:500}.seg{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;padding:3px;display:grid}.seg button{padding:var(--space-2) 0;color:var(--text-secondary);border-radius:8px;font-size:13px;font-weight:500}.seg button.on{background:var(--accent-soft);color:var(--accent)}.minical{padding:var(--space-2) var(--space-2) var(--space-3);margin-bottom:var(--space-5)}.minical-head{align-items:center;gap:var(--space-1);display:flex}.minical-head .nav{width:36px;height:36px;color:var(--text-secondary);border-radius:50%;flex:none;place-items:center;display:grid}.minical-head .title{padding:var(--space-1) 0;justify-content:center;align-items:baseline;gap:var(--space-2);flex:1;display:flex}.minical-head .title strong{font-family:var(--font-serif);font-size:15px;font-weight:500}.minical-head .title .sub{color:var(--text-secondary);font-size:13px}.minical-head .chev{color:var(--text-secondary);align-self:center;transition:transform .18s;display:inline-flex}.minical-head .chev.up{transform:rotate(180deg)}.minical-hint{margin:var(--space-2) 0 0;text-align:center;color:var(--text-secondary);font-size:13px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-wd{margin:var(--space-2) 0 var(--space-1)}.cal-wd .wd{text-align:center;color:var(--text-secondary);padding:var(--space-1) 0;font-size:11px}.cal-day{aspect-ratio:1;color:var(--text-primary);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:13px;display:flex;position:relative}.cal-day .d{line-height:1.1}.cal-day.today{color:var(--accent);font-weight:500}.cal-day.today:after{content:"";border:1px solid var(--accent);opacity:.6;border-radius:8px;position:absolute;inset:2px}.cal-day.has{background:var(--accent-soft)}.cal-day .dot{background:var(--accent);border-radius:50%;width:4px;height:4px}.cal-day .badge{background:var(--accent);min-width:14px;height:14px;color:var(--on-accent);border-radius:7px;padding:0 4px;font-size:10px;font-weight:500;line-height:14px}.cal-day .mile-tag{color:var(--accent-secondary);font-size:8px;font-weight:500;position:absolute;top:1px;left:0;right:0}.cal-day.mile{box-shadow:inset 0 0 0 1px var(--accent-secondary)}.install{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-4) var(--space-3);margin-bottom:var(--space-3);position:relative}.install .close{top:var(--space-2);right:var(--space-2);color:var(--text-secondary);padding:6px;position:absolute}.install .head{align-items:center;gap:var(--space-2);color:var(--accent);padding-right:24px;display:flex}.install .head strong{color:var(--text-primary);font-size:15px;font-weight:600}.install p{margin:6px 0 var(--space-3);color:var(--text-secondary);font-size:13px;line-height:1.5}.install ol{color:var(--text-primary);margin:0;padding-left:18px;font-size:13px;line-height:2}.install ol b{font-weight:600}.install .ios-share{vertical-align:-3px;color:var(--accent);display:inline}.row{gap:var(--space-2);align-items:stretch;display:flex}.row input{flex:1;min-width:0}.row .btn{white-space:nowrap;flex:none}.row .btn.ghost,.row .btn.danger{flex:1}.partner{align-items:center;gap:var(--space-2);border:1px solid var(--border);padding:var(--space-3);background:var(--surface);border-radius:10px;display:flex}.partner .dot{background:var(--border);border-radius:50%;flex:none;width:8px;height:8px}.partner.on .dot{background:var(--accent-secondary)}.partner .who{flex:1;font-size:15px;font-weight:500}.partner:not(.on) .who{color:var(--text-secondary);font-weight:400}.partner .link{color:var(--danger);padding:var(--space-1) 2px;flex:none;font-size:13px;font-weight:500}.confirm{margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--danger);background:var(--surface);border-radius:10px}.confirm p{margin:0 0 var(--space-3);font-size:13px;line-height:1.5}.feed{padding-left:0;padding-right:0;padding-top:var(--space-3)}.feed>.install,.feed>.today-card,.feed>.minical,.feed>.empty{margin-left:var(--space-4);margin-right:var(--space-4)}.wishlist{flex-direction:column;flex:1;display:flex}.wishlist .seg{margin:var(--space-3) var(--space-4) 0}.today-card{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.today-btn{padding:var(--space-3) var(--space-4);background:var(--accent);color:var(--on-accent);justify-content:center;align-items:center;gap:var(--space-2);border-radius:10px;font-size:15px;font-weight:500;display:flex}.today-card.done .today-btn{background:var(--accent-soft);color:var(--accent);opacity:1}.post{margin-bottom:var(--space-6);scroll-margin-top:calc(64px + var(--sat))}.post.new{animation:.2s ease-out both insert}@keyframes insert{0%{opacity:0;transform:translateY(-8px)}}.carousel-wrap{position:relative}.carousel{background:var(--photo-bg);touch-action:pan-y;-webkit-user-select:none;user-select:none;overflow:hidden}.carousel .track{will-change:transform;transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex}.carousel.dragging .track{transition:none}.carousel .slide{aspect-ratio:4/5;flex:0 0 100%;place-items:center;display:grid}.carousel .slide img{object-fit:cover;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block}.carousel .slide-missing{color:var(--text-secondary);font-size:13px}.carousel-wrap .counter{right:var(--space-3);top:var(--space-3);color:#fff;pointer-events:none;background:#00000073;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:500;position:absolute}.dots{padding:var(--space-2) 0 0;justify-content:center;gap:5px;display:flex}.dots span{background:var(--border);border-radius:50%;width:5px;height:5px}.dots span.on{background:var(--accent)}.post-body{padding:var(--space-3) var(--space-4) 0}.post-head{align-items:center;gap:var(--space-2);display:flex}.post-date{font-family:var(--font-serif);font-size:15px;font-weight:500;line-height:1.3}.post-who{color:var(--text-secondary);flex:1;font-size:13px}.post-more{color:var(--text-secondary);padding:var(--space-1);margin-right:calc(-1 * var(--space-1))}.post .caption{margin:var(--space-1) 0 0;white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.5}.post-tag{align-items:center;gap:var(--space-1);color:var(--accent-secondary);margin-top:var(--space-2);font-size:13px;display:inline-flex}.thumbs{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.thumbs::-webkit-scrollbar{display:none}.thumb-wrap{background:var(--photo-bg);border:1px solid var(--border);border-radius:10px;flex:none;width:92px;height:92px;position:relative;overflow:hidden}.thumb-wrap img{object-fit:cover;width:100%;height:100%;display:block}.thumb-x{color:#fff;background:#0000008c;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:4px;right:4px}.thumb-add{border:1px dashed var(--border);background:var(--surface);width:92px;height:92px;color:var(--text-secondary);justify-content:center;align-items:center;gap:var(--space-1);border-radius:10px;flex-direction:column;flex:none;font-size:12px;font-weight:500;display:flex}
