:root{--paper:#FBF5EB;--ink:#4C3A2A;--ink-soft:#7A6553;--ink-faint:#948270;--rule:rgba(169,147,124,.28);--matin:rgba(233,211,225,.34);--midi:rgba(220,194,224,.26);--soir:rgba(189,169,212,.28);--nuit:rgba(126,140,190,.3);--sage:#8AA192;--sage-deep:#67826F;--rose:#D6A4AE;--slate:#6E8298;--amber:#A5836E;--tap:44px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{background:#efe9e6;color:var(--ink);font-family:Karla,system-ui,sans-serif;font-size:16px;line-height:1.5;min-height:100vh;display:flex;justify-content:center}#root{width:100%;max-width:430px;display:flex;justify-content:center}.app{position:relative;width:100%;max-width:430px;min-height:100vh;overflow:hidden;padding-bottom:104px;background:radial-gradient(140% 26% at 84% 1%,var(--matin),transparent 62%),radial-gradient(130% 22% at 4% 28%,var(--midi),transparent 60%),radial-gradient(135% 24% at 96% 60%,var(--soir),transparent 62%),radial-gradient(150% 28% at 18% 97%,var(--nuit),transparent 64%),linear-gradient(180deg,#fdf7ed,#fbf2e4 20%,#f8efe6 44%,#f4eae9 66%,#ece6ec 85%,#e4e0ee);box-shadow:0 0 44px -26px #4c3a2a80}h1,h2{font-family:Gelasio,Georgia,serif;font-weight:500;line-height:1.2}button{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.screen{padding:28px 20px 8px;animation:veil .45s ease both}@keyframes veil{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}.head{margin-bottom:22px}.head .kicker{font-family:Karla,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.head h1{font-size:27px;margin:5px 0 3px;overflow-wrap:anywhere}.head p{font-size:13.5px;color:var(--ink-soft)}.head .offline{font-family:Gelasio,serif;font-style:italic;font-size:12.5px;color:var(--ink-faint);margin-top:4px}.thread-line{position:relative;padding-left:34px}.thread-line:before{content:"";position:absolute;left:8px;top:4px;bottom:16px;width:16px;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='92' viewBox='0 0 16 92'><path d='M8 0 C1.2 22 14.8 46 8 69 C3.6 80 8 86 8 92' fill='none' stroke='%23C6A79B' stroke-width='1.1' stroke-linecap='round'/></svg>");background-repeat:repeat-y;opacity:.75}.thread-line .fill{position:absolute;left:8px;top:4px;width:16px;height:0;z-index:0;pointer-events:none;overflow:hidden;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='92' viewBox='0 0 16 92'><path d='M8 0 C1.2 22 14.8 46 8 69 C3.6 80 8 86 8 92' fill='none' stroke='%238AA192' stroke-width='1.5' stroke-linecap='round'/></svg>");background-repeat:repeat-y;transition:height .85s cubic-bezier(.2,.8,.3,1)}.moment{position:relative;margin:0 0 18px;padding:10px 10px 6px 0}.moment:before{content:"";position:absolute;top:0;right:-8px;bottom:0;left:-34px;border-radius:22px;z-index:0;pointer-events:none}.moment.m-matin:before{background:linear-gradient(165deg,#e9d3e157,#fbf5eb00 72%)}.moment.m-midi:before{background:linear-gradient(165deg,#dcc2e04d,#fbf5eb00 72%)}.moment.m-soir:before{background:linear-gradient(165deg,#bda9d442,#fbf5eb00 72%)}.moment.m-nuit:before{background:linear-gradient(165deg,#7e8cbe42,#fbf5eb00 74%)}.moment>*{position:relative;z-index:1}.moment>h2{font-family:Gelasio,Georgia,serif;font-style:italic;font-weight:400;font-size:12.5px;letter-spacing:0;text-transform:none;line-height:1.35;color:var(--ink-soft);opacity:.7;margin:0 0 4px -6px}.moment>h2 span{font-family:Gelasio,serif;font-style:italic;font-weight:400;font-size:12px;letter-spacing:0;text-transform:none;color:var(--ink-soft);opacity:.82;margin-left:7px}.moment>h2:before{content:"";position:absolute;left:-17px;top:7px;width:14px;height:2px;border-radius:2px;background:var(--rose);opacity:.5}.day{list-style:none;display:flex;flex-direction:column;gap:2px}.blk{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 0 12px 2px}.blk+.blk{border-top:1px solid rgba(169,147,124,.16)}.blk:before{content:"";position:absolute;left:-24px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1.2px var(--rose);transition:transform .55s cubic-bezier(.2,.8,.3,1),background .5s ease,box-shadow .5s ease}.blk.is-protected:before{background:#6e829859;box-shadow:0 0 0 1.2px var(--slate)}.blk.is-reward:before{background:var(--rose);box-shadow:0 0 0 1.2px #be8c97}.blk.is-forced:before{background:#a5836e4d;box-shadow:0 0 0 1.2px var(--amber)}.blk.done:before{background:var(--sage);box-shadow:0 0 0 1.6px #8aa19280,0 0 0 7px #8aa19224;transform:scale(1.2)}.blk .body{flex:1;min-width:0;text-align:left;background:none;border:0;font:inherit;color:inherit;padding:2px 0;cursor:pointer}.blk .hour{display:block;font-family:Gelasio,serif;font-size:13px;color:var(--slate);font-variant-numeric:tabular-nums;letter-spacing:.02em}.blk .title{display:block;font-family:Gelasio,serif;font-size:16.5px;line-height:1.25;margin-top:1px;overflow-wrap:anywhere}.blk .meta{display:block;font-size:12.5px;color:var(--ink-soft);margin-top:1px;overflow-wrap:anywhere}.blk .tag{display:inline-block;margin-top:5px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--rule);border-radius:3px;padding:1px 5px}.blk.is-protected .tag{color:var(--slate);border-color:#6e829866}.blk.is-reward .tag{color:#ae7a84;border-color:#d6a4ae8c}.blk.is-forced .tag{color:var(--amber);border-color:#a5836e73}.blk .moved{display:block;font-family:Gelasio,serif;font-style:italic;font-size:12px;color:var(--ink-faint);margin-top:4px}.blk .stamp{display:block;font-family:Karla,sans-serif;font-size:11px;color:var(--sage-deep);letter-spacing:.04em;margin-top:5px}.blk.done .title{color:var(--ink-soft)}.blk.done .hour{color:var(--sage-deep)}.tick{flex:0 0 var(--tap);width:var(--tap);height:var(--tap);background:none;border:0;display:grid;place-items:center;cursor:pointer;position:relative;margin-top:2px}.tick .box{width:21px;height:21px;border:1.2px solid var(--ink-faint);border-radius:50%;display:block;transition:.4s ease}.tick svg{position:absolute;width:26px;height:26px;pointer-events:none}.tick svg path{fill:none;stroke:var(--sage);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:26;stroke-dashoffset:26}.done .tick svg path{stroke-dashoffset:0;transition:stroke-dashoffset .55s ease .05s}.done .tick .box{border-color:var(--sage);opacity:.45}.halo{position:absolute;left:-30px;top:16px;width:24px;height:24px;border-radius:50%;pointer-events:none;box-shadow:0 0 #8aa19273;animation:halo 1.4s ease-out forwards}@keyframes halo{0%{box-shadow:0 0 #8aa19266}70%{box-shadow:0 0 0 18px #8aa19200}to{box-shadow:0 0 #8aa19200}}.silent{margin:14px 4px 0;font-family:Gelasio,serif;font-style:italic;font-size:13.5px;color:var(--ink-faint)}.back{min-height:var(--tap);display:inline-flex;align-items:center;gap:7px;margin-left:-8px;padding:0 8px;background:none;border:0;font-family:Karla,sans-serif;font-size:14px;color:var(--slate);cursor:pointer}.pos-map{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--ink-faint);margin:4px 0 18px;flex-wrap:wrap}.pos-map i{width:7px;height:7px;box-shadow:0 0 0 1.1px var(--ink-faint);border-radius:50%;display:block;flex:0 0 7px}.pos-map i.here{background:var(--slate);box-shadow:0 0 0 1.2px var(--slate)}.pos-map em{font-style:normal;margin-left:4px}.steps{list-style:none;display:flex;flex-direction:column;gap:2px}.steps li{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 0 12px 2px}.steps li+li{border-top:1px solid rgba(169,147,124,.16)}.steps li:before{content:"";position:absolute;left:-23px;top:20px;width:11px;height:11px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1.2px var(--slate);transition:.5s ease}.steps li.done:before{background:var(--sage);box-shadow:0 0 0 1.6px #8aa19280,0 0 0 6px #8aa19221}.steps .t{flex:1;min-width:0}.steps .t em{display:block;font-style:normal;font-family:Gelasio,serif;font-size:13px;color:var(--slate);font-variant-numeric:tabular-nums}.steps .t b{display:block;font-family:Gelasio,serif;font-weight:500;font-size:16px;line-height:1.25;margin-top:1px;overflow-wrap:anywhere}.steps .t span{display:block;font-size:12.5px;color:var(--ink-soft)}.steps li.done .t b{color:var(--ink-soft)}.memo{margin-top:22px;border-radius:22px;padding:4px 18px 16px;background:linear-gradient(160deg,#bda9d433,#e9d3e133)}.memo div{padding-top:14px}.memo b{display:block;font-family:Gelasio,serif;font-size:13px;color:var(--ink);margin-bottom:1px}.memo span{font-size:14px;color:var(--ink-soft)}.detail-actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}.act{min-height:var(--tap);border-radius:22px;cursor:pointer;font-family:Karla,sans-serif;font-size:14px;padding:10px 16px;transition:.4s ease}.act-check{border:0;color:#fdf7ed;background:linear-gradient(120deg,var(--sage),#BCCFC2)}.act-skip{background:none;border:1px solid var(--rule);color:var(--ink-soft)}.stamp-line{font-size:12px;color:var(--sage-deep);letter-spacing:.04em;min-height:var(--tap);display:flex;align-items:center}.thread{display:flex;flex-direction:column;gap:14px}.msg{max-width:90%;font-size:14.5px;line-height:1.55;padding:13px 16px;overflow-wrap:anywhere}.msg .content{display:block;white-space:pre-wrap;overflow-wrap:anywhere}.msg .who{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px}.msg.h{align-self:flex-start;background:#fbf5ebdb;border:1px solid var(--rule);border-radius:16px 16px 16px 4px}.msg.u{align-self:flex-end;border-radius:16px 16px 4px;font-family:Gelasio,serif;font-style:italic;background:linear-gradient(140deg,#bda9d452,#e2b7c847);border:1px solid rgba(189,169,212,.4)}.msg .neg{color:#ae7a84;font-weight:600}.msg .pos{color:var(--sage-deep);font-weight:600}.msg.typing .content{color:var(--ink-soft);font-family:Gelasio,serif;font-style:italic}.msg.typing .dots{display:inline-flex;align-items:center;gap:3px;margin-left:6px;vertical-align:middle}.msg.typing .dots i{width:4px;height:4px;border-radius:50%;background:var(--ink-faint);opacity:.35;animation:breathe 1.4s ease-in-out infinite}.msg.typing .dots i:nth-child(2){animation-delay:.18s}.msg.typing .dots i:nth-child(3){animation-delay:.36s}@keyframes breathe{0%,70%,to{opacity:.28;transform:translateY(0)}35%{opacity:.85;transform:translateY(-2px)}}.recap{border:1px solid var(--rule);border-radius:16px;background:#fbf5ebdb;overflow:hidden}.recap .cap{font-family:Gelasio,serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding:11px 15px;border-bottom:1px solid var(--rule)}.recap .row{display:flex;justify-content:space-between;gap:10px;padding:9px 15px;font-size:13.5px;align-items:center}.recap .row+.row{border-top:1px dashed var(--rule)}.recap .row:before{content:"";width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 1.1px var(--rose);flex:0 0 7px}.recap .row span{flex:1;min-width:0;overflow-wrap:anywhere}.recap .row em{font-style:normal;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}.recap .row.job:before{box-shadow:0 0 0 1.1px var(--amber)}.recap .row.job em{color:var(--amber)}.recap .row.rew:before{background:var(--rose);box-shadow:0 0 0 1.1px #be8c97}.recap .row.rew em{color:#ae7a84}.voice{font-family:Gelasio,serif;font-style:italic;font-size:13.5px;color:var(--ink-soft);border-left:2px solid var(--rule);padding-left:12px;margin-top:8px}.go{min-height:56px;border:0;border-radius:28px;cursor:pointer;color:#fdf7ed;font-family:Gelasio,serif;font-size:16px;letter-spacing:.01em;padding:8px 18px;background:linear-gradient(120deg,#b49bce,#cfa0b8);box-shadow:0 16px 30px -22px #4c3a2ae6;transition:.4s ease}.go.done{background:linear-gradient(120deg,var(--sage),#BCCFC2);box-shadow:none;color:#fbf5eb}.go:disabled{cursor:default}.compose{display:flex;align-items:center;gap:8px;min-width:0}.compose input{flex:1;min-width:0;height:var(--bar,44px);min-height:0;border-radius:22px;padding:0 15px;font-size:14.5px;font-family:Karla,sans-serif;color:var(--ink);background:#fbf5ebdb;border:1px solid var(--rule)}.compose input::placeholder{color:var(--ink-faint)}.compose input:focus{outline:none;border-color:#bda9d4b3}.compose .mic{flex:0 0 var(--bar,44px);width:var(--bar,44px);height:var(--bar,44px);border-radius:50%;cursor:pointer;padding:0;background:#fbf5ebdb;border:1px solid var(--rule);display:grid;place-items:center;transition:border-color .4s ease,background .4s ease}.compose .mic svg{width:19px;height:19px;fill:none;stroke:var(--slate);stroke-width:1.1;stroke-linecap:round;transition:stroke .4s ease}.compose .mic.on{border-color:#d6a4aebf;background:#e9d3e180}.compose .mic.on svg{stroke:var(--rose)}.compose .send{height:var(--bar,44px);min-height:0;border:0;border-radius:22px;padding:0 15px;cursor:pointer;font-family:Karla,sans-serif;font-size:13.5px;color:#fdf7ed;white-space:nowrap;background:linear-gradient(120deg,#b49bce,#cfa0b8);transition:opacity .4s ease}.compose .send:disabled{opacity:.5;cursor:default}#chat{--bar:44px;--nav: calc(74px + env(safe-area-inset-bottom)) ;position:fixed;top:0;left:0;right:0;bottom:0;margin:0 auto;max-width:430px;display:flex;flex-direction:column;overflow:hidden;padding:28px 20px 0}#chat .head{flex:0 0 auto;margin-bottom:16px}#chat .thread{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none}#chat .thread>*{flex:0 0 auto}#chat .thread::-webkit-scrollbar{width:0;height:0}#chat .dock{flex:0 0 auto;margin:0 -20px;padding:10px 20px calc(var(--nav) + 6px);background:linear-gradient(to top,#e6e2ee 62%,#e6e2ee00)}#chat .voice-note{font-family:Gelasio,serif;font-style:italic;font-size:12.5px;color:var(--ink-faint);margin:6px 4px 0;overflow-wrap:anywhere}#chat .voice-note:empty{display:none}.wk{list-style:none}.wk li{display:flex;align-items:center;gap:10px;min-height:52px}.wk .d{flex:0 0 76px;font-family:Gelasio,serif;font-size:15.5px}.wk .bar{flex:1;min-width:30px;height:6px;border-radius:6px;background:#a9937c33;overflow:hidden}.wk .bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,rgba(189,169,212,.9),var(--sage))}.wk li.low .bar i{background:linear-gradient(90deg,#e2b7c8e6,#bda9d4cc)}.wk .n{font-size:12.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.wk .pos{color:var(--sage-deep);font-weight:600}.wk .neg{color:#ae7a84;font-weight:600}.lesson{margin-top:18px;border-radius:22px;padding:16px 18px;font-family:Gelasio,serif;font-style:italic;font-size:14.5px;line-height:1.6;color:var(--ink-soft);background:linear-gradient(150deg,#dcc2e052,#7e8cbe33)}.tabs{position:fixed;bottom:0;left:0;right:0;margin:0 auto;max-width:430px;display:flex;padding:8px 14px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,#e6e2ee 62%,#e6e2ee00);border-top:1px solid rgba(169,147,124,.22)}.tabs button{position:relative;flex:1;min-height:56px;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:Karla,sans-serif;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);transition:color .4s ease}.tabs .ico{width:23px;height:23px;display:block;overflow:visible}.tabs .ico path,.tabs .ico circle{stroke:currentColor;fill:none;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .4s ease,fill .45s ease}.tabs button[aria-current=true]{color:var(--ink)}.tabs button[aria-current=true] .ico path,.tabs button[aria-current=true] .ico circle{stroke-width:1.3}.tabs button[aria-current=true] .ico .solid{fill:var(--rose)}.tabs button .underline{position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:26px;height:4px;opacity:0;transition:opacity .4s ease}.tabs button .underline path{fill:none;stroke:var(--rose);stroke-width:1.1;stroke-linecap:round}.tabs button[aria-current=true] .underline{opacity:.85}@media (prefers-reduced-motion:reduce){.msg.typing .dots i{animation:none;opacity:.55;transform:none}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
