:root{--bg:#fff;--fg:#0d0d0d;--muted:#6e6e80;--line:#e8e8e8;--soft:#f4f4f4;--soft2:#e6e6e6;--card:#fff;--accent:#0d0d0d;--accent-fg:#fff;--ok:#10a37f;--warn:#b25e00;--danger:#d93025;--link:#2563eb;--stage:#ececec;--shadow:0 2px 14px #00000014}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#212121;--fg:#ececec;--muted:#a3a3ad;--line:#363636;--soft:#2f2f2f;--soft2:#3d3d3d;--card:#2a2a2a;--accent:#ececec;--accent-fg:#0d0d0d;--ok:#19c37d;--warn:#f0a33c;--danger:#ff6b5e;--link:#7aa7ff;--stage:#121212;--shadow:0 2px 14px #0006}}:root[data-theme=dark]{--bg:#212121;--fg:#ececec;--muted:#a3a3ad;--line:#363636;--soft:#2f2f2f;--soft2:#3d3d3d;--card:#2a2a2a;--accent:#ececec;--accent-fg:#0d0d0d;--ok:#19c37d;--warn:#f0a33c;--danger:#ff6b5e;--link:#7aa7ff;--stage:#121212;--shadow:0 2px 14px #0006}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{background:var(--stage);color:var(--fg);font:16px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}#device{height:100vh;background:var(--bg);flex-direction:column;max-width:720px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}#app,.page{flex-direction:column;flex:1;min-height:0;display:flex}.top{flex-shrink:0;align-items:center;gap:4px;min-height:52px;padding:4px 8px;display:flex}.top .title{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:17px;font-weight:600;overflow:hidden}.top .title small{color:var(--muted);font-size:12px;font-weight:400;display:block}.sp{flex-shrink:0;width:40px}.icon-btn{background:0 0;border:0;border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.icon-btn:hover{background:var(--soft)}.icon-btn.sm{width:34px;height:34px}.icon-btn:disabled{opacity:.35;background:0 0}.text-btn{color:var(--link);background:0 0;border:0;flex-shrink:0;padding:8px 10px;font-size:15px}.model-btn{background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;font-size:17px;font-weight:600;display:flex}.scroll{flex:1;min-height:0;padding:4px 16px 24px;overflow-y:auto}.tabs{border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:var(--bg);flex-shrink:0;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:7px 0 6px;font-size:11px;display:flex}.tabs button.on{color:var(--fg);font-weight:600}.minibar{background:var(--ok);color:#fff;text-align:left;border:0;flex-shrink:0;align-items:center;gap:8px;margin:0;padding:10px 16px;font-size:14px;display:flex}.minibar span{flex:1}.strip{background:var(--soft);text-align:left;border:0;border-radius:12px;flex-shrink:0;align-items:center;gap:8px;width:calc(100% - 24px);margin:0 12px 6px;padding:10px 12px;font-size:14px;display:flex;position:relative;overflow:hidden}.strip span{flex:1}.strip b{color:var(--link);font-weight:600}.strip.warn{color:var(--warn)}.strip.err{color:var(--danger)}.strip.ok{color:var(--ok)}.strip .prog{background:var(--soft2);height:3px;position:absolute;bottom:0;left:0;right:0}.strip .prog i{background:var(--ok);height:100%;transition:width .6s;display:block}.spin{border:2px solid var(--soft2);border-top-color:var(--fg);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite rot}@keyframes rot{to{transform:rotate(360deg)}}h1.hero{text-align:center;margin:8px 0 4px;font-size:30px}h2{margin:16px 0 8px;font-size:20px}h3{margin:0;font-size:16px}.muted{color:var(--muted)}.small{font-size:13px}.c{text-align:center}.grow{flex:1;min-width:0}.row{align-items:center;gap:8px;display:flex}.wrap{flex-wrap:wrap}.mt{margin-top:12px}.mb{margin-bottom:12px}.st{color:var(--muted);margin:20px 4px 6px;font-size:13px}.list{background:var(--soft);border-radius:14px;margin:6px 0 12px;overflow:hidden}.item{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.item:last-child{border-bottom:0}.item .ic{color:var(--muted);display:grid}.item .main{flex:1;min-width:0}.item .sub{color:var(--muted);font-size:13px}.item .val{color:var(--muted);flex-shrink:0;font-size:14px}.item .chev{color:var(--muted);display:grid}.btn{background:var(--accent);height:44px;color:var(--accent-fg);border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.35}.btn.ghost{background:var(--soft);color:var(--fg)}.btn.danger{background:var(--soft);color:var(--danger)}.btn.block{width:100%}.btn.sm{border-radius:10px;height:34px;padding:0 12px;font-size:14px}.btns{gap:8px;margin-top:12px;display:flex}.btns .btn{flex:1}.link{color:var(--link);background:0 0;border:0;padding:0;font-size:14px}.link:disabled{color:var(--muted)}.seg{background:var(--soft);border-radius:10px;gap:2px;padding:3px;display:flex}.seg button{height:32px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:1;font-size:14px}.seg button.on{background:var(--card);color:var(--fg);box-shadow:var(--shadow);font-weight:600}.seg .dot{background:var(--danger);vertical-align:2px;border-radius:50%;width:6px;height:6px;margin-left:4px;display:inline-block}.field{margin:14px 0}.field>label,.lbl{color:var(--muted);margin:0 0 6px 2px;font-size:13px;display:block}input,select,textarea{border:1px solid var(--line);background:var(--card);width:100%;height:44px;color:var(--fg);font:inherit;border-radius:12px;padding:0 12px}textarea{resize:vertical;height:auto;padding:10px 12px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--ok);margin:0}.check{align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}.chips{scrollbar-width:none;gap:8px;padding:2px 0 8px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);white-space:nowrap;background:var(--card);border-radius:999px;flex-shrink:0;padding:7px 12px;font-size:14px}.chip.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.tag{background:var(--soft2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.tag.ok{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.tag.warn{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.tag.err{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.tag.ai{background:color-mix(in srgb, var(--link) 14%, transparent);color:var(--link)}.card{border:1px solid var(--line);background:var(--card);border-radius:16px;margin:10px 0;padding:14px}.card.soft{background:var(--soft);border-color:#0000}.note{background:var(--soft);color:var(--muted);border-radius:12px;margin:10px 0;padding:10px 12px;font-size:14px}.note.warn{color:var(--warn)}.err-box{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);border-radius:12px;margin:10px 0;padding:10px 12px;font-size:14px}.empty{text-align:center;color:var(--muted);padding:48px 12px}.empty h3{color:var(--fg);margin-bottom:6px}.empty .btns{flex-wrap:wrap;justify-content:center}.empty .btns .btn{flex:none}.foot{border-top:1px solid var(--line);background:var(--bg);flex-shrink:0;padding:10px 16px 14px}.foot.plain{border-top:0}.steps{justify-content:center;gap:6px;padding:6px 0;display:flex}.steps i{background:var(--soft2);border-radius:2px;width:22px;height:4px}.steps i.on{background:var(--fg)}.logo{background:var(--accent);width:72px;height:72px;color:var(--accent-fg);border-radius:22px;place-items:center;margin:40px auto 8px;display:grid}.opt{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;width:100%;margin:8px 0;padding:10px 14px;display:block}.opt.on{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}.opt .sub{color:var(--muted);font-size:13px}.pgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.pcard{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:12px;padding:10px 12px}.pcard b{font-size:15px;display:block}.pcard span{color:var(--muted);font-size:12px}.pcard.on{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}.msgs{flex-direction:column;gap:18px;padding:8px 0 12px;display:flex}.u-wrap{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:6px;max-width:82%;display:flex}.u{background:var(--soft);white-space:pre-wrap;word-break:break-word;border-radius:20px;padding:9px 14px}.a{line-height:1.7}.a .txt p{margin:0 0 10px}.a .txt p:last-child{margin-bottom:0}.caret{background:var(--fg);border-radius:50%;width:8px;height:8px;margin-left:4px;animation:1s infinite blink;display:inline-block}@keyframes blink{50%{opacity:.2}}.tools{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.tool{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.tool .spin{width:12px;height:12px}.flag{background:var(--soft2);color:var(--muted);border-radius:999px;margin-top:6px;padding:1px 8px;font-size:12px;display:inline-block}.flag.warn{color:var(--warn)}.acts{color:var(--muted);gap:2px;margin-top:4px;margin-left:-8px;display:flex}.rcard{border:1px solid var(--line);background:var(--card);border-radius:14px;align-items:flex-start;gap:10px;margin:0 0 10px;padding:10px 12px;display:flex}.rcard .ic{background:var(--soft);border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.rcard .main{flex:1;min-width:0;font-size:14px;line-height:1.5}.rcard .main b{font-size:15px}.racts{flex-wrap:wrap;gap:4px 16px;margin-top:4px;font-size:13px;display:flex}.mline{color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;display:flex}.mline span{flex:1}.dcard{border:1px solid var(--line);background:var(--card);border-radius:16px;margin:0 0 10px;padding:12px 14px}.dcard .days{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.att{color:#fff;background:linear-gradient(135deg,#5b6b7a,#2c3640);border-radius:14px;flex-direction:column;flex-shrink:0;justify-content:flex-end;width:120px;height:84px;padding:8px;font-size:12px;display:flex;position:relative}.att.photo{background:linear-gradient(135deg,#8a7a66,#4a3f33)}.att .x{color:#fff;background:#0000008c;border:0;border-radius:50%;place-items:center;width:22px;height:22px;padding:0;display:grid;position:absolute;top:4px;right:4px}.atts{scrollbar-width:none;gap:8px;padding:4px 4px 8px;display:flex;overflow-x:auto}.frames{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.frames i{background:var(--soft2);color:var(--muted);border-radius:6px;padding:2px 6px;font-size:11px;font-style:normal}.composer{flex-shrink:0;padding:6px 12px 10px}.cbox{border:1px solid var(--line);box-shadow:var(--shadow);background:var(--card);border-radius:26px;padding:6px 8px}.cbox textarea{resize:none;background:0 0;border:0;outline:none;height:40px;max-height:140px;padding:8px 8px 4px;display:block}.crow{align-items:center;gap:4px;display:flex}.pill{border:1px solid var(--line);background:0 0;border-radius:999px;align-items:center;gap:4px;height:32px;padding:0 10px;font-size:13px;display:flex}.send{background:var(--accent);width:36px;height:36px;color:var(--accent-fg);border:0;border-radius:50%;place-items:center;display:grid}.send:disabled{opacity:.25}.greet{text-align:center;padding:18vh 12px 0}.greet h2{font-size:24px}.conv-row{border-bottom:1px solid var(--line);touch-action:pan-y;position:relative;overflow:hidden}.conv-row .content{z-index:1;background:var(--bg);text-align:left;border:0;width:100%;padding:12px 4px;transition:transform .2s;display:block;position:relative}.conv-row.open .content{transform:translate(-152px)}.conv-row .sw{display:flex;position:absolute;top:0;bottom:0;right:0}.conv-row .sw button{color:#fff;border:0;width:76px;font-size:14px}.conv-row .sw .rn{background:#8e8e93}.conv-row .sw .del{background:var(--danger)}.snip{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.excard{border:1px solid var(--line);background:var(--card);border-radius:16px;margin:10px 0;overflow:hidden}.exhead{align-items:center;gap:8px;padding:10px 8px 10px 14px;display:flex}.exhead>div{flex:1;min-width:0}.exhead .sub{color:var(--muted);font-size:12px}.set{border-top:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px 8px 14px;display:flex}.set .no{background:var(--soft);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.set .tgt{color:var(--muted);font-size:12px;display:block}.set.done{background:color-mix(in srgb, var(--ok) 8%, transparent)}.set.skipped b,.set.not_done b{color:var(--muted)}.ins{flex-wrap:wrap;gap:6px;display:flex}.num{border:1px solid var(--line);background:var(--bg);border-radius:10px;align-items:center;padding-right:8px;display:flex}.num input{text-align:center;background:0 0;border:0;width:64px;height:34px;padding:0 4px}.num span{color:var(--muted);font-size:13px}.okbtn{background:var(--ok);color:#fff;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.tagbtn{background:var(--soft);border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:13px;display:flex}.tagbtn.ok{color:var(--ok)}.rest{border-top:1px solid var(--line);background:var(--bg);flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex;position:relative;overflow:hidden}.rest>*{position:relative}.rest b{font-variant-numeric:tabular-nums;font-size:22px}.restfill{background:color-mix(in srgb, var(--ok) 14%, transparent);transition:width 1s linear;position:absolute;top:0;bottom:0;left:0}.big{font-size:28px;font-weight:700}.kv{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.kv div{background:var(--soft);text-align:center;border-radius:12px;padding:10px}.kv b{font-size:20px;display:block}.kv span{color:var(--muted);font-size:12px}.dayline{justify-content:space-between;gap:12px;padding:4px 0;font-size:14px;display:flex}.dayline span:last-child{color:var(--muted);text-align:right}.chart{width:100%;height:auto;margin:6px 0;display:block}.chart .bar{fill:var(--ok)}.chart .tline{stroke:var(--muted);stroke-dasharray:4 4;stroke-width:1px}.chart .ax{fill:var(--muted);font-size:10px}.chart .ln{fill:none;stroke:var(--ok);stroke-width:2px}.chart .ln.b{stroke:var(--link)}.chart .ln.m{stroke:var(--muted);stroke-dasharray:4 3}.chart .dot{fill:var(--ok)}.chart .dot.m{fill:var(--muted)}.legend{color:var(--muted);gap:14px;font-size:12px;display:flex}.legend i{vertical-align:middle;background:var(--ok);width:10px;height:3px;margin-right:4px;display:inline-block}.legend i.b{background:var(--link)}.legend i.m{background:var(--muted)}.hbar{align-items:center;gap:8px;margin:6px 0;font-size:14px;display:flex}.hbar span:first-child{width:40px;color:var(--muted)}.hbar .track{background:var(--soft2);border-radius:5px;flex:1;height:10px;overflow:hidden}.hbar .track i{background:var(--ok);border-radius:5px;height:100%;display:block}.hbar b{text-align:right;width:28px;font-weight:600}.switch{background:var(--soft2);border:0;border-radius:15px;flex-shrink:0;width:50px;height:30px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--ok)}.switch.on:after{left:23px}.daychips{gap:6px;display:flex}.daychips button{border:1px solid var(--line);background:var(--card);border-radius:50%;width:40px;height:40px}.daychips button.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.avatar{background:var(--ok);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:22px;font-weight:700;display:grid}#overlay{pointer-events:none;z-index:20;position:absolute;inset:0}.backdrop{pointer-events:auto;background:#0006;position:absolute;inset:0}.sheet{background:var(--bg);pointer-events:auto;border-radius:22px 22px 0 0;max-height:86%;padding:6px 16px 22px;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.sheet .grab{background:var(--soft2);border-radius:3px;width:38px;height:5px;margin:4px auto 10px}.sheet h3{text-align:center;margin-bottom:10px}.dialog{background:var(--bg);pointer-events:auto;box-shadow:var(--shadow);border-radius:18px;padding:20px;position:absolute;top:50%;left:28px;right:28px;transform:translateY(-50%)}.dialog h3{margin-bottom:8px;font-size:17px}.dialog p{color:var(--muted);margin:0 0 8px;font-size:15px}.dialog .btns{flex-direction:column}.sopt{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 6px;display:flex}.sopt:last-child{border-bottom:0}.sopt .main{flex:1}.sopt .sub{color:var(--muted);font-size:13px}#toast{background:var(--accent);color:var(--accent-fg);opacity:0;pointer-events:none;z-index:30;text-align:center;border-radius:12px;max-width:88%;padding:10px 16px;font-size:14px;transition:opacity .2s;position:absolute;top:60px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}.txt ol,.txt ul{margin:0 0 10px;padding-left:22px}.txt code{background:var(--soft);border-radius:6px;padding:0 4px;font-size:14px}.item[disabled]{cursor:default}
