*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #fbf8f4;--surface: #ffffff;--surface-2: #f6f2ec;--line: #ede7df;--row-line: #f3eee7;--ink: #2a231d;--ink-2: #6b6158;--ink-3: #a0968b;--accent: #ff7a45;--accent-grad: linear-gradient(140deg, #ff9c6e, #ff6b3d);--on-accent: #ffffff;--accent-soft: #fff1e9;--accent-soft-2: #ffe4d6;--accent-deep: #d96536;--halo: #ffb694;--cross: #d8c9bb;--good: #1fa97a;--danger: #e8604c;--family: #ff8a65;--work: #58a9ec;--friend: #2fc08c;--mentor: #a47be0;--r-sm: 13px;--r-md: 18px;--r-lg: 22px}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px}button{font-family:inherit;border:0;background:none;color:inherit;cursor:pointer}input,textarea{font-family:inherit}.m-app{position:relative;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.m-app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(760px 480px at 50% -8%,rgba(255,158,116,.15),transparent 70%),radial-gradient(480px 380px at 100% 100%,rgba(88,169,236,.06),transparent 70%)}.m-page{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;animation:m-in .22s ease-out}@keyframes m-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.m-top{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 0}.m-top h1{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.25}.m-top .sub{font-size:11.5px;color:var(--ink-3);margin-top:5px}.m-iconbtn{width:40px;height:40px;flex:none;border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;box-shadow:0 2px 10px #2a231d12}.m-iconbtn:active{background:var(--surface-2)}.m-tabbar{flex:none;display:grid;grid-template-columns:1fr 1fr 76px 1fr 1fr;align-items:center;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fffffff0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:40}.m-tab{height:100%;color:#b3a99e;font-size:10.5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0}.m-tab.on{color:var(--accent);font-weight:600}.m-tab svg{width:21px;height:21px}.m-fab{width:56px;height:56px;border-radius:50%;margin-top:-24px;justify-self:center;background:var(--accent-grad);color:var(--on-accent);font-size:27px;font-weight:300;line-height:1;display:grid;place-items:center;box-shadow:0 10px 24px #ff6b3d6b,inset 0 1px #ffffff4d}.m-fab:active{transform:scale(.95)}.m-av{flex:none;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;box-shadow:0 3px 10px #2a231d21;overflow:hidden;background-size:cover;background-position:center}.m-av.f{background-image:linear-gradient(150deg,#ffc4a8,#ff8a65)}.m-av.w{background-image:linear-gradient(150deg,#93caf2,#4e9fe0)}.m-av.r{background-image:linear-gradient(150deg,#6bdfb6,#22ba85)}.m-av.m{background-image:linear-gradient(150deg,#c7a9ec,#9a6fd8)}.m-av.n{background-image:linear-gradient(150deg,#d8cfc4,#b0a396)}.m-graph{position:relative;flex:1;min-height:0}.m-graph svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.m-graph .nl{font-size:11px;fill:#7b7068;font-weight:500}.m-graph .nl.dim{fill:#a9a096}.m-graph .cn{font-size:15px;fill:#f2603a;font-weight:700}.m-graph .nl-badge{fill:#fff;font-weight:700}.m-rail{flex:none;padding-bottom:10px}.m-rail-hd{display:flex;align-items:baseline;justify-content:space-between;padding:0 20px 9px}.m-rail-hd h3{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:0}.m-rail-hd button{font-size:11px;color:var(--ink-3);padding:10px 0 10px 10px;min-height:36px}.m-hscroll{display:flex;gap:10px;overflow-x:auto;padding:0 20px 4px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.m-hscroll::-webkit-scrollbar{display:none}.m-ncard{flex:none;width:218px;scroll-snap-align:start;background:var(--surface);border-radius:var(--r-md);padding:14px 15px 13px;box-shadow:0 3px 14px #2a231d12;text-align:left}.m-ncard .row{display:flex;align-items:center;gap:8px}.m-ncard .dot{width:8px;height:8px;border-radius:50%;flex:none}.m-ncard .nm{font-size:14.5px;font-weight:600}.m-ncard .tag{font-size:10.5px;color:#c25b33;background:#ffebe1;padding:2px 7px;border-radius:7px;margin-left:auto;font-weight:500}.m-ncard .tag.cool{color:#3c7fb8;background:#e4f1fb}.m-ncard .desc{font-size:11.5px;color:var(--ink-3);margin-top:8px;line-height:1.5}.m-searchwrap{padding:14px 20px 0;flex:none;position:relative}.m-searchwrap>svg{position:absolute;left:35px;top:28px;color:var(--ink-3)}.m-search{width:100%;height:44px;border-radius:15px;border:0;background:var(--surface);color:var(--ink);font-size:16px;padding:0 14px 0 40px;outline:none;box-shadow:0 3px 12px #2a231d0f}.m-search::placeholder{color:#b6aca2}.m-chips{display:flex;gap:8px;padding:14px 20px 0;overflow-x:auto;flex:none}.m-chips::-webkit-scrollbar{display:none}.m-chip{height:32px;padding:0 14px;border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:12.5px;white-space:nowrap;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px #2a231d0d}.m-chip.on{background:var(--accent-grad);color:#fff;font-weight:600;box-shadow:0 5px 14px #ff6b3d47}.m-chip i{width:6px;height:6px;border-radius:50%;display:block}.m-chip.on i{background:#ffffffd9}.m-sorthd{padding:20px 20px 8px;flex:none;font-size:11.5px;color:var(--ink-3);font-weight:500;display:flex;justify-content:space-between}.m-list{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:0 20px 12px;-webkit-overflow-scrolling:touch}.m-row{width:100%;display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #f1ebe3;text-align:left}.m-row:last-child{border-bottom:0}.m-row .main{flex:1;min-width:0}.m-row .l1{display:flex;align-items:center;gap:8px}.m-row .nm{font-size:15px;font-weight:600;letter-spacing:-.01em}.m-row .rel{font-size:11px;color:var(--ink-2);padding:2px 7px;border-radius:7px;background:#f4efe9;font-weight:500}.m-row .l2{font-size:11.5px;color:var(--ink-3);margin-top:5px}.m-row .l2 .warn{color:#d9743f}.m-row .sc{text-align:right;flex:none}.m-row .sc b{font-size:15.5px;font-weight:700;color:var(--accent);letter-spacing:-.02em}.m-row .sc b.low{color:#b6aca2}.m-row .sc div{font-size:10px;color:var(--ink-3);margin-top:3px}.m-empty{padding:40px 20px;text-align:center;color:var(--ink-3);font-size:13px;line-height:1.7}.m-detail{position:absolute;top:0;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));background:var(--bg);z-index:30;display:flex;flex-direction:column;animation:m-push .24s cubic-bezier(.22,1,.36,1)}@keyframes m-push{0%{transform:translate(100%)}to{transform:none}}.m-detail .scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(52px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.m-detail:before{content:"";position:absolute;top:0;left:0;right:0;height:420px;pointer-events:none;background:radial-gradient(460px 340px at 50% 12%,rgba(255,158,116,.2),transparent 68%)}.m-nav{position:relative;display:flex;align-items:center;justify-content:space-between;padding:14px 16px 0;z-index:2}.m-nav .m-iconbtn{background:#ffffffe6}.m-hero{position:relative;text-align:center;padding:8px 20px 0;z-index:2}.m-ring{width:118px;height:118px;margin:0 auto;position:relative}.m-ring>svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.m-ring .m-av{font-size:36px}.m-av-cam{position:absolute;right:-3px;bottom:-3px;width:25px;height:25px;border-radius:50%;background:var(--surface);border:1px solid var(--row-line);box-shadow:0 1px 4px #2a231d24;display:flex;align-items:center;justify-content:center;color:var(--ink-3)}.m-av-cam svg{width:12px;height:12px;flex:none}.m-heroname{display:block;width:100%;margin:16px 0 0;padding:0 0 2px;font-size:25px;font-weight:700;letter-spacing:-.02em;text-align:center;color:var(--ink);background:transparent;border:0;outline:none}.m-heroname:focus{box-shadow:inset 0 -1.5px 0 var(--accent)}.m-hero .rel{font-size:12.5px;color:var(--ink-2);margin-top:6px}.m-score{margin:20px 20px 0;position:relative;z-index:2;background:var(--surface);border-radius:20px;padding:16px 18px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 18px #2a231d12}.m-score .big{font-size:31px;font-weight:700;letter-spacing:-.03em;color:var(--accent);line-height:1}.m-score .big small{font-size:13px;color:var(--ink-3);font-weight:500;margin-left:2px}.m-score .mid{flex:1;min-width:0}.m-score .t{font-size:12px;color:var(--ink-3);margin-bottom:4px}.m-trend{font-size:13px;color:var(--good);font-weight:500}.m-trend.down{color:var(--danger)}.m-acts{display:flex;gap:10px;padding:14px 20px 0;position:relative;z-index:2}.m-acts button{flex:1;height:48px;border-radius:15px;font-size:14.5px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:7px}.m-acts .primary{background:var(--accent-grad);color:#fff;box-shadow:0 8px 20px #ff6b3d52}.m-acts .primary:active{transform:scale(.98)}.m-acts .ghost{background:var(--surface);color:var(--ink);box-shadow:0 3px 14px #2a231d12}.m-acts .ghost:disabled{color:var(--ink-3);box-shadow:none;opacity:.6}.m-sec{padding:26px 20px 0;position:relative;z-index:2}.m-sechd{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.m-sechd h3{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:0}.m-sechd button{font-size:12px;color:var(--ink-3)}.m-card{background:var(--surface);border-radius:var(--r-md);overflow:hidden;box-shadow:0 3px 14px #2a231d0f}.m-kv{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--row-line)}.m-kv:last-child{border-bottom:0}.m-kv .k{font-size:12px;color:var(--ink-3);width:60px;flex:none}.m-kv .v{font-size:13.5px;flex:1;min-width:0;word-break:break-word}.m-kv .v em{font-style:normal;color:var(--accent);font-size:12px;margin-left:6px;font-weight:500}.m-kv input{width:100%;background:transparent;border:0;outline:none;font-size:13.5px;color:var(--ink);padding:0}.m-kv input::placeholder{color:#c0b6ac}.m-kv input:focus{box-shadow:inset 0 -1.5px 0 var(--accent)}.m-kv .m-pickbtn{height:34px}.m-ev{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--row-line);align-items:flex-start}.m-ev:last-child{border-bottom:0}.m-ev .ico{width:28px;height:28px;border-radius:10px;background:#fbf4ee;display:grid;place-items:center;font-size:13px;flex:none}.m-ev .body{flex:1;min-width:0}.m-ev .n{font-size:13.5px;line-height:1.5}.m-ev .m{font-size:11px;color:var(--ink-3);margin-top:4px}.m-ev .d{font-size:12.5px;font-weight:700;flex:none;padding-top:2px}.m-ev .d.p{color:var(--good)}.m-ev .d.m{color:var(--danger)}.m-centerlink{margin:26px 20px 0;height:52px;width:calc(100% - 40px);border-radius:17px;border:1.5px dashed #e3d6c9;background:#ffffff80;color:var(--ink-2);font-size:13.5px;display:flex;align-items:center;justify-content:center;gap:8px}.m-brief{margin:22px 20px 0;position:relative;z-index:2}.m-brief-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.m-brief-hd h4{margin:0;font-size:14.5px;font-weight:700;color:var(--ink)}.m-brief-close{color:var(--ink-3);font-size:15px;padding:4px 8px}.m-brief-chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.m-brief-chip{border:1px solid var(--row-line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:6px 14px;font-size:12.5px}.m-brief-chip.on{border-color:var(--accent);color:#d96536;background:#fff1e9}.m-brief-row{display:flex;align-items:stretch;gap:8px;margin:8px 0 12px}.m-brief-when{flex:none;display:flex;align-items:center;gap:4px;height:44px;border:1px solid var(--row-line);border-radius:13px;background:var(--surface);padding:0 10px 0 12px}.m-brief-when span{font-size:12px;color:var(--ink-3);white-space:nowrap}.m-brief-when input{border:0;background:none;outline:none;height:42px;font-size:12.5px;color:var(--ink);padding:0 2px}.m-brief-when .tip{font-style:normal;font-size:11px;color:#d96536;font-weight:600;white-space:nowrap}.m-brief-when input::-webkit-calendar-picker-indicator{opacity:.45}.m-brief-ctx{width:100%;min-height:96px;border:1px solid var(--row-line);border-radius:13px;background:var(--surface);color:var(--ink);padding:10px 12px;font-size:13px;line-height:1.6;outline:none;resize:vertical;font-family:inherit}.m-brief-ctx:focus{border-color:var(--accent)}.m-brief-save{margin-top:14px;background:var(--surface);border-radius:var(--r-md);padding:12px 16px;box-shadow:0 3px 14px #2a231d0f}.m-brief-savehd{display:flex;justify-content:space-between;align-items:center}.m-brief-savehd h5{margin:0;font-size:11.5px;color:var(--ink-3);font-weight:700}.m-brief-savehd .ok{font-size:12px;color:var(--good);font-weight:600}.m-brief-savelink{font-size:12px;color:#d96536;font-weight:600;padding:4px 0}.m-brief-ctxecho{font-size:12.5px;color:var(--ink-2);line-height:1.6;margin-top:6px;max-height:84px;overflow-y:auto}.m-brief-plannote{font-size:12.5px;color:var(--ink-3);padding:8px 0;line-height:1.5}.m-brief-save .m-draft{margin-top:8px}.m-brief-gen{width:100%;height:44px;border-radius:13px;background:var(--accent-grad);color:#fff;font-size:14px;font-weight:600;box-shadow:0 6px 16px #ff6b3d42}.m-brief-row .m-brief-gen{flex:1;width:auto}.m-brief-gen:disabled{opacity:.6}.m-brief-gen:active:not(:disabled){transform:scale(.98)}.m-brief-err{font-size:12.5px;color:#c05640;padding:10px 0 0;line-height:1.5}.m-brief-card{margin-top:14px;background:var(--surface);border-radius:var(--r-md);padding:14px 16px;box-shadow:0 3px 14px #2a231d0f}.m-brief-stale{font-size:11.5px;color:#b3762f;background:#fdf3e4;border-radius:8px;padding:6px 10px;margin-bottom:10px}.m-brief-sum{font-size:13px;color:var(--ink-2);line-height:1.6;padding-bottom:10px;border-bottom:1px dashed var(--row-line);margin-bottom:10px}.m-brief-block{margin-bottom:12px}.m-brief-block:last-child{margin-bottom:0}.m-brief-block h5{margin:0 0 6px;font-size:11.5px;color:var(--ink-3);font-weight:700}.m-brief-gift{display:flex;gap:8px;padding:5px 0}.m-brief-gift .tier{flex:none;font-size:11px;color:#d96536;background:#fff1e9;border-radius:6px;padding:2px 7px;height:fit-content;margin-top:1px}.m-brief-gift .nm{font-size:13.5px;font-weight:600;color:var(--ink)}.m-brief-gift .why{font-size:12px;color:var(--ink-3);line-height:1.5;margin-top:2px}.m-brief-topic{font-size:13px;color:var(--ink);padding:3px 0;line-height:1.55}.m-brief-topic .why{color:var(--ink-3);font-size:12px}.m-brief-caution{font-size:12.5px;color:#b3762f;padding:2px 0;line-height:1.5}.m-brief-miss{display:flex;gap:8px;align-items:center;width:100%;text-align:left;margin-top:6px;border:1px dashed #e3d6c9;border-radius:10px;padding:8px 10px;background:#ffffff80}.m-brief-miss .q{flex:1;font-size:12.5px;color:var(--ink-2)}.m-brief-miss .f{flex:none;font-size:11.5px;color:#d96536;font-weight:600}.m-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 20px calc(16px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.m-todo{background:var(--surface);border-radius:20px;overflow:hidden;box-shadow:0 4px 18px #2a231d12}.m-trow{display:flex;gap:12px;padding:15px 16px;border-bottom:1px solid var(--row-line);align-items:flex-start}.m-trow:last-child{border-bottom:0}.m-trow .main{flex:1;min-width:0}.m-trow .l1{display:flex;align-items:center;gap:8px}.m-trow .nm{font-size:14px;font-weight:600}.m-trow .why{font-size:10.5px;padding:2px 7px;border-radius:7px;background:#ffebe1;color:#c25b33;font-weight:500}.m-trow .why.blue{background:#e4f1fb;color:#3c7fb8}.m-trow .fact{font-size:11.5px;color:var(--ink-3);margin-top:6px;line-height:1.5}.m-trow .act{align-self:center;flex:none;height:31px;padding:0 12px;border-radius:10px;background:#fff1e9;color:#d96536;font-size:11.5px;font-weight:600}.m-trow .act:active{background:var(--accent-soft-2)}.m-bdays{display:flex;gap:10px;overflow-x:auto}.m-bdays::-webkit-scrollbar{display:none}.m-bcard{flex:none;width:136px;border-radius:var(--r-md);padding:14px 15px;background:linear-gradient(165deg,#fff7f2,#fff 60%);box-shadow:0 3px 14px #2a231d0f}.m-bcard .d{font-size:10.5px;color:#d96536;font-weight:600}.m-bcard .n{font-size:14.5px;font-weight:600;margin-top:8px}.m-bcard .x{font-size:11px;color:var(--ink-3);margin-top:4px}.m-sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#2a231d47;animation:m-fade .18s ease-out}@keyframes m-fade{0%{opacity:0}to{opacity:1}}.m-sheet{position:fixed;left:0;right:0;bottom:0;z-index:51;background:var(--surface);border-radius:26px 26px 0 0;padding:10px 20px calc(18px + env(safe-area-inset-bottom));max-height:92dvh;display:flex;flex-direction:column;box-shadow:0 -8px 40px #2a231d29;animation:m-up .26s cubic-bezier(.22,1,.36,1)}@keyframes m-up{0%{transform:translateY(100%)}to{transform:none}}.m-grab{width:38px;height:4.5px;border-radius:3px;background:#e4dcd2;margin:0 auto 12px;flex:none}.m-sheethd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex:none}.m-sheethd h2{font-size:17.5px;font-weight:700;margin:0}.m-sheethd .close{width:30px;height:30px;border-radius:50%;background:var(--surface-2);color:var(--ink-3);font-size:15px;line-height:1}.m-sheetbody{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.m-input{width:100%;min-height:104px;border:0;outline:none;resize:none;background:var(--surface-2);border-radius:var(--r-md);padding:15px 16px;font-size:16px;line-height:1.65;color:var(--ink)}.m-input::placeholder{color:#b6aca2}.m-aihd{display:flex;align-items:center;justify-content:space-between;margin:20px 0 10px}.m-aihd .l{font-size:11.5px;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:6px}.m-aihd .st{font-size:10.5px;color:var(--good);font-weight:500}.m-parsed{background:#f2fbf7;border:1px solid #dff3e9;border-radius:var(--r-md);overflow:hidden}.m-prow{display:flex;align-items:center;gap:11px;padding:12px 15px;border-bottom:1px solid #e6f5ee}.m-prow .k{font-size:11px;color:#7fa898;width:44px;flex:none}.m-prow .v{font-size:13.5px;flex:1;min-width:0}.m-prow .v b{font-weight:600}.m-prow select{border:0;background:#e6f5ee;color:#3f7361;border-radius:8px;padding:4px 6px;font-size:12px;outline:none}.m-chg{display:flex;align-items:center;justify-content:space-between;padding:14px 15px}.m-chg .num{font-size:15.5px;font-weight:700}.m-chg .up{color:var(--good);font-size:12.5px;font-weight:700;margin-left:7px}.m-chg .arrow{color:var(--ink-3);margin:0 7px;font-size:12px}.m-sheetchips{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.m-sheetchip{height:34px;padding:0 14px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:12.5px;display:flex;align-items:center;gap:6px}.m-sheetchip.on{background:var(--accent-grad);color:#fff}.m-submit{width:100%;height:54px;border-radius:var(--r-md);margin-top:18px;flex:none;background:var(--accent-grad);color:var(--on-accent);font-size:15.5px;font-weight:700;letter-spacing:.06em;box-shadow:0 10px 24px #ff6b3d57}.m-submit:disabled{opacity:.45;box-shadow:none}.m-hint{text-align:center;font-size:11px;color:#b6aca2;margin-top:10px}.m-crop-view{position:relative;margin:4px auto 0;border-radius:50%;overflow:hidden;flex:none;background:var(--surface-2);box-shadow:0 4px 18px #2a231d1f,inset 0 0 0 2px #ffffffe6;touch-action:none;cursor:grab}.m-crop-view:active{cursor:grabbing}.m-crop-view img{position:absolute;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.m-crop-zoom{display:flex;align-items:center;gap:10px;width:min(100%,300px);margin:16px auto 0;flex:none;color:var(--ink-3);font-size:15px}.m-crop-zoom input[type=range]{flex:1;accent-color:var(--accent)}.m-crop-acts{display:flex;gap:10px;margin-top:16px;flex:none}.m-crop-alt{flex:none;width:96px;height:54px;border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2);font-size:14px;font-weight:600}.m-crop-alt:disabled,.m-crop-acts .m-submit:disabled{opacity:.45}.m-crop-acts .m-submit{margin-top:0;flex:1;width:auto}.m-toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:80;max-width:84vw;background:#2a231deb;color:#fff;font-size:12.5px;line-height:1.45;padding:10px 16px;border-radius:12px;box-shadow:0 8px 24px #2a231d40;animation:m-toast .2s ease-out}@keyframes m-toast{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.m-loading{height:100dvh;display:grid;place-items:center;color:var(--ink-3);font-size:13px}.m-starmap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.m-sm-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 20px 0;z-index:2}.m-sm-head h1{font-size:19px;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.25}.m-sm-head .sub{font-size:11px;color:var(--ink-3);margin-top:4px}.m-sm-zoom{display:flex;align-items:center;background:#ffffffd9;border-radius:12px;box-shadow:0 2px 10px #2a231d12;overflow:hidden}.m-sm-zoom button{height:32px;min-width:32px;padding:0 8px;font-size:15px;color:var(--ink-2)}.m-sm-zoom button:nth-child(2){font-size:11px;color:var(--ink-3);min-width:46px}.m-sm-zoom button:active{background:var(--surface-2)}.m-sm-svg{flex:1;width:100%;min-height:0;touch-action:none;display:block}.m-sm-svg .nl{font-size:8.5px;fill:#6b6158;font-weight:500}.m-sm-svg .nl.dim{fill:#a9a096}.m-sm-svg .nl-meta{fill:#a0968b;font-weight:400}.m-sm-svg .nl-meta.dim{fill:#b6aca2}.m-sm-svg .cn{fill:#f2603a;font-weight:700}.m-sm-svg .nl-badge{fill:#fff;font-weight:700}.m-sm-hint{flex:none;text-align:center;font-size:10px;color:#b6aca2;padding:4px 0 10px}.m-error{background:#fff1ee;color:#c0442e;font-size:12px;padding:10px 12px;border-radius:12px;margin-bottom:12px;line-height:1.5}.m-draft{background:#f2fbf7;border:1px solid #dff3e9;border-radius:var(--r-md);padding:12px 14px}.m-draft-sec+.m-draft-sec{margin-top:12px;padding-top:12px;border-top:1px solid #e6f5ee}.m-draft-label{font-size:10.5px;color:#7fa898;font-weight:600;margin-bottom:8px;letter-spacing:.03em}.m-draft-person{display:flex;align-items:center;gap:10px;padding:5px 0}.m-draft-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700;flex:none}.m-draft-main{flex:1;min-width:0}.m-draft-name{font-size:13.5px;font-weight:600}.m-draft-sub{font-size:11px;color:#7fa898;margin-top:2px}.m-draft-new{font-size:10px;color:#1fa97a;background:#ddf3e9;padding:2px 6px;border-radius:6px;font-weight:600}.m-draft-chips{display:flex;gap:6px;flex-wrap:wrap}.m-draft-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:4px 10px 4px 4px;font-size:12px;color:#3f7361}.m-draft-rel{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 0;flex-wrap:wrap}.m-draft-rel em{font-style:normal;color:#7fa898;font-size:11.5px}.m-draft-event{display:flex;align-items:center;justify-content:space-between}.m-draft-kind{font-size:13px;font-weight:600}.m-draft-delta{font-size:13.5px;font-weight:700}.m-draft-note{font-size:12px;color:#4d7a68;line-height:1.55;margin-top:6px}.m-manual{margin-top:4px}.m-manual-row{display:flex;gap:8px}.m-manual-row select{flex:1;height:38px;border:0;border-radius:12px;background:var(--surface-2);color:var(--ink-2);font-size:13px;padding:0 10px;outline:none}.m-me-card{display:flex;align-items:center;gap:14px;background:linear-gradient(160deg,#fff7f2,#fff 60%);border-radius:var(--r-md);padding:18px 16px;box-shadow:0 4px 18px #2a231d12}.m-me-main{flex:1;min-width:0}.m-me-name{font-size:18px;font-weight:700;letter-spacing:-.01em}.m-me-sub{font-size:11.5px;color:var(--ink-3);margin-top:5px;line-height:1.5}.m-me-stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border-radius:var(--r-md);padding:16px 8px;box-shadow:0 3px 14px #2a231d0f}.m-me-stats div{display:flex;flex-direction:column;align-items:center;gap:4px}.m-me-stats b{font-size:19px;font-weight:700;color:var(--accent);letter-spacing:-.02em}.m-me-stats span{font-size:10.5px;color:var(--ink-3)}.m-me-row{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--row-line);text-align:left}.m-me-row:last-child{border-bottom:0}a.m-me-row{text-decoration:none;color:inherit}.m-me-row-name{flex:1;font-size:14px;font-weight:500}.m-me-tag{font-size:10.5px;color:var(--accent-deep);background:var(--accent-soft);padding:2px 8px;border-radius:7px;font-weight:600}.m-me-go{font-size:11.5px;color:var(--ink-3)}.m-me-foot{text-align:center;font-size:11px;color:#b6aca2;padding:26px 20px}.m-hist-row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid var(--row-line)}.m-hist-row:last-of-type{border-bottom:0}.m-hist-main{flex:1;min-width:0}.m-hist-time{font-size:13.5px;font-weight:600}.m-hist-meta{font-size:11px;color:var(--ink-3);margin-top:3px}.m-hist-btn{flex:none;font-size:12px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);padding:7px 13px;border-radius:9px}.m-hist-btn.confirm{color:#fff;background:var(--accent)}.m-hist-btn:disabled{opacity:.55}.m-form-error{margin-top:12px;font-size:12.5px;line-height:1.6;color:var(--down, #E8604C);text-align:center}.m-rel-edit{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--row-line)}.m-rel-edit.expand{flex-direction:column;align-items:stretch;gap:8px}.m-rel-edit:last-child{border-bottom:0}.m-rel-head{display:flex;align-items:center;gap:10px}.m-rel-main{flex:1;min-width:0}.m-rel-name{font-size:13.5px;font-weight:600}.m-rel-text{font-size:11.5px;color:var(--ink-3);margin-top:4px}.m-rel-label{width:100%;border:0;border-bottom:1px solid #eadfd4;background:transparent;color:var(--ink-2);font-size:12px;padding:4px 0;outline:none;margin-top:3px}.m-rel-num{font-size:12.5px;color:var(--ink-3)}.m-rel-score{width:48px;border:0;border-radius:8px;background:var(--surface-2);color:var(--accent);font-size:12px;font-weight:600;padding:6px 4px;text-align:center;outline:none}.m-rel-del{color:#c6b8aa;font-size:20px;padding:4px}.m-rel-add{margin-top:9px}.m-link{font-size:12px;color:var(--accent);padding:5px 0}.m-addrel{background:var(--surface);border-radius:14px;padding:12px;box-shadow:0 3px 14px #2a231d0f;margin-top:6px}.m-addrel select{width:100%;height:36px;border:0;border-radius:10px;background:var(--surface-2);color:var(--ink);padding:0 10px;font-size:13px;outline:none}.m-addrel-form{display:grid;gap:6px;margin-top:8px}.m-addrel-q{display:flex;align-items:center;gap:8px}.m-addrel-q>span{font-size:12px;color:var(--ink-2);white-space:nowrap}.m-addrel-q>input{flex:1;min-width:0;height:36px;border:0;border-radius:10px;background:var(--surface-2);color:var(--ink);padding:0 9px;font-size:12px;outline:none}.m-addrel-q .m-pickbtn{flex:1;min-width:0;height:36px}.m-addrel-save{width:100%;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent-deep);font-size:12px;font-weight:600;margin-top:10px}.m-addrel-save:disabled{opacity:.4}.m-agent-action{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid #e6f5ee}.m-agent-action:last-child{border-bottom:0}.m-agent-type{flex:none;font-size:10.5px;font-weight:600;color:#4f967c;background:#e2f4eb;border-radius:7px;padding:3px 7px;margin-top:1px}.m-agent-text{flex:1;min-width:0;font-size:12.5px;line-height:1.5;color:#315c4b}.m-pickbtn{width:100%;height:40px;border-radius:12px;background:var(--surface-2);color:var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:13px}.m-pickbtn .ph{color:#b6aca2}.m-pickbtn svg{color:var(--ink-3)}.m-sheet-sm{max-height:70dvh}.m-picksearch{padding:0 0 10px}.m-picksearch input{width:100%;height:38px;border:0;border-radius:12px;background:var(--surface-2);color:var(--ink);padding:0 12px;font-size:14px;outline:none}.m-picklist{overflow-y:auto;overscroll-behavior:contain;max-height:46dvh}.m-pickrow{width:100%;display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid var(--row-line);text-align:left}.m-pickrow:last-child{border-bottom:0}.m-pickrow.on{color:var(--accent);font-weight:600}.m-pickrow-label{flex:1;font-size:14px}.m-pickrow-hint{font-size:11px;color:var(--ink-3)}.m-pickrow-check{color:var(--accent);font-size:14px}.m-k{font-size:11px;color:var(--ink-3)}.m-custom-add{display:flex;gap:6px;margin-top:10px}.m-custom-add input{flex:1;min-width:0;height:34px;border:0;border-radius:10px;background:var(--surface-2);color:var(--ink);padding:0 10px;font-size:12.5px;outline:none}.m-custom-add button{flex:none;height:34px;padding:0 12px;border-radius:10px;background:#fff1e9;color:#d96536;font-size:12px;font-weight:600}.m-custom-del{color:#c6b8aa;font-size:16px;padding:2px 4px}.m-sm-svg .elabel{fill:#a0968b;font-size:6.5px}.m-sm-zoom button.txt{font-size:11px;min-width:40px}.m-fab,.m-tab,.m-submit,.m-ncard,.m-pickrow,.m-trow .act{position:relative;overflow:hidden}.m-ripple{position:absolute;border-radius:50%;pointer-events:none;background:#ff6b3d29;transform:scale(0);opacity:1;animation:m-ripple .5s ease-out forwards}.m-fab .m-ripple,.m-submit .m-ripple{background:#ffffff59}@keyframes m-ripple{to{transform:scale(1);opacity:0}}.m-sm-zoom,.m-iconbtn{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.m-sm-zoom{background:#ffffffb8}.m-iconbtn{background:#fffc}.m-starmap:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;z-index:0;background:radial-gradient(38% 30% at 30% 22%,rgba(255,158,116,.1),transparent 70%),radial-gradient(34% 28% at 74% 62%,rgba(88,169,236,.07),transparent 70%),radial-gradient(30% 26% at 46% 86%,rgba(47,192,140,.06),transparent 70%);animation:m-aurora 34s ease-in-out infinite alternate}.m-starmap>*{position:relative;z-index:1}@keyframes m-aurora{0%{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.06)}}@media(prefers-reduced-motion:reduce){.m-starmap:before{animation:none}.m-ripple{animation-duration:.01s}}.m-me-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:none;padding:0;box-shadow:none;border-radius:0}.m-me-stats>div{background:var(--surface);border-radius:18px;padding:14px 16px;box-shadow:0 3px 14px #2a231d0f;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.m-me-stats>div:first-child{grid-column:1 / -1;flex-direction:row;align-items:baseline;justify-content:space-between;background:linear-gradient(150deg,#fff4ec,#fff 65%)}.m-me-stats>div:first-child b{font-size:30px}.m-me-stats b{font-size:20px}.m-themes{display:flex;gap:8px;overflow-x:auto;padding:2px}.m-themes::-webkit-scrollbar{display:none}.m-theme{flex:none;display:flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:999px;background:var(--surface);box-shadow:0 2px 8px #2a231d0d;font-size:12px;color:var(--ink-2)}.m-theme.on{outline:2px solid var(--accent);outline-offset:1px;color:var(--ink);font-weight:600}.m-theme i{width:12px;height:12px;border-radius:50%;display:block}.m-theme i+i{margin-left:-4px}.m-ev.is-deleted{opacity:.55}.m-ev.is-deleted .n{text-decoration:line-through;text-decoration-color:#c6b8aa}.m-restore{flex:none;align-self:center;height:28px;padding:0 10px;border-radius:9px;background:var(--accent-soft);color:var(--accent-deep);font-size:11.5px;font-weight:600}.m-rel-del.confirm{width:auto;padding:0 8px;height:26px;border-radius:8px;background:#fdecea;color:#c0442e;font-size:11.5px;font-weight:600}.login{height:100dvh;overflow-y:auto;overscroll-behavior:contain;display:flex;padding:24px}.login-card{margin:auto;width:min(340px,88vw);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:28px 22px 22px;display:flex;flex-direction:column;gap:10px}.login-title{font-size:19px;font-weight:600;text-align:center;color:var(--ink)}.login-sub{font-size:12px;color:var(--ink-3);text-align:center;margin-bottom:8px}.login-input{height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);padding:0 12px;font-size:15px;outline:none;text-align:center}.login-input:focus{border-color:var(--ink-3)}.login-btn{height:44px;border:0;border-radius:var(--r-sm);background:var(--accent);color:var(--accent-ink);font-size:14px;font-weight:500;cursor:pointer}.login-btn:disabled{opacity:.45;cursor:default}.login-error{font-size:12px;color:var(--danger);text-align:center;min-height:16px}.login-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:4px}.login-person{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-size:12.5px;cursor:pointer}.login-person:active{background:var(--line-soft)}.login-cancel{margin-top:4px;height:38px;border:0;background:none;border-radius:var(--r-sm);color:var(--ink-3);font-size:13px;cursor:pointer}
