:root{--t-accent:#2c2c2e;--t-bubble:#f0f0f0;--t-bar:#ffffff;--t-card:#ffffff;--t-page:#f7f7f8;--t-border:#ebebeb;--t-hover:#f2f2f3;--t-input:#fafafa}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
textarea,
[contenteditable="true"],
[contenteditable="plaintext-only"]{
  -webkit-user-select:text!important;user-select:text!important;
  -webkit-touch-callout:default;touch-action:auto;
}
html,body{overflow:hidden;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
html{background:var(--t-page) url("assets/gray-stars-default-wallpaper.jpg") center/cover no-repeat}

body{background:var(--t-page) url("assets/gray-stars-default-wallpaper.jpg") center/cover no-repeat;position:relative}
body::before{content:'';position:absolute;inset:0;
  background:
    linear-gradient(to bottom,#f0f0f2,transparent 8%),
    radial-gradient(ellipse 80% 50% at 30% 25%,rgba(200,200,205,.12),transparent),
    radial-gradient(ellipse 70% 60% at 70% 70%,rgba(180,180,185,.08),transparent),
    linear-gradient(to bottom,rgba(245,245,247,.6),rgba(235,235,238,.3));
  z-index:0}
body::after{content:'';position:absolute;inset:0;
  background-image:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.07'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='turbulence' baseFrequency='.02 .08' numOctaves='2' seed='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23b)' opacity='.04'/%3E%3C/svg%3E");
  opacity:.8;pointer-events:none;z-index:0;mix-blend-mode:multiply}

.wrap{display:flex;flex-direction:column;width:100vw;min-height:100dvh;position:relative;z-index:1;overflow:hidden}
#bar{height:30px;background:transparent;display:flex;align-items:center;justify-content:flex-start;padding-left:var(--lm-app-space-4,16px);color:rgba(255,255,255,.9);font-size:var(--lm-app-font-control,13px);font-weight:500;letter-spacing:1px;flex-shrink:0;z-index:100}
#desk{flex:1;position:relative;overflow:hidden;z-index:1}
#pages{display:flex;height:100%;will-change:transform}
#pages.anim{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}
.pg{flex:0 0 100vw;width:100vw;height:100%;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(6,94px);justify-items:center;padding:var(--lm-app-space-5,20px) 0 0 0;position:relative}
.ic{width:76px;height:86px;display:flex;flex-direction:column;align-items:center;padding-top:var(--lm-app-space-1,4px);cursor:pointer}
.ic.ghost{opacity:.15}
.ic-box{width:56px;height:56px;border-radius:var(--lm-app-radius-group,14px);background:rgba(255,255,255,.55);backdrop-filter:var(--lm-app-backdrop,blur(16px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(16px));display:flex;align-items:center;justify-content:center;font-size:28px;border:none;box-shadow:var(--lm-app-shadow,0 2px 8px rgba(0,0,0,.04));position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.ic-lb{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-text,#444);margin-top:5px;text-align:center;font-weight:500;text-shadow:none}
.editing .ic:not(.ghost){animation:wob .25s ease-in-out infinite alternate}
.editing .ic:nth-child(even):not(.ghost){animation-direction:alternate-reverse;animation-delay:.06s}
@keyframes wob{from{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}
#dots{display:flex;justify-content:center;align-items:center;height:22px;gap:7px;flex-shrink:0;z-index:10}
.dt{width:7px;height:7px;border-radius:50%;background:rgba(0,0,0,.15);transition:all .3s}
.dt.on{background:rgba(0,0,0,.5);transform:scale(1.2)}
#dock-wrap{flex-shrink:0;padding:0 var(--lm-app-space-3,12px) var(--lm-app-space-5,20px) var(--lm-app-space-3,12px);z-index:100}
#dock{height:84px;background:rgba(255,255,255,.45);backdrop-filter:var(--lm-app-backdrop,blur(30px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(30px));border-radius:var(--lm-app-radius-dialog,22px);border:none;box-shadow:var(--lm-app-shadow,0 4px 20px rgba(0,0,0,.05));display:flex;align-items:center;justify-content:space-evenly;padding:0 var(--lm-app-space-2,8px)}
#dock .ic{width:76px;height:auto;padding:0}
#dock .ic-lb{display:none}
#dock .ic.ghost{opacity:.15}
.editing #dock .ic:not(.ghost){animation:wob .25s ease-in-out infinite alternate}
.editing #dock .ic:nth-child(even):not(.ghost){animation-direction:alternate-reverse;animation-delay:.06s}
#desktop-edit-toolbar{position:fixed;top:max(4px,var(--lm-safe-top,0px));left:50%;transform:translateX(-50%) translateY(-8px);z-index:190;display:flex;align-items:center;gap:2px;padding:3px;border-radius:var(--lm-app-radius-control,12px);background:rgba(36,36,38,.88);backdrop-filter:var(--lm-app-backdrop,blur(20px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(20px));box-shadow:var(--lm-app-shadow,0 6px 20px rgba(0,0,0,.2));opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}
#desktop-edit-toolbar.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
#desktop-edit-toolbar button{height:30px;min-width:66px;padding:0 9px;border:0;border-radius:var(--lm-app-radius-control,9px);background:transparent;color:var(--lm-app-inverse-text,#fff);font-size:var(--lm-app-font-small,12px);white-space:nowrap;touch-action:manipulation}
#desktop-edit-toolbar button:last-child{background:rgba(255,255,255,.16);font-weight:600}
#desktop-edit-toolbar button:disabled{opacity:.3}

#app{position:fixed;inset:0;background:var(--t-page);z-index:200;transform:translateY(100%);transition:transform .35s cubic-bezier(.25,.46,.45,.94);display:flex;flex-direction:column;overflow:hidden}
#app.open{transform:translateY(0)}
#app-bar{height:44px;background:var(--t-card);display:flex;align-items:center;padding:0 var(--lm-app-space-2,8px);border-bottom:1px solid var(--t-border);flex-shrink:0;position:relative;z-index:10}
#app-back{font-size:28px;width:52px;height:var(--lm-topbar,44px);padding:0;border:none;background:none;z-index:11;cursor:pointer;line-height:1;font-weight:300;position:relative;display:flex;align-items:center;justify-content:center;touch-action:manipulation}
#app-title{position:absolute;left:0;right:0;text-align:center;font-size:var(--lm-app-font-section,16px);font-weight:600;color:#1a1a1a;pointer-events:none}
#app-body{flex:1;width:100%;min-width:0;overflow-y:auto;overflow-x:hidden;position:relative;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}

.app-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-section,16px)}

#set-main{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:var(--t-page);transition:transform .3s cubic-bezier(.25,.46,.45,.94),opacity .3s}
#set-main.set-main-fit{overflow-y:hidden;-webkit-overflow-scrolling:auto;overscroll-behavior:none;touch-action:none!important}
#set-main.pushed{transform:translateX(-30%);opacity:.5;pointer-events:none}

.set-banner{width:100%;height:200px;background:linear-gradient(135deg,#e8e8ea,#d8d8dc,#e0e0e3);position:relative;overflow:hidden;cursor:pointer;flex-shrink:0}
.set-banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}

.set-content{background:var(--t-page);border-radius:16px 16px 0 0;margin-top:-16px;position:relative;z-index:1;padding-top:1px}
.set-content-plain{border-radius:0;margin-top:0;padding-top:1px}

.set-card{background:var(--t-card);margin:12px;border-radius:var(--lm-app-radius-group,14px);padding:var(--lm-app-space-4,18px) var(--lm-app-space-5,20px);display:flex;align-items:center;gap:var(--lm-app-space-3,14px);box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.03));border:1px solid var(--t-border)}
.set-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#e0e0e3,#d0d0d4);flex-shrink:0;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--lm-app-faint,#bbb);border:none}
.set-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.set-info{flex:1;min-width:0}
.set-nick{font-size:var(--lm-app-font-title,18px);font-weight:600;color:#1a1a1a;outline:none;border:none;display:block;width:100%;padding:0;background:none;border-bottom:1.5px dashed transparent;line-height:1.4;min-height:25px}
.set-nick:focus{border-bottom-color:#bbb}
.set-sign{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-faint,#999);outline:none;border:none;display:block;width:100%;padding:0;margin-top:3px;background:none;border-bottom:1.5px dashed transparent;line-height:1.4;min-height:18px}
.set-sign:focus{border-bottom-color:#bbb}

.set-group{margin:12px;background:var(--t-card);border-radius:var(--lm-app-radius-group,14px);overflow:hidden;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.03));border:1px solid var(--t-border)}
.set-item{display:flex;align-items:center;padding:15px var(--lm-app-space-4,16px);cursor:pointer;position:relative}
.set-item:active{background:var(--t-hover)}
.set-item+.set-item{border-top:.5px solid var(--t-border)}
.set-item-icon{width:34px;height:34px;border-radius:var(--lm-app-radius-small,8px);display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-title,18px);margin-right:13px;flex-shrink:0}
.set-item-text{flex:1;font-size:var(--lm-app-font-body,15px);color:#1a1a1a}
.set-item-arrow{color:#c7c7cc;font-size:var(--lm-app-font-title,18px);margin-left:8px}

.set-sub{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:var(--t-page);transform:translateX(100%);transition:transform .3s cubic-bezier(.25,.46,.45,.94);z-index:5}
.set-sub.show{transform:translateX(0)}

.noti-settings{padding:var(--lm-app-space-4,16px) var(--lm-app-space-3,12px) 28px}.noti-set-group{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,14px);overflow:hidden;margin-bottom:12px;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.03))}.noti-set-row{min-height:54px;padding:0 var(--lm-app-space-4,16px);display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,14px);font-size:var(--lm-app-font-body,15px);color:#1a1a1a;transition:opacity .18s}.noti-set-row+.noti-set-row{border-top:.5px solid var(--t-border)}.noti-set-row.primary{font-weight:600}.noti-set-row.disabled{opacity:.42}.noti-set-switch{position:relative;display:block;width:42px;height:24px;flex:0 0 42px}.noti-set-switch input{position:absolute;opacity:0;width:0;height:0}.noti-set-switch i{position:absolute;inset:0;border-radius:var(--lm-app-radius-control,12px);background:#d1d1d3;transition:background .2s}.noti-set-switch i:after{content:'';position:absolute;width:20px;height:20px;left:2px;top:2px;border-radius:50%;background:var(--lm-app-surface,#fff);box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.18));transition:transform .2s}.noti-set-switch input:checked+i{background:var(--noti-toggle-active,#777981)}.noti-set-switch input:checked+i:after{transform:translateX(18px)}
.noti-settings[data-lm-app="notification-settings"]{--noti-mode-surface:var(--t-input,#f3f3f5);--noti-mode-selected:#e3e6e5;--noti-mode-border:var(--t-border,#dedee2);--noti-mode-text:var(--t-text,#303136);--noti-mode-muted:var(--t-muted,#777a80);--noti-action-surface:var(--t-card,#fff);--noti-action-pressed:#eceeef;--noti-toggle-active:#777981}.noti-keepalive-block{padding:13px var(--lm-app-space-3,12px) var(--lm-app-space-3,12px);border-top:.5px solid var(--noti-mode-border)}.noti-keepalive-title{margin:0 2px 9px;color:var(--noti-mode-text);font-size:var(--lm-app-font-control,14px);font-weight:600}.noti-keepalive-modes{display:grid;grid-template-columns:.75fr 1.3fr 1fr;gap:5px;padding:var(--lm-app-space-1,4px);border:1px solid var(--noti-mode-border);border-radius:var(--lm-app-radius-control,10px);background:var(--noti-mode-surface)}.noti-keepalive-choice{position:relative;min-width:0}.noti-keepalive-choice input{position:absolute;width:1px;height:1px;opacity:0}.noti-keepalive-choice span{display:flex;min-height:34px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--lm-app-radius-small,7px);color:var(--noti-mode-muted);font-size:var(--lm-app-font-small,12px);line-height:1.2;text-align:center;cursor:pointer}.noti-keepalive-choice input:checked+span{border-color:var(--noti-mode-border);background:var(--noti-mode-selected);color:var(--noti-mode-text);font-weight:600}.noti-keepalive-choice input:focus-visible+span{outline:2px solid #8d9290;outline-offset:1px}.noti-keepalive-help{min-height:34px;margin:8px 2px 0;color:var(--noti-mode-muted);font-size:var(--lm-app-font-small,11px);line-height:1.5}.noti-settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--lm-app-space-2,8px)}.noti-settings-button{min-height:40px;border:1px solid var(--noti-mode-border);border-radius:var(--lm-app-radius-small,8px);background:var(--noti-action-surface);color:var(--noti-mode-text);font:inherit;font-size:var(--lm-app-font-control,13px)}.noti-settings-button:active{background:var(--noti-action-pressed)}.noti-settings-button:disabled{opacity:.48}@media(max-width:360px){.noti-keepalive-modes{grid-template-columns:1fr}.noti-keepalive-choice span{min-height:32px}.noti-settings-actions{grid-template-columns:1fr}}
.sub-content{padding:60px var(--lm-app-space-5,20px) var(--lm-app-space-5,20px);text-align:center;color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-body,15px)}
.sub-content .sub-emoji{font-size:48px;display:block;margin-bottom:16px}

.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;pointer-events:none}
.modal-mask.show{opacity:1;pointer-events:auto}
.modal-box{background:var(--t-card);border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-6,24px) var(--lm-app-space-5,20px) var(--lm-app-space-4,16px);width:280px;text-align:center;transform:scale(.85);transition:transform .25s;box-shadow:var(--lm-app-shadow,0 10px 40px rgba(0,0,0,.12))}
.modal-mask.show .modal-box{transform:scale(1)}
.modal-title{font-size:var(--lm-app-font-title,17px);font-weight:600;color:#1a1a1a;margin-bottom:20px}
.modal-btns{display:flex;gap:var(--lm-app-space-3,10px)}
.modal-btn{flex:1;padding:11px 0;border-radius:var(--lm-app-radius-control,10px);border:none;font-size:var(--lm-app-font-body,15px);font-weight:500;cursor:pointer}
.modal-btn.cancel{background:var(--t-bar);color:var(--lm-app-muted,#666)}
.modal-btn.cancel:active{background:#e5e6e8}
.modal-btn.confirm{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-weight:600}
.modal-btn.confirm:active{background:var(--lm-app-selected,#555);color:var(--lm-app-selected-text,#fff)}

#ctx{position:fixed;z-index:500;display:none;background:rgba(36,36,38,.92);backdrop-filter:var(--lm-app-backdrop,blur(40px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(40px));border-radius:var(--lm-app-radius-group,13px);padding:var(--lm-app-space-1,4px);min-width:170px;box-shadow:var(--lm-app-shadow,0 12px 40px rgba(0,0,0,.45))}
.ctx-i{padding:11px var(--lm-app-space-4,16px);color:var(--lm-app-inverse-text,#fff);font-size:var(--lm-app-font-body,15px);border-radius:var(--lm-app-radius-control,10px);cursor:pointer}
.ctx-i:active{background:rgba(255,255,255,.12)}

.hid{position:absolute;width:0;height:0;opacity:0;pointer-events:none}

.api-settings-sub{overflow:hidden}
.api-wrap{position:relative;height:100%;min-height:0;overflow:hidden}
.api-home{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}
.api-top{display:flex;align-items:center;justify-content:flex-end;padding:var(--lm-app-space-3,10px) var(--lm-app-space-4,16px);background:var(--t-bar);border-bottom:.5px solid var(--t-border)}
.api-top .api-add-btn{font-size:26px;color:#1a1a1a;cursor:pointer;font-weight:300;line-height:1;padding:2px var(--lm-app-space-2,6px);border-radius:var(--lm-app-radius-small,8px)}
.api-top .api-add-btn:active{background:#e5e5ea}
.api-list-area{padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px)}
.api-empty{text-align:center;padding-top:80px;color:#c7c7cc}
.api-empty .big{font-size:42px;font-weight:200;opacity:.35;margin-bottom:14px;letter-spacing:2px}
.api-empty .sub{font-size:var(--lm-app-font-body,15px)}
.api-empty .hint{font-size:var(--lm-app-font-control,13px);margin-top:8px;opacity:.7}
.api-card{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);margin-bottom:10px;cursor:pointer;transition:background .15s;border:1px solid var(--t-border)}
.api-card:active{background:#e8e8ed}
.api-card .aname{font-size:var(--lm-app-font-section,16px);font-weight:600;margin-bottom:3px}
.api-card .aurl{font-size:var(--lm-app-font-control,13px);color:#8e8e93;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.api-card .ainfo{font-size:var(--lm-app-font-small,12px);color:#8e8e93;margin-top:5px}

.api-detail{position:absolute;inset:0;background:var(--t-page);transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;z-index:6;padding-bottom:80px;box-sizing:border-box}
.api-detail.show{transform:translateX(0)}
.api-dtop{display:flex;align-items:center;padding:var(--lm-app-space-3,10px) var(--lm-app-space-4,16px);background:var(--t-bar);border-bottom:.5px solid var(--t-border);position:sticky;top:0;z-index:10}
.api-dtop .api-dback{font-size:28px;color:#1a1a1a;cursor:pointer;padding:var(--lm-app-space-1,4px) var(--lm-app-space-2,8px);border-radius:var(--lm-app-radius-small,8px);font-weight:300;line-height:1}
.api-dtop .api-dback:active{background:#e5e5ea}
.api-dtop .api-dtitle{flex:1;text-align:center;font-size:var(--lm-app-font-section,16px);font-weight:600}
.api-dtop .api-dph{width:60px}
.d-card{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);margin:12px 16px;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px)}
.d-card .lb{font-size:var(--lm-app-font-control,13px);color:#8e8e93;margin-bottom:6px}
.d-card .val{font-size:var(--lm-app-font-body,15px);word-break:break-all;font-family:ui-monospace,"SF Mono","Menlo",monospace;line-height:1.5}
.key-row{display:flex;align-items:center;justify-content:space-between}
.toggle-k{color:#1a1a1a;font-size:var(--lm-app-font-control,13px);cursor:pointer;white-space:nowrap;margin-left:14px;padding:var(--lm-app-space-1,4px) var(--lm-app-space-3,10px);border-radius:var(--lm-app-radius-small,6px)}
.toggle-k:active{background:#e5e5ea}
.ml-title{font-size:var(--lm-app-font-control,13px);color:#8e8e93;padding:var(--lm-app-space-3,10px) var(--lm-app-space-5,20px) var(--lm-app-space-2,6px)}
.ml-card{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);margin:0 16px;overflow:hidden}
.ml-row{padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px);border-bottom:.5px solid var(--t-border);font-size:var(--lm-app-font-body,15px)}
.ml-row:last-child{border-bottom:none}
.ml-empty{color:#c7c7cc}
.act-zone{margin:20px 16px;text-align:center}
.act-link{display:inline-block;font-size:var(--lm-app-font-body,15px);cursor:pointer;padding:var(--lm-app-space-3,10px) 28px;border-radius:var(--lm-app-radius-control,10px)}
.act-link:active{background:#e5e5ea}
.act-edit{color:#1a1a1a}
.act-del{color:var(--lm-app-danger,#ff3b30)}

.api-modal-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--t-page);z-index:10000;transform:translateX(100%);transition:transform .3s;overflow:hidden}
.api-modal-bg.show{transform:translateX(0)}
.api-modal-box{width:100%;height:100%;display:flex;flex-direction:column;background:var(--t-page)}
.api-modal-header{display:flex;align-items:center;height:50px;padding:0 var(--lm-app-space-3,12px);background:var(--t-bar);border-bottom:0.5px solid var(--t-border)}
.api-modal-back{font-size:28px;color:var(--lm-app-text,#333);cursor:pointer;padding:0 var(--lm-app-space-2,8px)}
.api-modal-title{flex:1;text-align:center;font-size:var(--lm-app-font-title,17px);font-weight:600}
.api-modal-content{flex:1;overflow-y:auto;padding:var(--lm-app-space-4,16px);-webkit-overflow-scrolling:touch;touch-action:pan-y}
.afg{margin-bottom:14px}
.afg label{display:block;font-size:var(--lm-app-font-control,13px);color:#8e8e93;margin-bottom:5px;padding-left:2px}
.afg input{width:100%;padding:11px var(--lm-app-space-3,12px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-body,15px);outline:none;background:var(--t-card);color:var(--lm-app-text,#1c1c1e);-webkit-user-select:text;user-select:text}
.afg input:focus{border-color:var(--lm-app-border,#bbb)}
.afg input::placeholder{color:#c7c7cc}
.af-protocol-select{width:100%;min-height:44px;padding:var(--lm-app-space-3,10px) 36px var(--lm-app-space-3,10px) var(--lm-app-space-3,12px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);background:var(--t-card);color:var(--t-text,#333);font:inherit;font-size:var(--lm-app-font-body,15px);outline:none}
.af-protocol-select:focus{border-color:var(--t-accent)}
.amodel-header{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px}
.amodel-header span{font-size:var(--lm-app-font-body,15px);font-weight:600}
.atxt-btn{padding:7px var(--lm-app-space-4,16px);background:transparent;color:var(--lm-app-text,#1c1c1e);border:none;border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-control,13px);font-weight:500;cursor:pointer}
.atxt-btn:active{background:#e5e5ea}
.atxt-btn:disabled{opacity:.4}
.afetch-box{max-height:220px;overflow-y:auto;margin-bottom:12px;border:1px solid #e5e5ea;border-radius:var(--lm-app-radius-control,10px);display:none;-webkit-overflow-scrolling:touch}
.afetch-box.show{display:block}
.afetch-item{display:flex;align-items:center;justify-content:space-between;padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,12px);border-bottom:.5px solid var(--t-border);font-size:var(--lm-app-font-control,14px)}
.afetch-item:last-child{border-bottom:none}
.afetch-item .mn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px;color:var(--lm-app-text,#1c1c1e)}
.aadd-m{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--lm-app-text,#1c1c1e);font-size:var(--lm-app-font-title,22px);cursor:pointer;border-radius:50%;flex-shrink:0;font-weight:300}
.aadd-m:active{background:#e5e5ea}
.aadd-m.done{font-size:var(--lm-app-font-section,16px);color:#8e8e93}
.afetch-hint{text-align:center;padding:var(--lm-app-space-6,24px) var(--lm-app-space-4,16px);color:#8e8e93;font-size:var(--lm-app-font-control,13px);line-height:1.6}
.aadded-title{font-size:var(--lm-app-font-control,13px);color:#8e8e93;margin-bottom:6px;padding-left:2px;display:none}
.aadded-list{margin-bottom:10px}
.aadded-item{display:flex;align-items:center;justify-content:space-between;padding:9px var(--lm-app-space-3,12px);background:var(--t-card);border-radius:var(--lm-app-radius-small,8px);margin-bottom:4px;font-size:var(--lm-app-font-control,14px)}
.arm-m{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--lm-app-text,#1c1c1e);font-size:var(--lm-app-font-title,18px);cursor:pointer;border-radius:50%;flex-shrink:0}
.arm-m:active{background:#d1d1d6}
.amanual-row{display:flex;gap:var(--lm-app-space-2,8px);margin-bottom:6px}
.amanual-row input{flex:1;padding:9px var(--lm-app-space-3,12px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-control,14px);outline:none;color:var(--lm-app-text,#1c1c1e);-webkit-user-select:text;user-select:text}
.amanual-row input:focus{border-color:var(--lm-app-border,#bbb)}
.amanual-row input::placeholder{color:#c7c7cc}
.amanual-add{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:var(--lm-app-radius-small,8px);color:var(--lm-app-text,#1c1c1e);font-size:var(--lm-app-font-title,22px);cursor:pointer;flex-shrink:0;font-weight:300}
.amanual-add:active{background:#e5e5ea}
.amodal-btns{display:flex;gap:var(--lm-app-space-3,10px);margin-top:18px;padding:0}
.abtn{flex:1;text-align:center;padding:var(--lm-app-space-3,12px) 0;border-radius:var(--lm-app-radius-control,10px);border:none;font-size:var(--lm-app-font-body,15px);font-weight:500;cursor:pointer;transition:opacity .2s}
.abtn-cancel{background:var(--lm-app-input,#f0f0f0);color:var(--lm-app-muted,#888)}
.abtn-cancel:active{opacity:0.7}
.abtn-save{background:#e1e1e6;color:var(--lm-app-text,#333);font-weight:600}
.abtn-save:active{background:#d5d5da}

/* ===== 角色管理 ===== */
.role-pg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:400;background:var(--t-page);display:flex;flex-direction:column;visibility:hidden;transform:translateX(100%);transition:transform .28s ease,visibility 0s .28s}
.role-pg.show{visibility:visible;transform:translateX(0);transition:transform .28s ease,visibility 0s}

.role-back:active{opacity:.5}
.role-hplus:active{opacity:.5}

.role-search{margin:12px 16px 12px;display:flex;align-items:center;gap:var(--lm-app-space-2,8px);background:var(--t-card);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px)}
.role-search-icon{color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-section,16px);flex-shrink:0}
.role-search input{border:none;outline:none;font-size:var(--lm-app-font-body,15px);flex:1;background:transparent}
.role-list{flex:1;overflow-y:auto;padding:0 var(--lm-app-space-4,16px)}
.role-card{display:flex;align-items:center;padding:var(--lm-app-space-4,16px);background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);margin-bottom:10px;cursor:pointer;gap:var(--lm-app-space-3,14px)}
.role-card:active{background:var(--t-hover)}
.role-av{width:56px;height:56px;border-radius:50%;background:var(--lm-app-border,#ddd);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-faint,#999)}
.role-av img{width:100%;height:100%;object-fit:cover;display:block}
.role-card-info{flex:1;min-width:0}
.role-card-name{font-size:var(--lm-app-font-title,17px);font-weight:500}
.role-card-desc{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-faint,#999);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-card-dots{font-size:var(--lm-app-font-title,22px);color:var(--lm-app-faint,#999);padding:var(--lm-app-space-1,4px) 0 var(--lm-app-space-1,4px) var(--lm-app-space-2,8px);cursor:pointer;flex-shrink:0}
.role-card-dots:active{opacity:.5}
.role-empty{text-align:center;padding:60px var(--lm-app-space-5,20px);color:#ccc;font-size:var(--lm-app-font-control,14px)}
/* 角色详情页 */
.role-detail-pg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:410;background:var(--t-page);display:flex;flex-direction:column;visibility:hidden;transform:translateX(100%);transition:transform .28s ease,visibility 0s .28s}
.role-detail-pg.show{visibility:visible;transform:translateX(0);transition:transform .28s ease,visibility 0s}

.rd-back:active{opacity:.5}
.rd-body{flex:1;overflow-y:auto}
.rd-avatar-section{display:flex;flex-direction:column;align-items:center;padding:30px var(--lm-app-space-5,20px) var(--lm-app-space-5,20px)}
.rd-avatar{width:100px;height:100px;border-radius:50%;background:var(--lm-app-border,#ddd);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:40px;color:var(--lm-app-faint,#999)}
.rd-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.rd-avatar:active{opacity:.8}
.rd-name{font-size:var(--lm-app-font-title,20px);font-weight:600;margin-top:14px;text-align:center}
.rd-menu{padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px)}
.rd-menu-card{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);overflow:hidden}
.rd-menu-item{display:flex;align-items:center;padding:var(--lm-app-space-4,16px);cursor:pointer;position:relative;gap:var(--lm-app-space-3,14px)}
.rd-menu-item:active{background:var(--t-hover)}
.rd-menu-item::after{content:'';position:absolute;bottom:0;left:60px;right:16px;height:.5px;background:var(--t-border)}
.rd-menu-item:last-child::after{display:none}
.rd-mi-icon{width:32px;height:32px;border-radius:var(--lm-app-radius-small,8px);background:var(--t-hover);display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-section,16px);flex-shrink:0}
.rd-mi-text{flex:1;min-width:0}
.rd-mi-title{font-size:var(--lm-app-font-section,16px)}
.rd-mi-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:3px}
.rd-mi-arrow{color:#ccc;font-size:var(--lm-app-font-title,20px);flex-shrink:0}
/* 创建角色弹窗 */



/* ===== 角色创建页面 ===== */
.role-create-pg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:420;background:var(--t-page);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s ease;pointer-events:none;height:100vh;max-height:100vh}
.role-create-pg.show{transform:translateX(0);pointer-events:auto}


.role-create-body{flex:1;min-height:0;overflow-y:auto;padding:16px 16px calc(96px + var(--lm-bar-safe-bottom,env(safe-area-inset-bottom,0px)));-webkit-overflow-scrolling:touch;touch-action:pan-y}
.role-create-btns{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;gap:var(--lm-app-space-3,12px);margin:0;padding:12px 16px calc(12px + var(--lm-bar-safe-bottom,env(safe-area-inset-bottom,0px)));background:var(--t-page);box-sizing:border-box}
.rcb-cancel,.rcb-save{flex:1;min-height:46px;text-align:center;padding:var(--lm-app-space-3,12px) 0;border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-body,15px);font-weight:600;cursor:pointer;box-shadow:none}
.rcb-cancel{border:1px solid var(--lm-app-border,#dedee2);background:#ececef;color:#77797d}
.rcb-cancel:active{background:#e2e2e6}
.rcb-save{border:1px solid #66686d;background:#66686d;color:var(--lm-app-inverse-text,#fff)}
.rcb-save:active{background:#5b5d62;border-color:#5b5d62}
.rc-ta-phone-btn{width:100%;min-height:42px;margin-top:12px;border:1px solid var(--lm-app-border,#dedee2);border-radius:var(--lm-app-radius-control,10px);background:#ececef;color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,14px);font-weight:600;font-family:inherit;cursor:pointer;box-shadow:none}
.rc-ta-phone-time-title{margin-top:12px}
.rc-ta-phone-time-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--lm-app-space-2,8px)}
.rc-ta-phone-time-range label{display:flex;min-width:0;flex-direction:column;gap:5px;color:var(--t-muted,#777);font-size:var(--lm-app-font-small,12px)}
.rc-ta-phone-time-range .role-create-input{min-width:0;padding:9px var(--lm-app-space-2,8px);font-size:var(--lm-app-font-control,13px)}
.rc-ta-phone-time-help{margin-top:6px;color:var(--t-muted,#888);font-size:var(--lm-app-font-small,12px);line-height:1.45}
@media(max-width:380px){.rc-ta-phone-time-range{grid-template-columns:1fr}}
.rc-ta-phone-btn.secondary{margin-top:8px;background:#ececef;color:var(--lm-app-text,#333);border:1px solid var(--lm-app-border,#dedee2)}
.rc-ta-phone-mask-btn{margin-top:8px}
.rc-ta-phone-mask-btn:disabled{opacity:.62}
.rc-ta-phone-mask-sync-overlay{position:fixed;inset:0;z-index:10060;display:flex;align-items:center;justify-content:center;padding:var(--lm-app-space-6,24px);background:rgba(0,0,0,.32);box-sizing:border-box}
.rc-ta-phone-mask-sync-panel{width:min(340px,100%);background:var(--t-card,#fff);border:1px solid var(--lm-app-border,#dedee2);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-5,20px);box-sizing:border-box}
.rc-ta-phone-mask-sync-title{font-size:var(--lm-app-font-title,17px);font-weight:650;color:var(--lm-app-text,#333);margin-bottom:9px}
.rc-ta-phone-mask-sync-text{font-size:var(--lm-app-font-control,14px);line-height:1.6;color:var(--lm-app-muted,#777);margin-bottom:18px}
.rc-ta-phone-mask-sync-actions{display:flex;gap:var(--lm-app-space-3,10px)}
.rc-ta-phone-mask-sync-actions button{flex:1;min-height:42px;border:1px solid var(--lm-app-border,#dedee2);border-radius:var(--lm-app-radius-control,9px);background:#ececef;color:var(--lm-app-muted,#555);font:600 14px/1 inherit}
.rc-ta-phone-mask-sync-actions button:last-child{background:#66686d;border-color:#66686d;color:var(--lm-app-inverse-text,#fff)}
.rc-ta-phone-btn:disabled{opacity:.42;cursor:default}
.rc-ta-phone-status{min-height:18px;margin-top:7px;color:var(--lm-app-faint,#999);font-size:var(--lm-app-font-small,12px);line-height:1.45;text-align:center;overflow-wrap:anywhere}
.rc-ta-phone-status[data-kind="error"]{color:#c14343}
.rc-ta-phone-status[data-kind="success"],.rc-ta-phone-status[data-kind="ready"]{color:#357a4b}
.rc-ta-phone-diag-overlay{position:fixed;inset:0;z-index:10040;display:flex;align-items:flex-end;justify-content:center;padding:var(--lm-app-space-4,16px);background:rgba(0,0,0,.36);touch-action:none}
.rc-ta-phone-diag-panel{width:min(560px,100%);height:min(76vh,680px);max-height:calc(100dvh - 32px);min-height:0;display:flex;flex-direction:column;border-radius:var(--lm-app-radius-group,16px);background:var(--t-page,#fff);overflow:hidden;box-shadow:var(--lm-app-shadow,0 16px 46px rgba(0,0,0,.2))}
.rc-parallel-story-sheet-overlay{position:fixed;inset:0;z-index:10040;display:flex;align-items:flex-end;justify-content:center;padding:var(--lm-app-space-3,12px);background:rgba(0,0,0,.36)}
.rc-parallel-story-sheet{width:min(520px,100%);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;background:var(--t-page,#fff);border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-3,14px);box-sizing:border-box;box-shadow:var(--lm-app-shadow,0 16px 46px rgba(0,0,0,.2))}
.rc-parallel-story-sheet-title{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--t-text,#333);padding:2px 2px var(--lm-app-space-3,10px)}
.rc-parallel-story-list{overflow:auto;max-height:min(52dvh,420px)}
.rc-parallel-story-row{display:flex;width:100%;align-items:flex-start;flex-direction:column;gap:var(--lm-app-space-1,4px);border:0;border-top:1px solid var(--t-border,#eee);background:transparent;padding:11px var(--lm-app-space-1,4px);text-align:left;color:var(--t-text,#333)}
.rc-parallel-story-row strong,.rc-parallel-phone-world strong{font-size:var(--lm-app-font-control,14px);font-weight:600}.rc-parallel-story-row span,.rc-parallel-phone-world span{font-size:var(--lm-app-font-small,12px);color:var(--t-muted,#888)}
.rc-parallel-story-cancel{height:40px;border:0;border-radius:var(--lm-app-radius-control,10px);background:var(--t-input,#eee);color:var(--t-text,#333);margin-top:10px;font-size:var(--lm-app-font-control,14px)}
.rc-parallel-phone-worlds{display:flex;flex-direction:column;margin-top:8px;border-top:1px solid var(--t-border,#eee)}
.rc-parallel-phone-world{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--lm-app-space-3,10px);padding:var(--lm-app-space-2,8px) 2px;border-bottom:1px solid var(--t-border,#eee)}
.rc-parallel-phone-world span{text-align:right;max-width:58%;overflow-wrap:anywhere}
.rc-ta-phone-diag-title{flex:0 0 auto;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px) var(--lm-app-space-3,10px);font-size:var(--lm-app-font-body,15px);font-weight:650;border-bottom:1px solid var(--t-border,#eee)}
.rc-ta-phone-diag-tabs{display:flex;flex:0 0 auto;gap:var(--lm-app-space-2,6px);padding:9px var(--lm-app-space-3,14px) 0;overflow-x:auto}.rc-ta-phone-diag-tabs button{flex:0 0 auto;border:1px solid var(--t-border,#ddd);border-radius:var(--lm-app-radius-control,9px);background:var(--t-card,#fff);color:var(--lm-app-muted,#666);padding:7px var(--lm-app-space-3,10px);font-size:var(--lm-app-font-small,12px)}.rc-ta-phone-diag-tabs button.active{background:#29292b;color:var(--lm-app-inverse-text,#fff);border-color:#29292b}
.rc-ta-phone-diag-panel pre,.rc-ta-phone-diag-scroll{flex:1 1 auto;min-height:0;height:0;margin:0;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;user-select:text;-webkit-user-select:text;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--t-text,#333)}
.rc-ta-phone-diag-actions{display:flex;gap:var(--lm-app-space-3,10px);padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--t-border,#eee)}
.rc-ta-phone-diag-actions button{flex:1;min-height:40px;border:0;border-radius:var(--lm-app-radius-control,9px);background:#ececef;color:var(--lm-app-text,#333);font:600 14px/1 inherit}
.rc-ta-phone-diag-actions button:last-child{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}



.role-create-title{font-size:var(--lm-app-font-title,18px);font-weight:600;margin-bottom:18px;text-align:center}
.role-create-field{margin-bottom:14px}
.role-create-label{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#666);margin-bottom:6px}
.role-create-input{width:100%;padding:11px var(--lm-app-space-3,14px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-body,15px);outline:none;-webkit-appearance:none;background:var(--t-card)}
.role-create-input:focus{border-color:var(--t-accent)}
.role-create-textarea{width:100%;padding:11px var(--lm-app-space-3,14px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-body,15px);outline:none;resize:none;height:100px;font-family:inherit;-webkit-appearance:none;background:var(--t-card)}
.role-create-textarea:focus{border-color:var(--t-accent)}
.role-create-btns{display:flex;gap:var(--lm-app-space-3,12px);margin-top:18px}
html.lm-ios.lm-keyboard-open .role-create-pg.show{top:var(--lm-visual-top,0px);bottom:auto;height:var(--lm-visual-height);max-height:var(--lm-visual-height)}
html.lm-ios.lm-keyboard-open .role-create-body{min-height:0;flex:1 1 auto;overflow-y:auto;padding-bottom:calc(96px + var(--lm-bar-safe-bottom,env(safe-area-inset-bottom,0px)));overscroll-behavior:contain}


/* 角色菜单 */
.role-ctx-bg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:430;background:rgba(0,0,0,.3);display:none;align-items:center;justify-content:center}
.role-ctx-bg.show{display:flex}
.role-ctx-sheet{background:var(--t-card);border-radius:var(--lm-app-radius-group,14px);width:70%;max-width:260px;overflow:hidden}
.role-ctx-item{padding:15px;text-align:center;font-size:var(--lm-app-font-section,16px);cursor:pointer;border-bottom:.5px solid var(--t-border)}
.role-ctx-item:active{background:var(--t-hover)}
.role-ctx-item:last-child{border-bottom:none}
.role-ctx-item.danger{color:var(--lm-app-danger,#e64340)}
/* 头像更换弹窗 */
.rd-av-action-bg{position:fixed;bottom:0;left:0;right:0;z-index:440;display:none;flex-direction:column}
.rd-av-action-bg.show{display:flex}
.rd-av-action-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4)}
.rd-av-action-sheet{position:relative;z-index:1;background:var(--t-card);border-radius:14px 14px 0 0}
.rd-av-item{padding:var(--lm-app-space-4,16px);text-align:center;font-size:var(--lm-app-font-title,17px);color:var(--t-accent);cursor:pointer}
.rd-av-item:active{background:var(--t-hover)}
.rd-av-item+.rd-av-item{border-top:.5px solid var(--t-border)}
.rd-av-cancel{padding:var(--lm-app-space-4,16px);text-align:center;font-size:var(--lm-app-font-title,17px);color:var(--lm-app-text,#333);cursor:pointer;border-top:8px solid var(--t-page)}

/* ===== 角色管理页面 ===== */
.role-pg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:410;background:var(--t-page);flex-direction:column;overflow:hidden;display:none;transform:translateX(100%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}
.role-pg.show{display:flex;transform:translateX(0)}




.role-search{display:flex;align-items:center;margin:12px 16px 14px;background:rgba(118,118,128,.12);border-radius:var(--lm-app-radius-control,10px);padding:7px var(--lm-app-space-3,10px);flex-shrink:0}
.role-search-icon{margin-right:6px;font-size:var(--lm-app-font-body,15px);opacity:.4}
.role-search input{border:none;outline:none;background:transparent;font-size:var(--lm-app-font-section,16px);width:100%;font-family:inherit;color:var(--lm-app-text,#1c1c1e)}
.role-search input::placeholder{color:#8e8e93}
.role-list{flex:1;overflow-y:auto;padding:0 var(--lm-app-space-4,16px) 30px;-webkit-overflow-scrolling:touch}
.role-empty{text-align:center;color:#8e8e93;padding:80px 0;font-size:var(--lm-app-font-body,15px)}
.role-card{display:flex;align-items:center;background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,12px);margin:0 4px 10px;cursor:pointer;transition:transform .12s;border:1px solid var(--t-border)}
.role-card:active{transform:scale(.975)}
.role-av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#e0e0e3,#c8c8cc);display:flex;align-items:center;justify-content:center;color:var(--lm-app-inverse-text,#fff);font-size:var(--lm-app-font-title,20px);font-weight:700;flex-shrink:0;overflow:hidden}
.role-av img{width:100%;height:100%;object-fit:cover}
.role-card-info{flex:1;margin-left:12px;min-width:0}
.role-card-name{font-size:var(--lm-app-font-section,16px);font-weight:600;color:var(--lm-app-text,#1c1c1e)}
.role-card-desc{font-size:var(--lm-app-font-control,13px);color:#8e8e93;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-card-dots{font-size:var(--lm-app-font-title,20px);color:#c7c7cc;padding:var(--lm-app-space-2,6px) 2px var(--lm-app-space-2,6px) var(--lm-app-space-3,10px);cursor:pointer}

/* ===== 角色详情页 ===== */
.role-detail-pg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:420;background:var(--t-page);flex-direction:column;overflow:hidden;display:none;transform:translateX(100%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}
.role-detail-pg.show{display:flex;transform:translateX(0)}


.rd-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.rd-avatar-section{display:flex;flex-direction:column;align-items:center;padding:var(--lm-app-space-6,24px) 0 28px}
.rd-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#e0e0e3,#c8c8cc);display:flex;align-items:center;justify-content:center;color:var(--lm-app-inverse-text,#fff);font-size:32px;font-weight:700;overflow:hidden;cursor:pointer;transition:transform .15s}
.rd-avatar:active{transform:scale(.93)}
.rd-avatar img{width:100%;height:100%;object-fit:cover}
.rd-name{font-size:var(--lm-app-font-title,20px);font-weight:600;margin-top:12px;color:var(--lm-app-text,#1c1c1e)}
.rd-menu{padding:0 var(--lm-app-space-5,20px) var(--lm-app-space-5,20px)}
.rd-menu-card{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);overflow:hidden}
.rd-menu-item{display:flex;align-items:center;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);border-bottom:.5px solid var(--t-border);cursor:pointer;transition:background .1s}
.rd-menu-item:last-child{border-bottom:none}
.rd-menu-item:active{background:rgba(0,0,0,.04)}
.rd-mi-icon{font-size:var(--lm-app-font-title,22px);margin-right:14px;flex-shrink:0;width:28px;text-align:center}
.rd-mi-text{flex:1;min-width:0}
.rd-mi-title{font-size:var(--lm-app-font-section,16px);color:var(--lm-app-text,#1c1c1e);font-weight:500}
.rd-mi-desc{font-size:var(--lm-app-font-small,12px);color:#8e8e93;margin-top:2px}
.rd-mi-arrow{color:#c7c7cc;font-size:var(--lm-app-font-title,18px);flex-shrink:0}

/* ===== 角色创建弹窗 ===== */



.role-create-title{font-size:var(--lm-app-font-title,18px);font-weight:700;margin-bottom:20px;text-align:center;color:var(--lm-app-text,#1c1c1e)}
.role-create-field{margin-bottom:14px}
.role-create-label{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#666);margin-bottom:6px;font-weight:500}
.role-create-input{width:100%;padding:11px var(--lm-app-space-3,12px);border:1.5px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-body,15px);outline:none;font-family:inherit;-webkit-appearance:none;box-sizing:border-box;transition:border-color .2s;background:var(--t-card)}
.role-create-input:focus{border-color:var(--lm-app-border,#bbb);border-width:2px}
.role-create-textarea{width:100%;padding:11px var(--lm-app-space-3,12px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-control,14px);outline:none;resize:none;height:165px;font-family:inherit;-webkit-appearance:none;box-sizing:border-box;transition:border-color .2s;background:var(--t-card)}
.role-create-textarea:focus{border-color:var(--lm-app-border,#bbb)}
.role-create-btns{gap:var(--lm-app-space-3,12px)}





/* ===== 角色右键菜单 ===== */
.role-ctx-bg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:460;background:rgba(0,0,0,.3);display:none;align-items:flex-end;justify-content:center;padding:0 0 40px}
.role-ctx-bg.show{display:flex}
.role-ctx-sheet{background:var(--t-card);border-radius:var(--lm-app-radius-group,14px);width:75%;max-width:260px;overflow:hidden}
.role-ctx-item{padding:15px;text-align:center;font-size:var(--lm-app-font-section,16px);cursor:pointer;border-bottom:.5px solid var(--t-border);color:var(--lm-app-text,#1c1c1e);transition:background .1s}
.role-ctx-item:active{background:rgba(0,0,0,.04)}
.role-ctx-item:last-child{border-bottom:none}
.role-ctx-item.danger{color:var(--lm-app-danger,#ff3b30)}

/* ===== 头像操作弹窗 ===== */
.rd-av-action-bg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:470;display:none;flex-direction:column;justify-content:flex-end}
.rd-av-action-bg.show{display:flex}
.rd-av-action-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.35)}
.rd-av-action-sheet{position:relative;z-index:1;background:var(--t-card);border-radius:14px 14px 0 0;padding:var(--lm-app-space-2,8px) 0;padding-bottom:env(safe-area-inset-bottom,20px)}
.rd-av-item{padding:15px;text-align:center;font-size:var(--lm-app-font-section,16px);cursor:pointer;color:var(--lm-app-text,#1c1c1e);transition:background .1s}
.rd-av-item:active{background:rgba(0,0,0,.04)}
.rd-av-cancel{padding:15px;text-align:center;font-size:var(--lm-app-font-section,16px);cursor:pointer;color:var(--lm-app-danger,#ff3b30);border-top:8px solid var(--t-page);transition:background .1s}
.rd-av-cancel:active{background:rgba(0,0,0,.04)}



/* ===== 人设全屏编辑 ===== */
.rc-prompt-wrap{position:relative}
.rc-expand-btn{position:absolute;top:8px;right:8px;font-size:var(--lm-app-font-section,16px);color:var(--lm-app-faint,#999);cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--lm-app-radius-small,6px);z-index:2;border:1.5px solid #ccc}
.rc-expand-btn:active{background:rgba(0,0,0,.06)}
.prompt-full-bg{position:fixed;top:auto;left:0;right:0;bottom:0;height:85vh;z-index:500;background:var(--t-card);display:none;flex-direction:column;border-radius:16px 16px 0 0;box-shadow:var(--lm-app-shadow,0 -2px 20px rgba(0,0,0,0.1))}
.prompt-full-bg.show{display:flex}
.prompt-full-header{display:flex;align-items:center;justify-content:flex-end;padding:var(--lm-app-space-3,10px) var(--lm-app-space-4,16px);flex-shrink:0;border-bottom:.5px solid #e5e5ea}
.prompt-full-save{font-size:var(--lm-app-font-body,15px);color:#8e8e93;font-weight:500;cursor:pointer;padding:var(--lm-app-space-2,6px) var(--lm-app-space-3,12px);border-radius:var(--lm-app-radius-small,8px)}
.prompt-full-save:active{background:rgba(0,0,0,.06)}
.prompt-full-body{flex:1;display:flex;padding:var(--lm-app-space-4,16px)}
.prompt-full-body textarea{flex:1;border:none;outline:none;font-size:var(--lm-app-font-section,16px);font-family:inherit;resize:none;line-height:1.6;color:var(--lm-app-text,#1c1c1e)}

/* ===== 模型设定页面 ===== */
.model-setting-pg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:330;background:var(--t-page);display:none;flex-direction:column}
.ms-header{display:flex;align-items:center;padding:var(--lm-app-space-2,6px) var(--lm-app-space-4,16px) 2px;background:var(--t-card);flex-shrink:0}
.ms-back{font-size:28px;cursor:pointer;padding:var(--lm-app-space-1,4px) var(--lm-app-space-2,8px);color:var(--lm-app-text,#1c1c1e)}
.ms-title{font-size:var(--lm-app-font-title,17px);font-weight:600;margin-left:4px}
.ms-body{flex:1;overflow-y:auto;padding:var(--lm-app-space-4,16px)}
.ms-section{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-4,16px);margin-bottom:12px}
.ms-label{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--lm-app-text,#1c1c1e)}
.ms-desc{font-size:var(--lm-app-font-small,12px);color:#8e8e93;margin-top:4px}
.ms-select{display:flex;align-items:center;justify-content:space-between;padding:var(--lm-app-space-3,12px);background:#f2f2f7;border-radius:var(--lm-app-radius-control,10px);margin-top:10px;cursor:pointer}
.ms-select span:first-child{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#1c1c1e);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.ms-arrow{color:#c7c7cc;font-size:var(--lm-app-font-title,18px);flex-shrink:0;margin-left:8px}
.ms-row{display:flex;align-items:center;justify-content:space-between}
.ms-picker-bg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:400;background:rgba(0,0,0,.4);display:none;align-items:flex-end;justify-content:center}
.ms-picker-bg.show{display:flex}
.ms-picker-box{background:var(--t-card);border-radius:16px 16px 0 0;width:100%;max-height:60vh;display:flex;flex-direction:column}
.ms-picker-title{text-align:center;font-size:var(--lm-app-font-body,15px);font-weight:600;padding:var(--lm-app-space-3,14px);border-bottom:.5px solid #e5e5ea}
.ms-picker-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:var(--lm-app-space-2,8px) 0}
.ms-picker-item{padding:var(--lm-app-space-3,14px) var(--lm-app-space-5,20px);font-size:var(--lm-app-font-body,15px);cursor:pointer}
.ms-picker-item:active{background:var(--t-hover)}
.ms-picker-item.selected{color:var(--lm-app-text,#1c1c1e);font-weight:600}
.ms-picker-cancel{text-align:center;padding:var(--lm-app-space-3,14px);font-size:var(--lm-app-font-body,15px);color:#8e8e93;cursor:pointer}
/* 模型设定页 */
.model-setting-pg{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:var(--t-page);flex-direction:column;z-index:920}
.model-setting-pg.show{display:flex}
.ms-header{display:flex;align-items:center;padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px);background:var(--t-card);border-bottom:1px solid var(--t-border)}
.ms-back{font-size:28px;width:48px;height:48px;flex:0 0 48px;margin-left:-8px;padding:0;cursor:pointer;color:var(--lm-app-text,#333);display:flex;align-items:center;justify-content:center;line-height:1;touch-action:manipulation}
.ms-title{font-size:var(--lm-app-font-title,17px);font-weight:600;color:var(--lm-app-text,#333)}
.ms-body{flex:1;overflow-y:auto;padding:var(--lm-app-space-4,16px)}
.ms-section{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);margin-bottom:12px}
.ms-label{font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333);margin-bottom:4px}
.ms-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:4px}
.ms-select{display:flex;align-items:center;justify-content:space-between;cursor:pointer;margin-top:6px}
.ms-select span{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#666)}
.ms-arrow{color:#ccc;font-size:var(--lm-app-font-control,14px)}
.ms-section.ms-row{display:flex;align-items:center;justify-content:space-between}
.ms-section.ms-row>div:first-child{flex:1}
/* 模型选择器弹窗 */
.ms-picker-bg{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:950;align-items:flex-end;justify-content:center}
.ms-picker-bg.show{display:flex}
.ms-picker-box{width:100%;max-height:60vh;background:var(--t-card);border-radius:16px 16px 0 0;padding:var(--lm-app-space-4,16px);display:flex;flex-direction:column}
.ms-picker-title{font-size:var(--lm-app-font-section,16px);font-weight:600;text-align:center;padding-bottom:var(--lm-app-space-3,12px);border-bottom:1px solid var(--t-border)}
.ms-picker-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:var(--lm-app-space-2,8px) 0}
.ms-picker-item{padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px);font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333);border-radius:var(--lm-app-radius-small,8px);cursor:pointer}
.ms-picker-item:active{background:var(--t-hover)}
.ms-picker-item.selected{color:var(--t-accent);font-weight:600}
.ms-picker-cancel{padding:var(--lm-app-space-3,12px);font-size:var(--lm-app-font-body,15px);color:var(--lm-app-faint,#999);cursor:pointer}
.ms-toggle{display:inline-block;width:48px;height:26px;min-width:48px;background:var(--t-border);border-radius:var(--lm-app-radius-group,13px);position:relative;cursor:pointer;transition:background .3s;flex-shrink:0;vertical-align:middle}
.ms-toggle.on{background:var(--t-accent)}
.ms-toggle-dot{width:22px;height:22px;background:var(--lm-app-surface,#fff);border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .3s;box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.2))}
.ms-toggle.on .ms-toggle-dot{transform:translateX(22px)}
.ms-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:var(--t-border);border-radius:var(--lm-app-radius-small,2px);outline:none;margin:12px 0 4px;touch-action:none}
.ms-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;background:var(--lm-app-surface,#fff);border-radius:50%;cursor:pointer;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.25));border:2px solid var(--t-accent)}
#msCtxVal,#msTempVal{color:var(--t-accent);font-weight:600;cursor:pointer;border-bottom:1px dashed var(--t-accent)}
.ms-input{width:100%;height:46px;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:0 var(--lm-app-space-3,12px);font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333);margin-top:8px;box-sizing:border-box;outline:none;background:var(--t-input)}
.ms-input:focus{border-color:var(--t-accent)}
.ms-picker-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--t-border);margin-top:8px;padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px)}
.ms-picker-new{color:var(--t-accent);font-size:var(--lm-app-font-control,14px);font-weight:600;cursor:pointer;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px)}
.ms-picker-new:active{opacity:.6}

.role-header{display:flex;align-items:center;height:48px;background:var(--t-card);border-bottom:1px solid var(--t-border);padding:0 var(--lm-app-space-4,16px);position:relative}
.role-back{font-size:28px;color:var(--lm-app-text,#333);cursor:pointer;z-index:1;font-weight:300;line-height:1;width:48px;height:48px;flex:0 0 48px;margin-left:-8px;padding:0;display:flex;align-items:center;justify-content:center;touch-action:manipulation}
.role-header-title{position:absolute;left:0;right:0;text-align:center;font-size:var(--lm-app-font-title,17px);font-weight:600;color:var(--lm-app-text,#333);pointer-events:none}
.role-hplus{margin-left:auto;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-text,#333);cursor:pointer;z-index:1}

.rd-header{display:flex;align-items:center;height:48px;background:var(--t-card);border-bottom:1px solid var(--t-border);padding:0 var(--lm-app-space-4,16px);position:relative}
.rd-back{font-size:28px;color:var(--lm-app-text,#333);cursor:pointer;z-index:1;width:48px;height:48px;flex:0 0 48px;margin-left:-8px;display:flex;align-items:center;justify-content:center;line-height:1;touch-action:manipulation}
.rd-header-title{position:absolute;left:0;right:0;text-align:center;font-size:var(--lm-app-font-title,17px);font-weight:600;color:var(--lm-app-text,#333);pointer-events:none}

/* ===== 顶部状态栏 ===== */

/* ===== 记忆管理 ===== */
.memory-page{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--t-page);z-index:9999;transform:translateX(100%);transition:transform .3s;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}
.memory-page.show{transform:translateX(0)}
.mem-header{display:flex;justify-content:space-between;align-items:center;padding:var(--lm-app-space-3,14px) var(--lm-app-space-5,20px);background:var(--t-card);border-bottom:1px solid var(--t-border);position:sticky;top:0;z-index:1;font-size:var(--lm-app-font-title,17px);font-weight:600}
#memBack{font-size:28px;color:var(--lm-app-text,#333);cursor:pointer;padding:0 var(--lm-app-space-2,8px);line-height:1}
#memAdd{font-size:var(--lm-app-font-title,22px);color:var(--t-accent);cursor:pointer;padding:0 var(--lm-app-space-2,8px);font-weight:700}
.mem-info{padding:var(--lm-app-space-3,12px) var(--lm-app-space-5,20px) var(--lm-app-space-1,4px);color:var(--lm-app-faint,#999);font-size:var(--lm-app-font-control,13px)}
.mem-list{padding:var(--lm-app-space-2,8px) var(--lm-app-space-4,16px) 80px}
.mem-item{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);margin-bottom:10px;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.06))}
.mem-text{font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333);line-height:1.6;word-break:break-all}
.mem-meta{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#aaa);margin-top:8px}
.mem-acts{display:flex;gap:var(--lm-app-space-5,20px);margin-top:8px;justify-content:flex-end}
.mem-edit-btn,.mem-del-btn{font-size:var(--lm-app-font-control,13px);cursor:pointer;padding:var(--lm-app-space-1,4px) var(--lm-app-space-2,8px);border-radius:var(--lm-app-radius-small,6px)}
.mem-edit-btn{color:var(--t-accent)}
.mem-del-btn{color:#ff4d4f}
.mem-empty{text-align:center;padding:80px var(--lm-app-space-5,20px);color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-section,16px);line-height:2}
.mem-empty small{font-size:var(--lm-app-font-control,13px);color:#ccc}
.vec-badge{display:inline-block;background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-small,11px);padding:2px var(--lm-app-space-2,6px);border-radius:var(--lm-app-radius-control,10px);margin-left:6px;font-weight:600;vertical-align:middle}

/* 内置工具页面 */
.tools-wrap{padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px) var(--lm-app-space-6,24px);overflow-y:auto;-webkit-overflow-scrolling:touch}
.tool-group{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,18px);margin-bottom:12px;box-shadow:var(--lm-app-shadow,0 4px 16px rgba(0,0,0,.035));overflow:hidden}
.tool-group-head{display:flex;align-items:center;justify-content:space-between;padding:15px var(--lm-app-space-4,16px);cursor:pointer;min-height:54px;gap:var(--lm-app-space-3,12px)}
.tool-group-left{display:flex;align-items:center;gap:var(--lm-app-space-3,12px);min-width:0;flex:1}
.tool-group-title{font-size:var(--lm-app-font-body,15px);font-weight:650;color:var(--lm-app-text,#222);line-height:1.25}
.tool-group-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:3px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.tool-group-chevron{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#8f8f8f;background:#f6f6f7;flex-shrink:0;margin-left:auto;box-sizing:border-box;transition:background .18s,color .18s}
.tool-group-chevron svg{width:18px;height:18px;display:block;transition:transform .18s}.tool-group.open .tool-group-chevron{color:var(--lm-app-muted,#555);background:#efeff0}.tool-group.open .tool-group-chevron svg{transform:rotate(180deg)}
.tool-group-body{display:none;padding:0 22px var(--lm-app-space-4,16px)}
.tool-group.open .tool-group-body{display:block}
.tool-item{background:var(--lm-app-input,#fafafa);border:1px solid #f0f0f1;border-radius:var(--lm-app-radius-group,14px);padding:13px var(--lm-app-space-3,14px);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,10px);min-height:68px;box-sizing:border-box}
.tool-group-body .tool-item:last-child{margin-bottom:0}
.tool-info{display:flex;align-items:center;gap:var(--lm-app-space-3,12px);flex:1;min-width:0}
.tool-icon{width:40px;min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#4b5560}
.tool-icon img{width:33px;height:33px;display:block;object-fit:contain}
.tool-svg{width:32px;height:32px;display:block;color:#4b5560}
.tool-name{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--lm-app-text,#333);line-height:1.25}
.tool-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:3px;line-height:1.35}
.tool-toggle{width:44px;height:26px;border-radius:var(--lm-app-radius-group,13px);background:#e7e7e8;position:relative;transition:background .25s;cursor:pointer;flex-shrink:0;box-shadow:var(--lm-app-shadow,inset 0 1px 2px rgba(0,0,0,.04))}
.tool-toggle.on{background:var(--lm-app-toggle-on,#333)}
.tool-toggle-dot{width:22px;height:22px;border-radius:50%;background:var(--lm-app-surface,#fff);position:absolute;top:2px;left:2px;transition:transform .25s;box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.18))}
.tool-toggle.on .tool-toggle-dot{transform:translateX(18px)}
.tool-toggle.tool-toggle-sm{width:36px;height:20px;border-radius:var(--lm-app-radius-control,10px)}
.tool-toggle.tool-toggle-sm .tool-toggle-dot{width:16px;height:16px;top:2px;left:2px}
.tool-toggle.tool-toggle-sm.on .tool-toggle-dot{transform:translateX(16px)}

/* 工具展开区域 */
.tool-expand{background:transparent;margin:0;padding:0;border:0;border-radius:0}
.tool-expand-row{background:var(--lm-app-input,#fafafa);border:1px solid #f0f0f1;border-radius:var(--lm-app-radius-group,14px);padding:13px var(--lm-app-space-3,14px);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,12px);min-height:68px;box-sizing:border-box}
.tool-expand-row:last-child{margin-bottom:10px}
.tool-expand-split{margin-top:0;padding-top:15px;border-top:1px solid #f0f0f1}
.tool-expand-text{min-width:0;flex:1}.tool-expand-label{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--lm-app-text,#333);line-height:1.25}.tool-expand-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:4px;line-height:1.35}
.tool-expand-input{width:70px;height:34px;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,9px);text-align:center;font-size:var(--lm-app-font-control,14px);background:var(--t-card);outline:none;color:var(--lm-app-text,#333)}
.tool-expand-input:focus{border-color:var(--lm-app-border,#bbb)}
.tool-expand-hint{display:none}

/* 主动消息通知 */
.auto-msg-noti{position:fixed;top:12px;left:12px;right:12px;background:rgba(255,255,255,0.97);backdrop-filter:var(--lm-app-backdrop,blur(20px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(20px));border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-3,12px) var(--lm-app-space-4,16px);box-shadow:var(--lm-app-shadow,0 4px 24px rgba(0,0,0,0.12));z-index:999999;cursor:pointer;transition:opacity .3s,transform .3s;animation:notiIn .3s ease}
@keyframes notiIn{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
.auto-msg-noti .noti-avatar{width:40px;height:40px;border-radius:var(--lm-app-radius-control,10px);flex-shrink:0}
.auto-msg-noti .noti-body{flex:1;min-width:0}
.auto-msg-noti .noti-name{font-size:var(--lm-app-font-control,14px);font-weight:600;color:var(--lm-app-text,#333)}
.auto-msg-noti .noti-text{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#666);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auto-msg-noti .noti-app{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-top:1px}

/* 未读消息红点 */
.chat-unread{background:#f44;color:var(--lm-app-inverse-text,#fff);font-size:var(--lm-app-font-small,12px);min-width:20px;height:20px;line-height:20px;border-radius:var(--lm-app-radius-control,10px);text-align:center;padding:0 var(--lm-app-space-2,6px);margin-top:0;font-weight:700;align-self:center;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}

.ic-svg{width:50%;height:50%;object-fit:contain;}

.ic-svg{width:67%;height:67%;object-fit:contain;filter:none;}
.set-item-icon svg{width:60%;height:60%;vertical-align:middle;}
.set-item-icon{display:flex;align-items:center;justify-content:center;color:transparent!important;}

/* TTS Voice */
.tts-sel{width:100%;padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,12px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-control,14px);background:var(--t-card);color:var(--lm-app-text,#333)}
.tts-range{width:100%;margin-top:4px;accent-color:#4fc3f7}
.tts-test-st{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);margin-left:10px}
.tf-cloud,.tf-mm{display:none}

.tts-hint{margin-top:8px;font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);line-height:2}
.tts-hint-tag{display:inline-block;padding:2px var(--lm-app-space-3,10px);margin:2px 4px;background:var(--t-hover);border-radius:var(--lm-app-radius-control,12px);color:var(--lm-app-muted,#555);font-size:var(--lm-app-font-small,12px)}
.tts-hint-tag:active{background:var(--t-bar)}

.ms-picker-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:2px}

/* ===== 电话APP ===== */
.phone-app{display:flex;flex-direction:column;height:100%;background:var(--t-page)}
.phone-tabs{display:flex;border-bottom:1px solid var(--t-border);background:var(--t-card)}
.phone-tab{flex:1;text-align:center;padding:var(--lm-app-space-3,12px) 0;font-size:var(--lm-app-font-control,14px);color:var(--lm-app-faint,#999);border-bottom:2px solid transparent;cursor:pointer}
.phone-tab.active{color:var(--t-accent);border-bottom-color:var(--t-accent);font-weight:600}
.phone-search{padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);background:var(--t-card)}
.phone-search input{width:100%;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-dialog,20px);font-size:var(--lm-app-font-control,14px);outline:none;box-sizing:border-box;background:var(--t-input)}
.phone-search input:focus{border-color:var(--t-accent)}
.phone-list{flex:1;overflow-y:auto;padding:0}
.phone-item{display:flex;align-items:center;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);background:var(--t-card);border-bottom:1px solid var(--t-border);cursor:pointer;transition:background .15s}
.phone-item:active{background:var(--t-hover)}
.phone-avatar{width:48px;height:48px;border-radius:50%;background:var(--t-border);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-title,22px)}
.phone-avatar img{width:100%;height:100%;object-fit:cover}
.phone-info{margin-left:12px;flex:1;min-width:0}
.phone-name{font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333);font-weight:500}
.phone-num{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:3px}
.phone-call-btn{width:36px;height:36px;border-radius:50%;background:var(--t-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.phone-call-btn svg{width:20px;height:20px}
.phone-empty{text-align:center;color:var(--lm-app-faint,#999);padding:60px var(--lm-app-space-5,20px);font-size:var(--lm-app-font-control,14px)}

/* 通话记录 */
.call-log-item{display:flex;align-items:center;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);background:var(--t-card);border-bottom:1px solid var(--t-border)}
.call-log-info{margin-left:12px;flex:1}
.call-log-name{font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333)}
.call-log-detail{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:3px}
.call-log-time{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);flex-shrink:0}
.call-log-in{color:var(--t-accent)}
.call-log-out{color:#576b95}
.call-log-miss{color:#e74c3c}

/* ===== 全屏通话界面 ===== */
.call-overlay{position:fixed;top:0;left:0;right:0;height:100dvh;z-index:99999;display:none;flex-direction:column;align-items:center;justify-content:space-between;padding:0 0 60px 0;overflow:hidden;}
.call-overlay.active{display:flex}
.call-bg{position:absolute;top:0;left:0;width:100%;height:var(--sh,900px);background-color:#f0f0f2;background-image:radial-gradient(ellipse 80% 50% at 30% 25%,rgba(200,200,205,.12),transparent),radial-gradient(ellipse 70% 60% at 70% 70%,rgba(180,180,185,.08),transparent),linear-gradient(to bottom,rgba(245,245,247,.4) 0%,rgba(235,235,238,.2) 100%)}
.call-blur{position:absolute;top:0;left:0;right:0;bottom:0;backdrop-filter:var(--lm-app-backdrop,blur(30px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(30px))}
.call-bg.custom-bg{background:none;background-color:transparent}
.call-bg.custom-bg~.call-blur{display:none}
.call-bg-img{position:absolute;top:0;left:0;width:100%;height:var(--sh,900px);background-size:cover;background-position:center;background-repeat:no-repeat;z-index:0}
.call-top{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding-top:var(--lm-app-space-2,8px)}
.call-avatar-ring{display:none}
.call-avatar-img{width:100%;height:100%;border-radius:50%;background:#2a2a4a;display:flex;align-items:center;justify-content:center;font-size:48px;overflow:hidden}
.call-avatar-img img{width:100%;height:100%;object-fit:cover}
.call-name{font-size:var(--lm-app-font-section,16px);color:var(--lm-app-text,#333);font-weight:600;margin-bottom:4px;text-align:center;width:100%}
.call-number{font-size:var(--lm-app-font-small,12px);color:rgba(0,0,0,.45);margin-bottom:4px}
.call-status{font-size:var(--lm-app-font-control,13px);text-align:center;width:100%;color:rgba(0,0,0,.5);min-height:20px;line-height:20px}
.call-status.pulsing{animation:callPulse 1.5s ease-in-out infinite}
@keyframes callPulse{0%,100%{opacity:1}50%{opacity:.4}}

/* 通话中区域 */
.call-middle{position:relative;z-index:1;flex:0 0 auto;display:none;flex-direction:column;width:100%;padding:0 var(--lm-app-space-3,12px);overflow:hidden;margin-top:auto}
.call-middle.active{display:flex}
.call-messages{width:100%;height:50vh;overflow-y:auto;margin-bottom:12px;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:rgba(255,255,255,0);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-2,6px) 0}
.call-msg{padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,14px);margin:0;border-bottom:1px solid rgba(0,0,0,.06);font-size:var(--lm-app-font-control,14px);line-height:1.5;word-break:break-word;color:var(--lm-app-text,#333)}
.call-msg .cm-name{font-weight:bold;font-size:var(--lm-app-font-control,13px);margin-bottom:2px}
.call-msg .cm-name.me-name{color:inherit}
.call-msg.ai{}
.call-msg.me{background:rgba(0,0,0,.03)}
.call-msg.vision{text-align:center;font-style:italic;color:var(--lm-app-muted,#888);font-size:var(--lm-app-font-small,12px);padding:var(--lm-app-space-1,4px) var(--lm-app-space-3,14px)}
.call-input-row{display:flex;position:relative;width:100%;gap:var(--lm-app-space-2,6px);align-items:center;padding:0 2px}
.call-input{flex:1;min-width:0;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);border-radius:var(--lm-app-radius-dialog,24px);border:1px solid rgba(0,0,0,.15);background:rgba(255,255,255,.55);color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,14px);outline:none}
.call-input::placeholder{color:rgba(0,0,0,.35)}
.call-mic-btn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.55);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;overflow:hidden}
.call-mic-btn.recording{background:rgba(231,76,60,.6);animation:micPulse 1s ease-in-out infinite}
@keyframes micPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.call-send-btn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.55);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;overflow:hidden}

/* 底部按钮 */
.call-bottom{display:flex;justify-content:center;padding:var(--lm-app-space-3,10px) 0;z-index:1;min-height:70px;flex-shrink:0;align-items:center;gap:60px}
.call-btn{width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s}
.call-btn:active{transform:scale(.9)}
.call-btn-accept{background:var(--t-accent)}
.call-btn-reject{background:#e74c3c}
.call-btn-hangup{background:rgba(255,255,255,.25)}
.call-btn svg{width:16px;height:16px}
.call-timer{font-size:var(--lm-app-font-control,13px);text-align:center;width:100%;color:rgba(0,0,0,.9);font-variant-numeric:tabular-nums;margin-top:8px}


/* 通话深色壁纸自适应 */
.call-mic-btn svg *,.call-send-btn svg *{stroke:#555}
.call-action-btn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.55);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;overflow:hidden;transition:background .2s,transform .15s}
.call-action-btn.active{background:var(--lm-app-selected,#333);transform:scale(1.1)}
.call-action-btn.active svg *{stroke:#fff}
.call-overlay.call-dark .call-action-btn{background:rgba(255,255,255,.25)}
.call-overlay.call-dark .call-action-btn.active{background:rgba(255,255,255,.3)}
.call-overlay.call-dark .call-action-btn.active svg *{stroke:#fff}
.call-action-btn svg *{stroke:#555}
.call-overlay.call-dark .call-action-btn svg *{stroke:#fff}
.call-overlay.call-dark .call-name{color:var(--lm-app-inverse-text,#fff)}
.call-overlay.call-dark .call-number{color:rgba(255,255,255,.6)}
.call-overlay.call-dark .call-status{color:rgba(255,255,255,.8)}
.call-overlay.call-dark .call-timer{color:rgba(255,255,255,.9)}
.call-overlay.call-dark .call-messages{background:rgba(0,0,0,.55)}
.call-overlay.call-dark .call-msg{color:var(--lm-app-input,#eee);border-bottom-color:rgba(255,255,255,.1)}
.call-overlay.call-dark .call-msg.me{background:rgba(255,255,255,.08)}
.call-overlay.call-dark .call-msg.vision{color:rgba(255,255,255,.5)}
.call-overlay.call-dark .call-btn-hangup svg{stroke:#fff}
.call-overlay.call-dark .call-input{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:var(--lm-app-inverse-text,#fff)}
.call-overlay.call-dark .call-input::placeholder{color:rgba(255,255,255,.4)}
.call-overlay.call-dark .call-mic-btn,.call-overlay.call-dark .call-send-btn{background:rgba(255,255,255,.25)}
.call-overlay.call-dark .call-mic-btn svg *,.call-overlay.call-dark .call-send-btn svg *{stroke:#fff}
.call-overlay.call-dark .call-bottom svg *{fill:rgba(255,255,255,.7)}

/* === 通话菜单 === */
.call-menu-btn{position:absolute;top:12px;right:16px;z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(0,0,0,.5);border-radius:50%}
.call-overlay.call-dark .call-menu-btn{color:rgba(255,255,255,.7)}
.call-menu-dropdown{position:absolute;top:52px;right:16px;z-index:11;background:rgba(255,255,255,.95);border-radius:var(--lm-app-radius-control,12px);box-shadow:var(--lm-app-shadow,0 4px 16px rgba(0,0,0,.15));overflow:hidden;display:none;min-width:140px;backdrop-filter:var(--lm-app-backdrop,blur(10px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(10px))}
.call-menu-dropdown.show{display:block}
.call-menu-item{padding:var(--lm-app-space-3,14px) var(--lm-app-space-5,20px);font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#333);cursor:pointer;border-bottom:1px solid rgba(0,0,0,.06)}
.call-menu-item:last-child{border-bottom:none}
.call-menu-item:active{background:rgba(0,0,0,.05)}
.call-overlay.call-dark .call-menu-dropdown{background:rgba(30,30,30,.9)}
.call-overlay.call-dark .call-menu-item{color:rgba(255,255,255,.9);border-bottom-color:rgba(255,255,255,.1)}
.call-overlay.call-dark .call-menu-item:active{background:rgba(255,255,255,.1)}

/* STT */
.stt-section{margin:12px;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.08))}
.stt-hd{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--lm-app-text,#333);display:flex;align-items:center;gap:var(--lm-app-space-2,6px);margin-bottom:12px}
.stt-hd svg{color:var(--t-accent)}
.stt-bd{display:flex;flex-direction:column;gap:var(--lm-app-space-3,10px)}
.stt-row{display:flex;flex-direction:column;align-items:stretch;gap:var(--lm-app-space-1,4px)}
.stt-lb{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#666);white-space:nowrap;min-width:56px}
.stt-sl{width:100%;height:34px;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:0 28px 0 var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,13px);background:var(--t-input);color:var(--lm-app-text,#333);-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23999' stroke-width='2.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.stt-ip{width:100%;height:34px;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:0 var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,13px);background:var(--t-input);color:var(--lm-app-text,#333)}
.stt-ip:focus,.stt-sl:focus{border-color:var(--t-accent);outline:none}
.stt-picker-btn{display:flex;align-items:center;justify-content:space-between;padding:var(--lm-app-space-3,12px) var(--lm-app-space-3,14px);border:1px solid var(--t-border,#ddd);border-radius:var(--lm-app-radius-control,10px);background:var(--t-input,#fafafa);cursor:pointer}
.stt-picker-label{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#333);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* === 语音输入圆点 === */
.call-dots-wrap{display:none;position:absolute;left:0;right:0;top:0;bottom:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;z-index:1}
.call-dots-wrap.active{display:flex}
.call-dots-row{display:flex;align-items:center;justify-content:center;gap:var(--lm-app-space-3,10px);height:18px}
.call-dot{width:10px;height:10px;border-radius:50%;background:rgba(0,0,0,.3)}
.call-dots-wrap.talking .call-dot{animation:cdJump 1.4s ease-in-out infinite}
.call-dots-wrap.talking .call-dot:nth-child(2){animation-delay:.2s}
.call-dots-wrap.talking .call-dot:nth-child(3){animation-delay:.4s}
@keyframes cdJump{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-12px)}}
.call-dots-hint{font-size:var(--lm-app-font-small,11px);color:rgba(0,0,0,.35);white-space:nowrap}
.call-overlay.call-dark .call-dot{background:rgba(255,255,255,0)}
.call-overlay.call-dark .call-dots-hint{color:rgba(255,255,255,.4)}

.call-mic-btn{position:relative;z-index:2}



/* 灰底通话按钮 */
.call-btn.call-btn-gray{
  background:rgba(220,220,220,0.85) !important;
  width:64px;height:64px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.call-btn.call-btn-gray svg{
  stroke:#333 !important;
  stroke-width:1.5 !important;
  width:28px !important;height:28px !important;
}

/* ===== 提示词与世界书页面 ===== */
#app-header-plus{
  margin-left:auto;font-size:24px;color:var(--lm-app-text,#333);cursor:pointer;
  padding:0 var(--lm-app-space-2,6px);line-height:44px;user-select:none;font-weight:300;
}
.pw-add-menu{
  display:none;position:fixed;
  background:var(--t-card);border-radius:var(--lm-app-radius-control,10px);
  box-shadow:var(--lm-app-shadow,0 4px 20px rgba(0,0,0,.15));
  overflow:hidden;z-index:999;min-width:110px;
}
.pw-add-menu.show{display:block}
.pw-add-item{
  padding:13px var(--lm-app-space-4,18px);font-size:var(--lm-app-font-body,15px);color:var(--lm-app-text,#222);
  cursor:pointer;white-space:nowrap;
}
.pw-add-item:active{background:#f2f2f2}

.pw-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden}
.pw-tabs{
  display:flex;gap:var(--lm-app-space-3,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px) 0;
  flex-shrink:0;align-items:center;
}
.pw-tab-plus{
  margin-left:auto;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-muted,#666);cursor:pointer;
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--lm-app-radius-small,8px);font-weight:300;
}
.pw-tab-plus:active{background:rgba(0,0,0,.06)}
.pw-import-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex:0 0 32px;border:0;border-radius:var(--lm-app-radius-small,8px);background:transparent;color:var(--lm-app-muted,#666);padding:0;cursor:pointer}
.pw-import-btn:active{background:rgba(0,0,0,.06)}
.pw-tab{
  flex:1;text-align:center;padding:9px 0;
  border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-control,14px);font-weight:500;
  background:var(--lm-app-input,#f0f0f0);color:var(--lm-app-muted,#888);cursor:pointer;
  transition:background .2s,color .2s;
}
.pw-tab.pw-tab-active{
  background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);
}
.pw-body{
  flex:1;overflow-y:auto;padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px) var(--lm-app-space-5,20px);
}
.pw-empty{
  text-align:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-control,14px);
  padding:60px var(--lm-app-space-5,20px);line-height:1.8;
}
.pw-item{
  display:flex;align-items:center;
  background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);
  padding:13px var(--lm-app-space-3,14px);margin-bottom:10px;
  box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.07));
  cursor:pointer;width:100%;box-sizing:border-box;
  transition:transform .15s,box-shadow .15s;
  position:relative;
}
.pw-item:active{opacity:.75}
.pw-item.pw-dragging{
  opacity:.85;box-shadow:var(--lm-app-shadow,0 6px 20px rgba(0,0,0,.15));
  transform:scale(1.02);z-index:100;
}
.pw-item-main{flex:1;min-width:0}
.pw-item-name{font-size:var(--lm-app-font-body,15px);font-weight:500;color:var(--lm-app-text,#222);margin-bottom:3px}
.pw-item-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pw-item-del{
  appearance:none;-webkit-appearance:none;border:0;outline:0;box-shadow:none;background:transparent;
  font-size:23px;color:#c7c7cc;padding:var(--lm-app-space-2,6px) 2px var(--lm-app-space-2,6px) var(--lm-app-space-3,10px);
  cursor:pointer;flex-shrink:0;line-height:1;
}
.pw-item-del:active{opacity:.5}
.role-import-btn{width:36px;height:36px;margin-left:auto;padding:0;border:0;border-radius:var(--lm-app-radius-small,8px);background:transparent;color:var(--lm-app-muted,#555);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1}
.role-import-btn:active{background:rgba(0,0,0,.06)}

/* 弹窗 */
.pw-modal-bg{
  display:none;position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.4);
  z-index:9999;overflow:hidden;touch-action:pan-y;isolation:isolate;min-height:0;
}
.pw-modal-bg.show{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;box-sizing:border-box;padding:var(--lm-ui-space-4,16px);padding-top:calc(var(--lm-ui-space-4,16px) + var(--lm-safe-top,0px));padding-bottom:calc(var(--lm-ui-space-4,16px) + var(--lm-safe-bottom,0px))}
.pw-modal-spacer{display:none}
.pw-modal-box{
  width:100%;max-width:480px;background:var(--t-card);margin:0 auto;
  flex:0 1 auto;min-height:0;max-height:100%;box-sizing:border-box;border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-5,20px) var(--lm-app-space-4,18px) var(--lm-app-space-6,24px);touch-action:pan-y;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
.pw-modal-title{font-size:var(--lm-app-font-title,17px);font-weight:600;color:var(--lm-app-text,#222);margin-bottom:16px;text-align:center}
.pw-modal-field{margin-bottom:12px}
.pw-modal-field label{display:block;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#666);margin-bottom:5px}
.pw-modal-field input,.pw-modal-field textarea{
  width:100%;box-sizing:border-box;
  border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);
  padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,12px);font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#222);
  background:var(--lm-app-input,#fafafa);outline:none;font-family:inherit;
  resize:none;
}
.pw-modal-field textarea{
  height:120px;min-height:80px;max-height:35vh;overflow-y:scroll !important;-webkit-overflow-scrolling:touch;touch-action:pan-y;
}
.pw-modal-field input:focus,.pw-modal-field textarea:focus{
  border-color:var(--lm-app-border,#bbb);background:var(--t-card);
}
.pw-modal-btns{display:flex;gap:var(--lm-app-space-3,10px);margin-top:16px}
.pw-modal-btn{
  flex:1;padding:var(--lm-app-space-3,12px) 0;border:none;border-radius:var(--lm-app-radius-control,10px);
  font-size:var(--lm-app-font-body,15px);cursor:pointer;font-weight:500;
}
.pw-btn-cancel{background:var(--t-hover);color:var(--lm-app-muted,#666)}
.pw-btn-save{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
.pw-btn-cancel:active{background:#e0e0e0}
.pw-btn-save:active{background:var(--lm-app-selected,#555);color:var(--lm-app-selected-text,#fff)}
/* 提示词升级：toggle开关 */
.pw-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:var(--lm-app-space-1,4px) 0}
.pw-toggle-label{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#333)}
.pw-switch{position:relative;display:inline-block;width:44px;height:24px}
.pw-switch input{opacity:0;width:0;height:0}
.pw-slider{position:absolute;cursor:pointer;inset:0;background:#ccc;border-radius:var(--lm-app-radius-dialog,24px);transition:.25s}
.pw-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:var(--lm-app-surface,#fff);border-radius:50%;transition:.25s}
.pw-switch input:checked+.pw-slider{background:var(--lm-app-toggle-on,#333)}
.pw-switch input:checked+.pw-slider::before{transform:translateX(20px)}

/* 提示词升级：自定义选择器 */
.pw-pick{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,12px);background:var(--t-input);cursor:pointer;transition:border-color .2s}
.pw-pick:active{background:var(--t-hover)}
.pw-pick-text{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#222)}

/* 选项弹窗 */
.pw-opts-bg{display:none;position:fixed;left:0;right:0;top:0;bottom:0;background:transparent;z-index:10000;touch-action:pan-y;box-sizing:border-box;padding:var(--lm-ui-space-4,16px);padding-top:calc(var(--lm-ui-space-4,16px) + var(--lm-safe-top,0px));padding-bottom:calc(var(--lm-ui-space-4,16px) + var(--lm-safe-bottom,0px))}
.pw-opts-bg.show{display:flex;align-items:center;justify-content:center}
.pw-opts-box{background:var(--t-card);border-radius:var(--lm-app-radius-group,14px);width:100%;max-width:320px;max-height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;box-shadow:var(--lm-app-shadow,0 12px 34px rgba(0,0,0,.18))}
.pw-opt-item{padding:15px var(--lm-app-space-5,20px);font-size:var(--lm-app-font-section,16px);color:var(--lm-app-text,#222);border-bottom:1px solid var(--t-border);display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.pw-opt-item:last-child{border-bottom:none}
.pw-opt-item:active{background:var(--t-hover)}
.pw-opt-dot{width:20px;height:20px;border-radius:50%;border:2px solid #ccc;box-sizing:border-box;flex-shrink:0}
.pw-opt-item.pw-opt-active .pw-opt-dot{border-color:var(--lm-app-mark,#333);background:var(--lm-app-mark,#333);box-shadow:var(--lm-app-radio-ring-small,inset 0 0 0 3px #fff)}

@media(max-width:699px){
  .pw-modal-box{max-height:calc(var(--pw-visible-height,100vh) - var(--lm-ui-space-4,16px) - var(--lm-ui-space-4,16px) - var(--lm-safe-top,0px) - var(--lm-safe-bottom,0px))}
}
@media(min-width:700px){
  .pw-modal-box{box-shadow:var(--lm-app-shadow,0 12px 40px rgba(0,0,0,.16))}
}
/* 自定义toast提示 */
.pw-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);background:rgba(0,0,0,.75);color:var(--lm-app-inverse-text,#fff);padding:var(--lm-app-space-3,12px) var(--lm-app-space-6,24px);border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-control,14px);z-index:10001;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}
.pw-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}


/* 提示词升级：列表卡片标签 */
.pw-item-tags{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:4px}
.pw-item-tag{display:inline-flex;align-items:center;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#666);background:rgba(0,0,0,0.06);padding:1px var(--lm-app-space-2,8px);border-radius:var(--lm-app-radius-control,10px);margin:0}
.pw-item-disabled{opacity:0.45}

/* 提示词／世界书条目菜单与启用范围 */
.pw-action-bg{position:fixed;inset:0;z-index:2147483600;background:rgba(0,0,0,.34);display:flex;align-items:flex-end;justify-content:center;padding-bottom:40px;box-sizing:border-box}
.pw-scope-bg{position:fixed;inset:0;z-index:2147483600;background:rgba(0,0,0,.48);display:flex;align-items:flex-end;justify-content:center}
.pw-action-sheet{width:75%;max-width:260px;background:var(--t-card,#fff);border-radius:var(--lm-app-radius-group,14px);overflow:hidden}
.pw-action-sheet button{display:block;width:100%;padding:15px;border:0;border-bottom:.5px solid var(--t-border,#e5e5e5);background:transparent;color:var(--lm-app-text,#1c1c1e);font:inherit;font-size:var(--lm-app-font-section,16px);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pw-action-sheet button:last-child{border-bottom:0}.pw-action-sheet button:active{background:rgba(0,0,0,.04)}.pw-action-sheet button.danger{color:var(--lm-app-danger,#ff3b30)}
.pw-scope-sheet{width:100%;max-width:560px;height:min(88vh,calc(100% - 24px));min-height:0;overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:var(--t-card,#fff);border-radius:22px 22px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-sizing:border-box}
.pw-scope-title{font-size:var(--lm-app-font-title,18px);font-weight:700;text-align:center;margin-bottom:18px;color:#111}
.pw-scope-section+.pw-scope-section{margin-top:18px}.pw-scope-label{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#777);margin:0 2px 7px}.pw-scope-note{font-size:var(--lm-app-font-small,12px);line-height:1.45;color:var(--lm-app-faint,#999);margin:0 2px 8px}
.pw-scope-group{background:rgba(0,0,0,.025);border-radius:var(--lm-app-radius-group,14px);overflow:hidden}.pw-scope-row{appearance:none;-webkit-appearance:none;width:100%;min-height:58px;border:0;border-bottom:.5px solid var(--t-border,#e5e5e5);background:transparent;padding:11px var(--lm-app-space-3,14px);display:flex;align-items:center;gap:var(--lm-app-space-3,14px);text-align:left;color:var(--lm-app-text,#1c1c1e);font:inherit;-webkit-tap-highlight-color:transparent}.pw-scope-row:last-child{border-bottom:0}.pw-scope-row:active{background:transparent}
.pw-scope-row.small{min-height:50px;padding:9px var(--lm-app-space-3,14px)}.pw-scope-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.pw-scope-copy strong{font-size:var(--lm-app-font-body,15px);font-weight:500}.pw-scope-copy small{font-size:var(--lm-app-font-small,12px);line-height:1.4;color:#8e8e93;font-weight:400}
.pw-switch{position:relative;width:46px;height:28px;border-radius:var(--lm-app-radius-group,14px);background:#e5e5ea;flex:0 0 auto;transition:background .18s}.pw-switch span{position:absolute;width:24px;height:24px;left:2px;top:2px;border-radius:50%;background:var(--lm-app-surface,#fff);box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.24));transition:transform .18s}.pw-switch.on{background:var(--lm-app-toggle-on,#2c2c2e)}.pw-switch.on span{transform:translateX(18px)}
.pw-scope-modes{padding:3px 0 5px var(--lm-app-space-4,18px);border-top:.5px solid var(--t-border,#e5e5e5)}.pw-scope-subtitle{font-size:var(--lm-app-font-small,12px);color:#8e8e93;padding:9px var(--lm-app-space-3,14px) 3px}.pw-scope-modes .pw-scope-row{padding-left:var(--lm-app-space-3,14px)}
.pw-scope-empty{padding:var(--lm-app-space-3,14px);color:var(--lm-app-faint,#999);font-size:var(--lm-app-font-control,14px)}.pw-scope-save{width:100%;height:50px;border:0;border-radius:var(--lm-app-radius-control,12px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-section,16px);margin-top:18px}.pw-scope-save:active{opacity:.76}



/* ===== 记忆向量化 bar ===== */
.mem-vec-bar{display:flex;align-items:center;margin:10px 14px 0;background:var(--t-card);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px);box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.06));cursor:pointer;user-select:none;transition:border-radius .2s}
.mem-vec-bar-label{flex:1;font-size:var(--lm-app-font-control,14px);font-weight:500;color:var(--lm-app-muted,#555)}
.mem-vec-toggle{position:relative;width:40px;height:22px;flex-shrink:0}
.mem-vec-toggle input{opacity:0;width:0;height:0;position:absolute}
.mem-vec-slider{position:absolute;inset:0;border-radius:var(--lm-app-radius-control,11px);background:#d0d0d0;transition:background .25s}
.mem-vec-slider::before{content:'';position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:var(--lm-app-surface,#fff);transition:transform .25s;box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.18))}
.mem-vec-toggle input:checked + .mem-vec-slider{background:linear-gradient(135deg,var(--lm-app-text,#444),var(--lm-app-text,#333))}
.mem-vec-toggle input:checked + .mem-vec-slider::before{transform:translateX(18px)}
.mem-vec-expand{margin:0 14px;overflow:hidden;max-height:0;transition:max-height .3s ease,opacity .25s ease;opacity:0}
.mem-vec-expand.open{max-height:320px;opacity:1}
.mem-vec-panel{background:var(--t-card);border-radius:0 0 10px 10px;padding:var(--lm-app-space-3,12px) var(--lm-app-space-3,14px);box-shadow:var(--lm-app-shadow,0 2px 6px rgba(0,0,0,.06));border-top:1px solid var(--t-border)}
.mem-vec-row{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);margin-bottom:10px}
.mem-vec-row:last-child{margin-bottom:0}
.mem-vec-row label{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#888);width:70px;flex-shrink:0}
.mem-vec-inject-inp{flex:1;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:var(--lm-app-space-2,6px) var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,14px);background:var(--t-input);color:var(--lm-app-text,#333);outline:none;text-align:center;-webkit-appearance:none;min-width:0}
.mem-vec-inject-inp:focus{border-color:var(--t-accent)}
.mem-vec-sel{flex:1;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:7px var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,13px);background:var(--t-input);color:var(--lm-app-text,#333);outline:none;appearance:none;-webkit-appearance:none;min-width:0;overflow:hidden;text-overflow:ellipsis}
.mem-vec-sel:focus{border-color:var(--t-accent)}
.mem-vec-custom-sel{flex:1;min-width:0;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);padding:7px var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,13px);background:var(--t-input);color:var(--lm-app-text,#333);cursor:pointer;display:flex;align-items:center;gap:var(--lm-app-space-1,4px);position:relative;user-select:none}
.mem-vec-custom-sel:active{background:var(--t-hover)}
.mem-vec-sel-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mem-vec-sel-arrow{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);flex-shrink:0;transition:transform .2s}
.mem-vec-custom-sel.open .mem-vec-sel-arrow{transform:rotate(180deg)}
.mem-vec-drop{display:none;position:absolute;left:14px;right:14px;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);box-shadow:var(--lm-app-shadow,0 4px 16px rgba(0,0,0,.12));z-index:999;max-height:240px;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.mem-vec-drop.open{display:block}
.mem-vec-drop-item{padding:11px var(--lm-app-space-3,14px);font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#444);border-bottom:1px solid var(--t-border);cursor:pointer;line-height:1.5}
.mem-vec-drop-item:last-child{border-bottom:none}
.mem-vec-drop-item:active{background:var(--t-hover)}
.mem-vec-drop-item.active{color:var(--t-accent);font-weight:600}
.mem-vec-drop-empty{color:var(--lm-app-faint,#bbb);text-align:center}
.mem-vec-btn-row{display:flex;gap:var(--lm-app-space-2,8px);margin-top:4px}
.mem-vec-act-btn{flex:1;padding:var(--lm-app-space-2,8px) 0;border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-control,13px);font-weight:500;border:none;cursor:pointer;transition:background .2s,color .2s}
.mem-vec-act-btn.primary{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
.mem-vec-act-btn.primary:active{background:var(--lm-app-selected,#555)}
.mem-vec-act-btn.secondary{background:var(--t-page);color:var(--lm-app-muted,#555)}
.mem-vec-act-btn.secondary:active{background:var(--t-border)}
@media(prefers-color-scheme:dark){
.mem-vec-bar-label{color:var(--lm-app-faint,#bbb)}
.mem-vec-sel{color:var(--lm-app-border,#ddd)}
.mem-vec-act-btn.secondary{color:var(--lm-app-faint,#aaa)}
.mem-vec-custom-sel{color:var(--lm-app-border,#ddd)}
.mem-vec-drop-item{color:#ccc}
}

/* ===== 记忆管理 tab栏 ===== */
.mem-tabs{display:flex;gap:var(--lm-app-space-3,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px) 0;flex-shrink:0;align-items:center}
.mem-tab{flex:1;text-align:center;padding:9px 0;border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-control,14px);font-weight:500;background:var(--lm-app-input,#f0f0f0);color:var(--lm-app-muted,#888);cursor:pointer;transition:background .2s,color .2s}
.mem-tab.active{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
.mem-tab-action{margin-left:auto;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-muted,#666);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--lm-app-radius-small,8px);font-weight:300}
.mem-tab-action:active{background:rgba(0,0,0,.06)}

/* ===== 历史对话卡片 ===== */
.hist-item{background:var(--t-card);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);margin-bottom:10px;box-shadow:none;overflow:hidden;border:1px solid var(--t-border)}
.hist-head{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);cursor:pointer;user-select:none}
.hist-date{flex:1;font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#555);font-weight:500}
.hist-arrow{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#bbb);transition:transform .2s}
.hist-item.open .hist-arrow{transform:rotate(90deg)}
.hist-preview{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-faint,#999);margin-top:8px;line-height:1.5;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.hist-item.open .hist-preview{display:none}
.hist-detail{display:none}
.hist-item.open .hist-detail{display:block}
.hist-summary{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#444);line-height:1.7;margin-top:10px;padding:var(--lm-app-space-3,12px);background:linear-gradient(135deg,rgba(0,0,0,0.03),rgba(0,0,0,0.01));border-radius:var(--lm-app-radius-small,8px);border-left:3px solid var(--lm-app-border,#ddd);white-space:pre-wrap}
.hist-frozen-title{font-size:var(--lm-app-font-control,13px);color:var(--t-accent);font-weight:600;margin-top:12px;padding-top:var(--lm-app-space-3,10px);border-top:1px solid var(--t-border)}
.hist-frozen{margin-top:8px}
.hist-window-more{display:block;width:100%;height:36px;margin:8px 0;border:0;border-radius:var(--lm-app-radius-control,9px);background:var(--t-hover);color:var(--lm-app-muted,#666);font-size:var(--lm-app-font-control,13px)}
.hist-msg-me{background:#f0f0f2;border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);margin-bottom:6px;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#333);text-align:right}
.hist-msg-ai{background:var(--t-input);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);margin-bottom:6px;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#444)}
.hist-acts{display:flex;justify-content:flex-end;margin-top:10px}
.hist-del-btn{font-size:var(--lm-app-font-control,13px);color:#ff4d4f;cursor:pointer;padding:var(--lm-app-space-1,4px) var(--lm-app-space-2,8px);border-radius:var(--lm-app-radius-small,6px)}

/* 暗色适配 */
@media(prefers-color-scheme:dark){
.mem-tab{color:var(--lm-app-muted,#777);background:var(--lm-app-selected,#333)}
.mem-tab.active{color:var(--lm-app-inverse-text,#fff);background:linear-gradient(135deg,var(--lm-app-text,#333),var(--lm-app-text,#444))}
.hist-date{color:#ccc}
.hist-preview{color:var(--lm-app-muted,#888)}
.hist-summary{color:#ccc;background:linear-gradient(135deg,rgba(200,230,201,0.08),rgba(200,230,201,0.02))}
.hist-msg-me{background:linear-gradient(135deg,#2a2a2e,var(--lm-app-text,#333));color:var(--lm-app-border,#ddd)}
.hist-msg-ai{color:var(--lm-app-faint,#bbb)}
.hist-frozen-title{color:var(--t-accent)}
}

/* ===== 自定义输入弹窗 ===== */
.cst-dlg-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;display:flex;align-items:center;justify-content:center}
.cst-dlg{background:var(--t-card);border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-6,24px) var(--lm-app-space-5,20px) var(--lm-app-space-4,16px);width:80vw;max-width:320px;box-shadow:var(--lm-app-shadow,0 8px 32px rgba(0,0,0,.18))}
.cst-dlg-title{font-size:var(--lm-app-font-section,16px);font-weight:600;color:var(--lm-app-text,#333);margin-bottom:14px;text-align:center}
.cst-dlg input{width:100%;box-sizing:border-box;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px);font-size:var(--lm-app-font-body,15px);background:var(--t-input);color:var(--lm-app-text,#333);outline:none}
.cst-dlg input:focus{border-color:var(--t-accent)}
.cst-dlg-btns{display:flex;gap:var(--lm-app-space-3,10px);margin-top:16px}
.cst-dlg-btn{flex:1;padding:var(--lm-app-space-3,10px) 0;border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-body,15px);cursor:pointer;border:none;text-align:center}
.cst-dlg-cancel{background:var(--t-page);color:var(--lm-app-muted,#888)}
.cst-dlg-ok{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-weight:600}
.cst-dlg-msg{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#555);line-height:1.8;text-align:left;white-space:pre-wrap;max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding:0 var(--lm-app-space-1,4px)}

/* ===== 搜索关键词高亮 ===== */
mark.mem-hl{background:#ffe066;color:var(--lm-app-text,#333);border-radius:var(--lm-app-radius-small,3px);padding:0 1px}
@media(prefers-color-scheme:dark){mark.mem-hl{background:#b8860b;color:var(--lm-app-inverse-text,#fff)}}


/* ===== 大世界 world.js ===== */
.world-page{padding:var(--lm-app-space-4,16px) 0 0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}
.world-no-role{text-align:center;padding:80px var(--lm-app-space-5,20px)}
.world-no-icon{margin-bottom:16px}
.world-no-text{font-size:var(--lm-app-font-body,15px);color:var(--lm-app-muted,#666);margin-bottom:6px}
.world-no-sub{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#bbb);line-height:1.5}
.world-role-tabs{display:flex;gap:var(--lm-app-space-2,8px);padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,14px);overflow-x:auto;-webkit-overflow-scrolling:touch}
.world-role-tabs::-webkit-scrollbar{display:none}
.world-role-tab{display:flex;flex-direction:column;align-items:center;gap:var(--lm-app-space-1,4px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);border-radius:var(--lm-app-radius-control,12px);background:var(--t-card);border:1px solid var(--t-border);min-width:60px;cursor:pointer;transition:.2s}
.world-role-tab.active{border-color:var(--lm-app-border,#333);background:var(--lm-app-page,#f8f8f8)}
.world-role-tab span{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#666);white-space:nowrap;max-width:50px;overflow:hidden;text-overflow:ellipsis}
.world-role-tab.active span{color:#1a1a1a;font-weight:500}
.world-role-av{width:32px;height:32px;border-radius:50%;object-fit:cover}
.world-role-av-empty{background:var(--lm-app-input,#eee);display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-control,14px);color:var(--lm-app-faint,#999)}
.world-section-title{font-size:var(--lm-app-font-control,13px);font-weight:600;color:#1a1a1a;padding:var(--lm-app-space-2,8px) var(--lm-app-space-5,20px) var(--lm-app-space-3,10px)}
.world-hist-count{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);font-weight:400}
.world-modules{padding:0 var(--lm-app-space-3,14px);display:flex;flex-direction:column;gap:var(--lm-app-space-3,10px)}
.world-mod-card{display:flex;align-items:center;gap:var(--lm-app-space-3,14px);background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,14px);padding:var(--lm-app-space-4,16px) var(--lm-app-space-4,18px);cursor:pointer;transition:.15s}
.world-mod-card:active{background:var(--t-hover)}
.world-mod-icon{width:36px;height:36px;flex-shrink:0;color:var(--lm-app-muted,#555)}
.world-mod-icon svg{width:100%;height:100%}
.world-mod-info{flex:1;min-width:0}
.world-mod-name{font-size:var(--lm-app-font-control,14px);font-weight:600;color:#1a1a1a;margin-bottom:2px}
.world-mod-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999)}
.world-mod-arrow{font-size:var(--lm-app-font-title,22px);color:#ccc;flex-shrink:0}
.world-sub-header{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,14px)}
.world-sub-back{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--lm-app-text,#333);cursor:pointer;border-radius:50%;background:var(--t-card);border:1px solid var(--t-border)}
.world-sub-back:active{background:var(--t-hover)}
.world-sub-header span{font-size:var(--lm-app-font-body,15px);font-weight:600;color:#1a1a1a}
.world-empty{text-align:center;padding:40px var(--lm-app-space-5,20px);background:var(--t-card);margin:0 14px 14px;border-radius:var(--lm-app-radius-group,14px);border:1px solid var(--t-border)}
.world-empty-icon{margin-bottom:12px}
.world-empty-text{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#666);margin-bottom:4px}
.world-empty-sub{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#bbb)}
.world-timeline{padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,14px)}
.world-evt{display:flex;align-items:flex-start;position:relative;padding-left:52px;margin-bottom:2px}
.world-evt-time{position:absolute;left:0;top:2px;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);width:42px;text-align:right}
.world-evt-dot{position:absolute;left:49px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--lm-app-selected,#333);z-index:1}
.world-evt-dot::after{content:'';position:absolute;left:3.5px;top:8px;width:1px;height:calc(100% + 12px);background:#e0e0e0}
.world-evt:last-child .world-evt-dot::after{display:none}
.world-evt-body{flex:1;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px);margin-left:14px;margin-bottom:8px}
.world-evt-icon{display:inline-flex;color:var(--lm-app-muted,#888);margin-right:6px;vertical-align:middle}
.world-evt-text{display:inline;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#444)}
.world-evt-detail{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);margin-top:6px;white-space:pre-line;line-height:1.45}
.world-evt-hist .world-evt-dot{background:#ccc}
.world-story-desc{padding:0 var(--lm-app-space-5,20px) var(--lm-app-space-3,14px);font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999)}
.world-story-empty,.world-story-list{padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,14px)}
.world-story-add{display:flex;align-items:center;justify-content:center;gap:var(--lm-app-space-2,6px);padding:var(--lm-app-space-3,14px);background:var(--t-card);border:1px dashed var(--t-border);border-radius:var(--lm-app-radius-control,12px);font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#888);cursor:pointer}
.world-story-add:active{background:var(--t-hover)}
.world-story-hint{text-align:center;font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#bbb);margin-top:8px}
.world-story-item{position:relative;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);margin-bottom:8px;cursor:pointer}
.world-story-item:active{background:var(--t-hover)}
.world-story-more{position:absolute;right:8px;top:8px;width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:var(--lm-app-muted,#777);font-size:24px;line-height:30px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.world-story-more:active{background:rgba(0,0,0,.05)}
.world-story-title{font-size:var(--lm-app-font-control,14px);font-weight:500;color:#1a1a1a;margin-bottom:4px}
.world-story-preview{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);line-height:1.4}
.world-story-tag{display:inline-block;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#555);background:var(--lm-app-input,#f0f0f0);border-radius:var(--lm-app-radius-small,4px);padding:2px var(--lm-app-space-2,6px);margin-top:6px}
.world-coming{text-align:center;padding:60px var(--lm-app-space-5,20px)}
.world-coming-icon{width:56px;height:56px;margin:0 auto 16px;color:#ccc}
.world-coming-icon svg{width:100%;height:100%}
.world-coming-text{font-size:var(--lm-app-font-section,16px);font-weight:500;color:var(--lm-app-muted,#666);margin-bottom:6px}
.world-coming-sub{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-faint,#bbb)}
.world-editor-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;display:flex;align-items:center;justify-content:center;padding:var(--lm-app-space-5,20px)}
.world-editor{background:var(--t-card);border-radius:var(--lm-app-radius-group,16px);width:100%;max-width:360px;padding:var(--lm-app-space-5,20px);box-shadow:var(--lm-app-shadow,0 8px 32px rgba(0,0,0,.15))}
.world-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.world-editor-header span:first-child{font-size:var(--lm-app-font-section,16px);font-weight:600;color:#1a1a1a}
.world-editor-close{font-size:24px;color:var(--lm-app-faint,#999);cursor:pointer;padding:0 var(--lm-app-space-1,4px)}
.world-editor-title{width:100%;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px);font-size:var(--lm-app-font-control,14px);margin-bottom:10px;background:var(--t-input);outline:none;box-sizing:border-box}
.world-editor-title:focus{border-color:var(--lm-app-border,#bbb)}
.world-editor-content{width:100%;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,14px);font-size:var(--lm-app-font-control,13px);min-height:120px;resize:vertical;background:var(--t-input);outline:none;box-sizing:border-box;line-height:1.5;touch-action:pan-y;overflow-y:auto}
.world-editor-content:focus{border-color:var(--lm-app-border,#bbb)}
.world-editor-check{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);padding:var(--lm-app-space-3,10px) 0;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#555);cursor:pointer}
.world-editor-check input{width:16px;height:16px;accent-color:#333}
.world-editor-actions{display:flex;justify-content:flex-end;gap:var(--lm-app-space-3,10px);margin-top:16px}
.world-editor-save{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border:none;border-radius:var(--lm-app-radius-control,10px);padding:9px var(--lm-app-space-5,20px);font-size:var(--lm-app-font-control,14px);cursor:pointer}
.world-editor-save:active{background:var(--lm-app-selected,#555)}
.world-editor-del{background:none;color:var(--lm-app-danger,#e53935);border:1px solid var(--lm-app-danger,#e53935);border-radius:var(--lm-app-radius-control,10px);padding:9px var(--lm-app-space-4,16px);font-size:var(--lm-app-font-control,14px);cursor:pointer}
.world-editor-del:active{background:#fff5f5}

.world-story-tags{display:flex;flex-wrap:wrap;gap:var(--lm-app-space-1,4px);margin-top:8px}
.world-story-tag{display:inline-block;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#555);background:var(--lm-app-input,#f0f0f0);border-radius:var(--lm-app-radius-small,4px);padding:2px var(--lm-app-space-2,6px)}
.wst-on{color:#2e7d32;background:#e8f5e9}
.wst-off{color:var(--lm-app-danger,#e53935);background:#ffebee}
.world-editor-field{margin-bottom:12px}
.world-editor-label{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#666);margin-bottom:8px}
.world-editor-types{display:flex;gap:var(--lm-app-space-3,12px)}
.world-type-opt{display:flex;align-items:center;gap:5px;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#444);cursor:pointer}
.world-type-opt input{accent-color:#333}
/* 角色日常 LifeEvent v1 */
.world-life-page{background:var(--t-page);touch-action:pan-y;overscroll-behavior:contain;padding-bottom:var(--lm-app-space-6,24px)}
.life-current-card{display:flex;align-items:center;gap:var(--lm-app-space-3,14px);margin:0 24px 18px;padding:var(--lm-app-space-4,18px) var(--lm-app-space-5,20px);background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,18px);box-shadow:var(--lm-app-shadow,0 2px 10px rgba(0,0,0,.025))}
.life-current-av{width:54px;height:54px;border-radius:var(--lm-app-radius-group,18px);object-fit:cover;flex-shrink:0;background:var(--lm-app-input,#eee)}
.life-current-empty{display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#999);font-size:var(--lm-app-font-title,20px)}
.life-current-info{flex:1;min-width:0}.life-current-name{font-size:var(--lm-app-font-title,18px);font-weight:650;color:var(--lm-app-text,#222);margin-bottom:7px}.life-current-line{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-muted,#777);line-height:1.55;word-break:break-word}
.life-month-bar{height:54px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--t-border);border-bottom:1px solid var(--t-border);background:var(--t-card);font-size:var(--lm-app-font-title,21px);color:var(--lm-app-text,#333);letter-spacing:.04em;margin-bottom:22px}
.life-day-row{display:flex;align-items:center;gap:var(--lm-app-space-3,14px);margin:0 36px 18px}.life-day-dot{width:50px;height:50px;border-radius:50%;background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-title,20px)}.life-day-text{font-size:var(--lm-app-font-body,15px);color:var(--lm-app-faint,#999);letter-spacing:.08em}
.life-evt-list{margin:0 24px 12px}.life-evt-card{display:grid;grid-template-columns:58px 1fr;gap:var(--lm-app-space-3,10px);margin-bottom:14px}.life-evt-time{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-faint,#999);text-align:right;padding-top:22px}.life-evt-body{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,17px);padding:var(--lm-app-space-4,16px) 17px;box-shadow:var(--lm-app-shadow,0 2px 8px rgba(0,0,0,.025));min-width:0}.life-evt-main{display:flex;align-items:flex-start;gap:11px}.life-evt-dot{width:24px;height:24px;border:2px solid #d6d6d6;border-radius:50%;flex-shrink:0;margin-top:1px}.life-evt-title{font-size:var(--lm-app-font-title,17px);color:var(--lm-app-text,#222);line-height:1.45;font-weight:520;word-break:break-word}.life-evt-place{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-faint,#aaa);margin-top:5px}.life-evt-type{margin-left:auto;background:var(--lm-app-page,#f8f8f8);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:var(--lm-app-space-1,4px) 9px;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);white-space:nowrap}.life-evt-motive,.life-evt-detail{font-size:var(--lm-app-font-control,13px);line-height:1.65;color:var(--lm-app-muted,#666);border-top:1px solid #f1f1f1;margin-top:10px;padding-top:var(--lm-app-space-3,10px);word-break:break-word}.life-evt-detail{color:var(--lm-app-muted,#888)}.life-evt-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.life-evt-tags span{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#888);background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:var(--lm-app-space-1,4px) 9px}.life-evt-list.older{opacity:.9}

/* 角色日常 LifeEvent 紧凑修正 */
.life-current-card{margin:0 24px 14px;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);border-radius:var(--lm-app-radius-group,16px);gap:var(--lm-app-space-3,12px)}
.life-current-av{width:46px;height:46px;border-radius:var(--lm-app-radius-group,14px)}.life-current-name{font-size:var(--lm-app-font-section,16px);margin-bottom:5px}.life-current-line{font-size:var(--lm-app-font-control,13px);line-height:1.45}
.life-evt-list{margin:0 24px 10px}.life-evt-card{grid-template-columns:48px 1fr;gap:var(--lm-app-space-2,8px);margin-bottom:12px}.life-evt-time{font-size:var(--lm-app-font-small,12px);padding-top:17px}.life-evt-body{padding:13px var(--lm-app-space-3,14px);border-radius:var(--lm-app-radius-group,15px)}.life-evt-main{gap:9px}.life-evt-dot{width:21px!important;height:21px!important}.life-evt-title{font-size:var(--lm-app-font-body,15px);line-height:1.4;font-weight:520}.life-evt-place{font-size:var(--lm-app-font-small,12px);margin-top:3px}.life-evt-type{font-size:var(--lm-app-font-small,10px);padding:3px var(--lm-app-space-2,8px)}.life-evt-motive,.life-evt-detail{font-size:var(--lm-app-font-small,12px);line-height:1.55;margin-top:8px;padding-top:var(--lm-app-space-2,8px)}.life-evt-tags{margin-top:8px}.life-evt-tags span{font-size:var(--lm-app-font-small,10px);padding:3px var(--lm-app-space-2,8px)}

/* 角色日常 LifeEvent v2：轻量生活窗口 */
.world-life-page{background:var(--t-page);touch-action:pan-y;overscroll-behavior:contain;padding:0 0 22px}
.world-life-page .world-sub-header{padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,10px)}
.life-current-card{display:flex;align-items:center;gap:var(--lm-app-space-3,10px);margin:0 14px 10px;padding:var(--lm-app-space-3,12px) 13px;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,15px);box-shadow:var(--lm-app-shadow,0 2px 8px rgba(0,0,0,.018))}
.life-current-av{width:40px;height:40px;border-radius:var(--lm-app-radius-group,13px);object-fit:cover;flex-shrink:0;background:var(--lm-app-input,#eee)}.life-current-empty{display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#999);font-size:var(--lm-app-font-body,15px)}.life-current-info{flex:1;min-width:0}.life-current-name{font-size:var(--lm-app-font-control,14px);font-weight:650;color:var(--lm-app-text,#222);margin-bottom:4px}.life-current-line{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#777);line-height:1.45;word-break:break-word}
.life-space-card{margin:0 14px 12px;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,16px);overflow:hidden;box-shadow:var(--lm-app-shadow,0 2px 8px rgba(0,0,0,.018))}.life-space-head{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,10px);padding:11px var(--lm-app-space-3,12px);border-bottom:1px solid #f2f2f2}.life-space-title{font-size:var(--lm-app-font-control,13px);font-weight:650;color:var(--lm-app-text,#222)}.life-space-sub{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-top:3px}.life-space-head button{border:none;background:#f4f4f5;color:var(--lm-app-text,#444);border-radius:var(--lm-app-radius-control,10px);padding:7px var(--lm-app-space-3,10px);font-size:var(--lm-app-font-small,12px)}.life-map-wrap{position:relative;width:100%;background:#f6f6f7;display:flex;align-items:center;justify-content:center;min-height:150px;max-height:260px;overflow:hidden}.life-map-wrap.scene{min-height:140px}.life-map-img{display:block;max-width:100%;max-height:260px;width:auto;height:auto;object-fit:contain}.life-map-empty{height:160px;display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px)}.life-avatar-pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;z-index:3}.life-avatar-pin img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.life-avatar-pin span{display:block;width:18px;height:18px;margin:8px;border-radius:50%;background:var(--lm-app-selected,#333);box-shadow:var(--lm-app-shadow,0 2px 6px rgba(0,0,0,.25))}.life-space-foot{display:flex;justify-content:space-between;gap:var(--lm-app-space-3,10px);padding:9px var(--lm-app-space-3,12px);font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#888);border-top:1px solid #f2f2f2}.life-empty{margin:10px 14px;padding:22px var(--lm-app-space-3,10px);text-align:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px);background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,14px)}
.life-evt-list{margin:0 14px 10px}.life-evt-card{display:grid;grid-template-columns:42px 1fr;gap:var(--lm-app-space-2,8px);margin-bottom:10px}.life-evt-time{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);text-align:right;padding-top:var(--lm-app-space-3,14px)}.life-evt-body{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,14px);padding:11px var(--lm-app-space-3,12px);box-shadow:var(--lm-app-shadow,0 2px 7px rgba(0,0,0,.018));min-width:0}.life-evt-main{display:flex;align-items:flex-start;gap:var(--lm-app-space-2,8px)}.life-evt-title{font-size:var(--lm-app-font-control,13px);line-height:1.45;font-weight:600;color:var(--lm-app-text,#222);word-break:break-word}.life-evt-place{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-top:3px}.life-evt-type{margin-left:auto;background:var(--lm-app-page,#f7f7f8);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px 7px;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999);white-space:nowrap}.life-evt-dot,.life-month-bar,.life-day-row{display:none!important}.life-evt-motive,.life-evt-detail{font-size:var(--lm-app-font-small,12px);line-height:1.55;color:var(--lm-app-muted,#666);border-top:1px solid #f3f3f3;margin-top:8px;padding-top:var(--lm-app-space-2,8px);word-break:break-word}.life-evt-detail{color:var(--lm-app-muted,#888)}.life-evt-tags{display:flex;gap:var(--lm-app-space-2,6px);flex-wrap:wrap;margin-top:8px}.life-evt-tags span{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-muted,#888);background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px 7px}.life-evt-list.older{opacity:.9}
.life-edit-mask{position:fixed;top:0;left:0;right:0;z-index:99999;background:rgba(0,0,0,.38);display:flex;align-items:flex-end;overflow:hidden}.life-edit-box{width:100%;max-height:92%;background:var(--lm-app-surface,#fff);border-radius:22px 22px 0 0;display:flex;flex-direction:column;overflow:hidden}.life-edit-head{height:52px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--lm-app-border,#eee);position:relative;font-size:var(--lm-app-font-body,15px);font-weight:650;color:var(--lm-app-text,#222);flex-shrink:0}.life-edit-head button{position:absolute;right:16px;border:none;background:transparent;font-size:24px;color:var(--lm-app-muted,#888)}.life-edit-body{padding:var(--lm-app-space-3,14px);overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.life-edit-actions{display:flex;gap:var(--lm-app-space-2,8px);flex-wrap:wrap;margin-bottom:10px}.life-edit-actions button,.life-place-row button,.life-scene-row button,.life-wide-btn{border:none;border-radius:var(--lm-app-radius-control,10px);background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-text,#444);font-size:var(--lm-app-font-small,12px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px)}.life-edit-map{position:relative;background:#f6f6f7;border:1px dashed var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-group,15px);min-height:170px;display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px);overflow:hidden;margin-bottom:10px}.life-edit-map img{max-width:100%;max-height:280px;object-fit:contain}.life-edit-place-list{display:grid;gap:7px;margin-bottom:12px}.life-place-row{display:flex;align-items:center;gap:var(--lm-app-space-2,6px);background:#f8f8f9;border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-2,8px)}.life-place-row span{flex:1;min-width:0;font-size:var(--lm-app-font-small,12px);color:var(--lm-app-text,#333);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-edit-body textarea{width:100%;box-sizing:border-box;border:1px solid #e8e8e8;background:var(--lm-app-input,#fafafa);border-radius:var(--lm-app-radius-group,13px);padding:var(--lm-app-space-3,10px) 11px;margin-bottom:10px;font-size:var(--lm-app-font-control,13px);line-height:1.55;min-height:74px;resize:none;outline:none;touch-action:pan-y}.life-scene-title{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#777);margin:4px 0 8px}.life-scene-row{display:flex;gap:var(--lm-app-space-3,10px);background:#f8f8f9;border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-group,14px);padding:9px;margin-bottom:8px}.life-scene-thumb{width:72px;height:72px;border-radius:var(--lm-app-radius-control,12px);background:var(--lm-app-input,#eee);display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px);overflow:hidden;flex-shrink:0}.life-scene-thumb img{width:100%;height:100%;object-fit:cover}.life-scene-row>div:last-child{flex:1;min-width:0}.life-scene-row input{width:100%;box-sizing:border-box;border:1px solid #e8e8e8;background:var(--lm-app-surface,#fff);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-2,8px);font-size:var(--lm-app-font-small,12px);margin-bottom:6px}.life-scene-row textarea{min-height:52px;margin-bottom:6px;font-size:var(--lm-app-font-small,12px)}.life-small-hint{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#aaa);background:var(--lm-app-input,#fafafa);border:1px dashed var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,10px);margin-bottom:8px}.life-wide-btn{width:100%;height:38px;background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}.life-edit-foot{padding:10px 14px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--lm-app-border,#eee)}.life-edit-foot button{width:100%;height:44px;border:none;border-radius:var(--lm-app-radius-group,14px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-body,15px);font-weight:650}

/* 角色日常顶部留白与长按反馈 */
.world-life-page .world-sub-header{padding-top:var(--lm-app-space-3,14px)}
.life-evt-card:active .life-evt-body{background:var(--lm-app-input,#fafafa)}

/* 角色日常点位与论坛TA页轻量选中 */
.life-place-pills{display:flex;gap:7px;overflow-x:auto;padding:9px var(--lm-app-space-3,12px) 0;background:var(--lm-app-surface,#fff);scrollbar-width:none}.life-place-pills::-webkit-scrollbar{display:none}.life-place-pills button{border:1px solid var(--lm-app-border,#e6e6e6);background:var(--lm-app-input,#fafafa);color:var(--lm-app-muted,#666);border-radius:999px;padding:5px var(--lm-app-space-3,10px);font-size:var(--lm-app-font-small,11px);white-space:nowrap}.life-place-pills button.on{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border-color:var(--lm-app-border,#333)}.life-place-pills span{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);padding:var(--lm-app-space-1,4px) 0 2px}.lm-ta-tabs{height:48px!important;border-top:8px solid var(--lm-app-border,#f7f7f8)!important;background:var(--lm-app-surface,#fff)!important}.lm-ta-tab{height:40px!important;background:transparent!important;border:none!important;border-radius:0!important;color:var(--lm-app-muted,#777)!important;font-size:var(--lm-app-font-control,14px)!important;font-weight:400!important;position:relative!important;box-shadow:none!important}.lm-ta-tab.on{background:transparent!important;color:var(--lm-app-text,#222)!important;font-weight:650!important}.lm-ta-tab.on:after{content:'';position:absolute;left:34%;right:34%;bottom:0;height:2px;background:var(--lm-app-selected,#333);border-radius:var(--lm-app-radius-small,2px)}.lm-ta-tab:before{display:none!important}

/* 日常页不外露点位按钮 */
.life-place-pills{display:none!important}

/* 删除TA论坛Tab选中线 */
.lm-ta-tab.on:after{display:none!important;content:none!important}

/* 场景tabs样式 */
.auto-scene-tabs{display:flex;gap:var(--lm-app-space-2,8px);padding:var(--lm-app-space-1,4px) 0 var(--lm-app-space-3,12px);overflow-x:auto}
.auto-scene-tab{padding:7px var(--lm-app-space-3,14px);border-radius:999px;background:var(--t-hover);color:var(--lm-app-muted,#666);font-size:var(--lm-app-font-control,13px);cursor:pointer;white-space:nowrap}
.auto-scene-tab.on{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
.auto-scene-desc{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);padding:0 0 var(--lm-app-space-3,10px)}
.auto-scene-pane .tool-item:first-of-type{margin-top:4px}
/* life log / manage v244 */
.life-log-card{margin:0 14px 12px;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,15px);padding:11px var(--lm-app-space-3,12px);box-shadow:var(--lm-app-shadow,0 2px 7px rgba(0,0,0,.018))}
.life-log-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--lm-app-space-3,10px);margin-bottom:8px}.life-log-title{font-size:var(--lm-app-font-control,13px);font-weight:650;color:var(--lm-app-text,#222)}.life-log-sub{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-top:3px}.life-log-head span{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);white-space:nowrap}.life-log-focus{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#555);background:var(--lm-app-page,#f7f7f8);border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-control,10px);padding:7px 9px;margin-bottom:8px}.life-log-list{display:flex;flex-direction:column;gap:5px}.life-log-row{display:grid;grid-template-columns:18px 42px 1fr auto;gap:var(--lm-app-space-2,6px);align-items:center;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#666);line-height:1.35}.life-log-row span{color:var(--lm-app-faint,#999)}.life-log-row b{font-weight:500;color:var(--lm-app-muted,#777)}.life-log-row em{font-style:normal;color:var(--lm-app-text,#444);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-log-row i{font-style:normal;color:var(--lm-app-faint,#aaa);max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-log-row.done{opacity:.55}.life-evt-card.manage .life-evt-body{position:relative;padding-left:38px}.life-evt-check{position:absolute;left:11px;top:12px;width:18px;height:18px;border:1px solid var(--lm-app-border,#bbb);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-small,12px);color:var(--lm-app-mark-text,#fff);background:var(--lm-app-surface,#fff)}.life-evt-card.selected .life-evt-check{background:var(--lm-app-mark,#333);border-color:var(--lm-app-mark,#333)}.life-evt-card.selected .life-evt-body{border-color:var(--lm-app-border,#bbb)!important;background:var(--lm-app-input,#fafafa)}.life-manage-bar{position:fixed;left:14px;right:14px;bottom:14px;z-index:1200;background:rgba(255,255,255,.92);backdrop-filter:var(--lm-app-backdrop,blur(16px));border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-2,8px);display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--lm-app-space-2,6px);box-shadow:var(--lm-app-shadow,0 8px 24px rgba(0,0,0,.08))}.life-manage-bar button{border:none;border-radius:var(--lm-app-radius-control,11px);background:#f3f3f4;color:var(--lm-app-text,#333);font-size:var(--lm-app-font-small,12px);padding:9px var(--lm-app-space-1,4px)}.life-manage-bar button.danger{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}

/* 关系空间 v271 */
.rel-page{background:var(--t-page);padding-bottom:var(--lm-app-space-6,24px);touch-action:pan-y;overscroll-behavior:contain}.rel-page .world-sub-header{padding-top:var(--lm-app-space-3,14px)}.rel-hero{margin:0 14px 12px;padding:15px var(--lm-app-space-3,14px);background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,16px);box-shadow:var(--lm-app-shadow,0 2px 8px rgba(0,0,0,.018));text-align:center}.rel-pair{display:flex;align-items:center;justify-content:center;gap:var(--lm-app-space-3,10px);margin-bottom:9px}.rel-avatar{width:42px;height:42px;border-radius:var(--lm-app-radius-group,15px);background:#f0f0f1;color:var(--lm-app-muted,#777);display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-body,15px);font-weight:650;overflow:hidden}.rel-avatar img{width:100%;height:100%;object-fit:cover}.rel-line{width:58px;height:18px;display:flex;align-items:center}.rel-line span{width:100%;height:1px;background:#d8d8d8;display:block;position:relative}.rel-line span:after{content:'';position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:var(--lm-app-selected,#333);transform:translate(-50%,-50%)}.rel-name{font-size:var(--lm-app-font-control,14px);font-weight:650;color:var(--lm-app-text,#222);margin-bottom:4px}.rel-sub{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999)}.rel-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 14px 12px}.rel-stat{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,13px);padding:9px var(--lm-app-space-1,4px);text-align:center}.rel-stat b{display:block;font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#222);line-height:1.2;margin-bottom:3px}.rel-stat span{display:block;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rel-empty{margin:0 14px;padding:22px var(--lm-app-space-3,14px);background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,15px);color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px);text-align:center;line-height:1.6}.rel-timeline{margin:0 14px 12px}.rel-event{display:grid;grid-template-columns:54px 1fr;gap:var(--lm-app-space-2,8px);margin-bottom:10px}.rel-event-time{text-align:right;padding-top:var(--lm-app-space-3,10px)}.rel-event-time span{display:block;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#777);line-height:1.3}.rel-event-time em{display:block;font-style:normal;font-size:9px;color:var(--lm-app-faint,#bbb);line-height:1.4;word-break:break-all}.rel-event-body{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,14px);padding:11px var(--lm-app-space-3,12px);box-shadow:var(--lm-app-shadow,0 2px 7px rgba(0,0,0,.018));min-width:0}.rel-event-top{display:flex;align-items:flex-start;gap:var(--lm-app-space-2,8px)}.rel-event-top b{font-size:var(--lm-app-font-control,13px);line-height:1.45;color:var(--lm-app-text,#222);font-weight:600;flex:1;min-width:0;word-break:break-word}.rel-event-top i{font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-muted,#888);background:var(--lm-app-page,#f7f7f8);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px 7px;white-space:nowrap}.rel-event-detail{font-size:var(--lm-app-font-small,12px);line-height:1.55;color:var(--lm-app-muted,#666);border-top:1px solid #f3f3f3;margin-top:8px;padding-top:var(--lm-app-space-2,8px);word-break:break-word}.rel-note{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);text-align:center;margin:12px 14px 0;line-height:1.5}

/* 关系空间 v272：筛选与双语细化 */
.rel-line{width:72px;height:22px;position:relative;display:flex;align-items:center;justify-content:center}.rel-line span{width:100%;height:1px;background:linear-gradient(90deg,transparent,#cfcfcf 22%,var(--lm-app-faint,#999) 50%,#cfcfcf 78%,transparent);display:block;position:relative}.rel-line span:before,.rel-line span:after{content:'';position:absolute;top:50%;width:6px;height:6px;border-radius:50%;background:var(--lm-app-surface,#fff);border:1px solid var(--lm-app-border,#bbb);transform:translateY(-50%)}.rel-line span:before{left:18px}.rel-line span:after{right:18px}.rel-line span{box-shadow:none}.rel-line span>i{display:none}.rel-filters{display:flex;gap:7px;overflow-x:auto;padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,12px);scrollbar-width:none}.rel-filters::-webkit-scrollbar{display:none}.rel-filters button{border:1px solid var(--t-border);background:var(--t-card);color:var(--lm-app-muted,#777);border-radius:999px;padding:var(--lm-app-space-2,6px) 11px;font-size:var(--lm-app-font-small,12px);white-space:nowrap}.rel-filters button.on{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border-color:var(--lm-app-border,#333)}.rel-stat{cursor:pointer}.rel-stat:active{background:var(--t-hover)}.rel-bi{display:flex;flex-direction:column;gap:var(--lm-app-space-2,6px)}.rel-bi-foreign{font-size:var(--lm-app-font-small,12px);line-height:1.55;color:var(--lm-app-text,#444);word-break:break-word}.rel-bi-cn{font-size:var(--lm-app-font-small,12px);line-height:1.55;color:var(--lm-app-muted,#777);border-top:1px solid var(--lm-app-border,#f0f0f0);padding-top:var(--lm-app-space-2,6px);word-break:break-word}.rel-event[data-kind="dialog"] .rel-event-body{background:var(--lm-app-surface,#fff)}.rel-event[data-kind="dialog"] .rel-event-top i{background:var(--lm-app-input,#fafafa)}.rel-event[data-kind="call"] .rel-event-top i,.rel-event[data-kind="gift"] .rel-event-top i,.rel-event[data-kind="music"] .rel-event-top i{color:var(--lm-app-text,#333);background:var(--lm-app-input,#f0f0f0);border-color:var(--lm-app-border,#e5e5e5)}

/* 关系档案 v273 */
.rel-archive .rel-hero{padding-top:17px}.rel-archive .rel-name{font-size:var(--lm-app-font-control,14px)}.rel-keywords{display:flex;gap:7px;overflow-x:auto;padding:0 var(--lm-app-space-3,14px) var(--lm-app-space-3,12px);scrollbar-width:none}.rel-keywords::-webkit-scrollbar{display:none}.rel-keywords span{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#666);background:var(--t-card);border:1px solid var(--t-border);border-radius:999px;padding:5px var(--lm-app-space-3,10px);white-space:nowrap}.rel-source{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa);margin-top:7px}.rel-event[data-kind="care"] .rel-event-top i,.rel-event[data-kind="milestone"] .rel-event-top i{color:var(--lm-app-text,#333);background:var(--lm-app-input,#f0f0f0);border-color:var(--lm-app-border,#e5e5e5)}.rel-event[data-kind="tension"] .rel-event-top i{color:var(--lm-app-muted,#777);background:var(--lm-app-page,#f8f8f8)}.rel-event[data-kind="object"] .rel-event-top i,.rel-event[data-kind="shared"] .rel-event-top i{color:var(--lm-app-text,#444);background:#f3f3f3}

/* 关系空间 v274：回到第一版简洁布局 */
.rel-page .rel-keywords,.rel-page .rel-filters{display:none!important}.rel-page .rel-hero{margin-top:0}.rel-page .rel-source{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);margin-top:7px}.rel-page .rel-note{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);text-align:center;margin:12px 14px 0;line-height:1.5}.rel-line{width:72px;height:22px;position:relative;display:flex;align-items:center;justify-content:center}.rel-line span{width:100%;height:1px;background:linear-gradient(90deg,transparent,#d8d8d8 22%,#a9a9a9 50%,#d8d8d8 78%,transparent);display:block;position:relative}.rel-line span:before,.rel-line span:after{content:'';position:absolute;top:50%;width:6px;height:6px;border-radius:50%;background:var(--lm-app-surface,#fff);border:1px solid var(--lm-app-border,#bbb);transform:translateY(-50%)}.rel-line span:before{left:21px}.rel-line span:after{right:21px}

.ms-label.small{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#555);margin-top:14px}
.ms-model-prompt-wrap{margin-top:12px}
.ms-textarea{width:100%;box-sizing:border-box;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-small,8px);background:var(--t-input);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,12px);margin-top:8px;min-height:86px;font-size:var(--lm-app-font-control,14px);line-height:1.55;color:var(--lm-app-text,#333);font-family:inherit;resize:none;outline:none;touch-action:pan-y}
.ms-textarea:focus{border-color:var(--t-accent)}
.ms-mode-source{display:grid;grid-template-columns:1fr 1fr;gap:var(--lm-app-space-2,8px);margin-top:10px}
.ms-mode-source button{height:34px;border:1px solid var(--t-border);background:var(--t-input);color:var(--lm-app-muted,#666);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-control,13px);font-family:inherit}
.ms-mode-source button.on{background:#ececee;border-color:#cfd0d3;color:var(--lm-app-text,#333);font-weight:600;box-shadow:var(--lm-app-shadow,inset 0 0 0 1px rgba(0,0,0,.025))}


/* 手动生成弹窗 */
.life-gen-mask{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}
.life-gen-sheet{background:var(--lm-app-surface,#fff);border-radius:14px 14px 0 0;width:100%;max-width:420px;padding:var(--lm-app-space-4,16px) var(--lm-app-space-4,18px) var(--lm-app-space-6,24px);max-height:80vh;overflow-y:auto}
.life-gen-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--lm-app-font-body,15px);font-weight:500;margin-bottom:12px}
.life-gen-close{border:none;background:none;font-size:var(--lm-app-font-title,20px);color:var(--lm-app-faint,#999);cursor:pointer}
.life-gen-info{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);margin-bottom:4px}
.life-gen-section{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#666);margin:12px 0 6px}
.life-gen-options{display:flex;gap:var(--lm-app-space-2,8px);flex-wrap:wrap}
.life-gen-opt{background:var(--lm-app-page,#f5f5f5);border:1px solid #e0e0e0;border-radius:var(--lm-app-radius-small,8px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,14px);font-size:var(--lm-app-font-control,13px);cursor:pointer;color:var(--lm-app-text,#333)}
.life-gen-opt:active{background:#e8e8e8}
.life-gen-smart{width:100%;text-align:center;background:#f0f0f2}
.life-gen-custom{width:100%;padding:var(--lm-app-space-2,8px);border:1px solid var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-small,8px);font-size:var(--lm-app-font-control,13px);margin-bottom:8px}
.life-gen-custom-go{width:100%;text-align:center;background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border:none;border-radius:var(--lm-app-radius-small,8px);padding:9px;font-size:var(--lm-app-font-control,13px)}
.life-gen-custom-go:active{background:var(--lm-app-selected,#555)}
#lifeGenStatus{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#666);text-align:center;margin-top:12px;min-height:16px}

/* ===== 日常生成 FAB 悬浮按钮 ===== */
.life-gen-fab{position:fixed;right:26px;bottom:86px;width:58px;height:58px;border-radius:50%;border:none;background:#2c2c2e;color:var(--lm-app-inverse-text,#fff);box-shadow:var(--lm-app-shadow,0 8px 24px rgba(0,0,0,.16));z-index:9999;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.life-gen-fab svg{width:28px;height:28px}
.life-gen-fab:active{transform:scale(.92)}

/* role scroll hotfix 20260710 */
.role-detail-pg,.role-pg,.rd-body,.role-list,.role-create-body{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}

/* global APP scroll fix 20260710, narrowed 20260711
   Keep outer app chrome locked; only real inner scroll containers may pan. */
.set-sub,.api-detail,.api-list-area,.api-wrap,.phone-list,
.role-detail-pg,.role-pg,.rd-body,.role-list,.role-create-body,
#set-main,.world-page,.lm-shop,.lm-forum,.lm-music-page,.lm-backup,
.sub-body,#taPhonePage,.diary-list-box,.bill-list,.sched-list-box,
.pwl-body,#favBody,.fav-body,.lm-bank-body,.ml-card{
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

@keyframes lifeAvatarSway{0%,100%{transform:translate(-50%,-50%) rotate(0deg)}25%{transform:translate(-50%,-50%) rotate(2.5deg) translateX(1.5px)}50%{transform:translate(-50%,-50%) rotate(0deg) translateY(-1px)}75%{transform:translate(-50%,-50%) rotate(-2.5deg) translateX(-1.5px)}}
.life-avatar-pin{animation:lifeAvatarSway 3.2s ease-in-out infinite}
.life-place-note{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);padding:0 var(--lm-app-space-2,8px) var(--lm-app-space-2,6px);margin-top:-4px;line-height:1.4}

/* Room items in editor */
.life-items-list{padding:2px 0 var(--lm-app-space-1,4px) var(--lm-app-space-3,12px)}
.life-item-row{display:flex;align-items:center;gap:var(--lm-app-space-2,6px);padding:var(--lm-app-space-1,4px) 0;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#555)}
.life-item-row span:first-child{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999)}
.life-item-row span:nth-child(2){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.life-item-from{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-right:4px}
.life-item-row button{font-size:var(--lm-app-font-small,11px);padding:2px var(--lm-app-space-2,6px);border:1px solid var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-small,4px);background:var(--lm-app-input,#fafafa);color:var(--lm-app-muted,#666)}
.life-add-item{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);padding:var(--lm-app-space-2,6px) var(--lm-app-space-3,12px);cursor:pointer}
.life-add-item:active{color:var(--lm-app-text,#333)}
.life-item-icon{width:24px;height:24px;border-radius:var(--lm-app-radius-small,4px);object-fit:cover;flex-shrink:0;cursor:pointer;border:1px solid var(--lm-app-border,#eee)}
.life-item-icon-empty{width:24px;height:24px;border-radius:var(--lm-app-radius-small,4px);background:#f0f0f2;border:1px dashed #ccc;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--lm-app-faint,#aaa);flex-shrink:0;cursor:pointer}
.life-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.life-item-pin{position:absolute;width:20px;height:20px;border-radius:var(--lm-app-radius-small,4px);object-fit:cover;transform:translate(-50%,-50%);border:none;box-shadow:none;cursor:grab;z-index:10;transition:transform .15s}
.life-item-pin:active{transform:translate(-50%,-50%) scale(1.3);z-index:999}
.life-item-menu{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--lm-app-surface,#fff);border-radius:var(--lm-app-radius-group,16px);padding:var(--lm-app-space-3,14px);z-index:100000;box-shadow:var(--lm-app-shadow,0 4px 24px rgba(0,0,0,.18));min-width:200px;display:flex;flex-direction:column;gap:var(--lm-app-space-2,6px)}
.life-item-menu-title{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#888);text-align:center;padding-bottom:var(--lm-app-space-1,4px)}
.life-item-menu button{border:none;background:var(--lm-app-page,#f5f5f5);border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#333);text-align:center}
.life-item-menu button:active{background:#e8e8e8}
.life-item-menu-del{color:var(--lm-app-danger,#e53935)!important;background:#fff5f5!important}
.life-item-menu-sep{height:1px;background:var(--lm-app-input,#eee);margin:4px 0}

/* ===== 关系网 ===== */
.rel-page{padding:0 0 80px 0}
.rel-graph-box{margin:8px 12px;background:var(--t-card,#fff);border-radius:var(--lm-app-radius-group,14px);border:1px solid var(--t-border,#ebebeb);overflow:hidden;height:320px;position:relative;touch-action:none}
.rel-graph-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:center center}

.rel-cards{padding:0 var(--lm-app-space-3,12px)}
.rel-card{background:var(--t-card,#fff);border:1px solid var(--t-border,#ebebeb);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-3,14px);margin-bottom:10px;transition:box-shadow .2s}
.rel-card:active{box-shadow:var(--lm-app-shadow,0 2px 12px rgba(0,0,0,.08))}
.rel-card-top{display:flex;align-items:flex-start;gap:var(--lm-app-space-3,12px)}
.rel-card-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0}
.rel-card-avatar-placeholder{background:#e0e0e0;display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-section,16px);color:var(--lm-app-muted,#666);font-weight:500}
.rel-card-info{flex:1;min-width:0}
.rel-card-name{font-size:var(--lm-app-font-control,14px);font-weight:500;color:#1a1a1a;display:flex;align-items:center;gap:var(--lm-app-space-2,6px);flex-wrap:wrap}
.rel-card-meta{font-size:var(--lm-app-font-small,12px);color:var(--t-muted,#888);margin-top:4px;line-height:1.35}
.rel-card-note{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);margin-top:3px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rel-card-event{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-top:4px;padding:3px var(--lm-app-space-2,8px);background:var(--lm-app-page,#f5f5f5);border-radius:var(--lm-app-radius-small,6px);display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rel-card-bottom{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);margin-top:10px}
.rel-intimacy-bar{flex:1;height:4px;background:var(--lm-app-input,#f0f0f0);border-radius:var(--lm-app-radius-small,2px);overflow:hidden}
.rel-intimacy-fill{height:100%;background:linear-gradient(90deg,var(--lm-app-faint,#bbb),var(--lm-app-muted,#555));border-radius:var(--lm-app-radius-small,2px);transition:width .3s}
.rel-intimacy-num{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);min-width:24px;text-align:right}
.rel-type-tag{font-size:var(--lm-app-font-small,10px);padding:1px var(--lm-app-space-2,6px);border-radius:var(--lm-app-radius-small,8px);background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-muted,#666);white-space:nowrap}
.rel-linked-badge{font-size:9px;padding:1px 5px;border-radius:var(--lm-app-radius-small,6px);background:#e8f5e9;color:#2e7d32;white-space:nowrap}
.rel-empty{text-align:center;padding:50px var(--lm-app-space-5,20px);color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-control,14px);line-height:1.8}
.rel-fab{position:fixed;bottom:24px;right:20px;width:48px;height:48px;border-radius:50%;background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:var(--lm-app-shadow,0 3px 12px rgba(0,0,0,.2));z-index:90;cursor:pointer;-webkit-tap-highlight-color:transparent}
.rel-fab:active{transform:scale(.92)}

/* 编辑弹窗 */
.rel-editor-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9000;display:flex;align-items:flex-end;justify-content:center}
.rel-editor-panel{width:100%;max-width:420px;max-height:88vh;background:var(--t-card,#fff);border-radius:16px 16px 0 0;padding:var(--lm-app-space-5,20px) var(--lm-app-space-4,16px) 30px;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.rel-ed-title{font-size:var(--lm-app-font-section,16px);font-weight:600;color:#1a1a1a;text-align:center;margin-bottom:16px}
.rel-ed-row{margin-bottom:14px}
.rel-ed-label{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);margin-bottom:5px}
.rel-ed-input{width:100%;border:1px solid #e0e0e0;border-radius:var(--lm-app-radius-small,8px);padding:9px var(--lm-app-space-3,12px);font-size:var(--lm-app-font-control,14px);outline:none;background:var(--t-input,#fafafa);box-sizing:border-box}
.rel-ed-input:focus{border-color:var(--lm-app-border,#bbb)}
.life-room-manage-page .life-room-actions{display:flex;flex-wrap:wrap;gap:var(--lm-app-space-2,8px);margin-top:12px}
.rel-ed-select{width:100%;border:1px solid #e0e0e0;border-radius:var(--lm-app-radius-small,8px);padding:9px var(--lm-app-space-3,12px);font-size:var(--lm-app-font-control,14px);outline:none;background:var(--t-input,#fafafa);-webkit-appearance:none;box-sizing:border-box}
.rel-ed-textarea{width:100%;border:1px solid #e0e0e0;border-radius:var(--lm-app-radius-small,8px);padding:9px var(--lm-app-space-3,12px);font-size:var(--lm-app-font-control,13px);outline:none;min-height:60px;resize:none;background:var(--t-input,#fafafa);box-sizing:border-box;touch-action:pan-y;overflow-y:auto;max-height:120px}
.rel-ed-textarea:focus{border-color:var(--lm-app-border,#bbb)}
.rel-ed-range{width:100%;margin-top:4px}
.rel-ed-avatar-row{display:flex;align-items:center;gap:var(--lm-app-space-3,10px)}
.rel-ed-avatar-preview{width:42px;height:42px;border-radius:50%;background:var(--lm-app-input,#f0f0f0);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999)}
.rel-ed-avatar-preview img{width:100%;height:100%;object-fit:cover}
.rel-ed-btn-sm{padding:var(--lm-app-space-2,6px) var(--lm-app-space-3,12px);border:1px solid var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-small,8px);background:var(--lm-app-surface,#fff);font-size:var(--lm-app-font-small,12px);color:var(--lm-app-text,#444);cursor:pointer}
.rel-ed-btn-sm:active{background:var(--lm-app-page,#f5f5f5)}
.rel-ed-toggle{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#666);cursor:pointer}
.rel-ed-toggle input{width:16px;height:16px}
.rel-ed-events{margin-top:8px;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px);background:var(--lm-app-input,#fafafa);border-radius:var(--lm-app-radius-small,8px);border:1px solid var(--lm-app-border,#f0f0f0)}
.rel-ev-item{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#666);padding:3px 0;border-bottom:1px solid var(--lm-app-border,#f5f5f5)}
.rel-ev-item:last-child{border-bottom:none}
.rel-ev-time{color:var(--lm-app-faint,#bbb);margin-right:6px}
.rel-ed-event-add{display:flex;gap:var(--lm-app-space-2,6px)}
.rel-ed-event-add .rel-ed-input{flex:1}
.rel-ed-actions{display:flex;gap:var(--lm-app-space-2,8px);margin-top:18px;justify-content:flex-end}
.rel-ed-btn{padding:var(--lm-app-space-3,10px) var(--lm-app-space-5,20px);border:none;border-radius:var(--lm-app-radius-control,10px);font-size:var(--lm-app-font-control,14px);cursor:pointer}
.rel-ed-btn-save{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
.rel-ed-btn-save:active{background:var(--lm-app-selected,#555)}
.rel-ed-btn-cancel{background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-muted,#666)}
.rel-ed-btn-del{background:var(--lm-app-surface,#fff);color:var(--lm-app-danger,#e53935);border:1px solid var(--lm-app-danger,#e53935);margin-right:auto}
.rel-ed-btn-del:active{background:#fff5f5}

.rel-fab-ai{bottom:80px;background:var(--lm-app-selected,#555)}
.rel-fab-ai:active{background:var(--lm-app-muted,#777)}
.rel-mount-item{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);padding:7px 0;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#444);border-bottom:1px solid var(--lm-app-border,#f5f5f5)}
.rel-mount-item input{width:16px;height:16px;flex-shrink:0}
.rel-mount-tag{display:inline-block;font-size:var(--lm-app-font-small,11px);padding:2px var(--lm-app-space-2,8px);background:#f0f0f2;border-radius:var(--lm-app-radius-small,6px);color:var(--lm-app-muted,#666);margin:3px 4px 0 0}
.rel-ed-mount-list{margin-top:6px;min-height:0}







/* 活动空间矩形区域 v294 */
.life-area-box{position:absolute;border:1px solid rgba(45,45,48,.38);background:rgba(255,255,255,.18);border-radius:var(--lm-app-radius-small,8px);pointer-events:none;z-index:1;box-shadow:var(--lm-app-shadow,inset 0 0 0 1px rgba(255,255,255,.45))}
.life-area-box span{position:absolute;left:5px;top:4px;max-width:calc(100% - 10px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-text,#333);background:rgba(255,255,255,.72);border:1px solid rgba(0,0,0,.06);border-radius:999px;padding:1px 5px;line-height:1.4}
.life-area-box.edit{border-style:dashed;background:rgba(0,0,0,.035);pointer-events:auto}
.life-point-dot{position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:50%;background:var(--lm-app-selected,#333);transform:translate(-50%,-50%);z-index:2;pointer-events:none;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.2))}
.life-point-dot span{position:absolute;left:10px;top:50%;transform:translateY(-50%);max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-text,#333);background:rgba(255,255,255,.72);border:1px solid rgba(0,0,0,.06);border-radius:999px;padding:1px 5px;line-height:1.4}
.life-point-dot.edit{pointer-events:auto}
.life-place-row em{font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-muted,#888);background:var(--lm-app-surface,#fff);border:1px solid var(--lm-app-border,#e5e5e5);border-radius:999px;padding:2px var(--lm-app-space-2,6px);white-space:nowrap}
.life-place-row.is-area{background:var(--lm-app-page,#f7f7f8);border-color:#e4e4e5}
.life-area-tools{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-control,12px);padding:7px;margin:-2px 0 7px}
.life-area-tools button{border:none;background:#f0f0f1;color:var(--lm-app-muted,#555);border-radius:var(--lm-app-radius-control,9px);font-size:var(--lm-app-font-small,11px);padding:7px 2px}

/* 活动空间区域 UI 收敛 v295 */
.life-area-box span,.life-point-dot span{display:none!important}
.life-area-box{border-color:rgba(255,255,255,.58)!important;background:rgba(255,255,255,.08)!important;box-shadow:var(--lm-app-shadow,0 0 0 1px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.32))!important;border-radius:var(--lm-app-radius-small,8px)!important}
.life-area-box.edit{border-style:solid!important;background:rgba(255,255,255,.11)!important}
.life-point-dot{width:7px!important;height:7px!important;background:rgba(30,30,30,.68)!important;border:1px solid rgba(255,255,255,.75)!important;box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.22))!important}
.life-place-card{background:var(--lm-app-surface,#fff);border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-group,14px);padding:var(--lm-app-space-3,10px) var(--lm-app-space-3,10px) 9px;margin-bottom:8px;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.015))}
.life-place-main{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);min-width:0}.life-place-main em{font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-muted,#888);background:var(--lm-app-page,#f7f7f8);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px 7px;white-space:nowrap}.life-place-main b{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#333);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.life-place-card .life-place-note{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);line-height:1.45;margin:7px 0 0;padding:0;background:transparent;border:none;word-break:break-word}
.life-place-actions{display:flex;gap:var(--lm-app-space-2,6px);margin-top:8px;overflow-x:auto;scrollbar-width:none}.life-place-actions::-webkit-scrollbar{display:none}.life-place-actions button{flex:0 0 auto;min-width:54px;height:32px;border:none;border-radius:var(--lm-app-radius-control,10px);background:#f3f3f4;color:var(--lm-app-muted,#555);font-size:var(--lm-app-font-small,12px);padding:0 9px;white-space:nowrap}
.life-area-tools{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;background:var(--lm-app-input,#fafafa)!important;border:1px solid var(--lm-app-border,#eee)!important;border-radius:var(--lm-app-radius-control,12px)!important;padding:7px!important;margin:8px 0 4px!important}.life-area-tools button{height:31px!important;padding:0!important;font-size:var(--lm-app-font-small,12px)!important;white-space:nowrap!important;min-width:0!important}
.life-add-item{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-faint,#999);padding:9px 3px 2px}.life-place-row{display:none!important}

/* 活动空间区域编辑体验 v296 */

.life-edit-map .life-area-box{display:block!important}

.life-edit-map .life-point-dot{display:block!important}
.life-item-row{display:grid!important;grid-template-columns:38px 1fr auto auto auto!important;align-items:center!important;gap:7px!important}
.life-item-row .life-item-from{font-size:var(--lm-app-font-small,11px)!important;color:var(--lm-app-faint,#aaa)!important;white-space:nowrap!important}
.life-item-row button{height:30px!important;border:1px solid var(--lm-app-border,#e5e5e5)!important;background:var(--lm-app-surface,#fff)!important;border-radius:var(--lm-app-radius-control,9px)!important;font-size:var(--lm-app-font-small,12px)!important;color:var(--lm-app-muted,#555)!important;padding:0 var(--lm-app-space-2,8px)!important;white-space:nowrap!important}
.life-item-desc{grid-column:2 / -1;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);line-height:1.45;margin-top:-2px;word-break:break-word}
.life-place-actions button[data-a="toarea"]{min-width:68px}

/* 活动空间物品分区 v297 */
.life-items-block{margin-top:10px;padding-top:9px;border-top:1px solid var(--lm-app-border,#f0f0f0)}
.life-items-title{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa);letter-spacing:0;margin:0 0 6px 1px;font-weight:400}
.life-items-list{display:flex;flex-direction:column;gap:7px}
.life-item-row{display:block!important;background:var(--lm-app-input,#fafafa)!important;border:1px solid var(--lm-app-border,#f0f0f0)!important;border-radius:var(--lm-app-radius-control,12px)!important;padding:var(--lm-app-space-2,8px)!important}
.life-item-top{display:flex;align-items:center;gap:var(--lm-app-space-2,8px);min-width:0}.life-item-top .life-item-icon,.life-item-top .life-item-icon-empty{width:30px!important;height:30px!important;border-radius:var(--lm-app-radius-control,9px)!important;flex-shrink:0!important}.life-item-top .life-item-icon-empty{display:flex;align-items:center;justify-content:center;border:1px dashed #d6d6d6;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px);background:var(--lm-app-surface,#fff)}.life-item-name{font-size:var(--lm-app-font-control,13px)!important;font-weight:500!important;color:var(--lm-app-text,#333)!important;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-item-from{font-size:var(--lm-app-font-small,11px)!important;color:var(--lm-app-faint,#aaa)!important;white-space:nowrap!important;font-weight:400!important}.life-item-desc{font-size:var(--lm-app-font-small,11px)!important;color:var(--lm-app-faint,#999)!important;line-height:1.45!important;margin:5px 0 0 38px!important;word-break:break-word!important}.life-item-actions{display:flex;gap:var(--lm-app-space-2,6px);margin:7px 0 0 38px}.life-item-actions button{height:28px!important;min-width:48px!important;border:1px solid var(--lm-app-border,#e5e5e5)!important;background:var(--lm-app-surface,#fff)!important;border-radius:var(--lm-app-radius-control,9px)!important;font-size:var(--lm-app-font-small,11px)!important;color:var(--lm-app-muted,#666)!important;padding:0 var(--lm-app-space-2,8px)!important;white-space:nowrap!important}.life-add-item{margin-top:8px!important;border-top:1px dashed var(--lm-app-border,#eee)!important;padding:var(--lm-app-space-3,10px) 2px 1px!important;font-size:var(--lm-app-font-small,12px)!important;color:var(--lm-app-faint,#aaa)!important}

/* 活动空间物品折叠 v298 */
.life-items-title{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-2,8px);min-height:26px;padding:0 1px;color:var(--lm-app-faint,#999);cursor:pointer}.life-items-title span{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa);background:var(--lm-app-page,#f7f7f8);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px 7px;white-space:nowrap}.life-items-block:not(.open){padding-bottom:0}.life-items-block.open .life-items-title{margin-bottom:6px}

/* 活动空间物品名称轻量化 v299 */
.life-item-name{font-size:var(--lm-app-font-small,12px)!important;font-weight:400!important;color:var(--lm-app-muted,#555)!important;line-height:1.35!important}
.life-item-from{font-size:var(--lm-app-font-small,11px)!important;color:var(--lm-app-faint,#aaa)!important;font-weight:400!important}

/* 活动空间多房间图 v299 */
.life-room-tabs{display:flex;gap:var(--lm-app-space-2,6px);overflow-x:auto;padding:2px 0 var(--lm-app-space-3,10px);margin-bottom:4px}.life-room-tabs button{border:1px solid var(--lm-app-border,#eee);background:var(--lm-app-page,#f7f7f8);color:var(--lm-app-muted,#777);border-radius:999px;padding:7px var(--lm-app-space-3,12px);font-size:var(--lm-app-font-small,12px);white-space:nowrap}.life-room-tabs button.on{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border-color:var(--lm-app-border,#333)}.life-scene-row.on{border-color:var(--lm-app-border,#bbb);background:var(--lm-app-input,#fafafa)}.life-scene-row button[data-a="open"]{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border-color:var(--lm-app-border,#333)}

/* 添加房间图按钮轻量化 v300 */
.life-wide-btn{background:var(--lm-app-input,#f2f2f3)!important;color:var(--lm-app-muted,#666)!important;border:1px dashed #ccc!important;margin-top:14px!important;margin-bottom:18px!important}

/* 活动空间房间图打磨 v300 */
.life-map-pager{display:flex;align-items:center;justify-content:space-between;padding:var(--lm-app-space-2,6px) 2px 0;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,10px)}.life-map-pager em{display:flex;gap:var(--lm-app-space-1,4px);font-style:normal}.life-map-pager i{width:5px;height:5px;border-radius:50%;background:var(--lm-app-border,#ddd);display:block}.life-map-pager i.on{background:var(--lm-app-selected,#555)}.life-scene-row button[data-a="up"],.life-scene-row button[data-a="down"]{background:var(--lm-app-page,#f7f7f8);color:var(--lm-app-muted,#888)}.life-scene-row>div:last-child>div{display:flex;gap:var(--lm-app-space-2,6px);flex-wrap:wrap}.life-scene-row button{padding:7px 9px}

/* 活动空间房间图交互简化 v301 */
.life-room-tabs{scrollbar-width:none;-ms-overflow-style:none}.life-room-tabs::-webkit-scrollbar{display:none}.life-map-pager{display:none!important}.life-scene-thumb{cursor:pointer}.life-scene-thumb:active{opacity:.72}

/* 活动空间图编辑区优化 v302 */
.life-map-sticky{position:sticky;top:0;z-index:3;background:var(--lm-app-surface,#fff);padding-bottom:var(--lm-app-space-2,8px);border-bottom:1px solid #f1f1f1;margin-bottom:10px}.life-edit-map{min-height:150px;max-height:36vh}.life-edit-map img{max-height:36vh}.life-scene-row.main{background:var(--lm-app-surface,#fff)}.life-scene-row.main .life-scene-thumb{border:1px solid var(--lm-app-border,#eee)}.life-scene-row.main button[data-a="open"]{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);border-color:var(--lm-app-border,#333)}.life-scene-row.main button[data-a="img"]{background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-muted,#666)}

/* 活动空间编辑区还原非固定 + 新增点位置顶 v303 */
.life-map-sticky{position:static!important;top:auto!important;z-index:auto!important;border-bottom:none!important;margin-bottom:10px!important;padding-bottom:0!important}.life-edit-map{min-height:170px!important;max-height:none!important}.life-edit-map img{max-height:280px!important}

/* 活动空间角色图标独立页 v304 */
.life-icon-page{position:absolute;inset:52px 0 0;background:var(--lm-app-surface,#fff);z-index:7;display:flex;flex-direction:column}.life-icon-box{padding:var(--lm-app-space-3,14px);overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch}.life-icon-head{height:42px;display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:18px;color:var(--lm-app-text,#222);font-size:var(--lm-app-font-body,15px);font-weight:650}.life-icon-head button{position:absolute;left:0;width:38px;height:38px;border:none;border-radius:50%;background:#f3f3f4;color:var(--lm-app-muted,#555);font-size:24px}.life-icon-preview{height:210px;border:1px dashed var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-group,18px);background:var(--lm-app-input,#fafafa);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px)}.life-icon-preview img{max-width:78%;max-height:78%;object-fit:contain}.life-icon-actions{display:grid;gap:var(--lm-app-space-3,10px)}.life-icon-actions button{height:42px;border:none;border-radius:var(--lm-app-radius-group,13px);background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-text,#444);font-size:var(--lm-app-font-control,13px)}.life-icon-actions button:first-child{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}

/* 活动空间角色/你的图标多状态 v300 */
.life-user-pin{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;z-index:4}.life-user-pin img{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.18))}.life-user-pin::after{display:none}.life-user-pin[data-mode="follow"]::after{background:var(--lm-app-selected,#333)}.life-avatar-pin.edit,.life-user-pin.edit{pointer-events:auto}.life-icon-current{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#777);text-align:center;margin:-8px 0 14px;line-height:1.6}.life-icon-section{border-top:1px solid var(--lm-app-border,#f0f0f0);padding:13px 0}.life-icon-section-title{font-size:var(--lm-app-font-control,13px);font-weight:650;color:var(--lm-app-text,#333);margin-bottom:10px}.life-icon-default,.life-icon-user{background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-group,14px);padding:var(--lm-app-space-3,10px)}.life-icon-thumb{width:46px;height:46px;border-radius:var(--lm-app-radius-control,12px);background:#f1f1f2;border:1px solid #e8e8e8;display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,11px);overflow:hidden;flex-shrink:0}.life-icon-thumb.big{width:58px;height:58px}.life-icon-thumb img{width:100%;height:100%;object-fit:contain}.life-icon-actions.inline{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--lm-app-space-2,6px);margin-top:10px}.life-icon-actions.grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--lm-app-space-2,6px);margin-top:10px}.life-icon-actions.inline button,.life-icon-actions.grid button,.life-icon-state-actions button,.life-icon-add{height:34px;border:none;border-radius:var(--lm-app-radius-control,10px);background:#f0f0f1;color:var(--lm-app-text,#444);font-size:var(--lm-app-font-small,12px)}.life-icon-actions.inline button:first-child,.life-icon-add{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}.life-icon-states{display:grid;gap:var(--lm-app-space-2,8px)}.life-icon-state{border:1px solid var(--lm-app-border,#eee);background:var(--lm-app-surface,#fff);border-radius:var(--lm-app-radius-group,14px);padding:var(--lm-app-space-3,10px)}.life-icon-state-main{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,10px)}.life-icon-state-name{min-width:0}.life-icon-state-name b{display:block;font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#222);font-weight:650}.life-icon-state-name em{display:inline-block;margin-top:4px;font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px var(--lm-app-space-2,6px)}.life-icon-state-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}.life-icon-state-actions button[data-a="delstate"]{color:#d33}.life-icon-kw{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#888);line-height:1.5;margin-top:8px}.life-icon-add{width:100%;margin-top:10px}.life-icon-user-meta{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-muted,#888);margin-top:8px;line-height:1.5}
.life-icon-default>.life-icon-ai-action,.life-icon-user>.life-icon-ai-action{height:36px;margin-top:8px;background:#f0f0f1;color:var(--lm-app-text,#444)}.life-icon-default>.life-icon-ai-action+.life-icon-ai-action,.life-icon-user>.life-icon-ai-action+.life-icon-ai-action{margin-top:6px}.life-icon-user>.life-icon-states{margin-top:12px}.life-icon-section>#lifeAddIconState{margin-top:10px;background:#f0f0f1;color:var(--lm-app-text,#444)}
.life-icon-collapse-block{margin-top:8px}.life-icon-collapse-block .life-icon-section-title{margin-bottom:10px}.life-icon-collapse-block.is-collapsed .life-icon-section-title{margin-bottom:0}.life-icon-collapse-toggle{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,10px);border:0;padding:0;background:transparent;color:inherit;font:inherit;font-size:var(--lm-app-font-control,13px);font-weight:650;text-align:left}.life-icon-collapse-toggle::after{content:"";width:8px;height:8px;flex:0 0 8px;margin-right:3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease;opacity:.7}.life-icon-collapse-toggle[aria-expanded="true"]::after{transform:rotate(225deg) translate(-2px,-2px)}.life-icon-collapse-body[hidden]{display:none!important}

/* 活动空间你的图标交互 v301 */
@keyframes lifeUserSway{0%,100%{transform:translate(-50%,-50%) rotate(-1.2deg)}50%{transform:translate(-50%,-50%) rotate(1.2deg)}}
.life-user-pin{animation:lifeUserSway 3.8s ease-in-out infinite!important;touch-action:none}.life-user-pin::after{display:none!important;content:none!important}.life-user-menu-mask{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:99999;display:flex;align-items:flex-end;justify-content:center}.life-user-menu{width:100%;background:var(--lm-app-surface,#fff);border-radius:18px 18px 0 0;padding:14px 14px max(16px,env(safe-area-inset-bottom));box-shadow:var(--lm-app-shadow,0 -8px 28px rgba(0,0,0,.12));display:grid;gap:var(--lm-app-space-2,8px)}.life-user-menu-title{font-size:var(--lm-app-font-control,14px);font-weight:650;color:var(--lm-app-text,#222);text-align:center;padding:var(--lm-app-space-1,4px) 0 var(--lm-app-space-2,8px)}.life-user-menu-sub{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);margin:6px 2px 0}.life-user-menu button{height:40px;border:none;border-radius:var(--lm-app-radius-control,12px);background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,13px)}.life-user-menu button[data-a="follow"],.life-user-menu button[data-a="move"]{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}.life-user-menu button[data-a="leave"]{color:#d33}.life-user-menu button.muted{color:var(--lm-app-muted,#888);background:var(--lm-app-input,#fafafa)}
.life-space-head-actions{display:flex;gap:var(--lm-app-space-2,8px);align-items:center}.life-space-head-actions button{border:0;background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-text,#333);border-radius:var(--lm-app-radius-control,12px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,12px);font-size:var(--lm-app-font-control,13px)}.life-icon-save{width:100%;height:48px;border:none;border-radius:var(--lm-app-radius-group,14px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-body,15px);font-weight:650;margin-top:14px}


/* 活动空间图标说明与你的图标晃动 v304 */
@keyframes lifeUserImgSway{0%,100%{transform:rotate(-2.6deg) translateX(-1px)}50%{transform:rotate(2.6deg) translateX(1px)}}
.life-user-pin{animation:none!important;touch-action:none}.life-user-pin img{animation:lifeUserImgSway 2.8s ease-in-out infinite;transform-origin:50% 86%}.life-user-pin.edit img{animation:lifeUserImgSway 2.8s ease-in-out infinite}.life-icon-desc{width:100%;min-height:54px;max-height:120px;box-sizing:border-box;margin:9px 0 0;padding:9px var(--lm-app-space-3,10px);border:1px solid #e7e7e7;border-radius:var(--lm-app-radius-control,12px);background:var(--lm-app-surface,#fff);color:var(--lm-app-text,#444);font-size:var(--lm-app-font-small,12px);line-height:1.55;resize:none;outline:none;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.life-icon-desc:focus{border-color:var(--lm-app-border,#bbb);background:var(--lm-app-surface,#fff)}

/* 活动空间物品固定/携带最终样式 v309 */
.life-item-row.locked{background:var(--lm-app-page,#f7f7f8)!important;border-style:dashed!important;opacity:.92}
.life-item-row.locked .life-item-from{color:var(--lm-app-faint,#aaa)!important}
.life-item-row.locked .life-item-name::after{content:'  固定';font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999);font-weight:400}
.life-item-row.carried:not(.locked) .life-item-name::after{content:'  携带中';font-size:var(--lm-app-font-small,10px);color:var(--lm-app-muted,#777);font-weight:400}
.life-item-pin.locked{opacity:.82;filter:grayscale(.15);cursor:not-allowed!important}
.life-item-desc{margin:6px 0 0 0!important;padding-left:0!important}
.life-item-actions{margin:8px 0 0 0!important;display:flex!important;flex-wrap:wrap!important;gap:5px!important}
.life-item-actions button{height:30px!important;min-width:50px!important;padding:0 9px!important;font-size:var(--lm-app-font-small,11px)!important;flex:0 0 auto!important}
.life-item-actions button[data-a="transparentitem"]{min-width:68px!important}
.life-item-actions .life-lock-btn{width:34px!important;min-width:34px!important;padding:0!important;border-radius:var(--lm-app-radius-control,10px)!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;touch-action:manipulation!important}
.life-item-actions .life-lock-btn svg{width:16px;height:16px;display:block;pointer-events:none!important}
.life-item-actions .life-lock-btn svg *{pointer-events:none!important}
.life-item-row:not(.locked) .life-lock-btn{background:var(--lm-app-surface,#fff)!important;color:var(--lm-app-faint,#aaa)!important;border-color:var(--lm-app-border,#e5e5e5)!important}
.life-item-row.locked .life-lock-btn{background:var(--lm-app-selected,#333)!important;color:var(--lm-app-selected-text,#fff)!important;border-color:var(--lm-app-border,#333)!important}

/* 大世界子页/世界线强制全屏，防止聊天/论坛悬浮窗把父级顶栏重新显示出来 */
body.world-story-chrome-lock #app-bar{display:none!important}
body.world-story-chrome-lock #app-body{top:0!important}

/* 聊天APP父级顶栏硬锁，防跨软件刷新露出双顶栏 */
body.chat-chrome-lock #app-bar{display:none!important}
body.chat-chrome-lock #app-body{top:0!important}


/* 活动空间地图缩放查看 v311 */
.life-map-panzoom{touch-action:pan-y;position:relative;overflow:hidden}
.life-map-stage{position:relative;width:100%;min-height:inherit;display:flex;align-items:center;justify-content:center;transform-origin:center center;will-change:transform;transition:transform .08s linear}
.life-map-stage .life-map-img{pointer-events:none;user-select:none;-webkit-user-drag:none}
.life-map-panzoom.is-zoomed{touch-action:none}
.life-map-panzoom.is-zoomed .life-map-stage{transition:none}
.life-map-reset{position:absolute;right:8px;top:8px;width:30px;height:30px;border:none;border-radius:50%;background:rgba(255,255,255,.82);color:var(--lm-app-muted,#555);font-size:var(--lm-app-font-title,17px);line-height:1;display:none;align-items:center;justify-content:center;box-shadow:var(--lm-app-shadow,0 2px 8px rgba(0,0,0,.08));z-index:80;backdrop-filter:var(--lm-app-backdrop,blur(8px))}
.life-map-reset:active{background:var(--lm-app-surface,#fff);transform:scale(.94)}
.life-map-panzoom.is-zoomed .life-user-pin,.life-map-panzoom.is-zoomed .life-item-pin{pointer-events:none}
.life-map-panzoom.is-zoomed .life-avatar-pin{pointer-events:auto}

/* 活动空间面对面互动 v337 */
.life-space-foot .life-space-dialog-link{border:0;background:transparent;color:var(--lm-app-muted,#777);font-size:var(--lm-app-font-small,11px);padding:0;margin:0;line-height:1.4}
.life-space-foot .life-space-dialog-link:active{color:var(--lm-app-text,#222)}
.life-space-bubble{position:absolute;transform:translate(-50%,-100%);max-width:58%;padding:7px var(--lm-app-space-3,10px);border-radius:var(--lm-app-radius-group,13px);background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.06);box-shadow:var(--lm-app-shadow,0 4px 14px rgba(0,0,0,.08));font-size:var(--lm-app-font-small,12px);line-height:1.45;color:var(--lm-app-text,#333);z-index:75;pointer-events:none;backdrop-filter:var(--lm-app-backdrop,blur(8px));animation:lifeSpaceBubbleIn .16s ease-out}
.life-space-bubble:after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;width:10px;height:10px;background:rgba(255,255,255,.92);border-right:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06);transform:rotate(45deg)}
@keyframes lifeSpaceBubbleIn{from{opacity:0;transform:translate(-50%,-92%) scale(.96)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}
.life-space-dialog-bar{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:9999;display:flex;align-items:flex-end;gap:var(--lm-app-space-2,6px);padding:var(--lm-app-space-2,8px);background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.06);border-radius:var(--lm-app-radius-group,16px);box-shadow:var(--lm-app-shadow,0 8px 28px rgba(0,0,0,.12));backdrop-filter:var(--lm-app-backdrop,blur(14px))}
.life-space-dialog-input{flex:1;min-height:34px;max-height:86px;border:1px solid var(--lm-app-border,#e5e5e5);border-radius:var(--lm-app-radius-control,12px);background:var(--lm-app-input,#fafafa);color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,13px);line-height:1.45;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px);resize:none;outline:none;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.life-space-dialog-send,.life-space-dialog-close,.life-space-dialog-history{border:0;border-radius:var(--lm-app-radius-control,12px);height:34px;padding:0 var(--lm-app-space-3,10px);font-size:var(--lm-app-font-small,12px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);flex-shrink:0}
.life-space-dialog-close{width:34px;padding:0;background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-muted,#555);font-size:var(--lm-app-font-title,18px);line-height:1}
.life-space-dialog-history{background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-text,#444)}
.life-space-history-mask{position:fixed;inset:0;background:rgba(0,0,0,.24);z-index:10000;display:flex;align-items:flex-end;justify-content:center}
.life-space-history-box{width:100%;max-height:72vh;background:var(--lm-app-surface,#fff);border-radius:18px 18px 0 0;box-shadow:var(--lm-app-shadow,0 -10px 30px rgba(0,0,0,.14));display:flex;flex-direction:column;overflow:hidden}
.life-space-history-head{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--lm-app-space-3,14px);border-bottom:1px solid var(--lm-app-border,#eee);font-size:var(--lm-app-font-control,14px);font-weight:650;color:var(--lm-app-text,#222)}
.life-space-history-head button{border:0;background:var(--lm-app-input,#f2f2f3);border-radius:var(--lm-app-radius-control,10px);width:32px;height:32px;color:var(--lm-app-muted,#555);font-size:var(--lm-app-font-title,18px)}
.life-space-history-body{padding:10px 12px max(18px,env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.life-space-history-row{padding:var(--lm-app-space-3,10px) 0;border-bottom:1px solid #f2f2f2;font-size:var(--lm-app-font-small,12px);line-height:1.55;color:var(--lm-app-text,#333)}
.life-space-history-row:last-child{border-bottom:0}
.life-space-history-meta{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999);margin-bottom:5px}
.life-space-history-user{color:var(--lm-app-muted,#555);margin-bottom:4px}
.life-space-history-ai{color:var(--lm-app-text,#222)}
.life-space-history-empty{padding:32px 0;text-align:center;color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px)}

/* 活动空间对话视觉修正 v338 */
.life-space-foot .life-space-dialog-link{background:#f4f4f5!important;border-radius:var(--lm-app-radius-small,8px)!important;padding:3px var(--lm-app-space-2,8px)!important;color:var(--lm-app-muted,#666)!important;min-height:20px}
.life-space-bubble{width:max-content!important;min-width:96px;max-width:min(250px,68vw)!important;white-space:normal;word-break:normal;overflow-wrap:break-word;text-align:left;line-height:1.45}
.life-space-bubble.me{background:rgba(43,43,45,.9);color:var(--lm-app-inverse-text,#fff);border-color:rgba(0,0,0,.08)}
.life-space-bubble.me:after{background:rgba(43,43,45,.9);border-color:rgba(0,0,0,.08)}
.life-space-dialog-bar{left:12px!important;right:12px!important;gap:var(--lm-app-space-2,8px)!important;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px)!important;border-radius:var(--lm-app-radius-group,18px)!important;align-items:center!important}
.life-space-dialog-input{min-height:38px!important;border-radius:var(--lm-app-radius-group,14px)!important;font-size:var(--lm-app-font-control,14px)!important;padding:9px 11px!important;background:var(--lm-app-surface,#fff)!important}
.life-space-dialog-send{height:38px!important;min-width:54px!important;border-radius:var(--lm-app-radius-group,14px)!important;font-size:var(--lm-app-font-control,14px)!important;padding:0 13px!important}
.life-space-dialog-close{height:38px!important;width:38px!important;border-radius:var(--lm-app-radius-group,14px)!important}
.life-space-history-box{max-height:76vh!important;background:#f8f8f9!important}
.life-space-history-body{display:flex;flex-direction:column;gap:7px;padding:12px 12px max(18px,env(safe-area-inset-bottom))!important}
.life-space-chat-time{align-self:center;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa);margin:7px 0 2px;text-align:center}
.life-space-chat-msg{display:flex;flex-direction:column;max-width:78%}
.life-space-chat-msg.me{align-self:flex-end;align-items:flex-end}.life-space-chat-msg.them{align-self:flex-start;align-items:flex-start}
.life-space-chat-name{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#999);margin:0 0 3px 4px}
.life-space-chat-bubble{padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px);border-radius:var(--lm-app-radius-group,13px);font-size:var(--lm-app-font-control,13px);line-height:1.5;box-shadow:var(--lm-app-shadow,0 1px 4px rgba(0,0,0,.025));word-break:break-word;white-space:pre-wrap}
.life-space-chat-msg.me .life-space-chat-bubble{background:var(--lm-app-selected,#555);color:var(--lm-app-selected-text,#fff);border-bottom-right-radius:5px}.life-space-chat-msg.them .life-space-chat-bubble{background:var(--lm-app-surface,#fff);color:var(--lm-app-text,#333);border:1px solid var(--lm-app-border,#eee);border-bottom-left-radius:5px}
.life-space-history-row,.life-space-history-meta,.life-space-history-user,.life-space-history-ai{display:none!important}

/* 活动空间对话气泡边缘避让 v339 */
.life-space-bubble.below{transform:translate(-50%,8px)!important}
.life-space-bubble.below:after{top:-5px;bottom:auto;transform:rotate(225deg)}

/* 活动空间对话体验修复 v340 */
.life-space-bubble{--bubble-arrow-x:50%;}
.life-space-bubble:after{left:var(--bubble-arrow-x)!important;margin-left:-5px!important;}
.life-space-bubble.me{z-index:74;}
.life-space-bubble.them{z-index:78;}
.life-space-dialog-input{border-right:0!important;box-shadow:none!important;scrollbar-width:none;}
.life-space-dialog-input::-webkit-scrollbar{display:none;width:0;height:0;}
.life-space-dialog-send.loading{min-width:44px!important;width:44px!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;}
.life-btn-spinner,.life-space-thinking span{display:block;width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:lifeSpin .75s linear infinite;}
.life-space-thinking{position:absolute;transform:translate(-50%,-120%);z-index:90;width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.86);display:flex;align-items:center;justify-content:center;box-shadow:var(--lm-app-shadow,0 4px 14px rgba(0,0,0,.12));backdrop-filter:var(--lm-app-backdrop,blur(8px));pointer-events:none;}
.life-space-thinking span{border-color:rgba(0,0,0,.16);border-top-color:#333;}
@keyframes lifeSpin{to{transform:rotate(360deg)}}

/* 活动空间输入时隐藏手动生成按钮 v341 */
.life-gen-fab.hide-for-space-dialog{display:none!important}

/* 活动空间用户离屏气泡 v344 */
.life-space-bubble.me.offmap{left:auto!important;right:10px!important;top:auto!important;bottom:12px!important;transform:none!important;max-width:min(250px,70vw)!important}
.life-space-bubble.me.offmap:after{display:none!important}

/* 活动空间角色离屏气泡 v345 */
.life-space-bubble.them.offmap{left:10px!important;right:auto!important;top:12px!important;bottom:auto!important;transform:none!important;max-width:min(250px,70vw)!important}
.life-space-bubble.them.offmap:after{display:none!important}

/* space dialog voice toggle v319 */
.life-space-history-actions{display:flex;align-items:center;gap:var(--lm-app-space-2,8px)}
.life-space-voice-toggle{border:0;background:var(--lm-app-input,#f2f2f3);border-radius:var(--lm-app-radius-control,10px);width:32px;height:32px;color:var(--lm-app-muted,#555);display:inline-flex;align-items:center;justify-content:center;padding:0;flex:0 0 32px}
.life-space-voice-toggle svg{width:17px;height:17px;display:block}
.life-space-voice-toggle.on{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
.life-space-voice-toggle:active{transform:scale(.96)}

/* life map zoom bubble + hi-res avatar icon v320 */
.life-map-panzoom.is-zoomed .life-space-bubble:not(.offmap){transform:none!important;width:auto!important;min-width:0!important;max-width:calc(100% - 24px)!important;left:12px!important;right:12px!important;top:12px!important;bottom:auto!important;z-index:120!important}
.life-map-panzoom.is-zoomed .life-space-bubble:not(.offmap):after{display:none!important}
.life-map-panzoom.is-zoomed .life-space-bubble.me:not(.offmap){top:auto!important;bottom:12px!important;left:12px!important;right:12px!important}
.life-avatar-pin img,.life-user-pin img{image-rendering:auto;backface-visibility:hidden;-webkit-backface-visibility:hidden}

/* space dialog bilingual + icon page isolation v321 */
.life-icon-page{z-index:160!important;overflow:hidden!important;isolation:isolate}
.life-icon-page .life-icon-box{position:relative;z-index:2;background:var(--lm-app-surface,#fff)}
.life-space-bi{display:flex;flex-direction:column;gap:5px;line-height:1.45}
.life-space-bi-orig{color:inherit;word-break:break-word}
.life-space-bi-trans{border-top:1px solid rgba(0,0,0,.08);padding-top:5px;color:rgba(0,0,0,.58);word-break:break-word}
.life-space-bubble.me .life-space-bi-trans{border-top-color:rgba(255,255,255,.18);color:rgba(255,255,255,.72)}

.life-space-bi-gap{height:8px;border-top:1px solid rgba(0,0,0,.06);margin:2px 0}
.life-space-bubble.me .life-space-bi-gap{border-top-color:rgba(255,255,255,.16)}

/* 空间对话历史管理 v325 */
.life-space-chat-pair{position:relative;display:flex;flex-direction:column;gap:3px;padding:2px 0;border-radius:var(--lm-app-radius-control,12px)}
.life-space-chat-pair.selected{background:rgba(0,0,0,.035)}
.life-space-sel{position:absolute;left:2px;top:18px;width:18px;height:18px;border-radius:50%;border:1px solid var(--lm-app-border,#ddd);background:var(--lm-app-surface,#fff);z-index:3;box-sizing:border-box}
.life-space-sel.on{background:var(--lm-app-mark,#333);border-color:var(--lm-app-mark,#333)}
.life-space-sel.on:after{content:'';position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--lm-app-mark-text,#fff);border-width:0 2px 2px 0;transform:rotate(45deg)}
.life-space-chat-pair .life-space-bi{gap:var(--lm-app-space-1,4px)}
.life-space-chat-pair .life-space-bi-trans{font-size:.94em}
.life-space-manage-bar{min-height:48px;height:auto;box-sizing:border-box;display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;padding:8px 0 max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--lm-app-border,#eee);background:var(--lm-app-surface,#fff)}
.life-space-manage-bar button{min-height:40px;padding:0;border:0;border-radius:0;background:transparent;color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,14px);line-height:1.2}
.life-space-manage-bar button[data-a="del"]{background:transparent;color:#e74c3c}
.life-space-history-mask:not(.is-manage) .life-space-manage-bar{display:none}
.life-space-history-mask:not(.is-manage) .life-space-sel{display:none}

/* activity space editor reorg + item notes v328 */
.life-current-map-actions{display:flex;gap:var(--lm-app-space-2,8px);margin:8px 0 10px}.life-current-map-actions button{flex:1;border:none;border-radius:var(--lm-app-radius-control,11px);background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-text,#444);font-size:var(--lm-app-font-small,12px);padding:9px var(--lm-app-space-2,8px)}.life-sub-page{position:absolute;inset:52px 0 0;background:var(--lm-app-surface,#fff);z-index:150;display:flex;flex-direction:column;overflow:hidden}.life-sub-head{height:48px;display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid var(--lm-app-border,#f0f0f0);font-size:var(--lm-app-font-body,15px);font-weight:650;color:var(--lm-app-text,#222);flex-shrink:0}.life-sub-head button{position:absolute;left:12px;width:36px;height:36px;border:none;border-radius:50%;background:#f3f3f4;color:var(--lm-app-muted,#555);font-size:var(--lm-app-font-title,22px)}.life-sub-body{flex:1;overflow-y:auto;padding:var(--lm-app-space-3,14px);touch-action:pan-y;-webkit-overflow-scrolling:touch}.life-sub-body label{display:block;font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);margin:0 0 7px 2px}.life-sub-body textarea{width:100%;box-sizing:border-box;border:1px solid #e8e8e8;background:var(--lm-app-input,#fafafa);border-radius:var(--lm-app-radius-group,13px);padding:var(--lm-app-space-3,10px) 11px;margin-bottom:12px;font-size:var(--lm-app-font-control,13px);line-height:1.55;min-height:116px;resize:none;outline:none;touch-action:pan-y}.life-sub-foot{padding:10px 14px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--lm-app-border,#eee);flex-shrink:0}.life-sub-foot button{width:100%;height:44px;border:none;border-radius:var(--lm-app-radius-group,14px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-body,15px);font-weight:650}.life-room-manage-page .life-scene-row{margin-bottom:10px}.life-room-manage-page:focus-within .life-sub-foot{opacity:0;pointer-events:none;height:0;padding:0;border:none;overflow:hidden;transition:opacity .15s}.life-item-note-mask{position:fixed;inset:0;background:rgba(0,0,0,.34);z-index:100002;display:flex;align-items:flex-end}.life-item-note-box{width:100%;max-height:82vh;background:var(--lm-app-surface,#fff);border-radius:20px 20px 0 0;display:flex;flex-direction:column;overflow:hidden}.life-item-note-head{height:50px;display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid var(--lm-app-border,#eee);font-size:var(--lm-app-font-body,15px);font-weight:650;color:var(--lm-app-text,#222)}.life-item-note-head button{position:absolute;right:14px;border:none;background:transparent;font-size:24px;color:var(--lm-app-muted,#888)}.life-item-note-body{padding:var(--lm-app-space-3,12px) var(--lm-app-space-3,14px);overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch}.life-item-note-icon{width:56px;height:56px;margin:0 auto 10px;border-radius:var(--lm-app-radius-group,14px);background:#f6f6f7;display:flex;align-items:center;justify-content:center;overflow:hidden}.life-item-note-icon img{max-width:100%;max-height:100%;object-fit:contain}.life-item-note-list{max-height:44vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--lm-app-space-2,8px);margin-bottom:10px;touch-action:pan-y}.life-item-note-row{background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-control,12px);padding:9px var(--lm-app-space-3,10px) 5px}.life-item-note-row div{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-2,8px);margin-bottom:2px}.life-item-note-row b{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-text,#333)}.life-item-note-row em{font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa)}.life-item-note-row p{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#555);line-height:1.35;margin:0 0 1px;white-space:pre-wrap;word-break:break-word}.life-item-note-empty{text-align:center;color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-control,13px);padding:var(--lm-app-space-6,24px) 0}.life-item-note-body textarea{width:100%;box-sizing:border-box;border:1px solid #e8e8e8;background:var(--lm-app-input,#fafafa);border-radius:var(--lm-app-radius-group,13px);padding:var(--lm-app-space-3,10px) 11px;font-size:var(--lm-app-font-control,13px);line-height:1.5;min-height:78px;resize:none;outline:none;touch-action:pan-y}.life-item-note-foot{padding:10px 14px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--lm-app-border,#eee)}.life-item-note-foot button{width:100%;height:42px;border:none;border-radius:var(--lm-app-radius-group,14px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-control,14px);font-weight:650}


/* activity space icon preview and size v329 */
.life-icon-preview.map{position:relative;height:230px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:var(--lm-app-page,#f7f7f8);overflow:hidden}
.life-icon-preview.map>span{position:absolute;color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-small,12px)}
.life-icon-preview-role,.life-icon-preview-user{position:absolute;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 6px rgba(0,0,0,.22))}
.life-icon-preview-role{left:50%;top:52%;z-index:2}.life-icon-preview-user{left:66%;top:66%;z-index:3}
.life-icon-preview-role img,.life-icon-preview-user img{width:100%;height:100%;object-fit:contain}
.life-icon-preview-role.empty{border-radius:50%;background:var(--lm-app-selected,#333);opacity:.18}
.life-icon-size-row{display:grid;grid-template-columns:auto 1fr 42px;align-items:center;gap:var(--lm-app-space-2,8px);margin:10px 0 2px;font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#777)}
.life-icon-size-row input{width:100%;accent-color:#333}.life-icon-size-row em{font-style:normal;text-align:right;color:var(--lm-app-faint,#999)}
.life-avatar-pin,.life-avatar-pin img{width:var(--life-role-icon-size,34px)!important;height:var(--life-role-icon-size,34px)!important}
.life-avatar-pin img,.life-icon-preview-role img{transform:scale(var(--life-icon-fit,1));transform-origin:50% 50%}
.life-avatar-pin span{width:calc(var(--life-role-icon-size,34px) * .53)!important;height:calc(var(--life-role-icon-size,34px) * .53)!important;margin:calc(var(--life-role-icon-size,34px) * .235)!important}
.life-user-pin,.life-user-pin img{width:var(--life-user-icon-size,30px)!important;height:var(--life-user-icon-size,30px)!important}

/* 活动空间图标顶部小滑杆 v330 */
.life-icon-size-mini{display:grid;grid-template-columns:1fr 1fr;gap:var(--lm-app-space-2,8px);margin:9px 0 12px}.life-icon-size-mini label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--lm-app-space-2,6px);background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:var(--lm-app-radius-control,12px);padding:7px var(--lm-app-space-2,8px);font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#555)}.life-icon-size-mini input{width:100%;accent-color:#333}.life-icon-size-mini em{font-style:normal;color:var(--lm-app-faint,#999);font-size:var(--lm-app-font-small,11px);min-width:34px;text-align:right}

/* 活动空间图标固定保存 v331 */
.life-icon-page{overflow:hidden!important}
.life-icon-page .life-icon-box{flex:1;min-height:0;padding-bottom:var(--lm-app-space-4,16px)!important}
.life-icon-fixed-save{position:sticky;bottom:0;z-index:8;background:rgba(255,255,255,.96);backdrop-filter:var(--lm-app-backdrop,blur(12px));-webkit-backdrop-filter:var(--lm-app-backdrop,blur(12px));border-top:1px solid var(--lm-app-border,#f0f0f0);padding:10px 14px max(10px,env(safe-area-inset-bottom));box-sizing:border-box}
.life-icon-fixed-save .life-icon-save{margin:0!important}

/* 新的朋友页面父顶栏硬锁 v332 */
body.new-friend-chrome-lock #app-bar{display:none!important}
body.new-friend-chrome-lock #app-body{top:0!important}

/* 内置工具语言选择器与稳定绘制 */
#toolsPg{overflow-y:auto;overflow-x:hidden;overflow-anchor:none;transform:none!important;transition:none!important}
#toolsPg .tools-wrap{overflow:visible;-webkit-overflow-scrolling:auto}
#toolsPg .tool-group,#toolsPg .tool-group-body,#toolsPg .tool-item,#toolsPg .tool-expand{overflow-anchor:none}
.tool-language-select{min-width:92px;height:38px;border:1px solid var(--t-border);border-radius:var(--lm-app-radius-control,10px);background:var(--t-card);color:var(--lm-app-text,#333);padding:0 var(--lm-app-space-3,10px) 0 13px;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-2,8px);font:inherit;font-size:var(--lm-app-font-control,14px);flex-shrink:0}
.tool-language-select svg{width:16px;height:16px;color:var(--lm-app-muted,#777);flex:0 0 16px}
.tool-lang-sheet-bg{position:fixed;inset:0;z-index:100002;background:rgba(0,0,0,.36);display:flex;align-items:flex-end;touch-action:none}
.tool-lang-sheet{width:100%;max-height:74vh;background:var(--t-card);border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}
.tool-lang-sheet-head{height:52px;border-bottom:1px solid var(--t-border);display:flex;align-items:center;justify-content:center;position:relative;flex:0 0 52px;font-size:var(--lm-app-font-body,15px);font-weight:650;color:var(--lm-app-text,#222)}
.tool-lang-sheet-close{position:absolute;right:13px;top:8px;width:36px;height:36px;border:0;border-radius:50%;background:var(--lm-app-input,#f2f2f3);color:var(--lm-app-muted,#666);font-size:24px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}
.tool-lang-sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:var(--lm-app-space-1,4px) 0}
.tool-lang-option{width:100%;height:52px;border:0;border-bottom:1px solid #f0f0f1;background:var(--t-card);padding:0 var(--lm-app-space-5,20px);display:flex;align-items:center;justify-content:space-between;color:var(--lm-app-text,#333);font:inherit;font-size:var(--lm-app-font-body,15px);text-align:left}
.tool-lang-option:last-child{border-bottom:0}
.tool-lang-option:active{background:var(--t-hover)}
.tool-lang-option i{width:20px;height:20px;border:2px solid var(--lm-app-border,#aaa);border-radius:50%;box-sizing:border-box;flex:0 0 20px}
.tool-lang-option.selected i{border-color:var(--lm-app-mark,#333);box-shadow:var(--lm-app-radio-ring,inset 0 0 0 4px #fff);background:var(--lm-app-mark,#333)}

/* 工具主卡二级折叠 */
.tool-item.tool-has-expand{cursor:pointer}
.tool-detail-chevron{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--lm-app-faint,#999);flex:0 0 24px;border-radius:50%;transition:transform .18s,color .18s,background .18s}
.tool-detail-chevron svg{width:16px;height:16px;display:block}
.tool-item.tool-detail-open .tool-detail-chevron{transform:rotate(180deg);color:var(--lm-app-muted,#555);background:#f0f0f1}

.life-space-foot-left{display:flex;gap:var(--lm-app-space-2,8px);align-items:center}
.life-space-fav-link{border:0;background:#f4f4f5;border-radius:var(--lm-app-radius-small,8px);padding:3px var(--lm-app-space-2,8px);color:var(--lm-app-muted,#666);font-size:var(--lm-app-font-small,11px);min-height:20px}
.life-space-fav-link:active{color:var(--lm-app-text,#222)}
.life-fav-mask{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.32);display:flex;align-items:flex-end;justify-content:center}
.life-fav-box{width:100%;max-width:460px;max-height:82vh;background:var(--lm-app-surface,#fff);border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden}
.life-fav-head{display:flex;align-items:center;justify-content:space-between;padding:var(--lm-app-space-3,14px) var(--lm-app-space-4,16px);border-bottom:1px solid #f2f2f2;font-size:var(--lm-app-font-control,14px);font-weight:600;color:var(--lm-app-text,#222)}
.life-fav-close{border:none;background:transparent;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-faint,#999);padding:0 var(--lm-app-space-1,4px);line-height:1}
.life-fav-body{overflow-y:auto;padding:var(--lm-app-space-3,12px) var(--lm-app-space-3,14px);-webkit-overflow-scrolling:touch;flex:1;min-height:0;overscroll-behavior:contain}
.life-fav-empty{text-align:center;padding:36px var(--lm-app-space-3,10px);color:var(--lm-app-faint,#aaa);font-size:var(--lm-app-font-small,12px)}
.life-fav-card{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--lm-app-radius-group,14px);padding:var(--lm-app-space-3,12px) 13px;margin-bottom:10px}
.life-fav-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.life-fav-card-date{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999)}
.life-fav-card-del{border:none;background:transparent;font-size:var(--lm-app-font-small,11px);color:#c44;padding:0}
.life-fav-card-title{font-size:var(--lm-app-font-control,14px);font-weight:520;color:var(--lm-app-text,#222);line-height:1.45;margin-bottom:4px}
.life-fav-card-place{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);margin-bottom:6px}
.life-fav-card-motive{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#666);line-height:1.55;border-top:1px solid #f1f1f1;padding-top:var(--lm-app-space-2,8px);margin-top:6px}
.life-fav-card-detail{font-size:var(--lm-app-font-small,12px);color:var(--lm-app-muted,#888);line-height:1.55;border-top:1px solid #f3f3f3;padding-top:var(--lm-app-space-2,8px);margin-top:6px}
.life-fav-card-mood{display:inline-block;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-muted,#888);background:var(--lm-app-input,#fafafa);border:1px solid var(--lm-app-border,#eee);border-radius:999px;padding:2px var(--lm-app-space-2,8px);margin-top:8px}
.life-note-read{font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa);margin-left:6px;border:1px solid var(--lm-app-border,#ddd);border-radius:var(--lm-app-radius-small,6px);padding:1px var(--lm-app-space-1,4px);letter-spacing:0}

.life-item-note-row .life-note-meta{display:block;margin-top:2px;padding-top:0;margin-bottom:0;text-align:right}.life-item-note-row .life-note-meta em{font-style:normal;font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#bbb)}
.life-space-more-btn{border:0;background:transparent;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--lm-app-muted,#555);flex:0 0 32px;position:relative}
.life-space-more-btn svg{display:block}
.life-space-more-btn:active{opacity:.6}
.life-space-history-actions{position:relative}
.life-space-more-menu{position:absolute;top:100%;right:0;background:var(--lm-app-surface,#fff);border-radius:var(--lm-app-radius-small,8px);box-shadow:var(--lm-app-shadow,0 2px 12px rgba(0,0,0,.15));min-width:120px;padding:var(--lm-app-space-1,4px) 0;z-index:100}
.life-space-menu-item{padding:var(--lm-app-space-3,10px) var(--lm-app-space-4,16px);font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#333);white-space:nowrap}
.life-space-menu-item:active{background:var(--lm-app-page,#f5f5f5)}
.life-space-more-menu button.life-space-menu-item{display:block;width:100%;margin:0;border:0;background:transparent;text-align:left;font-family:inherit;cursor:pointer}
.life-space-mode-options{border-bottom:1px solid var(--lm-app-border,var(--t-border));padding-bottom:var(--lm-app-space-1,4px)}
.life-space-more-menu .life-space-mode-options [aria-checked="true"]{background:var(--lm-app-selected,var(--t-hover));color:var(--lm-app-selected-text,var(--t-text))}
._spSumMgr-box{background:var(--lm-app-page,#f7f7f7);width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}
._spSumMgr-head{height:50px;background:var(--lm-app-surface,#fff);display:flex;align-items:center;gap:var(--lm-app-space-3,10px);padding:0 var(--lm-app-space-3,14px);border-bottom:1px solid var(--lm-app-border,#e5e5e5);flex:0 0 50px;box-sizing:border-box}
._spSumMgr-back{border:0;background:transparent;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-text,#333);padding:0 var(--lm-app-space-2,6px);line-height:1}
._spSumMgr-head span{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--lm-app-text,#333)}
._spSumMgr-body{flex:1;overflow-y:auto;padding:var(--lm-app-space-3,12px) var(--lm-app-space-3,12px) 76px;-webkit-overflow-scrolling:touch;touch-action:pan-y;box-sizing:border-box}
._spSumMgr-top,._spSumMgr-card{background:var(--t-card,#fff);border:1px solid var(--t-border,#e5e5e5);border-radius:var(--lm-app-radius-small,8px)}
._spSumMgr-top{padding:13px;margin-bottom:10px}
._spSumMgr-info{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#555);margin:0}
._spSumMgr-cfg{display:block;margin-top:10px;padding-top:var(--lm-app-space-3,10px);border-top:1px solid var(--t-border,#e5e5e5)}
._spSumMgr-cfg-head{display:flex;align-items:center;gap:var(--lm-app-space-3,10px);cursor:pointer}
._spSumMgr-cfg-head>div:first-child{flex:1;min-width:0}
._spSumMgr-cfg-title{font-size:var(--lm-app-font-control,14px);color:var(--lm-app-text,#222);font-weight:400;line-height:1.35}
._spSumMgr-cfg-desc{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);line-height:1.45;margin-top:3px}
._spSumMgr-toggle{width:44px;height:26px;flex:0 0 44px;border-radius:var(--lm-app-radius-group,14px);background:var(--lm-app-border,#ddd);position:relative;cursor:pointer}
._spSumMgr-toggle.on{background:var(--lm-app-toggle-on,#333)}
._spSumMgr-toggle-dot{position:absolute;width:22px;height:22px;left:2px;top:2px;border-radius:50%;background:var(--lm-app-surface,#fff);transition:left .16s}
._spSumMgr-toggle.on ._spSumMgr-toggle-dot{left:20px}
._spSumMgr-cfg-detail{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--lm-app-space-3,12px);margin-top:9px;padding-top:9px;border-top:1px solid var(--t-border,#e5e5e5)}
._spSumMgr-cfg-detail input{width:100%;height:34px;border:1px solid var(--t-border,#e5e5e5);border-radius:var(--lm-app-radius-small,7px);background:var(--t-input,#fafafa);text-align:center;font-size:var(--lm-app-font-control,13px);box-sizing:border-box;padding:0}
._spSumMgr-cfg-detail button{width:100%;height:34px;padding:0 11px;border:0;border-radius:var(--lm-app-radius-small,7px);background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);font-size:var(--lm-app-font-small,12px);white-space:nowrap}
._spSumMgr-card.open ._spSumMgr-text{display:block;-webkit-line-clamp:unset;max-height:none;overflow:visible}
._spSumMgr-card{display:flex;gap:9px;padding:var(--lm-app-space-3,12px);margin-bottom:9px;position:relative;box-sizing:border-box}
._spSumMgr-card.chosen{background:var(--t-card,#fff)}
._spSumMgr-check{width:20px;height:20px;flex:0 0 20px;border:1.5px solid var(--lm-app-border,#bbb);border-radius:50%;margin-top:1px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
._spSumMgr-check.on{background:var(--lm-app-mark,#333);border-color:var(--lm-app-mark,#333)}
._spSumMgr-check.on::after{content:"";width:5px;height:9px;border:solid var(--lm-app-mark-text,#fff);border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}
._spSumMgr-main{min-width:0;flex:1}
._spSumMgr-card-head{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:0}
._spSumMgr-tag{font-size:var(--lm-app-font-small,10px);padding:2px var(--lm-app-space-2,6px);border-radius:var(--lm-app-radius-small,7px);background:var(--t-hover,#f0f0f0);color:var(--lm-app-muted,#777);line-height:1.4}
._spSumMgr-tag.active{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff)}
._spSumMgr-time{margin-left:auto;font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);line-height:1.4}
._spSumMgr-text{font-size:var(--lm-app-font-control,13px);line-height:1.6;color:var(--lm-app-text,#333);margin-top:8px;white-space:pre-wrap;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
._spSumMgr-card.open ._spSumMgr-text{display:block;-webkit-line-clamp:unset}
._spSumMgr-actions{display:flex;gap:var(--lm-app-space-2,8px);margin-top:10px;justify-content:flex-end}
._spSumMgr-edit{display:block;height:32px;padding:0 var(--lm-app-space-3,12px);border:1px solid var(--t-border,#e5e5e5);border-radius:var(--lm-app-radius-small,7px);background:var(--t-hover,#f5f5f5);color:var(--lm-app-text,#444);font-size:var(--lm-app-font-small,12px);white-space:nowrap}
._spSumMgr-empty{text-align:center;color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-control,13px);padding:64px var(--lm-app-space-3,12px)}
._spSumMgr-bar{position:absolute;left:0;right:0;bottom:0;height:58px;background:var(--t-card,#fff);border-top:1px solid var(--t-border,#e5e5e5);display:flex;z-index:2;padding:0}
._spSumMgr-bar button{flex:1;border:0;background:none;color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,13px);min-height:0}
._spSumMgr-bar ._spSumMgr-del{color:var(--lm-app-danger,#e64340)}
._spSumMgr-selected{flex:1;display:flex;align-items:center;justify-content:center;color:var(--lm-app-text,#333);font-size:var(--lm-app-font-control,13px)}

._spHist-head{height:50px;background:var(--lm-app-surface,#fff);display:flex;align-items:center;gap:var(--lm-app-space-3,10px);padding:0 var(--lm-app-space-3,14px);border-bottom:1px solid var(--lm-app-border,#e5e5e5);flex:0 0 50px;box-sizing:border-box}
._spHist-back{border:0;background:transparent;font-size:var(--lm-app-font-title,22px);color:var(--lm-app-text,#333);padding:0 var(--lm-app-space-2,6px);line-height:1}
._spHist-head span{font-size:var(--lm-app-font-body,15px);font-weight:600;color:var(--lm-app-text,#333)}
._spHist-body{flex:1;overflow-y:auto;padding:var(--lm-app-space-3,12px);-webkit-overflow-scrolling:touch;touch-action:pan-y;box-sizing:border-box}
._spHist-count{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-muted,#555);margin-bottom:10px}
._spHist-empty{text-align:center;color:var(--lm-app-faint,#bbb);font-size:var(--lm-app-font-control,13px);padding:64px var(--lm-app-space-3,12px)}
._spHist-card{background:var(--lm-app-surface,#fff);border:1px solid var(--lm-app-border,#e5e5e5);border-radius:var(--lm-app-radius-small,8px);padding:var(--lm-app-space-3,12px);margin-bottom:9px;box-sizing:border-box}
._spHist-cardTop{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,10px)}
._spHist-title{font-size:var(--lm-app-font-control,13px);color:var(--lm-app-text,#333);font-weight:600}
._spHist-sub{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#999);margin-top:3px}
._spHist-time{font-size:var(--lm-app-font-small,11px);color:var(--lm-app-faint,#aaa);white-space:nowrap}
._spHist-detail{display:none;margin-top:10px;padding-top:var(--lm-app-space-3,10px);border-top:1px solid var(--lm-app-border,#eee)}
._spHist-card[data-open="1"] ._spHist-detail{display:block}
._spHist-msg{margin-bottom:8px;display:flex;flex-direction:column}
._spHist-msg.me{align-items:flex-end}
._spHist-msg.them{align-items:flex-start}
._spHist-meta{font-size:var(--lm-app-font-small,10px);color:var(--lm-app-faint,#aaa);margin-bottom:3px}
._spHist-bubble{max-width:82%;border-radius:var(--lm-app-radius-control,10px);padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px);font-size:var(--lm-app-font-control,13px);line-height:1.5;white-space:pre-wrap;box-sizing:border-box}
._spHist-msg.me ._spHist-bubble{background:var(--lm-app-selected,#333);color:var(--lm-app-selected-text,#fff);text-align:left}
._spHist-msg.them ._spHist-bubble{background:#f2f2f2;color:var(--lm-app-text,#333)}

.life-space-history-box{min-height:34vh}
.life-space-history-empty{min-height:150px;display:flex;align-items:center;justify-content:center}
.life-space-more-menu{top:auto;bottom:calc(100% - 8px);max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch}

/* Fix space dialog menu: keep it inside the sheet instead of floating upward. */
.life-space-more-menu{top:100%;bottom:auto;right:0;z-index:1000;max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.life-space-history-box{min-height:36vh}
.life-space-history-head{overflow:visible}

/* Responsive application layout; the environment contract lives in viewport-shell.css. */
.wrap{width:100%;height:var(--lm-app-height)!important;min-height:0}
#dock-wrap{padding-left:max(12px,var(--lm-safe-left));padding-right:max(12px,var(--lm-safe-right));padding-bottom:max(12px,var(--lm-safe-bottom))}
#app{width:100%;height:var(--lm-app-height);inset:0}
html.lm-ios.lm-app-active body{position:fixed;inset:0;width:100%;height:var(--lm-app-height);overflow:hidden;background:var(--t-page)}
html.lm-ios.lm-app-active{background:var(--t-page)}
html.lm-ios.lm-app-active body::before{opacity:0}
html.lm-ios.lm-app-active body::after{opacity:0}
html.lm-ios.lm-app-active .wrap{background:var(--t-page)}
html.lm-ios #app{visibility:hidden;pointer-events:none;-webkit-transform:none!important;transform:none!important;transition:none!important}
html.lm-ios #app.open{visibility:visible;pointer-events:auto}
html.lm-ios.lm-app-active #app{top:0;right:0;bottom:0;left:0;width:auto;height:var(--lm-app-height);min-height:var(--lm-app-height);-webkit-backface-visibility:hidden;backface-visibility:hidden}
/* The root document owns native keyboard pan; the app's top never compensates it. */
html.lm-ios.lm-app-visual-managed #app{top:0;bottom:auto;height:var(--lm-visual-height);min-height:0}
/* The desktop stays inactive for the entire foreground page, including keyboard transitions. */
html.lm-ios.lm-app-active:not(.lm-embedded) .wrap>#desk,
html.lm-ios.lm-app-active:not(.lm-embedded) .wrap>#dots,
html.lm-ios.lm-app-active:not(.lm-embedded) .wrap>#dock-wrap,
html.lm-ios[data-lm-role-front]:not(.lm-embedded) .wrap>#desk,
html.lm-ios[data-lm-role-front]:not(.lm-embedded) .wrap>#dots,
html.lm-ios[data-lm-role-front]:not(.lm-embedded) .wrap>#dock-wrap{visibility:hidden;pointer-events:none}
/* Independent role editors retain background geometry without painting covered pages. */
html.lm-ios.lm-ios-input-active[data-lm-role-front]:not(.lm-embedded) #app,
html.lm-ios.lm-ios-input-active[data-lm-role-front="detail"]:not(.lm-embedded) #rolePage,
html.lm-ios.lm-ios-input-active[data-lm-role-front="create"]:not(.lm-embedded) #rolePage,
html.lm-ios.lm-ios-input-active[data-lm-role-front="create"]:not(.lm-embedded) #roleDetailPage,
html.lm-ios.lm-ios-input-active[data-lm-role-front="model"]:not(.lm-embedded) #rolePage,
html.lm-ios.lm-ios-input-active[data-lm-role-front="model"]:not(.lm-embedded) #roleDetailPage,
html.lm-ios.lm-ios-input-active[data-lm-role-front="model"]:not(.lm-embedded) #roleCreatePage{opacity:0!important;pointer-events:none!important}
#app-bar{height:calc(var(--lm-topbar) + var(--lm-safe-top));padding-top:var(--lm-safe-top);padding-left:max(8px,var(--lm-safe-left));padding-right:max(8px,var(--lm-safe-right));box-sizing:border-box}
#app-body{min-height:0;padding-right:var(--lm-safe-right);padding-bottom:var(--lm-safe-bottom);padding-left:var(--lm-safe-left);box-sizing:border-box}
#app-body[data-lm-shell-app="chat"],#app-body[data-lm-shell-app="gallery"],#app-body[data-lm-shell-app="forum"],#app-body[data-lm-shell-app="focus"],#app-body[data-lm-shell-app="shop"],#app-body[data-lm-shell-app="bookstore"],#app-body[data-lm-shell-app="marketplace"],#app-body[data-lm-shell-app="textAdventure"],#app-body[data-lm-shell-app="farm"]{padding-bottom:0}
#app-body>.lm-music-page{position:absolute;inset:0;width:100%!important;min-width:0;height:100%;max-width:none!important}
html.lm-keyboard-open:not(.lm-app-visual-managed) body:not(.chat-chrome-lock) #app-body:not(.lm-forum-app){padding-bottom:var(--lm-keyboard-inset)}
html.lm-ios.lm-keyboard-open body{overscroll-behavior:none}
html.lm-ios.lm-keyboard-open #app-body{overscroll-behavior:none}
html.lm-ios.lm-ios-input-active #app-body,html.lm-ios.lm-ios-input-active #app-body>iframe{background:var(--t-page)!important}
html.lm-ios input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
html.lm-ios textarea,
html.lm-ios select,
html.lm-ios [contenteditable="true"]{font-size:var(--lm-app-font-section,16px)!important}
html.lm-ios.lm-standalone:not(.lm-embedded) body.chat-chrome-lock #app{padding-top:var(--lm-safe-top);box-sizing:border-box}
html.lm-ios.lm-app-active.lm-primary-chat-detail:not(.lm-embedded) body.chat-chrome-lock #app{padding-top:0}
html:not(.lm-ios) body.chat-chrome-lock #app-body,body.world-story-chrome-lock #app-body,body.new-friend-chrome-lock #app-body{padding-top:var(--lm-safe-top)}
body.shop-chrome-lock #app-bar,body.forum-chrome-lock #app-bar{display:none!important}
body.shop-chrome-lock #app-body,body.forum-chrome-lock #app-body{top:0!important}
html.lm-ios body.shop-chrome-lock #app-body>.lm-shop{padding-top:var(--lm-safe-top);box-sizing:border-box}
html.lm-ios body.forum-chrome-lock #app-body>.lm-forum{top:var(--lm-safe-top)}
html.lm-ios .role-header,
html.lm-ios .rd-header,
html.lm-ios .ms-header,
html.lm-ios .api-modal-header,
html.lm-ios .mem-header,
html.lm-ios .lm-role-appearance-head,
html.lm-ios .lm-ta-music-head{--lm-safe-header-height:44px}
html.lm-ios .lm-ta-music-head>.lm-ta-music-back{
  top:var(--lm-safe-top);
  height:44px;
  display:flex;
  align-items:center;
}
html.lm-ios .lm-role-appearance-head,
html.lm-ios #mcpRolePg>.lm-safe-page-header{padding-bottom:0!important}
html.lm-ios .lm-bank-head,html.lm-ios .mn-head,html.lm-ios .rl-head,html.lm-ios .lm-ta-detail-head{--lm-safe-header-height:44px}
html.lm-ios .lm-forum-search-head{--lm-safe-header-height:44px}
html.lm-ios .lm-safe-page-own-top>.lm-safe-page-header>.lm-bank-back,
html.lm-ios .lm-safe-page-own-top>.lm-safe-page-header>.mn-back,
html.lm-ios .lm-safe-page-own-top>.lm-safe-page-header>.rl-back,
html.lm-ios .lm-safe-page-own-top>.lm-safe-page-header>.lm-ta-detail-back{
  top:var(--lm-safe-top)!important;
  height:var(--lm-safe-header-height,44px);
  display:flex;
  align-items:center;
}
html.lm-ios .lm-ta-detail>.lm-ta-detail-head{
  height:calc(44px + var(--lm-safe-top))!important;
  min-height:calc(44px + var(--lm-safe-top))!important;
  padding-top:var(--lm-safe-top)!important;
  box-sizing:border-box;
}
html.lm-ios .lm-ta-detail>.lm-ta-detail-head>.lm-ta-detail-back{top:var(--lm-safe-top)!important;height:44px;display:flex;align-items:center}
html.lm-ios body.world-story-chrome-lock .world-sub-bar.lm-safe-page-header{margin-top:0!important;min-height:42px}
html.lm-ios .call-overlay{padding-top:var(--lm-safe-top);box-sizing:border-box}
html.lm-ios .call-menu-btn{top:calc(12px + var(--lm-safe-top))}
html.lm-ios .call-menu-dropdown{top:calc(52px + var(--lm-safe-top))}
.role-header,.rd-header{height:calc(48px + var(--lm-safe-top));padding-top:var(--lm-safe-top);padding-left:max(16px,var(--lm-safe-left));padding-right:max(16px,var(--lm-safe-right));box-sizing:border-box;flex-shrink:0}
.role-pg,.role-detail-pg,.role-create-pg,.model-setting-pg,.memory-page,.api-modal-bg{height:var(--lm-app-height);max-height:var(--lm-app-height)}
.api-modal-header,.ms-header{height:calc(50px + var(--lm-safe-top));min-height:calc(50px + var(--lm-safe-top));padding-top:var(--lm-safe-top);padding-bottom:0;box-sizing:border-box;flex-shrink:0}
.mem-header{height:calc(50px + var(--lm-safe-top));min-height:calc(50px + var(--lm-safe-top));padding:var(--lm-safe-top) 20px 0;box-sizing:border-box;flex-shrink:0}
#mcpRolePg .lm-safe-page-header{min-height:calc(50px + var(--lm-safe-top));padding-top:var(--lm-safe-top)!important;box-sizing:border-box}
html:not(.lm-ios) ._spSumMgr-head,html:not(.lm-ios) ._spHist-head{height:calc(50px + var(--lm-safe-top));flex-basis:calc(50px + var(--lm-safe-top));padding-top:var(--lm-safe-top);box-sizing:border-box}
html:not(.lm-ios) .lm-fsm-head,html:not(.lm-ios) .wc-sm-head{height:calc(50px + var(--lm-safe-top))!important;flex-basis:calc(50px + var(--lm-safe-top))!important;padding-top:var(--lm-safe-top);box-sizing:border-box}
html:not(.lm-ios) .lm-fsm-back,html:not(.lm-ios) .wc-sm-back{top:var(--lm-safe-top)!important}
html.lm-ios .lm-fsm-back,html.lm-ios .wc-sm-back{top:var(--lm-safe-top)!important;height:44px!important}
html.lm-ios .wc-sm-head [data-a="search"],html.lm-ios ._spHist-head [data-a="search"]{top:calc(2px + var(--lm-safe-top))!important}
html.lm-ios .lm-fsm-page .lm-fsm-body{padding-bottom:calc(76px + var(--lm-safe-bottom))!important}
html.lm-ios .lm-fsm-page:not(.selecting) .lm-fsm-body{padding-bottom:calc(12px + var(--lm-safe-bottom))!important}
html.lm-ios .wc-sm-page .wc-sm-body{padding-bottom:calc(76px + var(--lm-safe-bottom))!important}
html.lm-ios .wc-sm-page:not(.selecting) .wc-sm-body{padding-bottom:calc(12px + var(--lm-safe-bottom))!important}
html.lm-ios ._spSumMgr-box>._spSumMgr-body{padding-bottom:calc(76px + var(--lm-safe-bottom))!important}
html.lm-ios.lm-keyboard-open .model-setting-pg{overflow:hidden}
html.lm-ios.lm-keyboard-open .model-setting-pg .ms-body{padding-bottom:calc(16px + var(--lm-keyboard-inset));overscroll-behavior:contain}
html.lm-ios.lm-keyboard-open .set-sub{overscroll-behavior:contain}
html.lm-ios.lm-keyboard-open .pw-modal-bg.show,html.lm-ios.lm-keyboard-open .pw-opts-bg.show{top:var(--lm-visual-page-top,0px);bottom:auto;height:var(--lm-visual-height);max-height:var(--lm-visual-height)}
html.lm-ios.lm-keyboard-open .pw-modal-bg.show{overflow:hidden}
html.lm-ios.lm-keyboard-open .pw-modal-box{max-height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.rd-av-action-sheet,.tool-lang-sheet,.life-user-menu{padding-bottom:max(12px,var(--lm-safe-bottom))}
.call-overlay{height:var(--lm-app-height)}
.call-bg,.call-bg-img,.call-blur{height:var(--lm-call-scene-height,var(--lm-app-height))}
/* Wallpaper keeps its full call canvas while the shared viewport owns input resize. */
.call-overlay.call-keyboard-open{padding-bottom:0}
.call-overlay.call-keyboard-open .call-bottom{display:none}
.call-overlay.call-keyboard-open .call-avatar-ring{width:60px;height:60px;margin:0}
.call-middle{min-height:0}
.call-overlay.call-keyboard-open .call-middle{flex:1 1 0}
.call-overlay.call-keyboard-open .call-messages{flex:1 1 auto;min-height:0}
.call-input-row{flex-shrink:0}
html.lm-ios.lm-keyboard-open .call-overlay{top:var(--lm-visual-page-top,0px);height:var(--lm-visual-height,var(--lm-app-height))}
.life-manage-bar{bottom:max(14px,var(--lm-safe-bottom))}

@media(min-width:700px){
  .pg{grid-template-columns:repeat(4,minmax(76px,112px));justify-content:center;column-gap:var(--lm-app-space-4,16px)}
  #dock{max-width:520px;margin:0 auto}
  .modal-box,.cst-dlg-box{max-width:420px}
}
@media(max-height:650px){
  .pg{grid-template-rows:repeat(6,82px);padding-top:var(--lm-app-space-2,8px)}
  .ic{height:78px}.ic-box{width:52px;height:52px}
  #dock{height:72px}
}
.wc-narration mark.lm-book-dialogue{color:inherit;background-color:rgba(135,135,135,.25);padding:.12em .25em .08em;margin:-.12em -.06em -.08em;border-radius:var(--lm-app-radius-small,2px);-webkit-box-decoration-break:clone;box-decoration-break:clone}

.world-story-reader{--wc-think-surface:var(--lm-app-input,var(--t-input));--wc-think-text:var(--lm-app-muted,var(--t-sub));--wc-think-border:var(--lm-app-border,var(--t-border));--wc-think-radius:var(--lm-app-radius-control,10px);--wc-think-max-height:300px}
.world-story-reader .wc-think-card{margin:var(--lm-app-space-2,8px) var(--wc-x);padding:0 var(--lm-app-space-3,14px);background:var(--wc-think-surface);color:var(--wc-think-text);border-radius:var(--wc-think-radius);font-size:var(--lm-app-font-small,12px);min-width:0;overflow-wrap:anywhere}
.world-story-reader .wc-think-head{display:flex;align-items:center;gap:var(--lm-app-space-1,4px);min-height:44px;list-style:none;cursor:pointer;font-size:var(--lm-app-font-control,13px)}
.world-story-reader .wc-think-head::-webkit-details-marker{display:none}
.world-story-reader .wc-think-head img{width:16px;height:16px;flex:0 0 16px}
.world-story-reader .wc-think-head .tk-arrow{margin-left:auto}
.world-story-reader .wc-think-card[open] .tk-arrow{transform:rotate(90deg)}
.world-story-reader .wc-think-body{padding:var(--lm-app-space-2,8px) 0;margin:0;border-top:1px solid var(--wc-think-border);white-space:pre-wrap;line-height:1.5;max-height:var(--wc-think-max-height);overflow-y:auto;overflow-wrap:anywhere}

/* 大世界统一时间设置 */
[data-lm-app="world-story"]{
  --wc-time-overlay:rgba(0,0,0,.45);
  --wc-time-surface:var(--t-card,#fff);
  --wc-time-field:var(--t-input,#f7f7f8);
  --wc-time-border:var(--t-border,#dedee2);
  --wc-time-text:#303136;
  --wc-time-muted:#7d7f87;
  --wc-time-selected:#e7e7ea;
  --wc-time-selected-text:#303136;
  --wc-time-radius:12px;
}
.wc-time-setting{margin:2px 0 18px;padding:var(--lm-app-space-3,14px) 0 0;border-top:1px solid var(--wc-time-border);color:var(--wc-time-text)}
.wc-time-switch-row,.wc-time-value-row{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,14px);min-width:0}
.wc-time-setting-title{font-size:var(--lm-app-font-control,14px);font-weight:600;line-height:1.35}
.wc-time-setting-status{max-width:220px;margin-top:3px;color:var(--wc-time-muted);font-size:var(--lm-app-font-small,11px);line-height:1.4;overflow-wrap:anywhere}
.wc-time-switch{position:relative;display:inline-block;flex:0 0 44px;width:44px;height:24px;cursor:pointer}
.wc-time-switch input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.wc-time-track{position:absolute;inset:0;border-radius:var(--lm-app-radius-control,12px);background:#c9cacf;transition:background .18s ease}
.wc-time-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--lm-app-surface,#fff);box-shadow:var(--lm-app-shadow,0 1px 3px rgba(0,0,0,.2));transition:left .18s ease}
.wc-time-switch input:checked~.wc-time-track{background:#777981}
.wc-time-switch input:checked~.wc-time-thumb{left:22px}
.wc-time-switch input:focus-visible~.wc-time-track{outline:2px solid #8d8f97;outline-offset:2px}
.role-direct-chat-row{display:flex;align-items:center;justify-content:space-between;gap:var(--lm-app-space-3,14px);padding:var(--lm-app-space-4,18px) 0;border-top:1px solid var(--lm-app-border,var(--t-border));color:var(--lm-app-text,var(--t-text));font-size:var(--lm-app-font-control,14px);line-height:1.5}
.role-direct-chat-row>span{min-width:0;overflow-wrap:anywhere}
.wc-time-setting-body{margin-top:12px;padding:var(--lm-app-space-3,10px) 0 0;border-top:1px solid var(--wc-time-border)}
.wc-time-value-row>span{flex:0 0 auto;color:var(--wc-time-muted);font-size:var(--lm-app-font-small,12px)}
.wc-time-value{min-width:0;max-width:205px;padding:var(--lm-app-space-2,8px) var(--lm-app-space-3,10px);border:1px solid var(--wc-time-border);border-radius:var(--lm-app-radius-control,9px);background:var(--wc-time-field);color:var(--wc-time-text);font:inherit;font-size:var(--lm-app-font-control,13px);line-height:1.3;text-align:right;cursor:pointer}
.wc-time-hint{margin-top:7px;color:var(--wc-time-muted);font-size:var(--lm-app-font-small,11px);line-height:1.45;overflow-wrap:anywhere}
.wc-time-config-actions,.wc-time-picker-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--lm-app-space-3,10px)}
.wc-time-button{min-height:42px;padding:9px var(--lm-app-space-3,12px);border:1px solid var(--wc-time-border);border-radius:var(--lm-app-radius-control,10px);background:var(--wc-time-field);color:var(--wc-time-text);font:inherit;font-size:var(--lm-app-font-control,14px);line-height:1.2;cursor:pointer}
.wc-time-button-primary{border-color:var(--wc-time-selected);background:var(--wc-time-selected);color:var(--wc-time-selected-text);font-weight:600}
.wc-time-button:disabled{opacity:.58;cursor:default}
.wc-time-picker-mask{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;padding:max(14px,var(--lm-safe-top)) max(14px,var(--lm-safe-right)) max(14px,var(--lm-safe-bottom)) max(14px,var(--lm-safe-left));box-sizing:border-box;background:var(--wc-time-overlay)}
.wc-time-picker-card{width:min(86vw,320px);max-height:calc(var(--lm-app-height,100vh) - max(28px,var(--lm-safe-top)) - max(28px,var(--lm-safe-bottom)));overflow-y:auto;padding:var(--lm-app-space-4,18px);border-radius:var(--lm-app-radius-group,14px);background:var(--wc-time-surface);box-shadow:var(--lm-app-shadow,0 8px 28px rgba(0,0,0,.18));box-sizing:border-box;-webkit-overflow-scrolling:touch}
.wc-time-picker-title{margin-bottom:17px;color:var(--wc-time-text);font-size:var(--lm-app-font-section,16px);font-weight:600;text-align:center}
.wc-time-picker-row{display:flex;align-items:center;justify-content:center;gap:var(--lm-app-space-2,6px);min-width:0;margin-bottom:14px;color:var(--wc-time-muted);font-size:var(--lm-app-font-small,12px);white-space:nowrap}
.wc-time-picker-clock{margin:2px 0 18px;font-size:var(--lm-app-font-title,17px);color:var(--wc-time-text)}
.wc-time-picker-input{width:52px;min-width:0;height:38px;padding:var(--lm-app-space-2,6px);border:1px solid var(--wc-time-border);border-radius:var(--lm-app-radius-small,8px);background:var(--wc-time-field);color:var(--wc-time-text);font:inherit;font-size:var(--lm-app-font-section,16px);text-align:center;box-sizing:border-box}
.wc-time-picker-year{width:70px}
@media(max-width:360px){.wc-time-picker-card{width:min(92vw,320px);padding:var(--lm-app-space-4,16px) var(--lm-app-space-3,14px)}.wc-time-picker-row{gap:var(--lm-app-space-1,4px)}.wc-time-picker-input{width:48px}.wc-time-picker-year{width:66px}.wc-time-setting-status{max-width:180px}}
@media(max-height:600px){.wc-time-picker-mask{align-items:flex-start}.wc-time-picker-card{margin-top:8px}.wc-time-picker-title{margin-bottom:12px}.wc-time-picker-row{margin-bottom:10px}.wc-time-picker-clock{margin-bottom:14px}}

/* Saved rows survive short viewports and dynamic browser bars. */
#pages .pg{overflow-y:auto;overflow-x:hidden;grid-auto-rows:94px;align-content:start;overscroll-behavior:contain;scrollbar-width:none}
@media(max-height:700px){#pages .pg{grid-auto-rows:82px}}
.desktop-move-menu{position:fixed;z-index:200;width:148px;padding:6px;display:grid;gap:4px;background:var(--t-card,#fff);border:1px solid var(--t-border,#ddd);border-radius:12px;box-shadow:0 6px 22px #0002}
.desktop-move-menu button{min-height:40px;border:0;border-radius:8px;background:var(--t-hover,#f3f3f3);color:var(--t-text,#222);font:inherit}
