:root{--off-white: #f5f5f5;--sage: #93b294;--sage-dark: #7a9a7b;--olive: #566246;--dark: #2e2d2d;--sage-10: rgba(147, 178, 148, .12);--sage-20: rgba(147, 178, 148, .22);--ink-60: rgba(46, 45, 45, .6);--ink-40: rgba(46, 45, 45, .4);--card: #ffffff;--hair: rgba(46, 45, 45, .08);--heading: "Fashion Fetish", Georgia, serif;--body: "Kohinoor Latin", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px)}@font-face{font-family:Fashion Fetish;src:url(/fonts/fashion-fetish-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Kohinoor Latin;src:url(/fonts/kohinoor-latin-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Kohinoor Latin;src:url(/fonts/kohinoor-latin-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Kohinoor Latin;src:url(/fonts/kohinoor-latin-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:var(--body);color:var(--dark);background:#dddcd8;-webkit-font-smoothing:antialiased;line-height:1.5;overflow:hidden;overscroll-behavior:none}#app{position:relative;height:100dvh;max-width:430px;margin:0 auto;background:var(--off-white);overflow:hidden;box-shadow:0 0 60px #2e2d2d40}@media(max-width:430px){#app{box-shadow:none}body{background:var(--off-white)}}.screen{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;padding:calc(var(--sat) + 18px) 22px calc(var(--sab) + 108px);scrollbar-width:none;background:var(--off-white);animation:fade .26s ease}.screen::-webkit-scrollbar{display:none}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.screen.no-tabs{padding-bottom:calc(var(--sab) + 40px)}.screen.dark-bg{background:var(--dark);color:#f5f5f5}.screen.dark-bg .h-page{color:#f5f5f5}.tabbar{position:absolute;bottom:0;left:0;right:0;z-index:55;display:flex;justify-content:space-around;align-items:flex-start;padding:11px 10px calc(var(--sab) + 14px);background:#f5f5f5e6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--hair)}.tab{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:var(--body);font-size:.6rem;font-weight:500;color:var(--ink-40);width:62px;transition:color .2s;text-decoration:none}.tab svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tab.on{color:var(--olive)}.tab.on svg{stroke-width:2.1}.h-page{font-family:var(--heading);font-weight:700;font-size:1.72rem;line-height:1.12;letter-spacing:.01em;margin:14px 0 2px}.wiz .h-page{font-size:1.62rem;line-height:1.14}.h-kicker{font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-dark);margin-top:12px}.h-sub{font-size:.82rem;color:var(--ink-60);margin:4px 0 18px;line-height:1.55}.small{font-size:.72rem;color:var(--ink-60)}.tiny{font-size:.64rem;color:var(--ink-40)}.hr{height:1px;background:var(--hair);margin:14px 0}.card{background:var(--card);border-radius:20px;padding:18px;border:1px solid var(--hair);box-shadow:0 1px 2px #2e2d2d08;margin-bottom:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.btn{display:block;width:100%;border:none;cursor:pointer;font-family:var(--body);font-weight:500;font-size:.92rem;padding:15px;border-radius:16px;background:var(--dark);color:#f5f5f5;transition:all .2s;text-align:center;letter-spacing:.02em}.btn:active{transform:scale(.985)}.btn.sage{background:var(--olive)}.btn.ghost{background:transparent;color:var(--olive);border:1px solid rgba(86,98,70,.35)}.btn.done{background:var(--sage-10);color:var(--olive);border:1px solid var(--sage-20)}.pill{display:inline-flex;align-items:center;gap:5px;font-size:.64rem;font-weight:500;letter-spacing:.06em;padding:4px 10px;border-radius:100px;background:var(--sage-10);color:var(--olive)}.pill.neutral{background:#2e2d2d0f;color:var(--ink-60)}.pill.dark{background:var(--dark);color:#f5f5f5}.avatar{width:42px;height:42px;border-radius:50%;background:var(--olive);color:#f5f5f5;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;flex:none;letter-spacing:.03em}.avatar.sage{background:var(--sage-dark)}.avatar.lite{background:var(--sage-10);color:var(--olive)}.backlink{border:none;background:none;cursor:pointer;font-family:var(--body);color:var(--ink-60);font-size:.8rem;display:inline-flex;align-items:center;gap:6px;padding:8px 0 0;font-weight:500}.bar{height:6px;border-radius:100px;background:#2e2d2d14;overflow:hidden;position:relative}.bar>i{display:block;height:100%;border-radius:100px;background:var(--sage-dark)}.ring{transform:rotate(-90deg)}.ring .bg{stroke:#2e2d2d14}.ring .fg{stroke:var(--sage-dark);stroke-linecap:round}.dots{display:flex;gap:6px}.dot{width:12px;height:12px;border-radius:50%;background:#2e2d2d1a;flex:none}.dot.hit{background:var(--sage-dark)}.dot.miss{background:#2e2d2d29}.dot.today{box-shadow:0 0 0 2px var(--off-white),0 0 0 3.5px var(--sage-dark)}.dot.rest{background:transparent;border:1.5px dashed rgba(46,45,45,.22)}.check{width:46px;height:46px;border-radius:50%;border:1.6px solid rgba(46,45,45,.18);background:#fff;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;transition:all .18s}.check svg{width:20px;height:20px;stroke:#fff;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.6);transition:all .18s}.check.on{background:var(--sage-dark);border-color:var(--sage-dark)}.check.on svg{opacity:1;transform:scale(1)}.task-line{display:flex;align-items:center;gap:14px;padding:14px 0}.task-line+.task-line{border-top:1px solid var(--hair)}.task-line .txt{flex:1;min-width:0}.task-line .area{font-size:.62rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-dark);margin-bottom:2px}.task-line .tac{font-size:.88rem;font-weight:500;line-height:1.35}.task-line.on .tac{color:var(--ink-40);text-decoration:line-through;text-decoration-color:#2e2d2d40}.cp{display:flex;gap:14px}.cp .rail{display:flex;flex-direction:column;align-items:center}.cp .node{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;background:var(--sage-10);color:var(--olive)}.cp .node.done{background:var(--sage-dark);color:#fff}.cp .node.now{background:#fff;border:2px solid var(--sage-dark);color:var(--olive)}.cp .node.next{background:#2e2d2d0f;color:var(--ink-40)}.cp .line{width:2px;flex:1;background:var(--hair);min-height:18px;margin:4px 0}.cp .line.done{background:var(--sage)}.cp .body{padding-bottom:20px;flex:1}.cp .body h4{font-size:.86rem;font-weight:700}.cp .body p{font-size:.74rem;color:var(--ink-60);margin-top:2px}.lb{display:flex;align-items:center;gap:12px;padding:12px 0}.lb+.lb{border-top:1px solid var(--hair)}.lb .rank{width:20px;font-family:var(--heading);font-weight:700;font-size:1rem;color:var(--ink-40);text-align:center}.lb .who{flex:1;min-width:0}.lb .who b{font-size:.86rem;font-weight:700;display:block}.lb .who span{font-size:.68rem;color:var(--ink-60)}.lb .pct{font-weight:700;font-size:.95rem}.lb.me{background:var(--sage-10);margin:0 -18px;padding:12px 18px;border-radius:14px;border-top:none}.lb.me+.lb{border-top:none}.cmt{display:flex;gap:10px;padding:13px 0}.cmt+.cmt{border-top:1px solid var(--hair)}.cmt .bubble{flex:1}.cmt .bubble b{font-size:.8rem}.cmt .bubble .when{font-size:.62rem;color:var(--ink-40);margin-left:6px}.cmt .bubble p{font-size:.82rem;color:#2e2d2dd9;margin-top:3px;line-height:1.45}.react{border:1px solid var(--hair);background:#fff;border-radius:100px;padding:4px 11px;font-size:.68rem;font-weight:500;color:var(--ink-60);cursor:pointer;font-family:var(--body);margin-top:8px;transition:all .15s}.react.on{background:var(--sage-10);border-color:var(--sage-20);color:var(--olive)}.composer{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--hair);border-radius:100px;padding:6px 6px 6px 16px;margin-top:8px}.composer input{flex:1;border:none;outline:none;font-family:var(--body);font-size:.82rem;background:none;color:var(--dark);min-width:0}.composer button{border:none;background:var(--olive);color:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.badge{background:#fff;border:1px solid var(--hair);border-radius:16px;padding:14px 8px;text-align:center}.badge .ico{width:40px;height:40px;margin:0 auto 8px;border-radius:50%;background:var(--sage-10);display:flex;align-items:center;justify-content:center;color:var(--olive)}.badge .ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.badge b{font-size:.66rem;display:block;line-height:1.25}.badge span{font-size:.58rem;color:var(--ink-40)}.badge.locked{opacity:.45}.badge.locked .ico{background:#2e2d2d0f;color:var(--ink-40)}.gcard{background:#fff;border:1.5px solid var(--hair);border-radius:20px;padding:18px;margin-bottom:12px;cursor:pointer;transition:all .18s}.gcard.sel{border-color:var(--sage-dark);box-shadow:0 0 0 3px var(--sage-20)}.gcard h3{font-family:var(--heading);font-size:1.25rem;font-weight:700;letter-spacing:.04em}.gcard p{font-size:.76rem;color:var(--ink-60);margin-top:3px;line-height:1.45}.heat{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.heat i{aspect-ratio:1;border-radius:6px;background:#2e2d2d12}.heat i.h2{background:var(--sage)}.heat i.h3{background:var(--sage-dark)}.heat i.tod{outline:2px solid var(--olive);outline-offset:1px}.heat-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.heat-labels span{font-size:.56rem;text-align:center;color:var(--ink-40);letter-spacing:.05em}.switch{width:46px;height:28px;border-radius:100px;background:#2e2d2d26;position:relative;cursor:pointer;border:none;flex:none;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.switch.on{background:var(--sage-dark)}.switch.on:after{transform:translate(18px)}.vs{display:flex;flex-direction:column;gap:10px}.vs .g{display:flex;align-items:center;gap:10px}.vs .g b{width:64px;font-size:.74rem;font-weight:700}.vs .g .bar{flex:1}.vs .g span{width:36px;text-align:right;font-size:.74rem;font-weight:700;color:var(--olive)}.setrow{display:flex;align-items:center;gap:12px;padding:14px 0;cursor:pointer;border:none;background:none;width:100%;font-family:var(--body);text-align:left;color:var(--dark)}.setrow+.setrow{border-top:1px solid var(--hair)}.setrow .ic{width:32px;height:32px;border-radius:10px;background:var(--sage-10);color:var(--olive);display:flex;align-items:center;justify-content:center;flex:none}.setrow .ic svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.setrow b{flex:1;font-size:.84rem;font-weight:500}.setrow span{color:var(--ink-40)}.toast{position:absolute;top:calc(var(--sat) + 10px);left:12px;right:12px;z-index:100;background:#2e2d2df5;color:#f5f5f5;border-radius:18px;padding:13px 16px;display:flex;gap:12px;align-items:center;box-shadow:0 12px 30px #0000004d;transform:translateY(-130%);transition:transform .45s cubic-bezier(.2,.9,.3,1.1);cursor:pointer}.toast.show{transform:translateY(0)}.toast .t-ico{width:36px;height:36px;border-radius:9px;background:var(--olive);display:flex;align-items:center;justify-content:center;flex:none}.toast b{font-size:.78rem;display:block}.toast p{font-size:.72rem;color:#f5f5f5b3;line-height:1.35}.scrim{position:absolute;inset:0;background:#2e2d2d66;z-index:90;opacity:0;pointer-events:none;transition:opacity .25s}.scrim.show{opacity:1;pointer-events:auto}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:95;background:var(--off-white);border-radius:26px 26px 0 0;padding:14px 22px calc(var(--sab) + 24px);transform:translateY(105%);transition:transform .32s cubic-bezier(.2,.9,.3,1)}.sheet.show{transform:translateY(0)}.sheet .grab{width:40px;height:4px;border-radius:100px;background:#2e2d2d26;margin:0 auto 16px}.sheet h3{font-family:var(--heading);font-size:1.2rem;font-weight:700;margin-bottom:4px}.sheet .desc{font-size:.76rem;color:var(--ink-60);margin-bottom:14px}.sheet textarea,.sheet input[type=text]{width:100%;border:1px solid var(--hair);border-radius:14px;background:#fff;padding:13px 14px;font-family:var(--body);font-size:.88rem;color:var(--dark);outline:none;resize:none}.sheet textarea:focus,.sheet input[type=text]:focus{border-color:var(--sage-dark)}.swipe-row{position:relative;overflow:hidden;margin:0 -18px}.swipe-row+.swipe-row .swipe-content>.task-line{border-top:1px solid var(--hair)}.swipe-content{position:relative;background:var(--card);padding:0 18px;touch-action:pan-y}.swipe-content>.task-line+.task-line{border-top:none}.swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex}.swipe-btn{border:none;cursor:pointer;font-family:var(--body);font-size:.72rem;font-weight:700;background:var(--sage-10);color:var(--olive)}.swipe-btn.danger{background:#c0392b1a;color:#c0392b}.wiz-top{display:flex;align-items:center;gap:12px;margin-bottom:4px}.wiz-top .backlink{padding:0;font-size:1rem;width:34px;height:34px;border-radius:50%;background:#2e2d2d0d;justify-content:center;align-items:center;display:flex}.wiz-bar{flex:1;height:4px;border-radius:100px;background:#2e2d2d14;overflow:hidden}.wiz-bar>i{display:block;height:100%;border-radius:100px;background:var(--sage-dark);transition:width .35s ease}.wiz-step{font-size:.64rem;color:var(--ink-40);font-weight:500;white-space:nowrap}.field{margin-bottom:14px}.field label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.04em;margin-bottom:6px;color:var(--dark)}.field label span{font-weight:400;color:var(--ink-40)}.field textarea,.field select,.field input[type=text],.field input[type=email],.field input[type=date],.field input[type=time],.field input[type=url]{width:100%;border:1.5px solid var(--hair);border-radius:14px;background:#fff;padding:13px 14px;font-family:var(--body);font-size:.9rem;color:var(--dark);outline:none;resize:none;transition:border-color .2s}.field textarea:focus,.field input:focus{border-color:var(--sage-dark)}.field.err textarea,.field.err input{border-color:#c0392b}.field .hint{font-size:.68rem;color:var(--ink-40);margin-top:5px;line-height:1.4}.field .errmsg{display:none;font-size:.68rem;color:#c0392b;margin-top:5px}.field.err .errmsg{display:block}.pillar-head{display:flex;align-items:center;gap:12px;margin:6px 0 14px}.pillar-head .num{width:40px;height:40px;border-radius:50%;background:var(--olive);color:#f5f5f5;display:flex;align-items:center;justify-content:center;font-family:var(--heading);font-weight:700;flex:none}.pillar-head p{font-size:.72rem;color:var(--ink-60);line-height:1.45}.rev-area{margin-bottom:12px}.rev-area .edit{font-size:.68rem;color:var(--sage-dark);cursor:pointer;border:none;background:none;font-family:var(--body);font-weight:500}.rev-line{font-size:.8rem;margin-top:6px;line-height:1.5}.rev-line b{display:block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-dark)}.rev-line.muted{color:var(--ink-40)}.ejemplo{border:none;background:none;font-family:var(--body);font-size:.7rem;color:var(--sage-dark);cursor:pointer;font-weight:500;padding:0}.mode{display:flex;gap:8px;margin-top:2px}.mbtn{flex:1;border:1.5px solid var(--hair);background:#fff;border-radius:12px;padding:10px;font-family:var(--body);font-size:.78rem;font-weight:500;color:var(--ink-60);cursor:pointer;transition:all .18s}.mbtn.on{border-color:var(--sage-dark);background:var(--sage-10);color:var(--olive);font-weight:700}.steprow{display:flex;align-items:center;gap:10px;padding:10px 0}.steprow+.steprow{border-top:1px solid var(--hair)}.steprow label{flex:1;font-size:.78rem;font-weight:500}.steprow .sbtn{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--hair);background:#fff;color:var(--olive);font-size:1.05rem;cursor:pointer;font-family:var(--body);line-height:1}.steprow .sbtn:active{background:var(--sage-10)}.steprow .sval{width:48px;text-align:center;font-weight:700;font-size:.9rem;color:var(--olive)}
