.action-sheet-backdrop{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);display:flex;align-items:flex-end;justify-content:center;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:100001;padding:0 8px calc(8px + env(safe-area-inset-bottom,0px));animation:action-sheet-backdrop-in .18s ease-out}@media(min-width:720px){.action-sheet-backdrop{align-items:center;padding:0 16px}}.action-sheet-wrap{width:100%;max-width:480px;display:flex;flex-direction:column;gap:8px;animation:action-sheet-slide-in .22s cubic-bezier(.22,.61,.36,1)}.action-sheet-panel{background:var(--bg-surface);border-radius:14px;overflow:hidden;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.action-sheet-header{padding:14px 16px 10px;text-align:center;border-bottom:.5px solid var(--border-subtle, rgba(120, 120, 128, .3))}.action-sheet-title{font-size:.88rem;font-weight:600;color:var(--text-primary)}.action-sheet-message{font-size:.8rem;color:var(--text-secondary);margin-top:4px;line-height:1.35}.action-sheet-row{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 16px;background:transparent;border:0;color:var(--text-primary);font-size:1rem;cursor:pointer;transition:background .12s;text-align:center;min-height:44px}.action-sheet-row+.action-sheet-row{border-top:.5px solid var(--border-subtle, rgba(120, 120, 128, .3))}.action-sheet-row:active:not(:disabled){background:var(--bg-hover, rgba(120, 120, 128, .15))}@media(hover:hover)and (pointer:fine){.action-sheet-row:hover:not(:disabled){background:var(--bg-hover, rgba(120, 120, 128, .15))}}.action-sheet-row.is-destructive{color:#ef4444}.action-sheet-row.is-disabled{color:var(--text-muted);cursor:not-allowed}.action-sheet-row-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.action-sheet-row-label{flex:0 0 auto}.action-sheet-cancel-panel .action-sheet-cancel{font-weight:600;color:var(--accent-primary)}@keyframes action-sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes action-sheet-slide-in{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.action-sheet-backdrop,.action-sheet-wrap{animation:none}}.pswp{--pswp-bg: #000;--pswp-placeholder-bg: #222;--pswp-root-z-index: 100000;--pswp-preloader-color: rgba(79, 79, 79, .4);--pswp-preloader-color-secondary: rgba(255, 255, 255, .9);--pswp-icon-color: #fff;--pswp-icon-color-secondary: #4f4f4f;--pswp-icon-stroke-color: #4f4f4f;--pswp-icon-stroke-width: 2px;--pswp-error-text-color: var(--pswp-icon-color)}.pswp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--pswp-root-z-index);display:none;touch-action:none;outline:0;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{transform:translateZ(0);will-change:opacity}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__content,.pswp__img,.pswp__zoom-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:grab}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:zoom-out}.pswp__container,.pswp__img,.pswp__button,.pswp__counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{margin:auto;font-size:1em;line-height:1;color:var(--pswp-error-text-color)}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4,0,.22,1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{position:relative;display:block;width:50px;height:60px;padding:0;margin:0;overflow:hidden;cursor:pointer;background:none;border:0;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none}.pswp__button:hover,.pswp__button:active,.pswp__button:focus{transition:none;padding:0;background:none;border:0;box-shadow:none;opacity:1}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary);position:absolute;top:14px;left:9px;width:32px;height:32px;overflow:hidden;pointer-events:none}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}div.pswp__img--placeholder,.pswp__img--with-bg{background:var(--pswp-placeholder-bg)}.pswp__top-bar{position:absolute;left:0;top:0;width:100%;height:60px;display:flex;flex-direction:row;justify-content:flex-end;z-index:10;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{position:absolute;width:75px;height:100px;top:50%;margin-top:-50px}.pswp__button--arrow:disabled{display:none;cursor:default}.pswp__button--arrow .pswp__icn{top:50%;margin-top:-30px;width:60px;height:60px;background:none;border-radius:0}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{right:auto;left:0}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scaleX(-1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{position:relative;overflow:hidden;width:50px;height:60px;margin-right:auto}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:pswp-clockwise .6s linear infinite}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pswp__counter{height:30px;margin-top:15px;margin-inline-start:20px;font-size:14px;line-height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85}.pswp--one-slide .pswp__counter{display:none}.stream-overlay{position:fixed;inset:0;z-index:800;display:flex;align-items:center;justify-content:center;overscroll-behavior:none}.stream-backdrop{position:absolute;inset:0;background:#000000eb}.stream-container{position:relative;z-index:1;width:100%;height:100%;max-width:480px;display:flex;flex-direction:column;touch-action:manipulation;overscroll-behavior-x:none}@media(min-width:768px){.stream-container{width:520px;max-width:520px;height:90vh;max-height:920px;border-radius:20px;overflow:hidden;box-shadow:0 8px 48px #00000080,0 0 0 1px #ffffff0f}}@media(min-width:1200px){.stream-container{width:540px;max-width:540px;height:92vh;max-height:960px}}.stream-kb-hint{display:none}@media(min-width:768px){.stream-kb-hint{display:flex;position:absolute;bottom:20px;right:-140px;z-index:10;flex-direction:column;gap:6px;font-size:12px;color:#ffffff59;pointer-events:none;animation:fadeInHint var(--dur-gentle) ease-out 1.5s both}.stream-kb-hint kbd{display:inline-block;padding:2px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;font-family:inherit;font-size:11px;margin-right:6px}@keyframes fadeInHint{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}}.stream-back-btn{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));left:16px;z-index:10;width:40px;height:40px;min-width:44px;min-height:44px;border-radius:50%;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-micro)}@media(hover:hover)and (pointer:fine){.stream-back-btn:hover{background:#000000a6}}.stream-pager{flex:1;overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none}.stream-pager::-webkit-scrollbar{display:none}.stream-page{width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;position:relative;background:var(--bg-base, #0a0a14);flex-shrink:0}.stream-media{position:relative;flex:0 0 55%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.stream-media .xhs-text-cover{width:100%;height:100%;aspect-ratio:auto}.stream-media-fallback{width:100%;height:100%;background:#000}.stream-heart-burst{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:stream-heart-burst .7s cubic-bezier(.22,1,.36,1) forwards;z-index:5}@keyframes stream-heart-burst{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1.15)}55%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.2)}}@media(prefers-reduced-motion:reduce){.stream-heart-burst{animation:stream-heart-burst-reduced .4s ease-out forwards}@keyframes stream-heart-burst-reduced{0%{opacity:0}30%{opacity:1}to{opacity:0}}}.stream-info{flex:1;padding:16px 20px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.stream-title{font-size:18px;font-weight:700;color:var(--text-primary, #e4e4e7);line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stream-content-preview{font-size:14px;color:var(--text-secondary, #a1a1aa);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.stream-author{display:flex;align-items:center;gap:10px}.stream-author-avatar{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.stream-author-avatar-fallback{background:linear-gradient(135deg,var(--accent-primary, #15b886),#7c3aed);display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;font-weight:700}.stream-author-name{font-size:14px;font-weight:600;color:var(--text-primary, #e4e4e7)}.stream-follow-btn{margin-left:auto;display:flex;align-items:center;gap:4px;padding:5px 12px;border-radius:16px;border:1px solid var(--accent-primary, #15b886);background:transparent;color:var(--accent-primary, #15b886);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--dur-micro)}@media(hover:hover)and (pointer:fine){.stream-follow-btn:hover{background:#15b8861a}}.stream-follow-btn:disabled{opacity:.5;cursor:default}.stream-followed-badge{margin-left:auto;display:flex;align-items:center;gap:4px;padding:5px 12px;font-size:13px;font-weight:500;color:var(--text-secondary, #a1a1aa)}.stream-top-comments{display:flex;flex-direction:column;gap:6px;padding-top:4px}.stream-top-comment{font-size:13px;color:var(--text-secondary, #a1a1aa);line-height:1.5}.stream-top-comment-name{font-weight:600;color:var(--text-primary, #e4e4e7);margin-right:6px}.stream-action-bar{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg-base, #0a0a14),transparent)}@media(min-width:768px){.stream-action-bar{padding:16px 32px;justify-content:center;gap:48px}.stream-action{flex-direction:row;gap:6px;font-size:13px}}.stream-action{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--text-muted, #71717a);cursor:pointer;font-size:11px;transition:color var(--dur-micro),transform var(--dur-micro)}.stream-action:active{transform:scale(.9)}.stream-action.liked{color:var(--accent-danger, #ef4444)}.stream-loading,.stream-error,.stream-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted, #71717a);font-size:14px}.stream-spinner{width:24px;height:24px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--accent-primary, #15b886);border-radius:50%;animation:spin var(--dur-spin) linear infinite}.stream-error button{padding:6px 20px;border-radius:16px;border:1px solid var(--accent-primary, #15b886);background:transparent;color:var(--accent-primary, #15b886);cursor:pointer}.media-viewer{width:100%;height:100%;position:relative}.media-track{display:flex;width:100%;height:100%;overflow-x:scroll;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y}.media-track::-webkit-scrollbar{display:none}.media-slide{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;flex-shrink:0;scroll-snap-align:start;scroll-snap-stop:always}.media-counter{position:absolute;top:12px;right:12px;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:12px;padding:2px 8px;border-radius:10px}.media-dots{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:5px}.media-dot{width:6px;height:6px;border-radius:50%;background:#fff6;transition:background var(--dur-fast)}.media-dot.active{background:#fff}.comments-backdrop{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);z-index:850;animation:fadeIn var(--dur-fast) ease}.comments-sheet{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;height:60vh;background:var(--bg-card, #1a1a2e);border-radius:16px 16px 0 0;z-index:851;display:flex;flex-direction:column;box-shadow:0 -4px 32px #0006;animation:xhsSlideUp var(--dur-normal) var(--ease-ios-push);overscroll-behavior-x:none;touch-action:pan-y}.comments-drag-handle{padding:12px 0 8px;display:flex;justify-content:center;cursor:grab}.comments-handle-bar{width:36px;height:4px;border-radius:2px;background:#ffffff2e}.comments-header{display:flex;justify-content:space-between;align-items:center;padding:0 16px 10px;font-size:15px;font-weight:600;color:var(--text-primary, #e4e4e7)}.comments-header button{background:none;border:none;color:var(--text-muted, #71717a);cursor:pointer}.comments-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px}.comments-top-section{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}.comments-top-label{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:#f59e0b;margin-bottom:8px}.comment-item{display:flex;gap:10px;padding:8px 0}.comment-item-top{background:#f59e0b0d;border-radius:8px;padding:8px}.comment-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,var(--accent-primary, #15b886),#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600}.comment-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.comment-body{flex:1;min-width:0}.comment-name{font-size:12px;font-weight:600;color:var(--text-muted, #71717a)}.comment-text{font-size:14px;color:var(--text-primary, #e4e4e7);line-height:1.5;margin:2px 0 0;word-break:break-word}.comment-likes{flex-shrink:0;font-size:12px;color:var(--text-muted, #71717a);align-self:center}.comment-delete-btn{flex-shrink:0;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-muted, #71717a);cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro)}@media(hover:hover)and (pointer:fine){.comment-delete-btn:hover{background:color-mix(in srgb,var(--text-danger, #ef4444) 12%,transparent);color:var(--text-danger, #ef4444)}}.comment-delete-btn:active{background:color-mix(in srgb,var(--text-danger, #ef4444) 18%,transparent);color:var(--text-danger, #ef4444)}.comments-loading,.comments-error,.comments-empty,.comments-end{text-align:center;padding:24px 0;font-size:13px;color:var(--text-muted, #71717a)}.comments-input{flex-shrink:0;display:flex;gap:8px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}.comments-input input{flex:1;padding:10px 16px;border-radius:20px;border:1px solid var(--border-subtle, rgba(255, 255, 255, .1));background:var(--bg-surface, rgba(255, 255, 255, .05));color:var(--text-primary, #e4e4e7);font-size:16px;outline:none;transition:border-color var(--dur-micro)}.comments-input input:focus{border-color:var(--accent-primary, #15b886)}.comments-input input::-moz-placeholder{color:var(--text-muted, #71717a)}.comments-input input::placeholder{color:var(--text-muted, #71717a)}.comments-input button{width:36px;height:36px;border-radius:50%;background:var(--accent-primary, #15b886);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity var(--dur-micro)}.comments-input button:disabled{opacity:.35;cursor:not-allowed}.echo-lightbox .pswp__counter{display:none}.echo-lightbox img{-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.echo-lightbox .pswp__button--close{position:absolute;top:env(safe-area-inset-top,0px);left:4px;z-index:11}.echo-lightbox-dots{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);z-index:1051;display:flex;justify-content:center;align-items:center;gap:6px;pointer-events:none}.echo-lightbox-dot{width:6px;height:6px;border-radius:50%;background:#ffffff59;transition:background var(--dur-fast) ease,transform var(--dur-fast) ease}.echo-lightbox-dot.active{background:#fffffff2;transform:scale(1.15)}.echo-lightbox.pswp--ui-visible .echo-lightbox-dots{opacity:1;transition:opacity .22s ease}.echo-lightbox:not(.pswp--ui-visible) .echo-lightbox-dots{opacity:0;transition:opacity .22s ease}.echo-lightbox-text-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center;container-type:inline-size;-moz-user-select:text;user-select:text;-webkit-user-select:text}.echo-lightbox-text-slide>.xhs-text-cover{width:100%;height:100%;aspect-ratio:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{border-style:solid;border-width:0}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-1{top:.25rem}.mt-0\.5{margin-top:.125rem}.mt-4{margin-top:1rem}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-3{height:.75rem}.w-3{width:.75rem}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.items-start{align-items:flex-start}.gap-1\.5{gap:.375rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.border{border-width:1px}.text-xs{font-size:.75rem;line-height:1rem}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.text-muted-foreground{--tw-text-opacity: 1;color:rgb(var(--color-text-muted-rgb) / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(var(--color-accent-rgb) / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-primary{accent-color:rgb(var(--color-accent-rgb) / 1)}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:var(--ease-default);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--p-emerald-50: #ecfdf5;--p-emerald-100: #d1fae5;--p-emerald-200: #a7f3d0;--p-emerald-300: #6ee7b7;--p-emerald-400: #34d399;--p-emerald-500: #15b886;--p-emerald-600: #059669;--p-emerald-700: #047857;--p-emerald-800: #065f46;--p-sky-400: #38bdf8;--p-sky-500: #0ea5e9;--p-gray-0: #ffffff;--p-gray-50: #f9fafb;--p-gray-100: #f5f5f7;--p-gray-200: #efeff4;--p-gray-300: #e5e5ea;--p-gray-400: #c7c7cc;--p-gray-500: #8e8e93;--p-gray-600: #636366;--p-gray-700: #48484a;--p-gray-800: #38383a;--p-gray-850: #2c2c2e;--p-gray-900: #242426;--p-gray-925: #1c1c1e;--p-gray-950: #000000;--p-red-400: #f87171;--p-red-500: #ef4444;--p-amber-500: #f59e0b;--p-amber-600: #d97706;--p-green-400: #4ade80;--p-green-500: #22c55e;--p-blue-500: #3b82f6;--p-teal-500: #14b8a6;--p-teal-400: #2dd4bf;--sp-0: 0;--sp-0_5: 2px;--sp-1: 4px;--sp-1_5: 6px;--sp-2: 8px;--sp-2_5: 10px;--sp-3: 12px;--sp-3_5: 14px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--sp-9: 36px;--sp-10: 40px;--sp-12: 48px;--sp-14: 56px;--sp-16: 64px;--r-none: 0;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-2xl: 20px;--r-full: 9999px;--dur-instant: .1s;--dur-micro: .15s;--dur-fast: .2s;--dur-normal: .3s;--dur-slow: .4s;--dur-gentle: .6s;--dur-spin: .8s;--dur-skeleton: 1.4s;--ease-default: cubic-bezier(.2, 0, 0, 1);--ease-in: cubic-bezier(.3, 0, 1, 1);--ease-out: cubic-bezier(0, 0, 0, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-legacy: cubic-bezier(.4, 0, .2, 1);--ease-ios-push: cubic-bezier(.32, .72, 0, 1);--text-display: 2rem;--text-h1: 1.5rem;--text-h2: 1.125rem;--text-h3: .9375rem;--text-body: .875rem;--text-small: .8125rem;--text-caption: .75rem;--text-micro: .6875rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.2;--lh-snug: 1.4;--lh-normal: 1.6;--lh-relaxed: 1.7}:root{--color-bg-base: var(--p-gray-100);--color-bg-surface: var(--p-gray-0);--color-bg-card: var(--p-gray-0);--color-bg-input: var(--p-gray-200);--color-bg-hover: rgba(0, 0, 0, .04);--color-bg-overlay: rgba(0, 0, 0, .5);--color-text-primary: var(--p-gray-950);--color-text-secondary: var(--p-gray-600);--color-text-tertiary: var(--p-gray-500);--color-text-muted: var(--p-gray-600);--color-text-inverse: var(--p-gray-0);--color-accent: var(--p-emerald-700);--color-accent-hover: var(--p-emerald-800);--color-accent-soft: var(--p-emerald-200);--color-accent-muted: rgba(21, 184, 134, .12);--color-accent-warm: var(--p-amber-500);--color-accent-mint: var(--p-teal-400);--color-accent-rgb: 4 120 87;--color-bg-input-rgb: 239 239 244;--color-text-muted-rgb: 99 99 102;--color-bg-card-rgb: 255 255 255;--color-border-subtle-rgb: 229 229 234;--color-border: var(--p-gray-300);--color-border-subtle: var(--p-gray-300);--color-border-default: var(--p-gray-400);--color-border-glow: rgba(21, 184, 134, .2);--color-bubble-ai-bg: var(--p-gray-100);--color-bubble-ai-border: var(--p-gray-300);--color-bubble-user-bg: var(--color-accent);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);--color-sidebar-bg: #2e2e2e;--color-success: var(--p-green-500);--color-warning: var(--p-amber-500);--color-error: var(--p-red-500);--color-info: var(--p-blue-500)}[data-theme=dark]{--color-bg-base: var(--p-gray-950);--color-bg-surface: var(--p-gray-925);--color-bg-card: var(--p-gray-900);--color-bg-input: var(--p-gray-850);--color-bg-hover: rgba(255, 255, 255, .06);--color-bg-overlay: rgba(0, 0, 0, .7);--color-text-primary: var(--p-gray-100);--color-text-secondary: rgba(235, 235, 245, .7);--color-text-tertiary: rgba(235, 235, 245, .55);--color-text-muted: rgba(235, 235, 245, .45);--color-accent: #0fa378;--color-accent-hover: var(--p-emerald-400);--color-accent-soft: var(--p-green-400);--color-accent-warm: var(--p-amber-600);--color-accent-mint: var(--p-teal-500);--color-border: var(--p-gray-800);--color-border-subtle: var(--p-gray-800);--color-border-default: var(--p-gray-700);--color-border-glow: rgba(15, 163, 120, .2);--color-bubble-ai-bg: var(--p-gray-850);--color-bubble-ai-border: var(--p-gray-800);--color-bubble-user-bg: #0fa378;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--color-sidebar-bg: var(--p-gray-925);--color-accent-rgb: 15 163 120;--color-bg-input-rgb: 44 44 46;--color-text-muted-rgb: 235 235 245;--color-bg-card-rgb: 36 36 38;--color-border-subtle-rgb: 56 56 58}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg-base: var(--p-gray-950);--color-bg-surface: var(--p-gray-925);--color-bg-card: var(--p-gray-900);--color-bg-input: var(--p-gray-850);--color-bg-hover: rgba(255, 255, 255, .06);--color-bg-overlay: rgba(0, 0, 0, .7);--color-text-primary: var(--p-gray-100);--color-text-secondary: rgba(235, 235, 245, .7);--color-text-tertiary: rgba(235, 235, 245, .55);--color-text-muted: rgba(235, 235, 245, .45);--color-accent: #0fa378;--color-accent-hover: var(--p-emerald-400);--color-accent-soft: var(--p-green-400);--color-accent-warm: var(--p-amber-600);--color-accent-mint: var(--p-teal-500);--color-border: var(--p-gray-800);--color-border-subtle: var(--p-gray-800);--color-border-default: var(--p-gray-700);--color-border-glow: rgba(15, 163, 120, .2);--color-bubble-ai-bg: var(--p-gray-850);--color-bubble-ai-border: var(--p-gray-800);--color-bubble-user-bg: #0fa378;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--color-sidebar-bg: var(--p-gray-925);--color-accent-rgb: 15 163 120;--color-bg-input-rgb: 44 44 46;--color-text-muted-rgb: 235 235 245;--color-bg-card-rgb: 36 36 38;--color-border-subtle-rgb: 56 56 58}}:root{--bg-base: var(--color-bg-base);--bg-surface: var(--color-bg-surface);--bg-secondary: var(--color-bg-surface);--bg-card: var(--color-bg-card);--bg-elevated: var(--color-bg-card);--bg-input: var(--color-bg-input);--bg-hover: var(--color-bg-hover);--accent-primary: var(--color-accent);--accent-hover: var(--color-accent-hover);--accent-warm: var(--color-accent-warm);--accent-soft: var(--color-accent-soft);--accent-mint: var(--color-accent-mint);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--text-muted: var(--color-text-muted);--border: var(--color-border-subtle);--border-subtle: var(--color-border-subtle);--border-default: var(--color-border-default);--border-glow: var(--color-border-glow);--bubble-ai-bg: var(--color-bubble-ai-bg);--bubble-ai-border: var(--color-bubble-ai-border);--bubble-user-bg: var(--color-bubble-user-bg);--radius-sm: var(--r-sm);--radius-md: var(--r-md);--radius-lg: var(--r-lg);--radius-xl: var(--r-xl);--shadow-glow: none;--shadow-card: var(--shadow-sm);--shadow-input: none;--transition: var(--dur-fast) var(--ease-legacy);--transition-slow: var(--dur-slow) var(--ease-legacy);--sidebar-bg: var(--color-sidebar-bg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:inherit}:focus:not(:focus-visible){outline:none}.chat-layout{display:flex;height:100vh;overflow:hidden;background:var(--bg-surface)}.chat-sidebar{width:72px;background:var(--sidebar-bg);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;padding:20px 0;gap:8px;flex-shrink:0}.sidebar-logo{font-size:var(--text-h1);margin-bottom:12px;color:var(--accent-primary);font-weight:700}.sidebar-btn{width:44px;height:44px;border-radius:6px;background:transparent;border:none;color:#a0a0a0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition)}.sidebar-btn:hover,.sidebar-btn.active{color:var(--accent-primary)}.sidebar-badge{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:#e53e3e;border:1.5px solid var(--bg-base, #111);pointer-events:none}.msg-meta-row{display:flex;align-items:center;gap:6px}.msg-tts-btn{display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition),color var(--transition),background var(--transition);padding:0;flex-shrink:0}.message-row:hover .msg-tts-btn{opacity:1}@media(hover:hover)and (pointer:fine){.msg-tts-btn:hover{background:var(--bg-input);color:var(--accent-primary)}}.msg-tts-btn.playing{opacity:1;color:var(--accent-primary);background:#15b8861a}.msg-tts-btn.error{opacity:1;color:#e53e3e}.msg-tts-btn.loading{opacity:1;color:var(--text-muted);cursor:wait}.msg-context-menu{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;box-shadow:0 8px 32px #00000059,0 2px 8px #0003;padding:4px 2px;display:flex;flex-direction:row;gap:0;animation:menu-pop var(--dur-micro) var(--ease-spring);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes menu-pop{0%{opacity:0;transform:scale(.85) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.msg-context-menu:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--bg-card)}.msg-context-menu button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 14px;border:none;border-radius:8px;background:none;color:var(--text-primary);font-size:.72rem;cursor:pointer;transition:background .12s;white-space:nowrap}@media(hover:hover)and (pointer:fine){.msg-context-menu button:hover{background:var(--bg-hover, rgba(255, 255, 255, .06))}}.msg-context-menu button.danger{color:#f87171}@media(hover:hover)and (pointer:fine){.msg-context-menu button.danger:hover{background:#ef44441a}}.persona-switch-toast{display:flex;align-items:center;gap:8px;padding:8px 18px;margin:8px auto;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 40px);background:linear-gradient(135deg,#8b5cf61a,#10b98114);border:1px solid rgba(139,92,246,.22);border-radius:24px;font-size:var(--text-small);color:var(--text-secondary);opacity:0;transform:translateY(-10px) scale(.95);transition:opacity .28s ease,transform .28s ease;pointer-events:none}.persona-switch-toast.show{opacity:1;transform:translateY(0) scale(1)}.persona-switch-toast.hide{opacity:0;transform:translateY(8px) scale(.95)}.persona-switch-emoji{font-size:var(--text-h2);line-height:1}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--bg-surface)}.chat-header{padding:16px 24px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:14px;background:var(--bg-surface)}.ai-avatar{width:44px;height:44px;border-radius:4px;background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;border:1px solid var(--border-subtle)}.ai-info h2{font-size:var(--text-h3);font-weight:600;color:var(--text-primary)}.ai-info p{font-size:var(--text-caption);color:var(--text-muted)}.model-tier-badge{position:absolute;bottom:-1px;right:-1px;border-radius:50%;border:2px solid var(--bg-surface);pointer-events:none;transition:background var(--dur-slow) ease,box-shadow var(--dur-slow) ease;z-index:2}.model-tier-badge.pro{background:#e5a800;box-shadow:0 0 6px 1px #e5a80080}.model-tier-badge.free{background:#888;box-shadow:none}.model-tier-badge.pulse{animation:tier-pulse var(--dur-gentle) ease-in-out 3}@keyframes tier-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.5);box-shadow:0 0 10px 3px #e5a80099}}.quota-warning-container{display:flex;align-items:center;gap:6px;margin:0 12px 4px;justify-content:flex-end}.quota-warning-icon{border:none;background:none;cursor:pointer;font-size:1.1rem;padding:2px;line-height:1;opacity:.8;transition:opacity var(--dur-micro),transform var(--dur-micro)}.quota-warning-icon:hover{opacity:1;transform:scale(1.15)}.quota-warning-panel{display:flex;align-items:center;gap:8px;padding:4px 12px;background:linear-gradient(135deg,#64748b26,#4755691a);border:1px solid rgba(100,116,139,.2);border-radius:16px;font-size:.72rem;color:var(--text-secondary);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:quota-panel-in var(--dur-fast) ease}@keyframes quota-panel-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.quota-warning-text{white-space:nowrap}.quota-warning-countdown{color:var(--text-muted);font-variant-numeric:tabular-nums}.quota-warning-upgrade{border:none;background:none;color:#e5a800;font-size:.72rem;font-weight:600;cursor:pointer;padding:2px 4px;white-space:nowrap;transition:opacity var(--dur-micro);font-family:inherit}.quota-warning-upgrade:hover{opacity:.8}.online-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;margin-right:5px;animation:pulse-green 2s infinite}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.4}}.message-list{flex:1;min-height:0;overflow-y:auto;padding:24px 24px 36px;display:flex;flex-direction:column;gap:20px;background:var(--bg-surface)}.time-label{align-self:center;text-align:center;font-size:var(--text-caption);color:var(--text-muted);margin:4px 0;opacity:.7;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:.02em;font-weight:400;line-height:1.4;transition:opacity var(--dur-micro) ease}.time-label:active{opacity:1}.msg-recalled-hint{align-self:center;text-align:center;font-size:var(--text-caption);color:var(--text-muted);margin:6px 0;opacity:.7;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:.02em;font-weight:400;line-height:1.4}.msg-recalled-reedit{background:none;border:none;padding:0 4px;margin-left:4px;color:var(--accent-primary, #3b82f6);font-size:inherit;font-weight:500;cursor:pointer;letter-spacing:inherit;font-family:inherit}.msg-recalled-reedit:active{opacity:.6}@media(hover:hover)and (pointer:fine){.msg-recalled-reedit:hover{text-decoration:underline}}.load-more-indicator{text-align:center;padding:8px 0;font-size:var(--text-caption);color:var(--text-muted);letter-spacing:.05em}.message-row{display:flex;gap:0;max-width:min(85%,640px);padding:0 var(--sp-3)}.message-row[data-historical=true]{animation:none!important}.message-row.user{align-self:flex-end;flex-direction:row-reverse;max-width:100%;animation:msg-in-user var(--dur-fast) cubic-bezier(.25,.1,.25,1)}.message-row.assistant{align-self:flex-start;animation:msg-in-ai .22s cubic-bezier(.25,.1,.25,1)}.msg-quick-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;color:var(--color-text-secondary, #888);background:transparent;border:none;cursor:pointer;border-radius:6px;position:absolute;left:100%;bottom:0;margin-left:6px}@keyframes msg-in-user{0%{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes msg-in-ai{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg-quick-action-btn{opacity:.4;transition:opacity var(--dur-micro) ease-out,background var(--dur-micro) ease-out}.msg-quick-action-btn:active{background:var(--bg-input);opacity:1}@media(hover:hover)and (pointer:fine){.msg-quick-action-btn:hover{background:var(--bg-input);opacity:1}}.msg-bubble{padding:10px 14px;border-radius:18px;font-size:var(--text-h3);line-height:1.75;white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere;min-width:1em;width:-moz-fit-content;width:fit-content;max-width:100%;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.msg-bubble *,.msg-bubble-markdown *{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.msg-bubble.ai,.msg-bubble-glass{background:var(--color-bubble-ai-bg);border:1px solid var(--color-bubble-ai-border);color:var(--text-primary);border-radius:var(--r-lg);box-shadow:0 1px 4px #0000000f}.msg-bubble.user{background:linear-gradient(135deg,var(--accent-primary),#0ea5e9);color:#fff;border-radius:var(--r-lg);box-shadow:0 2px 8px #15b88640}.msg-bubble-markdown{line-height:1.75;word-break:normal;overflow-wrap:anywhere}.msg-bubble-markdown p{margin:0 0 1.3em}.msg-bubble-markdown p:last-child{margin-bottom:0}.msg-bubble-markdown p:empty,.msg-bubble-markdown br:last-child{display:none}.msg-bubble-markdown strong{font-weight:700}.msg-bubble-markdown em{font-style:italic}.msg-bubble-markdown h1,.msg-bubble-markdown h2,.msg-bubble-markdown h3{font-weight:700;margin:.6em 0 .3em;line-height:1.3}.msg-bubble-markdown h1{font-size:1.1em}.msg-bubble-markdown h2{font-size:1em}.msg-bubble-markdown h3{font-size:.95em}.msg-bubble-markdown ul,.msg-bubble-markdown ol{margin:.4em 0;padding-left:1.4em}.msg-bubble-markdown li{margin:.15em 0}.msg-bubble-markdown blockquote{margin:.5em 0;padding:6px 12px;border-left:3px solid var(--accent-primary);color:var(--text-secondary);background:var(--bg-hover);border-radius:0 6px 6px 0;font-style:italic}.msg-bubble-markdown code{font-family:SF Mono,Fira Code,Consolas,Monaco,monospace;font-size:.82em;background:var(--bg-input);color:var(--accent-primary);padding:1px 5px;border-radius:4px;border:1px solid var(--border-subtle)}.msg-bubble-markdown pre{margin:.6em 0;border-radius:10px;overflow:hidden;border:1px solid var(--border-subtle)}.msg-bubble-markdown pre code{display:block;padding:12px 14px;overflow-x:auto;background:#1a1a2e;color:#e2e8f0;font-size:.8em;line-height:1.6;border:none;border-radius:0}.msg-bubble-markdown a{color:var(--accent-primary);text-decoration:underline;text-underline-offset:2px}.msg-bubble-markdown a:hover{opacity:.75}.msg-bubble-markdown hr{border:none;border-top:1px solid var(--border-subtle);margin:.6em 0}.msg-bubble-markdown table{border-collapse:collapse;font-size:.82em;margin:.5em 0;width:100%}.msg-bubble-markdown th,.msg-bubble-markdown td{border:1px solid var(--border-subtle);padding:5px 10px;text-align:left}.msg-bubble-markdown th{background:var(--bg-hover);font-weight:600}.typing-bubble{display:flex;align-items:center;gap:4px;padding:14px 18px}.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-primary);animation:typing-bounce 1.2s infinite ease-in-out;opacity:.6}.typing-dot:nth-child(2){animation-delay:var(--dur-fast)}.typing-dot:nth-child(3){animation-delay:var(--dur-slow)}@keyframes typing-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}.chat-input-area{padding:12px 16px 10px;background:var(--bg-surface);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px;position:relative}.input-toolbar{display:none}.emoji-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);border-radius:4px;transition:color var(--transition);padding:6px;align-self:center}.emoji-btn:hover{color:var(--text-primary)}.emoji-panel-container{overflow:hidden;height:0;display:flex;flex-direction:column;justify-content:flex-end;transition:height .25s ease-out;pointer-events:none}.emoji-panel-container.open{height:var(--kb-last, 300px);pointer-events:auto}.emoji-panel{position:relative;width:100%;background:var(--bg-card);border-top:1px solid var(--border-subtle);overflow:hidden;z-index:50}.emoji-panel-scroll{height:var(--kb-last, 300px);max-height:var(--kb-last, 300px);overflow-y:auto;padding:8px 12px 64px;-webkit-overflow-scrolling:touch}.emoji-section-label{font-size:10px;color:var(--text-muted);padding:2px 2px 4px;letter-spacing:.04em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.emoji-divider{height:1px;background:var(--border-subtle);margin:3px 0}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-cell{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:5px 0;border-radius:6px;transition:background .12s,transform var(--dur-instant);line-height:1;display:flex;align-items:center;justify-content:center;aspect-ratio:1}@media(hover:hover)and (pointer:fine){.emoji-cell:hover{background:var(--bg-hover);transform:scale(1.15)}}.emoji-cell:active{transform:scale(.95)}.emoji-panel-actions{position:absolute;right:12px;bottom:12px;display:flex;gap:12px;z-index:2;pointer-events:none}.emoji-panel-action-btn{pointer-events:auto;width:64px;height:40px;border:none;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-micro) ease,color var(--dur-micro) ease,opacity var(--dur-micro) ease,transform var(--dur-instant) ease;background:var(--bg-hover);color:var(--text-muted);opacity:.55}.emoji-panel-action-btn:disabled{cursor:not-allowed}.emoji-panel-action-btn:not(:disabled):active{transform:scale(.94)}.emoji-panel-action-btn.active.emoji-panel-delete{background:var(--bg-elevated);color:var(--text-primary);opacity:1}.emoji-panel-action-btn.active.emoji-panel-send{background:var(--accent-primary);color:#fff;opacity:1}.input-wrapper{display:flex;flex-direction:row;align-items:flex-end;gap:8px;position:relative}.textarea-wrap{flex:1;display:flex;align-items:flex-end;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:18px;overflow:hidden;transition:border-color var(--dur-fast)}.textarea-wrap:focus-within{border-color:var(--accent-primary)}.chat-textarea{flex:1;width:100%;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:inherit;font-size:var(--text-h3);line-height:1.5;resize:none;padding:8px 14px;min-height:36px;max-height:200px;overflow-y:auto}.chat-textarea::-moz-placeholder{color:var(--text-muted)}.chat-textarea::placeholder{color:var(--text-muted)}.send-action-row{display:flex;justify-content:flex-end;align-items:flex-end;flex-shrink:0}.send-hint{font-size:var(--text-caption);color:var(--text-muted)}.send-btn{padding:0;min-height:36px;min-width:36px;width:36px;height:36px;border-radius:50%;background:var(--accent-primary);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-body);font-weight:500;flex-shrink:0;transition:opacity var(--transition),transform var(--transition)}.send-btn:hover:not(:disabled){opacity:.9}.send-btn:active:not(:disabled){transform:scale(.92)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn.sending{animation:sendTap var(--dur-fast) ease-out}@keyframes sendTap{0%{transform:scale(1)}30%{transform:scale(.88)}to{transform:scale(1)}}.mobile-emoji-btn{display:none}.send-btn .send-btn-icon{display:block;flex-shrink:0;width:18px;height:18px}.send-btn .send-btn-text{display:none}.profile-panel{width:280px;background:var(--bg-card);border-left:1px solid var(--border-subtle);overflow-y:auto;padding:24px 20px;flex-shrink:0;transition:width var(--transition-slow),opacity var(--transition-slow)}.profile-panel.collapsed{width:0;padding:0;opacity:0;overflow:hidden}.profile-panel.desktop-character-panel{width:360px;padding:0;position:relative;overflow:hidden;background:var(--bg-base);display:flex;flex-direction:column}.profile-panel.desktop-character-panel.collapsed{width:0;padding:0;opacity:0;overflow:hidden}.panel-intimacy-bar{flex-shrink:0;padding:6px 12px 2px;z-index:5}.panel-live2d-area{flex:1;position:relative;overflow:hidden;min-height:0}.panel-drawer{position:absolute;bottom:52px;left:0;right:0;height:0;overflow:hidden;z-index:8;transition:height var(--dur-normal) var(--ease-legacy);pointer-events:none}.panel-drawer.open{height:calc(100% - 88px);pointer-events:auto}.drawer-content{display:flex;flex-direction:column;height:100%;background:var(--bg-card);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -4px 20px #00000026;overflow:hidden}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0;border-bottom:1px solid var(--border-subtle)}.drawer-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}.drawer-back-btn{border:none;background:none;color:var(--accent-primary);font-size:.85rem;cursor:pointer;padding:2px 6px;border-radius:6px;font-family:inherit;transition:background var(--dur-fast)}@media(hover:hover)and (pointer:fine){.drawer-back-btn:hover{background:var(--bg-input)}}.drawer-close-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}@media(hover:hover)and (pointer:fine){.drawer-close-btn:hover{background:var(--bg-input);color:var(--text-secondary)}}.drawer-body{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.drawer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;color:var(--text-muted);font-size:.85rem}.panel-bottom-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-card);flex-shrink:0;z-index:10}.panel-bottom-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 24px;border:none;border-radius:10px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--dur-fast) ease;font-size:.7rem;font-family:inherit}@media(hover:hover)and (pointer:fine){.panel-bottom-btn:hover{background:var(--bg-input);color:var(--text-secondary)}}.panel-bottom-btn.active{background:var(--bg-input);color:var(--accent-primary)}.diary-list-compact{display:flex;flex-direction:column;overflow:hidden;min-width:0;width:100%}.diary-list-item{display:flex;flex-direction:column;gap:2px;padding:8px 16px;border:none;background:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--border-subtle);transition:background var(--dur-micro);font-family:inherit;position:relative;overflow:hidden;min-width:0;max-width:100%}@media(hover:hover)and (pointer:fine){.diary-list-item:hover{background:var(--bg-input)}}.diary-list-item:last-child{border-bottom:none}.diary-list-date{display:flex;align-items:center;gap:4px;font-size:var(--text-caption);color:var(--text-muted)}.diary-list-preview{font-size:var(--text-body);color:var(--text-primary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.diary-list-arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);opacity:.5}.diary-detail-compact{padding:0;font-size:.9rem;line-height:1.8;color:var(--text-primary);background:var(--bg-card)}.panel-diary-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;background:var(--bg-card);animation:diary-overlay-in var(--dur-normal) var(--ease-legacy)}@keyframes diary-overlay-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.diary-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.diary-overlay-body{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.diary-overlay-footer{flex-shrink:0;padding:8px 16px 12px;border-top:1px solid var(--border-subtle)}.diary-browse-all-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:10px;border:none;border-radius:10px;background:var(--bg-input);color:var(--accent-primary);cursor:pointer;font-size:.82rem;font-weight:500;font-family:inherit;transition:all var(--dur-fast)}@media(hover:hover)and (pointer:fine){.diary-browse-all-btn:hover{background:var(--bg-hover)}}.diary-detail-compact .diary-detail-header{padding:12px 16px 8px;margin-bottom:0}.diary-detail-compact .diary-detail-title{font-size:1rem}.diary-detail-compact .diary-image-wrap{border-radius:12px;margin:0 16px 12px;max-height:none;overflow:hidden}.diary-detail-compact .diary-image{width:100%;height:auto;-o-object-fit:contain;object-fit:contain;display:block;border-radius:12px}.diary-detail-compact .diary-content-card{border-radius:0;border:none;padding:16px;margin-bottom:0;background:transparent}.diary-detail-compact .diary-actions{padding:0 16px 12px}.diary-detail-compact .diary-action-btn{padding:8px 14px;font-size:.78rem}.panel-info-compact{padding:0 12px 12px}.info-section{padding:10px 0;border-bottom:1px solid var(--border-subtle)}.info-section:last-child{border-bottom:none}.info-section-title{font-size:.75rem;color:var(--text-muted);margin-bottom:6px;font-weight:500}.profile-hero-bg{text-align:center;padding:24px 16px 16px;background:radial-gradient(ellipse at 50% 20%,color-mix(in srgb,var(--hero-color, #07c160) 12%,transparent) 0%,transparent 70%);border-radius:0 0 16px 16px;position:relative}.profile-avatar-ring{width:72px;height:72px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);position:relative;box-shadow:0 0 0 3px color-mix(in srgb,var(--ring-color, #07c160) 35%,transparent),0 0 18px 4px color-mix(in srgb,var(--ring-color, #07c160) 18%,transparent);overflow:hidden;animation:avatar-ring-pulse 3s ease-in-out infinite}.profile-avatar-ring img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:50%}.profile-avatar-emoji{font-size:2rem;line-height:1}@keyframes avatar-ring-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--ring-color, #07c160) 35%,transparent),0 0 18px 4px color-mix(in srgb,var(--ring-color, #07c160) 18%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--ring-color, #07c160) 45%,transparent),0 0 24px 6px color-mix(in srgb,var(--ring-color, #07c160) 25%,transparent)}}.profile-hero-name{font-weight:700;font-size:1rem;color:var(--text-primary);margin-bottom:6px}.profile-type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:12px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.change-character-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border:1px dashed var(--border-subtle);border-radius:10px;background:transparent;color:var(--accent-primary);cursor:pointer;font-size:.85rem;font-family:inherit;transition:all var(--dur-fast)}@media(hover:hover)and (pointer:fine){.change-character-btn:hover{background:var(--bg-input);border-style:solid}}.diary-preview{display:flex;flex-direction:column;height:100%;width:100%;box-sizing:border-box;overflow-x:hidden;min-height:100px}.mobile-sheet-diary .diary-preview{height:auto;overflow-y:visible}.diary-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;color:var(--text-muted);font-size:.85rem}.diary-preview-back{border:none;background:none;color:var(--accent-primary);font-size:.85rem;cursor:pointer;padding:8px 16px;font-family:inherit;text-align:left;transition:background var(--dur-fast);border-bottom:1px solid var(--border-subtle);flex-shrink:0}@media(hover:hover)and (pointer:fine){.diary-preview-back:hover{background:var(--bg-input)}}.diary-preview-footer{flex-shrink:0;padding:8px 16px 12px;border-top:1px solid var(--border-subtle)}.diary-spinner{animation:spin var(--dur-spin) linear infinite}.diary-tab-container{position:relative;overflow:hidden}.diary-view-container{display:flex;flex-direction:column;width:100%;min-height:100px;position:relative}.diary-view-list{width:100%}.diary-view-list.slide-out-left{animation:diary-slide-out-left var(--dur-normal) var(--ease-legacy) forwards;position:absolute;width:100%;pointer-events:none}.diary-view-list.slide-in-left{animation:diary-slide-in-left var(--dur-normal) var(--ease-legacy) forwards}@keyframes diary-slide-out-left{0%{transform:translate(0);opacity:1}to{transform:translate(-30%);opacity:0}}@keyframes diary-slide-in-left{0%{transform:translate(-30%);opacity:0}to{transform:translate(0);opacity:1}}.diary-view-detail{width:100%;display:flex;flex-direction:column;min-height:200px}.diary-view-detail.slide-in-right{animation:diary-slide-in-right var(--dur-normal) var(--ease-legacy) forwards}@keyframes diary-slide-in-right{0%{transform:translate(30%);opacity:0}to{transform:translate(0);opacity:1}}.diary-detail-back{display:flex;align-items:center;gap:4px;border:none;background:none;color:var(--accent-primary);font-size:.85rem;cursor:pointer;padding:10px 16px;font-family:inherit;text-align:left;transition:background var(--dur-fast);border-bottom:1px solid var(--border-subtle);flex-shrink:0}@media(hover:hover)and (pointer:fine){.diary-detail-back:hover{background:var(--bg-input)}}.diary-detail-swipe-wrap{flex:1;overflow:hidden;touch-action:pan-y;position:relative}.diary-detail-content{padding:16px;will-change:transform}.diary-detail-date{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-muted);margin-bottom:8px}.diary-detail-author{font-size:.88rem;font-weight:600;color:var(--text-primary);margin-bottom:16px}.diary-detail-body{font-size:.9rem;line-height:1.85;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.diary-detail-image-wrap{border-radius:12px;overflow:hidden;margin-bottom:16px}.diary-detail-image{width:100%;height:auto;display:block;border-radius:12px}.diary-detail-text{white-space:pre-wrap;word-break:break-word}.diary-detail-actions{display:flex;gap:8px;margin-top:20px;padding-top:14px;border-top:1px solid var(--border-subtle)}.diary-detail-share-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border-subtle);border-radius:20px;background:var(--bg-surface, var(--bg-card));color:var(--text-secondary);font-size:.8rem;cursor:pointer;font-family:inherit;transition:all var(--dur-fast)}@media(hover:hover)and (pointer:fine){.diary-detail-share-btn:hover{background:var(--bg-input);color:var(--text-primary)}}.diary-detail-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 14px;border-top:1px solid var(--border-subtle);flex-shrink:0;gap:12px}.diary-detail-nav-arrow{display:flex;align-items:center;gap:2px;border:none;background:none;color:var(--accent-primary);font-size:.78rem;font-family:inherit;cursor:pointer;padding:4px 8px;border-radius:8px;transition:all var(--dur-fast);white-space:nowrap;flex-shrink:0}@media(hover:hover)and (pointer:fine){.diary-detail-nav-arrow:hover:not(:disabled){background:var(--bg-input)}}.diary-detail-nav-arrow:disabled{opacity:.3;cursor:default}.diary-detail-nav-dots{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;overflow:hidden;flex-wrap:wrap;max-height:20px}.diary-detail-nav-dot{width:6px;height:6px;border-radius:50%;background:var(--border-subtle);cursor:pointer;transition:all var(--dur-fast);flex-shrink:0}@media(hover:hover)and (pointer:fine){.diary-detail-nav-dot:hover{background:var(--text-muted)}}.diary-detail-nav-dot.active{width:16px;border-radius:3px;background:var(--accent-primary)}.diary-preview-sentinel{min-height:1px;width:100%}.diary-preview-sentinel-loading{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;color:var(--text-muted);font-size:.78rem}.profile-panel.character-mode{width:360px;padding:0;position:relative;overflow:hidden;background:var(--bg-base)}.live2d-canvas-wrap{position:absolute;inset:0;z-index:1}.live2d-canvas{width:100%;height:100%;display:block}.live2d-canvas.hidden{opacity:0;pointer-events:none}.live2d-canvas.visible{opacity:1;animation:live2d-fade-in var(--dur-gentle) ease}@keyframes live2d-fade-in{0%{opacity:0}to{opacity:1}}.live2d-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}.live2d-preview-img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:live2d-fade-in var(--dur-normal) ease}.live2d-silhouette{width:120px;height:200px;background:radial-gradient(ellipse at center top,rgba(199,125,255,.15) 0%,rgba(199,125,255,.05) 40%,transparent 70%);border-radius:60px 60px 40px 40px;position:relative}.live2d-silhouette:before{content:"";position:absolute;top:-30px;left:50%;transform:translate(-50%);width:50px;height:50px;border-radius:50%;background:radial-gradient(circle,rgba(199,125,255,.2) 0%,rgba(199,125,255,.08) 60%,transparent 80%)}.live2d-loading{position:absolute;bottom:100px;left:50%;transform:translate(-50%);width:120px;height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden}.live2d-progress{height:100%;background:linear-gradient(90deg,var(--accent-primary),#c77dff);border-radius:2px;transition:width var(--dur-normal) ease}.live2d-error-text{position:absolute;bottom:100px;font-size:.8rem;color:var(--text-muted);cursor:pointer}.character-floating-bar{position:absolute;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;gap:8px;padding:16px 20px 24px;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.3) 60%,transparent 100%)}.floating-bar-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 18px;border:none;border-radius:14px;background:#ffffff1a;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#ffffffd9;cursor:pointer;transition:all var(--dur-fast) ease;font-size:.7rem;font-family:inherit}@media(hover:hover)and (pointer:fine){.floating-bar-btn:hover{background:#ffffff2e;color:#fff;transform:translateY(-2px)}}.floating-bar-btn:active{transform:scale(.96)}.character-back-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;margin:12px 16px 8px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-card);color:var(--text-secondary);font-size:.82rem;cursor:pointer;transition:all var(--dur-fast);font-family:inherit}@media(hover:hover)and (pointer:fine){.character-back-btn:hover{background:var(--bg-base);color:var(--text-primary)}}.character-modal-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);flex-shrink:0}.character-modal-header h3{flex:1;margin:0;font-size:1rem;font-weight:600}.character-modal-close{width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}@media(hover:hover)and (pointer:fine){.character-modal-close:hover{background:var(--bg-base);color:var(--text-primary)}}.character-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}.character-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:2px solid transparent;border-radius:16px;background:var(--bg-base);cursor:pointer;transition:all var(--dur-fast) ease;font-family:inherit}.character-card:hover{border-color:#c77dff4d;transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.character-card.selected{border-color:var(--accent-primary);background:#15b8860f;box-shadow:0 0 0 4px #15b8861a}.character-card-preview{width:100px;height:130px;border-radius:10px;overflow:hidden;background:#c77dff0f;display:flex;align-items:center;justify-content:center}.character-card-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:10px}.character-card-silhouette{width:30px;height:50px;border-radius:15px 15px 10px 10px;background:radial-gradient(ellipse,#c77dff33,#c77dff0f 70%)}.character-card-silhouette:before{content:"";display:block;width:16px;height:16px;border-radius:50%;margin:-6px auto 0;background:#c77dff26}.character-card-name{font-size:.82rem;font-weight:600;color:var(--text-primary)}.character-card-badge{font-size:.68rem;padding:1px 6px;border-radius:6px;background:#c77dff1a;color:#c77dff}.character-card-size{font-size:.65rem;color:var(--text-muted)}.character-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border-subtle);flex-shrink:0}.character-cancel-btn{padding:8px 20px;border:1px solid var(--border-subtle);border-radius:10px;background:transparent;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all var(--dur-fast);font-family:inherit}@media(hover:hover)and (pointer:fine){.character-cancel-btn:hover{background:var(--bg-base)}}.character-confirm-btn{padding:8px 20px;border:none;border-radius:10px;background:var(--accent-primary);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--dur-fast);font-family:inherit}.character-confirm-btn:hover{filter:brightness(1.1)}.character-confirm-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.character-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:16px}.character-card-preview{height:160px}.character-card-name{font-size:.78rem}.character-modal-header{padding:14px 16px}.character-modal-footer{padding:12px 16px}}.profile-section{margin-bottom:24px}.profile-section-title{font-size:var(--text-caption);font-weight:600;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}.profile-tag{display:inline-flex;align-items:center;background:#15b8861a;border:1px solid rgba(7,193,96,.2);color:var(--accent-primary);border-radius:20px;padding:3px 10px;font-size:var(--text-small);margin:3px}.persona-badge{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px 14px}.persona-emoji{font-size:1.4rem}.persona-name{font-size:var(--text-body);font-weight:600;color:var(--text-primary)}.persona-desc{font-size:var(--text-caption);color:var(--text-muted)}.emotion-meter{display:flex;gap:8px;margin-top:8px}.pad-item{flex:1;text-align:center}.pad-label{font-size:var(--text-micro);color:var(--text-muted);letter-spacing:.05em;margin-bottom:4px}.pad-bar-wrap{height:40px;background:var(--bg-card);border-radius:4px;position:relative;overflow:hidden}.pad-bar-fill{position:absolute;bottom:50%;left:0;right:0;background:var(--accent-primary);border-radius:2px;transition:height .5s ease}.pad-value{font-size:var(--text-caption);color:var(--text-secondary);margin-top:4px}.msg-media-wrap{display:flex;flex-direction:column;gap:6px;max-width:240px}.msg-image{width:100%;max-width:240px;border-radius:var(--radius-md);cursor:pointer;-o-object-fit:cover;object-fit:cover;transition:transform var(--dur-fast) ease,max-width var(--dur-fast) ease;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.msg-image.expanded{max-width:360px;transform:scale(1.02);box-shadow:0 8px 32px #00000040}.msg-image-caption{font-size:var(--text-small);color:var(--text-secondary);margin:0}.msg-voice-wrap{display:flex;flex-direction:column;gap:6px}.msg-audio{width:220px;height:36px;border-radius:var(--radius-sm);outline:none}.msg-voice-transcript{font-size:var(--text-small);color:var(--text-secondary);margin:0;font-style:italic}.img-upload-wrap{position:relative;display:flex;align-items:center;gap:6px}.img-upload-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:1.5px solid var(--border-subtle);background:var(--bg-input);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:background var(--transition),color var(--transition);flex-shrink:0}@media(hover:hover)and (pointer:fine){.img-upload-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--accent-primary)}}.img-upload-btn:disabled{opacity:.5;cursor:not-allowed}.img-upload-preview{position:relative;width:48px;height:48px;border-radius:var(--radius-sm);overflow:hidden;border:1.5px solid var(--border-subtle)}.img-upload-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.img-upload-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;color:#fff}.img-upload-clear{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:#0000008c;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.img-upload-error{font-size:var(--text-caption);color:#e53e3e;white-space:nowrap}@media(min-width:768px){.chat-input-area{padding:0;border-top:1px solid var(--border-subtle);background:var(--bg-surface)}.input-wrapper{flex-direction:column;align-items:stretch;gap:0;padding:0}.input-wrapper>.emoji-btn{position:absolute;top:8px;left:8px;z-index:2;padding:4px}.textarea-wrap{flex-direction:column;background:transparent;border:none;border-radius:0;min-height:170px}.textarea-wrap:focus-within{border-color:transparent}.chat-textarea{padding:40px 16px 8px;min-height:150px;max-height:200px;font-size:var(--text-body);line-height:1.6}.send-action-row{position:absolute;bottom:10px;right:12px;z-index:2}.send-btn{width:34px;height:34px;min-width:34px;min-height:34px}.emoji-panel-container{height:0!important;overflow:visible;position:relative;transition:none}.emoji-panel-container.open{height:0!important}.emoji-panel{position:absolute;bottom:0;left:0;right:0;max-width:420px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);border-top:1px solid var(--border-subtle);margin-bottom:6px;box-shadow:0 4px 20px #0000001f;display:none}.emoji-panel-container.open .emoji-panel{display:block}.emoji-panel-scroll{height:auto;max-height:320px}.emoji-grid{grid-template-columns:repeat(10,1fr)}.emoji-cell{font-size:1.35rem;padding:4px 0}}@media(min-width:768px)and (max-width:1024px)and (orientation:portrait){.textarea-wrap{min-height:200px}.chat-textarea{min-height:180px}}.profile-popup-backdrop{position:fixed;inset:0;z-index:999;background:#00000073;display:flex;align-items:flex-end;animation:popup-backdrop-in var(--dur-fast) ease;touch-action:none;overscroll-behavior:contain}@keyframes popup-backdrop-in{0%{opacity:0}to{opacity:1}}.profile-popup-container{width:100%;height:85vh;background:var(--bg-card);border-radius:20px 20px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:popup-slide-up var(--dur-normal) cubic-bezier(.25,.46,.45,.94);box-shadow:0 -4px 32px #0003;touch-action:auto}@keyframes popup-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.profile-popup-handle{display:flex;justify-content:center;padding:12px 0 6px;flex-shrink:0;cursor:grab;touch-action:none}.profile-popup-handle-bar{width:36px;height:4px;border-radius:2px;background:#80808059}.profile-popup-scroll{flex:1;display:flex;flex-direction:column;overflow:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom,0)}.mobile-sheet-info,.mobile-sheet-diary{padding:4px 16px 12px}.mobile-sheet-section{margin-bottom:8px}.mobile-sheet-section-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.mobile-sheet-action-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-input);color:var(--text-secondary);font-size:.85rem;font-family:inherit;cursor:pointer;transition:all var(--dur-fast)}@media(hover:hover)and (pointer:fine){.mobile-sheet-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}}.mobile-sheet-back-btn{border:none;background:none;color:var(--accent-primary);font-size:.85rem;cursor:pointer;padding:4px 8px;border-radius:6px;font-family:inherit;margin-bottom:8px;transition:background var(--dur-fast)}@media(hover:hover)and (pointer:fine){.mobile-sheet-back-btn:hover{background:var(--bg-input)}}.mobile-sheet-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;color:var(--text-muted);font-size:.85rem}.outfit-shop-container{background:var(--bg-card)!important;border-radius:20px 20px 0 0!important}.outfit-shop-header{display:flex;align-items:center;gap:10px;padding:14px 18px 10px;border-bottom:1px solid var(--border-subtle)}.outfit-shop-title{flex:1;font-size:1rem;font-weight:700;color:var(--text-primary)}.outfit-shop-balance{padding:4px 10px;border-radius:20px;background:linear-gradient(135deg,#f59e0b22,#f59e0b11);color:#f59e0b;font-size:.82rem;font-weight:600}.outfit-shop-close{width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.outfit-shop-scroll{padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.outfit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.outfit-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border:2px solid transparent;border-radius:14px;background:var(--bg-base);cursor:pointer;transition:all var(--dur-fast) ease;font-family:inherit}.outfit-card:active{transform:scale(.96)}.outfit-card.selected{border-color:var(--accent-primary);background:#15b8860f;box-shadow:0 0 0 3px #15b8861f}.outfit-card-preview{width:100%;aspect-ratio:3 / 4;border-radius:10px;overflow:hidden;position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--rarity-glow, transparent) 20%,transparent),var(--bg-base));display:flex;align-items:center;justify-content:center}.outfit-card-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:10px}.outfit-card-placeholder{width:32px;height:50px;border-radius:16px 16px 10px 10px;background:radial-gradient(ellipse,color-mix(in srgb,var(--rarity-color, #9ca3af) 20%,transparent) 0%,transparent 70%)}.outfit-card-owned-badge{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center}.outfit-card-rarity{position:absolute;bottom:4px;left:4px;font-size:.6rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.7}.outfit-card-name{font-size:.72rem;font-weight:600;color:var(--text-primary);text-align:center;line-height:1.2}.outfit-card-price{display:flex;align-items:center;gap:3px;font-size:.68rem;color:#f59e0b;font-weight:600}.outfit-card-price.owned{color:var(--accent-primary)}.outfit-detail{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--bg-base);border:1px solid var(--border-subtle);animation:outfit-detail-in var(--dur-fast) ease}@keyframes outfit-detail-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.outfit-detail-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.outfit-rarity-tag{align-self:flex-start;font-size:.62rem;font-weight:700;padding:1px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.03em}.outfit-detail-name{font-size:.9rem;font-weight:700;color:var(--text-primary)}.outfit-detail-desc{font-size:.75rem;color:var(--text-muted);line-height:1.3}.outfit-detail-actions{flex-shrink:0}.outfit-buy-btn,.outfit-equip-btn{display:flex;align-items:center;gap:4px;padding:8px 16px;border:none;border-radius:10px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all var(--dur-fast);font-family:inherit;white-space:nowrap}.outfit-buy-btn{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.outfit-buy-btn:disabled{opacity:.5;cursor:not-allowed}.outfit-equip-btn{background:var(--accent-primary);color:#fff}.outfit-buy-btn:active:not(:disabled),.outfit-equip-btn:active{transform:scale(.95)}.outfit-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:12px;background:#000c;color:#fff;font-size:.85rem;font-weight:500;z-index:99999;animation:outfit-toast-in var(--dur-normal) ease;pointer-events:none}@keyframes outfit-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ws-recommend-card{background:var(--bg-surface, #1c1c1e);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:10px;margin-bottom:2px}.ws-recommend-section{margin:8px 0}@media(min-width:900px){.ws-recommend-section{margin:16px 0}}.ws-recommend-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ws-recommend-title{display:flex;align-items:center;gap:4px;font-size:var(--text-caption, 12px);font-weight:600;color:var(--text-secondary, rgba(255, 255, 255, .6))}.ws-recommend-more{display:flex;align-items:center;gap:1px;background:transparent;border:none;font-size:var(--text-caption, 12px);color:var(--accent-primary, #15b886);cursor:pointer;padding:0;font-family:inherit;transition:opacity var(--dur-micro);flex-shrink:0}.ws-recommend-more:hover{opacity:.75}.ws-recommend-list{display:flex;flex-direction:column;max-height:210px;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.ws-recommend-row{display:flex;align-items:center;gap:6px;padding:5px 2px;cursor:pointer;transition:background var(--dur-micro);border-radius:6px;min-width:0;flex-shrink:0}@media(hover:hover)and (pointer:fine){.ws-recommend-row:hover{background:#ffffff0a}}.ws-recommend-row:active{background:#ffffff12}.ws-recommend-row--border{border-bottom:1px solid rgba(255,255,255,.06);border-radius:0}.ws-recommend-row--border:hover{border-radius:8px}.ws-recommend-row-avatar{width:28px;height:28px;border-radius:7px;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,#15b8862e,#7c3aed38);display:flex;align-items:center;justify-content:center}.ws-recommend-row-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.ws-recommend-row-emoji{font-size:.9rem}.ws-recommend-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ws-recommend-row-name{font-size:12px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .9));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.ws-recommend-row-badge{font-size:9px;font-weight:600;padding:1px 4px;border-radius:3px;white-space:nowrap;align-self:flex-start}.ws-recommend-row-bio{font-size:10px;color:var(--text-secondary, rgba(255, 255, 255, .55));line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ws-recommend-row-follow{width:24px;height:24px;border-radius:50%;background:#15b8861f;border:1px solid rgba(21,184,134,.25);color:#15b886;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--dur-micro);padding:0}@media(hover:hover)and (pointer:fine){.ws-recommend-row-follow:hover{background:#15b88640}}.ws-recommend-row-followed{width:24px;height:24px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--text-muted, rgba(255, 255, 255, .35));display:flex;align-items:center;justify-content:center;flex-shrink:0}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes subpageSlideIn{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.discover-drawer-page{display:flex;flex-direction:column;height:100%;background:var(--bg-surface)}.discover-drawer-search-wrap{position:relative;margin:0 18px 10px;flex-shrink:0}.discover-drawer-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.discover-drawer-search{width:100%;box-sizing:border-box;padding:9px 12px 9px 34px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;font-size:var(--text-body);color:var(--text-primary);outline:none;font-family:inherit}.discover-drawer-search:focus{border-color:var(--accent-primary)}.discover-drawer-filters{display:flex;gap:6px;padding:0 18px 12px;overflow-x:auto;flex-shrink:0;scrollbar-width:none}.discover-drawer-filters::-webkit-scrollbar{display:none}.discover-drawer-filter{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;background:var(--bg-input);border:1px solid var(--border-subtle);font-size:var(--text-small);color:var(--text-secondary);cursor:pointer;white-space:nowrap;font-family:inherit;transition:all var(--dur-micro)}.discover-drawer-filter.active{background:#15b8861f;border-color:#15b8864d;color:var(--accent-primary)}.discover-drawer-body{flex:1;overflow-y:auto;padding:0 18px 32px}.discover-drawer-loading,.discover-drawer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 0;color:var(--text-muted);font-size:var(--text-body)}.discover-drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:8px}.discover-drawer-tile{background:var(--bg-card, #1a1a2e);border:1px solid var(--border-subtle, rgba(255, 255, 255, .06));border-radius:10px;overflow:hidden;cursor:pointer;transition:transform var(--dur-micro) ease,border-color var(--dur-micro) ease;display:flex;flex-direction:column;min-width:0}.discover-drawer-tile:hover{border-color:#15b8864d}.discover-drawer-tile:active{transform:scale(.98)}.discover-drawer-tile-cover{position:relative;width:100%;aspect-ratio:1 / 1;overflow:hidden;display:flex;align-items:center;justify-content:center}.discover-drawer-tile-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.discover-drawer-tile-emoji{font-size:2rem;opacity:.95}.discover-drawer-tile-badge{position:absolute;top:6px;left:6px;font-size:var(--text-micro);font-weight:600;padding:2px 7px;border-radius:8px;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;letter-spacing:.3px}.discover-drawer-tile-verified{position:absolute;bottom:6px;right:6px;width:16px;height:16px;background:var(--accent-primary);border-radius:50%;font-size:var(--text-micro);display:flex;align-items:center;justify-content:center;color:#fff;border:2px solid var(--bg-card, #1a1a2e)}.discover-drawer-tile-body{padding:8px 10px 10px;display:flex;flex-direction:column;gap:3px;min-width:0}.discover-drawer-tile-name-row{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.discover-drawer-tile-name{font-size:var(--text-small);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.discover-drawer-tile-chat{width:24px;height:24px;border-radius:50%;background:#15b8861f;border:1px solid rgba(21,184,134,.25);color:#15b886;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--dur-micro);padding:0}@media(hover:hover)and (pointer:fine){.discover-drawer-tile-chat:hover{background:#15b88640}}.discover-drawer-tile-chat:disabled{opacity:.5;cursor:not-allowed}.discover-drawer-tile-bio{font-size:var(--text-caption);color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;min-height:2.8em}.chat-search-bar{display:flex;gap:8px;align-items:center;padding:8px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.chat-search-bar input{flex:1;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;padding:6px 12px;color:var(--text-primary);font-size:var(--text-body);font-family:inherit;outline:none;transition:border-color var(--dur-micro)}.chat-search-bar input:focus{border-color:var(--accent-primary)}.chat-search-results{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);max-height:280px;overflow-y:auto;flex-shrink:0;box-shadow:0 4px 16px #0000001f}.search-result-item{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background .12s}.search-result-item:last-child{border-bottom:none}@media(hover:hover)and (pointer:fine){.search-result-item:hover{background:var(--bg-hover)}}.search-role{font-size:var(--text-caption);font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0}.search-role.user{background:#15b8861f;color:var(--accent-primary)}.search-role.assistant{background:#8b5cf61f;color:#8b5cf6}.search-content{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.memory-panel{padding:4px 0}.memory-header{display:flex;align-items:center;gap:6px;font-size:var(--text-body);font-weight:600;color:var(--text-primary);margin-bottom:10px;padding:0 2px}.memory-empty{font-size:var(--text-small);color:var(--text-muted);text-align:center;padding:16px 8px;line-height:1.6}.memory-list{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.memory-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;padding:9px 11px;transition:border-color var(--dur-micro)}.memory-card:hover{border-color:var(--accent-primary)}.memory-content{font-size:var(--text-small);color:var(--text-primary);line-height:1.5;margin-bottom:6px}.memory-meta{display:flex;justify-content:space-between;align-items:center}.memory-type-tag{font-size:var(--text-micro);color:var(--text-muted);background:var(--bg-surface);padding:2px 7px;border-radius:4px;border:1px solid var(--border-subtle)}.memory-delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:3px 5px;border-radius:4px;opacity:0;transition:opacity var(--dur-micro),color var(--dur-micro),background var(--dur-micro);display:flex;align-items:center}.memory-card:hover .memory-delete-btn{opacity:1}@media(hover:hover)and (pointer:fine){.memory-delete-btn:hover{color:#ef4444;background:#ef44441a}}.usage-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}@media(max-width:700px){.usage-stats-grid{grid-template-columns:repeat(2,1fr)}}.usage-stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:16px;text-align:center}.usage-stat-value{font-size:1.45rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.usage-stat-label{font-size:var(--text-caption);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.usage-chart{display:flex;align-items:flex-end;gap:6px;height:180px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:16px 16px 10px;margin-bottom:24px}.usage-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:flex-end}.usage-bar{width:100%;max-width:36px;background:linear-gradient(to top,var(--accent-primary),rgba(21,184,134,.45));border-radius:4px 4px 0 0;min-height:2px;transition:height var(--dur-slow) var(--ease-spring)}.usage-bar-label{font-size:var(--text-micro);color:var(--text-muted);white-space:nowrap;text-align:center}.relationship-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;padding:10px 12px;margin-bottom:10px}.relationship-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.relationship-emoji{font-size:var(--text-h2)}.relationship-label{font-size:var(--text-body);font-weight:700}.relationship-days{font-size:var(--text-caption);color:var(--text-muted);margin-left:auto}.relationship-stats{display:flex;gap:12px;font-size:var(--text-caption);color:var(--text-secondary)}.memory-tabs{display:flex;gap:4px;margin-bottom:8px;border-bottom:1px solid var(--border-subtle);padding-bottom:6px}.memory-tab{display:flex;align-items:center;gap:4px;padding:5px 10px;background:none;border:none;border-radius:6px;font-size:var(--text-caption);color:var(--text-muted);cursor:pointer;font-family:inherit;transition:all var(--dur-micro)}.memory-tab.active{background:#15b8861a;color:var(--accent-primary);font-weight:600}@media(hover:hover)and (pointer:fine){.memory-tab:hover:not(.active){background:var(--bg-hover)}}.confidence-dot{font-size:var(--text-caption);color:var(--text-muted);margin-left:4px}.personality-slider-panel{padding:4px 0}.slider-header{display:flex;align-items:center;gap:6px;font-size:var(--text-body);font-weight:600;color:var(--text-primary);margin-bottom:12px}.slider-row{margin-bottom:14px}.slider-label{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-small);color:var(--text-primary);margin-bottom:5px}.slider-value{font-size:var(--text-caption);color:var(--text-muted);font-weight:600}.slider-track-wrapper{display:flex;align-items:center;gap:8px}.slider-endpoint{font-size:var(--text-micro);color:var(--text-muted);white-space:nowrap;min-width:48px}.slider-endpoint:last-child{text-align:right}.personality-range{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;outline:none;opacity:.85;transition:opacity var(--dur-micro)}.personality-range:hover{opacity:1}.personality-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent-primary);cursor:pointer;box-shadow:0 1px 4px #0003;-webkit-transition:transform .12s;transition:transform .12s}.personality-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.slider-save-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 0;margin-top:4px;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:var(--text-small);font-family:inherit;font-weight:600;cursor:pointer;transition:background var(--dur-micro)}@media(hover:hover)and (pointer:fine){.slider-save-btn:hover{background:var(--accent-hover)}}.slider-save-btn:disabled{opacity:.6;cursor:not-allowed}.intimacy-bar-container{display:flex;align-items:center;gap:6px;padding:4px 12px 6px;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);min-height:28px}.intimacy-stage-badge{display:flex;align-items:center;gap:3px;flex-shrink:0}.intimacy-emoji{font-size:.85rem}.intimacy-stage-label{font-size:.7rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.intimacy-progress-wrapper{flex:1;position:relative;display:flex;align-items:center}.intimacy-progress-track{width:100%;height:4px;background:var(--bg-tertiary, rgba(128,128,128,.15));border-radius:2px;overflow:hidden;position:relative}.intimacy-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#a78bfa,#818cf8,#6366f1);transition:width .8s var(--ease-spring);position:relative}.intimacy-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);animation:intimacy-shimmer 2s ease-in-out infinite}@keyframes intimacy-shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}.intimacy-progress-glow{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:#818cf8;box-shadow:0 0 6px 2px #818cf880;transform:translate(-50%,-50%);transition:left .8s var(--ease-spring)}.intimacy-point-gain{position:absolute;right:0;top:-10px;font-size:.68rem;font-weight:700;color:#818cf8;animation:point-float 1.2s ease-out forwards;pointer-events:none;white-space:nowrap}@keyframes point-float{0%{opacity:1;transform:translateY(0) scale(1)}60%{opacity:1;transform:translateY(-14px) scale(1.1)}to{opacity:0;transform:translateY(-22px) scale(.8)}}.intimacy-next-hint{font-size:.75rem;opacity:.4;flex-shrink:0}.upgrade-popup-overlay{position:fixed;inset:0;z-index:9999;background:#0000;display:flex;align-items:center;justify-content:center;transition:background var(--dur-normal) ease;padding:20px}.upgrade-popup-overlay.show{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upgrade-popup{background:var(--bg-base);border-radius:20px;padding:32px 28px 24px;max-width:340px;width:100%;text-align:center;transform:scale(.8) translateY(20px);opacity:0;transition:all var(--dur-slow) var(--ease-spring);position:relative;overflow:hidden;box-shadow:0 20px 60px #0000004d}.upgrade-popup.show{transform:scale(1) translateY(0);opacity:1}.upgrade-emoji-burst{font-size:3rem;animation:emoji-bounce var(--dur-gentle) var(--ease-spring) var(--dur-fast) both;margin-bottom:12px}@keyframes emoji-bounce{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.upgrade-title{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin-bottom:16px}.upgrade-chain{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:16px}.upgrade-chain-node{display:flex;align-items:center}.chain-dot{font-size:1.1rem;opacity:.3;transition:all var(--dur-normal)}.chain-dot.past{opacity:.6}.chain-dot.current{opacity:1;font-size:1.4rem;animation:current-pulse 1.5s ease-in-out infinite}@keyframes current-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.chain-line{display:inline-block;width:16px;height:2px;background:var(--border-subtle);margin:0 2px}.upgrade-message{font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin-bottom:20px;white-space:pre-line}.upgrade-close-btn{width:100%;padding:12px;border:none;border-radius:12px;background:linear-gradient(135deg,#818cf8,#6366f1);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform var(--dur-micro),box-shadow var(--dur-micro);font-family:inherit}.upgrade-close-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.upgrade-close-btn:active{transform:translateY(0)}.upgrade-particles{position:absolute;top:50%;left:50%;pointer-events:none}.upgrade-particles .particle{position:absolute;font-size:.9rem;animation:particle-fly 2s ease-out var(--delay, 0s) infinite;transform-origin:center}@keyframes particle-fly{0%{opacity:1;transform:rotate(var(--angle, 0deg)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--angle, 0deg)) translateY(-80px) scale(.3)}}.my-posts-section{display:flex;flex-direction:column;height:100%}.my-posts-tabs{display:flex;gap:6px;padding:8px 4px 12px;border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--bg-base);z-index:1}.my-posts-tab{padding:6px 14px;background:transparent;border:1px solid var(--border-subtle);border-radius:999px;color:var(--text-secondary);font-size:.82rem;cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro),border-color var(--dur-micro)}.my-posts-tab:hover{color:var(--text-primary)}.my-posts-tab--active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.my-posts-list{flex:1;display:flex;flex-direction:column;gap:10px;padding:12px 0 calc(24px + env(safe-area-inset-bottom,0px))}.my-posts-skeleton-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.my-posts-empty{display:flex;flex-direction:column;align-items:center;gap:14px;padding:48px 16px;color:var(--text-secondary)}.my-posts-empty-text{font-size:.9rem;text-align:center}.my-posts-cta{padding:8px 18px;border-radius:10px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:background var(--dur-micro)}@media(hover:hover)and (pointer:fine){.my-posts-cta:hover{background:var(--bg-hover)}}.my-posts-item{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface);text-align:left;cursor:pointer;position:relative;transition:border-color var(--dur-micro),background var(--dur-micro)}.my-posts-item:hover{border-color:var(--accent-primary)}.my-posts-badge{align-self:flex-start;font-size:.7rem;padding:2px 8px;border-radius:6px;font-weight:500}.my-posts-badge--pending{background:#eab30824;color:#eab308}.my-posts-badge--rejected{background:#ef444424;color:#ef4444}.my-posts-reject-banner{font-size:.78rem;line-height:1.5;color:#ef4444;background:#ef444412;border:1px solid rgba(239,68,68,.18);border-radius:8px;padding:8px 10px}.my-posts-reject-banner-prefix{font-weight:600;margin-right:4px}.my-posts-body{display:flex;gap:10px;align-items:flex-start}.my-posts-cover{width:72px;height:72px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--bg-card, #1a1a2e)}.my-posts-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.my-posts-title{font-size:.9rem;line-height:1.4;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.my-posts-meta{display:flex;gap:6px;font-size:.72rem;color:var(--text-muted)}.my-posts-item{padding:0;overflow:hidden}.my-posts-item-main{display:flex;flex-direction:column;gap:8px;padding:12px 44px 12px 12px;background:transparent;border:0;color:inherit;text-align:left;width:100%;cursor:pointer}.my-posts-item-kebab{position:absolute;top:6px;right:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer;z-index:1;transition:background var(--dur-micro),color var(--dur-micro)}@media(hover:hover)and (pointer:fine){.my-posts-item-kebab:hover{background:var(--bg-hover);color:var(--text-primary)}}.my-post-sheet-backdrop{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:my-post-fade-in .18s ease-out}@media(min-width:720px){.my-post-sheet-backdrop{align-items:center}}@keyframes my-post-fade-in{0%{opacity:0}to{opacity:1}}@keyframes my-post-slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.my-post-action-sheet{width:100%;max-width:480px;background:var(--bg-surface);border-radius:14px 14px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:2px;animation:my-post-slide-up .22s cubic-bezier(.22,.61,.36,1)}@media(min-width:720px){.my-post-action-sheet{border-radius:14px;margin:16px}}.my-post-action-btn{padding:14px 16px;background:transparent;border:0;color:var(--text-primary);font-size:.95rem;border-radius:10px;cursor:pointer;transition:background .12s;text-align:center}@media(hover:hover)and (pointer:fine){.my-post-action-btn:hover{background:var(--bg-hover)}}.my-post-action-btn--danger{color:#ef4444}.my-post-action-btn--cancel{color:var(--text-secondary)}.my-post-action-divider{height:6px}.my-post-confirm{background:var(--bg-surface);border-radius:14px;margin:16px;padding:18px;max-width:420px;width:calc(100% - 32px);display:flex;flex-direction:column;gap:10px;animation:my-post-slide-up .22s cubic-bezier(.22,.61,.36,1);align-self:center;margin-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.my-post-confirm-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.my-post-confirm-body{font-size:.86rem;line-height:1.5;color:var(--text-secondary)}.my-post-confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.my-post-sheet-modal{background:var(--bg-surface);border-radius:14px 14px 0 0;max-height:88vh;width:100%;max-width:560px;display:flex;flex-direction:column;animation:my-post-slide-up .22s cubic-bezier(.22,.61,.36,1);padding-bottom:env(safe-area-inset-bottom,0px)}@media(min-width:720px){.my-post-sheet-modal{border-radius:14px;margin:16px;max-height:78vh}}.my-post-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-subtle)}.my-post-sheet-title{font-size:.95rem;font-weight:600;color:var(--text-primary)}.my-post-sheet-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer}@media(hover:hover)and (pointer:fine){.my-post-sheet-close:hover{background:var(--bg-hover);color:var(--text-primary)}}.my-post-sheet-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:14px}.my-post-sheet-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border-subtle)}.my-post-field{display:flex;flex-direction:column;gap:6px}.my-post-field-label{font-size:.78rem;color:var(--text-secondary)}.my-post-field-input,.my-post-field-textarea{width:100%;background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;color:var(--text-primary);font-size:.9rem;font-family:inherit;resize:vertical}.my-post-field-input:focus,.my-post-field-textarea:focus{outline:none;border-color:var(--accent-primary)}.my-post-visibility-group{display:flex;gap:8px;flex-wrap:wrap}.my-post-visibility-chip{padding:6px 14px;background:transparent;border:1px solid var(--border-subtle);border-radius:999px;color:var(--text-secondary);font-size:.82rem;cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro),border-color var(--dur-micro)}.my-post-visibility-chip--active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.my-post-btn{padding:8px 16px;border-radius:10px;font-size:.88rem;cursor:pointer;border:1px solid transparent;transition:background var(--dur-micro),color var(--dur-micro),border-color var(--dur-micro)}.my-post-btn:disabled{opacity:.55;cursor:not-allowed}.my-post-btn--ghost{background:transparent;border-color:var(--border-subtle);color:var(--text-secondary)}@media(hover:hover)and (pointer:fine){.my-post-btn--ghost:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}}.my-post-btn--primary{background:var(--accent-primary);color:#fff}.my-post-btn--primary:hover:not(:disabled){filter:brightness(1.08)}.my-post-btn--danger{background:#ef4444;color:#fff}.my-post-btn--danger:hover:not(:disabled){filter:brightness(1.08)}:root{color-scheme:light;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=dark]{color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Noto Sans SC,PingFang SC,Hiragino Sans GB,sans-serif;font-size:15px;line-height:1.6;background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;word-break:keep-all;overflow-wrap:anywhere}#root{background:var(--bg-base);min-height:100%}*{scrollbar-width:none}*::-webkit-scrollbar{display:none;width:0;height:0}#sentry-feedback,[data-sentry-feedback]{display:none!important}.keyboard-aware-page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:max(env(safe-area-inset-bottom),var(--kb-h, 0px))}.auth-page{background:var(--bg-base);padding-top:calc(24px + env(safe-area-inset-top));padding-right:calc(24px + env(safe-area-inset-right));padding-left:calc(24px + env(safe-area-inset-left))}.auth-page>.auth-card{margin:auto}.auth-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:48px 40px;width:100%;max-width:420px;box-shadow:var(--shadow-card),var(--shadow-glow)}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo-img{width:72px;height:72px;-o-object-fit:contain;object-fit:contain;margin-bottom:16px}.auth-logo h1{font-size:var(--text-display);font-weight:700;color:var(--accent-primary);letter-spacing:-.5px}.auth-logo p{color:var(--text-secondary);font-size:var(--text-body);margin-top:8px}.auth-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:var(--text-body);font-weight:600;color:var(--text-secondary);letter-spacing:.03em}.auth-form input,.form-group input{width:100%;padding:0 18px;height:52px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:12px;color:var(--text-primary);font-size:16px;font-family:inherit;box-sizing:border-box;transition:border-color var(--transition),box-shadow var(--transition)}.auth-form input:focus,.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--border-glow)}.auth-form input::-moz-placeholder,.form-group input::-moz-placeholder{color:var(--text-muted)}.auth-form input::placeholder,.form-group input::placeholder{color:var(--text-muted)}.form-input{width:100%;padding:0 18px;height:52px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:12px;color:var(--text-primary);font-size:16px;font-family:inherit;box-sizing:border-box;transition:border-color var(--transition),box-shadow var(--transition)}.form-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--border-glow)}.form-group input::-moz-placeholder{color:var(--text-muted)}.form-group input::placeholder{color:var(--text-muted)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none;padding:8px;font-family:inherit;font-size:var(--text-body);cursor:pointer;transition:color var(--transition)}.btn-ghost:hover{color:var(--text-primary)}.auth-switch{text-align:center;margin-top:16px;font-size:var(--text-body);color:var(--text-muted)}.auth-switch button{background:none;border:none;color:var(--accent-primary);font-family:inherit;cursor:pointer;font-size:inherit}.error-msg{background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-sm);padding:10px 14px;font-size:var(--text-body);color:#f87171}.app-shell{display:flex;height:100vh;overflow:hidden;background:var(--bg-surface);overscroll-behavior-x:none}.keepalive-container{flex:1;position:relative;min-width:0;background:var(--bg-surface)}.keepalive-container>.keepalive-cache-div{height:100%;display:flex}.app-nav{width:72px;background:var(--bg-surface);box-shadow:1px 0 0 var(--border-subtle);display:flex;flex-direction:column;align-items:center;padding:16px 0 12px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.06)}.nav-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:20px;cursor:default}.nav-logo-mark{width:38px;height:38px;border-radius:10px;-o-object-fit:cover;object-fit:cover}.nav-logo-sub{font-size:var(--text-micro);color:var(--text-secondary);margin-top:4px;text-align:center;white-space:nowrap}.nav-items{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.nav-item{width:64px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:10px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:var(--text-caption);text-decoration:none;position:relative;transition:background var(--transition),color var(--transition)}@media(hover:hover)and (pointer:fine){.nav-item:hover{background:#ffffff0f;color:var(--text-primary)}}.nav-item.active{background:var(--bg-input);color:var(--accent-primary)}.nav-item span{font-size:var(--text-caption);line-height:1;white-space:nowrap}.nav-badge{position:absolute;top:4px;right:6px;background:#e53e3e;color:#fff;font-size:var(--text-micro);font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.nav-bottom{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06);width:100%}.nav-user-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-primary);display:flex;align-items:center;justify-content:center;font-size:var(--text-body);font-weight:700;color:#fff;cursor:pointer;flex-shrink:0;margin-top:2px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 12px;flex-shrink:0}.panel-header h2{font-size:var(--text-h2);font-weight:600;color:var(--text-primary)}.panel-icon-btn{width:32px;height:32px;border-radius:8px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition);font-family:inherit}@media(hover:hover)and (pointer:fine){.panel-icon-btn:hover{background:var(--bg-card);color:var(--text-primary)}}.cl-page-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 16px 8px;flex-shrink:0}.cl-page-title-text{grid-column:2;font-size:1.05rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.cl-page-title-actions{grid-column:3;justify-self:end;display:flex;align-items:center;gap:6px}.cl-page-title-action{position:relative;width:30px;height:30px;border-radius:50%;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-micro);padding:0}@media(hover:hover)and (pointer:fine){.cl-page-title-action:hover{background:var(--bg-input);color:var(--text-primary)}}.cl-page-title-action:active{transform:scale(.92)}.cl-page-title-publish{width:32px;height:32px;background:var(--accent-primary);color:#fff;border-radius:10px;box-shadow:0 2px 8px #15b8864d}@media(hover:hover)and (pointer:fine){.cl-page-title-publish:hover{background:var(--accent-primary);color:#fff;opacity:.88}}.cl-page-title-publish:active{transform:scale(.9);opacity:1}.panel-search{display:flex;align-items:center;gap:8px;margin:0 12px 8px;background:var(--bg-input);border-radius:8px;padding:7px 12px;flex-shrink:0;color:var(--text-muted)}.panel-search input{flex:1;background:transparent;border:none;outline:none;font-size:var(--text-body);color:var(--text-primary);font-family:inherit}.panel-search input::-moz-placeholder{color:var(--text-muted)}.panel-search input::placeholder{color:var(--text-muted)}.panel-list{flex:1;overflow-y:auto}.chat-search-page{display:flex;flex-direction:column;height:100%;background:var(--bg-base)}.chat-search-input-row{display:flex;align-items:center;gap:8px;margin:12px 16px 8px;padding:9px 12px;background:var(--bg-input);border-radius:10px;color:var(--text-muted)}.chat-search-input-row input{flex:1;background:transparent;border:none;outline:none;font-size:var(--text-body);color:var(--text-primary);font-family:inherit}.chat-search-input-row input::-moz-placeholder{color:var(--text-muted)}.chat-search-input-row input::placeholder{color:var(--text-muted)}.chat-search-clear-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;display:flex;align-items:center;justify-content:center}.chat-search-kind-chips{display:flex;gap:8px;padding:0 16px 12px;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.chat-search-kind-chips::-webkit-scrollbar{display:none}.chat-search-chip{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:999px;padding:6px 14px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.chat-search-chip.active{background:var(--accent);color:var(--accent-fg, #fff);border-color:var(--accent)}.chat-search-empty,.chat-search-error{text-align:center;padding:48px 24px;color:var(--text-muted);font-size:.9rem}.chat-search-error{color:var(--color-error, #d33)}.chat-search-skeleton{padding:8px 16px}.chat-search-skel-row{height:72px;background:var(--bg-elevated);border-radius:10px;margin-bottom:10px;animation:chat-search-skel-pulse 1.6s ease-in-out infinite}@keyframes chat-search-skel-pulse{0%,to{opacity:.6}50%{opacity:1}}.chat-search-conv-row-flat{display:flex;align-items:flex-start;gap:12px;width:100%;padding:10px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;color:var(--text-primary);font-family:inherit;text-align:left}@media(hover:hover)and (pointer:fine){.chat-search-conv-row-flat:hover{background:var(--bg-input)}}.chat-search-conv-row-flat:active{background:var(--bg-input)}.chat-search-conv-text{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.chat-search-conv-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.chat-search-conv-title{font-weight:500;font-size:.95rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.chat-search-conv-date{flex-shrink:0;font-size:.75rem;color:var(--text-muted)}.chat-search-conv-snippet{font-size:.85rem;color:var(--text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.chat-search-conv-footer{font-size:.75rem;color:var(--text-muted);margin-top:1px}.chat-search-more-btn{display:block;width:100%;padding:12px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);font-family:inherit;font-size:.88rem;color:var(--accent, #07c160);text-align:left;cursor:pointer}.chat-search-more-btn:disabled{cursor:default;opacity:.6}@media(hover:hover)and (pointer:fine){.chat-search-more-btn:not(:disabled):hover{background:var(--bg-input)}}.chat-search-sections{display:flex;flex-direction:column}.chat-search-section{padding:8px 0 4px}.chat-search-section-title{font-size:.78rem;font-weight:500;color:var(--text-muted);margin:0;padding:8px 16px 6px;letter-spacing:.02em}.chat-search-contacts-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-subtle)}.chat-search-contact-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;color:var(--text-primary);font-family:inherit;text-align:left}@media(hover:hover)and (pointer:fine){.chat-search-contact-row:hover{background:var(--bg-input)}}.chat-search-contact-row:active{background:var(--bg-input)}.chat-search-contact-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.chat-search-contact-name{font-size:.95rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-search-contact-sub{font-size:.78rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-search-mark{background:transparent;color:var(--accent, #07c160);font-weight:inherit;padding:0}.message-row[data-focused=true] .msg-bubble{animation:chat-focus-flash 1.5s ease-out!important}@keyframes chat-focus-flash{0%{box-shadow:0 0 #07c16000}20%{box-shadow:0 0 0 3px #07c160a6}to{box-shadow:0 0 #07c16000}}.panel-loading{display:flex;justify-content:center;gap:6px;padding:32px}.conv-item-wrapper{position:relative;overflow:hidden;background:var(--bg-surface, #000)}.conv-swipe-actions{position:absolute;top:0;left:100%;bottom:0;display:flex;align-items:stretch;z-index:0}.conv-swipe-btn{border:0;margin:0;width:72px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;font-weight:500;color:#fff;letter-spacing:.5px;transition:filter .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.conv-swipe-btn:active{filter:brightness(.88);transform:scale(.96)}.conv-swipe-btn--pin{background:#c7c7cc;color:#fff}.conv-swipe-btn--delete{background:#ff3b30;color:#fff}.conv-item.conv-item--pinned{background:color-mix(in srgb,var(--text-primary, #fff) 4%,var(--bg-surface, #000))}.conv-pin-icon{flex-shrink:0;color:var(--text-muted, #8e8e93);margin-left:auto;margin-right:4px;transform:rotate(45deg)}.conv-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background var(--transition);border-radius:0;position:relative;z-index:1;background:var(--bg-surface, #000)}@media(hover:hover)and (pointer:fine){.conv-item:hover{background:var(--bg-input)}}.conv-item:active{background:#15b8861f;transform:scale(.98)}.conv-item.active{background:#15b88614}.conv-avatar{width:44px;height:44px;border-radius:10px;border:1.5px solid;display:flex;align-items:center;justify-content:center;font-size:1.25rem;position:relative;flex-shrink:0;overflow:hidden}.conv-avatar-group{border-color:var(--border-subtle)!important;background:var(--bg-input)!important;padding:0}.group-avatar-grid{width:100%;height:100%;display:grid;gap:1.5px;padding:3px;box-sizing:border-box}.group-avatar-grid[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr}.group-avatar-grid[data-count="2"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.group-avatar-grid[data-count="3"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.group-avatar-grid[data-count="3"] .group-avatar-cell:first-child{grid-column:span 2;grid-row:1}.group-avatar-grid[data-count="4"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.group-avatar-cell{border-radius:3px;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;overflow:hidden}.group-avatar-cell-emoji{display:flex;align-items:center;justify-content:center;font-size:var(--text-caption);background:var(--bg-card);line-height:1}.conv-badge{position:absolute;top:-4px;right:-4px;background:#e53e3e;color:#fff;font-size:var(--text-micro);font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;white-space:nowrap;line-height:1}.conv-body{flex:1;overflow:hidden}.conv-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.conv-name{font-size:var(--text-h3);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{font-size:var(--text-caption);color:var(--text-muted);flex-shrink:0;margin-left:6px}.conv-preview{font-size:var(--text-small);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-skeleton{display:flex;align-items:center;gap:10px;padding:10px 14px}.conv-sk-avatar{width:44px;height:44px;border-radius:10px;background:var(--bg-input);animation:shimmer var(--dur-skeleton) infinite;flex-shrink:0}.conv-sk-body{flex:1;display:flex;flex-direction:column;gap:6px}.conv-sk-name{height:14px;border-radius:4px;background:var(--bg-input);width:60%;animation:shimmer var(--dur-skeleton) infinite}.conv-sk-msg{height:12px;border-radius:4px;background:var(--bg-input);width:80%;animation:shimmer var(--dur-skeleton) infinite}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}.panel-world-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.panel-world-tabs{display:flex;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.world-tab{flex:1;padding:10px 4px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:var(--text-small);font-weight:500;color:var(--text-muted);cursor:pointer;font-family:inherit;transition:color var(--transition),border-color var(--transition)}.world-tab.active{color:var(--text-primary);border-bottom-color:var(--accent-primary)}.world-discover-hint{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-muted);font-size:var(--text-body);text-align:center;padding:24px}.wallet-panel{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:14px}.wallet-balance-card{background:var(--accent-primary);border-radius:14px;padding:18px;color:#fff}.wallet-balance-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.wallet-balance-label{font-size:var(--text-small);opacity:.8}.wallet-balance-amount{display:flex;align-items:center;gap:8px;margin-bottom:14px}.wallet-coin-icon{font-size:var(--text-h1)}.wallet-coin-value{font-size:1.8rem;font-weight:700;letter-spacing:-.5px}.wallet-topup-btn{background:#fff3;border:1px solid rgba(255,255,255,.35);border-radius:20px;color:#fff;font-family:inherit;font-size:var(--text-small);font-weight:600;padding:6px 18px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--transition)}@media(hover:hover)and (pointer:fine){.wallet-topup-btn:hover{background:#ffffff4d}}.wallet-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.wallet-action-item{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;padding:12px 8px;cursor:pointer;font-family:inherit;font-size:var(--text-caption);color:var(--text-primary);transition:background var(--transition)}@media(hover:hover)and (pointer:fine){.wallet-action-item:hover{background:var(--bg-input)}}.wallet-action-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-h2)}.wallet-tx-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden}.wallet-tx-title{font-size:var(--text-small);font-weight:600;color:var(--text-muted);padding:10px 14px 8px;border-bottom:1px solid var(--border-subtle);letter-spacing:.05em;text-transform:uppercase}.wallet-tx-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.wallet-tx-item:last-child{border-bottom:none}.wallet-tx-name{font-size:var(--text-small);color:var(--text-secondary)}.wallet-tx-amt{font-size:var(--text-small);font-weight:600}.wallet-tx-amt.pos{color:var(--accent-primary)}.wallet-tx-amt.neg{color:#f87171}.wallet-tx-empty{padding:16px 14px;font-size:var(--text-small);color:var(--text-muted);text-align:center}.mine-panel{flex:1;overflow-y:auto;padding-inline:16px;padding-bottom:20px}.mine-profile-row{display:flex;align-items:center;gap:14px;padding:20px 16px;margin-inline:-16px;background:transparent;border:none;width:calc(100% + 32px);cursor:pointer;font-family:inherit;text-align:left;transition:background var(--dur-micro);min-height:80px}@media(hover:hover)and (pointer:fine){.mine-profile-row:hover{background:var(--bg-hover, rgba(0, 0, 0, .03))}}.mine-profile-row:active{background:var(--bg-hover, rgba(0, 0, 0, .06))}.mine-profile-avatar{width:60px;height:60px;border-radius:50%;background:var(--accent-primary);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.mine-profile-avatar-fallback{font-size:1.4rem;font-weight:700;color:#fff}.mine-profile-info{flex:1;min-width:0}.mine-profile-name{font-size:1.1rem;font-weight:600;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mine-profile-id{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-caption);color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:4px;padding:1px 4px;margin-left:-4px;transition:color var(--dur-fast),background var(--dur-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.mine-profile-id:hover{background:var(--bg-input)}}.mine-profile-id:active{background:var(--bg-hover, rgba(0, 0, 0, .06))}.mine-profile-id--copied{color:#22c55e;background:#22c55e1a}.mine-profile-qr{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;color:var(--text-muted);border-radius:8px;transition:background var(--dur-micro),color var(--dur-micro);-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.mine-profile-qr:hover{background:var(--bg-input);color:var(--text-primary)}}.mine-profile-qr:active{background:var(--bg-hover, rgba(0, 0, 0, .08))}.mine-profile-chevron{flex-shrink:0;color:var(--text-muted);opacity:.5}.mine-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:12px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-subtle);overflow:hidden}.mine-stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;background:none;border:none;cursor:pointer;font-family:inherit;transition:background var(--dur-micro)}.mine-stat-item:not(:last-child){border-right:1px solid var(--border-subtle)}@media(hover:hover)and (pointer:fine){.mine-stat-item:hover{background:var(--bg-input)}}.mine-stat-count{font-size:1.1rem;font-weight:700;color:var(--text-primary);line-height:1.2}.mine-stat-label{font-size:.72rem;color:var(--text-muted);font-weight:500}.mine-menu-list{margin-top:16px;border-radius:12px;overflow:hidden;background:var(--bg-card);border:1px solid var(--border-subtle)}.mine-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:500;transition:background var(--dur-micro);text-align:left}.mine-menu-item:last-child{border-bottom:none}@media(hover:hover)and (pointer:fine){.mine-menu-item:hover{background:var(--bg-input)}}.mine-menu-item span{flex:1}.mine-menu-count{font-size:.78rem;color:var(--text-muted);font-weight:400}.mine-menu-arrow{color:var(--text-muted);opacity:.5}.self-profile-panel{flex:1;overflow-y:auto;padding-inline:16px;padding-bottom:20px}.self-profile-hero{position:relative;display:flex;align-items:center;gap:14px;padding:12px 0 8px;min-height:88px}.self-profile-hero--clickable,.entity-profile-hero--clickable{cursor:pointer;background:transparent;border:none;border-radius:12px;text-align:left;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:background var(--dur-micro);width:100%}.self-profile-hero--clickable:focus-visible,.entity-profile-hero--clickable:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@media(hover:hover)and (pointer:fine){.self-profile-hero--clickable:hover,.entity-profile-hero--clickable:hover{background:var(--bg-input)}}.self-profile-hero--clickable:active,.entity-profile-hero--clickable:active{background:var(--bg-input)}.self-profile-hero-chevron,.entity-profile-hero-chevron{flex-shrink:0;color:var(--text-muted);margin-left:auto;margin-right:4px}.self-profile-avatar{width:72px;height:72px;border-radius:50%;background:var(--accent-primary);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.self-profile-avatar-fallback{font-size:1.6rem;font-weight:700;color:#fff}.self-profile-hero-text{flex:0 1 auto;min-width:0;max-width:calc(100% - 130px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px}.self-profile-name-row{display:flex;align-items:center;gap:8px}.self-profile-name{font-size:1.25rem;font-weight:700;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.self-profile-share-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;color:var(--text-muted);border:none;background:transparent;border-radius:8px;cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro);-webkit-tap-highlight-color:transparent;margin-left:12px}@media(hover:hover)and (pointer:fine){.self-profile-share-btn:hover{background:var(--bg-input);color:var(--text-primary)}}.self-profile-share-btn:active{background:var(--bg-hover, rgba(0, 0, 0, .08))}.self-profile-bio{margin-top:4px;max-width:32ch;color:var(--text-muted);font-size:.85rem;line-height:1.4}.self-profile-stats-row,.entity-profile-stats-row{display:flex;align-items:center;gap:8px;padding:0 16px 4px}.self-profile-stats-row{padding-inline:0}.self-profile-stats-row .self-profile-stats-group,.entity-profile-stats-row .entity-profile-stats-group{flex:0 1 280px;min-width:0}.self-profile-cta-gear,.entity-profile-cta-gear{flex:0 0 36px;margin-left:auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle, rgba(255, 255, 255, .18));border-radius:50%;color:var(--text-primary);cursor:pointer;transition:background var(--dur-micro),border-color var(--dur-micro);-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.self-profile-cta-gear:hover,.entity-profile-cta-gear:hover{background:var(--bg-input);border-color:var(--text-muted)}}.self-profile-cta-gear:active,.entity-profile-cta-gear:active{background:var(--bg-input);transform:scale(.95)}.self-profile-stats-group,.entity-profile-stats-group{display:flex;justify-content:space-between;align-items:center;gap:0;padding:6px 0}.self-profile-stat-item,.entity-profile-stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;flex:0 1 auto;min-width:0;padding:4px 0;background:transparent;border:none;cursor:pointer;font-family:inherit;transition:background var(--dur-micro);border-radius:8px;-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.self-profile-stat-item:not(:disabled):hover,.entity-profile-stat-item:not(:disabled):hover{background:var(--bg-input)}}.self-profile-stat-item:disabled,.entity-profile-stat-item:disabled{cursor:default;opacity:.85}.self-profile-stat-count,.entity-profile-stat-count{font-size:1rem;font-weight:600;color:var(--text-primary);line-height:1.15}.self-profile-stat-label,.entity-profile-stat-label{font-size:.75rem;color:var(--text-muted)}.profile-posts-tabs{display:flex;flex-direction:column;width:100%}.profile-posts-tabs-bar{display:flex;align-items:center;justify-content:space-around;border-bottom:1px solid var(--border-primary, rgba(0, 0, 0, .06));padding:0;background:transparent}.profile-posts-tab{flex:1;padding:10px 4px;background:transparent;border:none;font-family:inherit;font-size:.92rem;color:var(--text-muted);cursor:pointer;position:relative;transition:color var(--dur-micro);-webkit-tap-highlight-color:transparent}.profile-posts-tab.is-active{color:var(--text-primary);font-weight:600}.profile-posts-tab.is-active:after{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:24px;height:2px;border-radius:1px;background:var(--accent-primary, #ef4444)}@media(hover:hover)and (pointer:fine){.profile-posts-tab:not(.is-active):hover{color:var(--text-primary)}}.profile-posts-tabs-body{flex:1;min-height:240px}.entity-profile-visibility-slot{position:absolute;top:8px;right:8px;z-index:2}.visibility-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:999px;color:var(--text-primary);font-family:inherit;font-size:.76rem;font-weight:500;cursor:pointer;transition:background var(--dur-micro),opacity var(--dur-micro);-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.visibility-badge:hover{background:var(--bg-input)}}.visibility-badge:active{opacity:.7}.visibility-badge:disabled{opacity:.5;cursor:not-allowed}.visibility-wrap{position:relative}.visibility-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:232px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 8px 24px #0000002e;padding:4px;display:flex;flex-direction:column;animation:visibility-popover-fade .12s ease-out}@keyframes visibility-popover-fade{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.visibility-popover-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:8px;font-family:inherit;font-size:.85rem;color:var(--text-primary);cursor:pointer;text-align:left;transition:background .12s;-webkit-tap-highlight-color:transparent}.visibility-popover-item:disabled{opacity:.5;cursor:not-allowed}@media(hover:hover)and (pointer:fine){.visibility-popover-item:not(:disabled):hover{background:var(--bg-input)}}.visibility-popover-item:active,.visibility-popover-item.is-selected{background:var(--bg-input)}.visibility-popover-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary)}.visibility-popover-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.visibility-popover-label{font-weight:600;color:var(--text-primary)}.visibility-popover-hint{font-size:.75rem;color:var(--text-muted);line-height:1.35}.visibility-popover-check{flex:0 0 auto;color:var(--accent-primary);margin-left:4px}.other-profile-panel{flex:1;overflow-y:auto;padding-inline:16px;padding-bottom:20px}.other-profile-error{padding:40px 20px;text-align:center;color:var(--text-muted);font-size:.9rem}.other-profile-slots{display:flex;gap:10px;margin-top:16px;margin-bottom:12px}.profile-block-banner{margin:12px 16px 0;padding:10px 14px;border-radius:10px;font-size:.85rem;line-height:1.5;color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border-subtle)}.profile-block-banner--blocked-by-them{color:var(--danger, #ff3b30);background:color-mix(in srgb,var(--danger, #ff3b30) 8%,transparent);border-color:color-mix(in srgb,var(--danger, #ff3b30) 24%,transparent)}.other-profile-slot-primary,.other-profile-slot-secondary,.entity-profile-slot-primary,.entity-profile-slot-secondary{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:999px;border:1px solid transparent;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro),border-color var(--dur-micro),filter var(--dur-micro);-webkit-tap-highlight-color:transparent}.other-profile-slot-primary,.entity-profile-slot-primary{background:var(--accent-primary);color:#fff}.other-profile-slot-primary[data-following=true],.entity-profile-slot-primary[data-following=true]{background:var(--bg-input);color:var(--text-primary);border-color:var(--border-subtle)}@media(hover:hover)and (pointer:fine){.other-profile-slot-primary:hover,.entity-profile-slot-primary:hover{filter:brightness(1.05)}}.other-profile-slot-primary:disabled,.other-profile-slot-secondary:disabled,.entity-profile-slot-primary:disabled,.entity-profile-slot-secondary:disabled{opacity:.5;cursor:not-allowed}.other-profile-slot-secondary,.entity-profile-slot-secondary{background:var(--bg-input);color:var(--text-primary);border-color:var(--border-subtle)}@media(hover:hover)and (pointer:fine){.other-profile-slot-secondary:hover,.entity-profile-slot-secondary:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}}.ws-feed{-moz-columns:2;columns:2;-moz-column-gap:8px;column-gap:8px}.ws-feed>*{-moz-column-break-inside:avoid;break-inside:avoid;display:block;margin-bottom:8px}@media(orientation:portrait)and (min-width:768px){.ws-feed{-moz-columns:3;columns:3;-moz-column-gap:16px;column-gap:16px}.ws-feed>*{margin-bottom:16px}}@media(orientation:landscape)and (max-width:1023px){.ws-feed{-moz-columns:3;columns:3;-moz-column-gap:12px;column-gap:12px}.ws-feed>*{margin-bottom:12px}}@media(orientation:landscape)and (min-width:1024px){.ws-feed{-moz-columns:5;columns:5;-moz-column-gap:16px;column-gap:16px}.ws-feed>*{margin-bottom:16px}}.my-posts-grid{margin-top:16px}.my-posts-grid-state{margin-top:24px;padding:40px 20px;text-align:center;color:var(--text-muted);background:var(--bg-input);border-radius:12px;font-size:.88rem}.user-profile-body{display:flex;flex-direction:column;padding-inline:16px;width:100%;max-width:520px;margin:0 auto}.user-profile-follow-btn{margin:4px 0 0;padding:10px 20px;border-radius:999px;border:1px solid transparent;font-family:inherit;font-size:.92rem;font-weight:600;cursor:pointer;align-self:flex-start;transition:background var(--dur-micro),border-color var(--dur-micro),color var(--dur-micro);-webkit-tap-highlight-color:transparent}.user-profile-follow-btn[data-following=false]{background:var(--accent-primary);color:#fff}.user-profile-follow-btn[data-following=false]:hover{filter:brightness(.95)}.user-profile-follow-btn[data-following=true]{background:transparent;border-color:var(--border-subtle);color:var(--text-muted)}@media(hover:hover)and (pointer:fine){.user-profile-follow-btn[data-following=true]:hover{background:var(--bg-input)}}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--bg-surface);overscroll-behavior-x:none}.chat-placeholder{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-base)}.chat-placeholder-inner{text-align:center;color:var(--text-muted)}.chat-placeholder-logo{width:64px;height:64px;-o-object-fit:contain;object-fit:contain;margin-bottom:12px;opacity:.5}.chat-header-actions{display:flex;align-items:center;gap:2px}.chat-status-banner{display:flex;align-items:center;gap:5px;background:#15b8860f;border:1px solid var(--bg-input);border-radius:20px;padding:4px 12px;font-size:var(--text-caption);color:var(--accent-primary);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.status-arrow{font-size:var(--text-caption);opacity:.7}.mobile-tab-bar{display:none}.mobile-back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;border-radius:8px;margin-right:4px;flex-shrink:0}@media(hover:hover)and (pointer:fine){.mobile-back-btn:hover{background:var(--bg-input)}}button,a,[role=button],.ws-body,.ws-tabs,.stream-overlay,.stream-pager,.mobile-tab-bar,.comments-sheet{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-tab,.sidebar-btn,.nav-item,.send-btn{min-height:44px}input,textarea,select{font-size:max(16px,1em)}.chat-textarea{font-size:16px}@media(max-width:1024px),(any-pointer:coarse){.desktop-only{display:none!important}.app-nav{display:none}.mobile-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;height:calc(64px + env(safe-area-inset-bottom,0px));background:var(--bg-surface);border-top:1px solid var(--border-subtle);align-items:flex-start;justify-content:space-around;padding-top:6px;padding-bottom:env(safe-area-inset-bottom,0px)}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 4px;border:none;background:transparent;color:var(--text-muted);font-family:inherit;font-size:var(--text-caption);text-decoration:none;cursor:pointer;position:relative;min-height:48px;transition:color var(--transition)}.mobile-tab.active{color:var(--accent-primary);text-decoration:none}.mobile-tab:active{transform:scale(.92);opacity:.7}.mobile-tab-badge{position:absolute;top:2px;right:calc(50% - 18px);background:#e53e3e;color:#fff;font-size:var(--text-micro);font-weight:700;min-width:14px;height:14px;border-radius:7px;display:flex;align-items:center;justify-content:center;padding:0 3px}.app-shell{flex-direction:column;height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.app-main{position:fixed;inset:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:150;background:var(--bg-surface);display:flex;flex-direction:column}html[data-kb-resize=none] .navigation-current-layer.subpage-root{bottom:var(--kb-h, 0px)!important;transition:bottom .25s ease-out}.profile-panel{position:fixed;inset:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));z-index:180;width:100%!important;border-left:none;border-top:1px solid var(--border-subtle)}.profile-panel.collapsed{display:none}.chat-input-area{margin-top:auto;z-index:10;background:var(--bg-surface);padding:6px 10px max(6px,env(safe-area-inset-bottom,6px));gap:4px}html.kb-up .chat-input-area{padding-bottom:6px}.chat-input-area .input-wrapper{gap:6px}.chat-input-area .chat-textarea{min-height:34px;max-height:140px;padding:7px 4px 7px 12px;font-size:15px}.chat-input-area .send-btn{min-height:34px;min-width:34px;width:34px;height:34px}.chat-input-area .emoji-btn{padding:2px}.emoji-panel{max-width:none}.emoji-grid{grid-template-columns:repeat(8,1fr)}.emoji-cell{font-size:1.6rem}.chat-header{padding:8px 12px;gap:6px;position:relative}.mobile-hide{display:none!important}.chat-header .chat-name{font-size:var(--text-h3)}.chat-header .chat-subtitle{font-size:var(--text-caption);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-status-banner{display:none}.chat-header-actions{gap:2px}.chat-header-actions .sidebar-btn{width:32px;height:32px}.ai-info{position:absolute;left:50%;transform:translate(-50%);text-align:center;max-width:calc(100% - 120px);pointer-events:auto}.ai-info h2{font-size:var(--text-h3);white-space:nowrap}.message-list{padding:16px 12px 24px}.message-row{max-width:85%}.panel-header{padding:14px 12px 8px}.mine-profile-row{padding:12px 14px}.mine-profile-avatar{width:54px;height:54px}.app-shell>div:has(.ws-root),.app-shell .keepalive-tab:has(.ws-root),.keepalive-tab>div:has(.ws-root){height:calc(100dvh - 56px - env(safe-area-inset-bottom,0px));width:100%;display:flex;flex-direction:column}.auth-card{padding:36px 24px;border-radius:var(--radius-lg)}.admin-layout{flex-direction:column}.admin-sidebar{width:100%;flex-direction:row;overflow-x:auto;padding:12px 16px;gap:8px;border-right:none;border-bottom:1px solid var(--border-subtle)}.admin-main{padding:16px}.wallet-overlay{width:calc(100% - 24px)!important;max-width:400px;left:50%!important;transform:translate(-50%)!important}.entity-detail-content,.diary-panel{padding:16px 12px}html,body{font-size:17px}.msg-bubble,.msg-bubble-markdown{font-size:var(--text-h3);line-height:1.65}.chat-textarea{font-size:16px}.conv-item-name{font-size:var(--text-h3)}.conv-item-preview{font-size:var(--text-small)}.time-label{font-size:var(--text-caption)}.ai-info h2{font-size:var(--text-h3)}.ai-info p{font-size:var(--text-caption)}.panel-header h2{font-size:var(--text-h3)}.mine-profile-name{font-size:1rem}.mobile-tab{font-size:var(--text-small)}.mobile-tab svg{width:22px;height:22px}.world-tab,.search-input,.conv-search input{font-size:var(--text-h3)}.auth-input{font-size:var(--text-h2)}}@media(max-width:390px){.msg-bubble{font-size:var(--text-body)}.chat-header{padding:10px 8px}.panel-header{padding:12px 8px 8px}}@supports (padding-top: env(safe-area-inset-top)){@media(max-width:1024px),(any-pointer:coarse){.app-shell{padding-top:env(safe-area-inset-top,0px)}}}@media(max-width:1024px),(any-pointer:coarse){.msg-bubble{-webkit-user-select:text;-moz-user-select:text;user-select:text}.conv-item,.mobile-tab,.nav-item,.mine-profile-row,.mine-stat-item,.mine-menu-item{-webkit-user-select:none;-moz-user-select:none;user-select:none}body{overscroll-behavior-y:contain}.panel-list,.message-list,.mine-panel,.self-profile-panel,.other-profile-panel{-webkit-overflow-scrolling:touch}.pull-refresh-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;font-size:var(--text-small);color:var(--text-muted);transition:opacity var(--dur-fast)}.pull-refresh-indicator.active{color:var(--accent-primary)}.pull-refresh-spinner{width:18px;height:18px;border:2px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:spin var(--dur-spin) linear infinite}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer-slide{0%{background-position:-200% 0}to{background-position:200% 0}}.icon-spin{animation:spin var(--dur-spin) linear infinite}.echo-skeleton-shimmer{animation:shimmer var(--dur-skeleton) infinite}.echo-skeleton-shimmer-slide{animation:shimmer-slide var(--dur-skeleton) infinite}.spinner{width:24px;height:24px;border:2px solid color-mix(in srgb,var(--accent-primary) 22%,transparent);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;box-sizing:border-box}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}html.theme-transition,html.theme-transition *,html.theme-transition *:before,html.theme-transition *:after{transition:background-color var(--dur-normal) ease,color var(--dur-fast) ease,border-color var(--dur-normal) ease,box-shadow var(--dur-normal) ease!important}.push-prompt-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;margin:8px 12px;background:linear-gradient(135deg,#15b88614,#8b5cf60f);border:1px solid rgba(21,184,134,.2);border-radius:12px;font-size:var(--text-small);color:var(--text-secondary);animation:fadeIn var(--dur-normal) ease}.push-prompt-banner button{padding:5px 14px;border-radius:8px;border:none;font-size:var(--text-small);font-weight:600;cursor:pointer;white-space:nowrap}.push-prompt-banner button:first-of-type{background:var(--accent-primary);color:#fff}.push-prompt-banner button.dismiss{background:transparent;color:var(--text-muted)}.pwa-install-banner{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 80px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid rgba(21,184,134,.35);border-radius:14px;box-shadow:0 8px 32px #0006;z-index:1200;max-width:calc(100% - 32px);animation:fadeIn var(--dur-normal) ease}.pwa-install-banner strong{font-size:var(--text-body);color:var(--text-primary)}.pwa-install-banner span{font-size:var(--text-caption);color:var(--text-muted);display:block}.pwa-install-banner .install-btn{padding:7px 18px;border:none;border-radius:8px;background:var(--accent-primary);color:#fff;font-size:var(--text-small);font-weight:600;cursor:pointer;white-space:nowrap}.pwa-install-banner .dismiss-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;flex-shrink:0}#sentry-feedback,[data-sentry-feedback],[class*=sentry-feedback],[id*=sentry-feedback],div[id^=sentry],div[class^=sentry]{display:none!important;visibility:hidden!important;pointer-events:none!important;opacity:0!important}html.capacitor-ios{overflow:hidden;overscroll-behavior:none}html.capacitor-ios body{overscroll-behavior-y:none}@media(max-width:1024px),(any-pointer:coarse){.app-main .chat-header{padding-top:10px}.app-main .cl-page-title{padding-top:calc(14px + env(safe-area-inset-top,0px))}.app-main .mine-panel,.app-main .navigation-parent-layer[data-frame-depth="0"] .self-profile-panel{padding-top:env(safe-area-inset-top,0px)}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:#e53e3e;color:#fff;text-align:center;padding:calc(var(--safe-top) + 4px) 12px 4px;font-size:.82rem;font-weight:600}.tap-pressable{transition:transform .12s cubic-bezier(.2,0,.2,1);transform-origin:center center;touch-action:manipulation}.tap-pressable:active,.tap-pressable[data-pressed=true]{transform:scale(.97)}@media(prefers-reduced-motion:reduce){.tap-pressable,.tap-pressable:active,.tap-pressable[data-pressed=true]{transition:none;transform:none}}:root{--page-transition-duration: .35s;--page-push-easing: cubic-bezier(.32, .72, 0, 1);--page-pop-easing: cubic-bezier(.4, 0, .2, 1);--sheet-transition-duration: .32s;--sheet-transition-easing: cubic-bezier(.4, 0, .2, 1);--modal-transition-duration: .22s;--page-parallax-offset: 12%;--page-dim-peak: .25;--page-push-offset-x: 100%;--page-push-offset-y: 0%;--page-parallax-x: calc(var(--page-parallax-offset) * -1);--page-parallax-y: 0%}[data-axis=y]{--page-push-offset-x: 0%;--page-push-offset-y: 100%;--page-parallax-x: 0%;--page-parallax-y: calc(var(--page-parallax-offset) * -1)}[data-axis=scale]{--page-source-x: 50%;--page-source-y: 50%}[data-axis=scale].navigation-current-layer{transform-origin:var(--page-source-x) var(--page-source-y)}@keyframes page-push-enter{0%{transform:translate3d(var(--page-push-offset-x),var(--page-push-offset-y),0)}to{transform:translateZ(0)}}@keyframes page-pop-exit{0%{transform:translateZ(0)}to{transform:translate3d(var(--page-push-offset-x),var(--page-push-offset-y),0)}}@keyframes page-push-behind{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(var(--page-parallax-x),var(--page-parallax-y),0);opacity:.85}}@keyframes page-pop-behind{0%{transform:translate3d(var(--page-parallax-x),var(--page-parallax-y),0);opacity:.85}to{transform:translateZ(0);opacity:1}}.page-push-enter{animation:page-push-enter var(--page-transition-duration) var(--page-push-easing) both;will-change:transform;box-shadow:-4px 0 12px #0000001f}.page-pop-exit{animation:page-pop-exit var(--page-transition-duration) var(--page-pop-easing) both;will-change:transform;pointer-events:none;box-shadow:-4px 0 12px #0000001f}.page-push-behind{animation:page-push-behind var(--page-transition-duration) var(--page-push-easing) both;will-change:transform,opacity;pointer-events:none}.page-pop-behind{animation:page-pop-behind var(--page-transition-duration) var(--page-pop-easing) both;will-change:transform,opacity;pointer-events:none}[data-axis=y].page-push-enter,[data-axis=y].page-pop-exit{box-shadow:0 -4px 12px #0000001f}.page-dim-overlay{position:absolute;inset:0;background:#000;opacity:var(--page-dim-peak);pointer-events:none}@keyframes sheet-up-enter{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-down-exit{0%{transform:translateY(0)}to{transform:translateY(100%)}}.sheet-up-enter{animation:sheet-up-enter var(--sheet-transition-duration) var(--sheet-transition-easing) both;will-change:transform}.sheet-down-exit{animation:sheet-down-exit var(--sheet-transition-duration) var(--sheet-transition-easing) both;will-change:transform;pointer-events:none}@keyframes modal-scale-enter{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modal-scale-exit{0%{transform:scale(1);opacity:1}to{transform:scale(.96);opacity:0}}.modal-scale-enter{animation:modal-scale-enter var(--modal-transition-duration) ease-out both;will-change:transform,opacity}.modal-scale-exit{animation:modal-scale-exit var(--modal-transition-duration) ease-in both;will-change:transform,opacity;pointer-events:none}@keyframes backdrop-fade-enter{0%{opacity:0}to{opacity:1}}@keyframes backdrop-fade-exit{0%{opacity:1}to{opacity:0}}.backdrop-fade-enter{animation:backdrop-fade-enter .2s ease-out both}.backdrop-fade-exit{animation:backdrop-fade-exit .2s ease-in both;pointer-events:none}@media(prefers-reduced-motion:reduce){:root{--page-transition-duration: .1s;--sheet-transition-duration: .1s;--modal-transition-duration: .08s}@keyframes page-push-enter{0%{opacity:0}to{opacity:1}}@keyframes page-pop-exit{0%{opacity:1}to{opacity:0}}@keyframes page-push-behind{0%,to{transform:none;opacity:1}}@keyframes page-pop-behind{0%,to{transform:none;opacity:1}}.page-push-enter,.page-pop-exit,.page-push-behind,.page-pop-behind,.sheet-up-enter,.sheet-down-exit,.modal-scale-enter,.modal-scale-exit{animation-timing-function:ease}}.subpage-root{background:var(--bg-base, #fff);min-height:100%;width:100%}.navigation-current-layer,.navigation-parent-layer{display:flex;flex-direction:column}@media(min-width:1025px)and (not (any-pointer:coarse)){.navigation-current-layer{position:absolute!important;inset:0!important}}.navigation-current-layer.subpage-root{min-height:auto}.navigation-current-layer,.navigation-parent-layer:not([data-frame-depth="0"]){padding-top:env(safe-area-inset-top,0px)}.navigation-current-layer[data-fullbleed=true]{padding-top:0}.navigation-default-back-chrome{position:absolute;top:8px;left:12px;z-index:10;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:color-mix(in srgb,var(--color-text-primary) 6%,transparent);color:var(--color-text-primary);cursor:pointer;flex-shrink:0;transition:background var(--dur-micro) ease}@media(hover:hover)and (pointer:fine){.navigation-default-back-chrome:hover{background:color-mix(in srgb,var(--color-text-primary) 12%,transparent)}}.navigation-default-back-chrome:active{background:color-mix(in srgb,var(--color-text-primary) 12%,transparent)}.navigation-current-layer:has(.chat-header) .navigation-default-back-chrome{display:none}.navigation-current-layer[data-fullbleed=true] .navigation-default-back-chrome{top:calc(8px + env(safe-area-inset-top,0px))}.entities-page,.entity-detail-page{min-height:100vh;background:var(--bg-base);padding:24px}.entity-create-page{position:fixed;inset:0;z-index:10000;background:var(--bg-base, #111);display:flex;flex-direction:column;color:var(--text-primary);overflow:hidden}.entity-create-page-body{flex:1;overflow-x:hidden;overflow-y:auto;padding:16px max(20px,env(safe-area-inset-right,20px)) max(20px,env(safe-area-inset-bottom,20px)) max(20px,env(safe-area-inset-left,20px));-webkit-overflow-scrolling:touch}.entities-container,.entity-create-container,.entity-detail-container{max-width:800px;margin:0 auto}.entities-header{margin-bottom:32px}.entities-title-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.entities-icon{width:40px;height:40px;border-radius:var(--radius-md);background:#15b8861a;color:var(--accent-primary);display:flex;align-items:center;justify-content:center}.entities-header h1{font-size:var(--text-h1);font-weight:700}.entities-subtitle{color:var(--text-secondary);font-size:var(--text-body);margin-top:4px}.entities-loading{display:flex;justify-content:center;gap:6px;padding:48px}.entities-empty{text-align:center;padding:48px 24px;color:var(--text-muted)}.entities-empty p{margin:4px 0}.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:32px}.entity-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition)}.entity-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.entity-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.entity-avatar{width:48px;height:48px;border-radius:var(--radius-md);border:2px solid;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--bg-card);overflow:hidden}.entity-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.entity-avatar-lg{width:72px;height:72px;border-radius:var(--radius-lg);border:3px solid;display:flex;align-items:center;justify-content:center;font-size:var(--text-display);background:var(--bg-card);flex-shrink:0;overflow:hidden}.entity-avatar-lg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.entity-badge{font-size:var(--text-caption);color:#fff;padding:3px 10px;border-radius:20px;font-weight:600}.entity-card-body h3{font-size:var(--text-h2);font-weight:600;margin-bottom:4px}.entity-bio,.entity-bio-detail{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.entity-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-subtle)}.entity-stat{display:flex;align-items:center;gap:4px;font-size:var(--text-small);color:var(--text-muted)}.entity-arrow{color:var(--text-muted)}.create-section{margin-top:12px}.create-title{font-size:var(--text-h2);font-weight:600;color:var(--text-secondary);margin-bottom:12px}.create-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.create-card{display:flex;align-items:center;gap:16px;background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);padding:20px;cursor:pointer;transition:border-color var(--transition),background var(--transition);text-align:left;font-family:inherit;width:100%}@media(hover:hover)and (pointer:fine){.create-card:hover:not(.disabled){border-color:var(--accent-primary);border-style:solid;background:#07c16008}}.create-card.disabled{opacity:.5;cursor:not-allowed}.create-card-icon{width:44px;height:44px;border-radius:var(--radius-md);background:#15b8861a;color:var(--accent-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.create-card-content h3{font-size:var(--text-h3);font-weight:600;color:var(--text-primary)}.create-card-content p{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.create-limit{font-size:var(--text-caption);color:var(--text-muted);margin-left:auto}.create-plus{color:var(--accent-primary);margin-left:auto}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-secondary);font-family:inherit;font-size:var(--text-body);cursor:pointer;padding:8px 0;margin-bottom:16px;transition:color var(--transition)}.back-btn:hover{color:var(--text-primary)}.create-header{text-align:center;margin-bottom:32px}.create-header-icon{margin-bottom:12px}.create-header h1{font-size:var(--text-h1);font-weight:700}.create-header p{color:var(--text-secondary);font-size:var(--text-body);margin-top:4px}.create-form{display:flex;flex-direction:column;gap:20px}.form-textarea{resize:vertical;min-height:80px;font-family:inherit}.type-selector{display:flex;gap:10px}.type-option{flex:1;padding:12px 16px;border-radius:var(--radius-md);border:2px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);font-family:inherit;font-size:var(--text-body);font-weight:500;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.type-option.selected{border-color:var(--type-color, var(--accent-primary));background:#07c1600d}.rules-section{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;background:var(--bg-surface)}.rules-header{margin-bottom:16px}.rules-header h3{font-size:var(--text-h3);font-weight:600}.rules-header p{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.rule-item{display:flex;align-items:center;gap:10px;margin-bottom:10px}.rule-badge{font-size:var(--text-caption);padding:4px 10px;border-radius:20px;white-space:nowrap;font-weight:600}.rule-badge.can_do{background:#22c55e26;color:#22c55e}.rule-badge.cannot_do{background:#ef444426;color:#ef4444}.rule-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;transition:color var(--transition)}.rule-remove:hover{color:#ef4444}.rule-add-row{display:flex;gap:10px;margin-top:12px}.rule-add-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:var(--radius-md);border:1px dashed var(--border-subtle);background:none;font-family:inherit;font-size:var(--text-small);cursor:pointer;color:var(--text-secondary);transition:border-color var(--transition),color var(--transition)}.rule-add-btn.can:hover{border-color:#22c55e;color:#22c55e}.rule-add-btn.cannot:hover{border-color:#ef4444;color:#ef4444}.companion-notice{display:flex;align-items:flex-start;gap:10px;padding:16px;background:#15b88614;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-small)}.create-submit{margin-top:8px}.entity-profile-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;margin-bottom:20px}.entity-profile-header{display:flex;align-items:flex-start;gap:20px}.entity-profile-info{flex:1}.entity-profile-info h1{font-size:1.25rem;font-weight:700;margin-bottom:4px}.entity-bio-detail{-webkit-line-clamp:unset}.entity-meta{display:flex;align-items:center;gap:12px;margin-top:10px}.entity-actions{display:flex;gap:6px}.btn-icon{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--transition),border-color var(--transition)}.btn-icon:hover{color:var(--text-primary);border-color:var(--text-muted)}.btn-icon.btn-danger:hover{color:#ef4444;border-color:#ef4444}.edit-fields{display:flex;flex-direction:column;gap:10px}.edit-actions{display:flex;gap:8px}.btn-sm{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-family:inherit;font-size:var(--text-small);cursor:pointer;transition:all var(--transition)}.btn-save{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.btn-cancel{background:var(--bg-card);color:var(--text-secondary)}.entity-quick-actions{display:flex;gap:10px;margin-bottom:20px}.quick-action-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;border:none;font-family:inherit;font-size:var(--text-body);font-weight:600;cursor:pointer;transition:opacity var(--transition)}.quick-action-btn:hover{opacity:.9}.entity-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.section-title{font-size:var(--text-body);font-weight:600;display:flex;align-items:center;gap:6px;margin-bottom:14px}.section-empty{font-size:var(--text-small);color:var(--text-muted);text-align:center;padding:16px}.rules-list{display:flex;flex-direction:column;gap:8px}.rule-display{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);border-radius:var(--radius-md);font-size:var(--text-body)}.request-list{display:flex;flex-direction:column;gap:8px}.request-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg-card);border-radius:var(--radius-md)}.request-info{display:flex;align-items:center;gap:8px;font-size:var(--text-body)}.request-emoji{font-size:1.2rem}.request-actions{display:flex;gap:6px}.friends-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.friend-card{display:flex;align-items:center;gap:8px;padding:12px;background:var(--bg-card);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition)}@media(hover:hover)and (pointer:fine){.friend-card:hover{background:var(--bg-input)}}.friend-emoji{font-size:1.2rem}.friend-name{font-size:var(--text-small);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-action-btn{font-size:var(--text-caption);padding:4px 12px;border-radius:20px;border:1.5px solid;background:transparent;font-family:inherit;cursor:pointer;font-weight:600;transition:background var(--transition),color var(--transition)}@media(hover:hover)and (pointer:fine){.entity-action-btn:hover{background:#15b88614}}.discover-count{font-size:var(--text-small);color:var(--text-muted);margin-bottom:16px}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-subtle)}.page-btn{padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);font-family:inherit;font-size:var(--text-body);cursor:pointer;color:var(--text-primary);transition:background var(--transition)}@media(hover:hover)and (pointer:fine){.page-btn:hover:not(:disabled){background:var(--bg-card)}}.page-btn:disabled{opacity:.4;cursor:not-allowed}.entity-profile-menu-wrap{position:absolute;top:8px;right:12px;z-index:10;width:36px;height:36px}.entity-profile-menu-btn{width:32px;height:32px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--dur-micro) ease,color var(--dur-micro) ease}@media(hover:hover)and (pointer:fine){.entity-profile-menu-btn:hover{background:color-mix(in srgb,var(--color-text-primary) 8%,transparent);color:var(--color-text-primary)}}.entity-profile-menu-btn:active{background:color-mix(in srgb,var(--color-text-primary) 8%,transparent);color:var(--color-text-primary)}.entity-profile-loading,.entity-profile-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:12px;color:var(--text-muted)}.entity-profile-hero{display:flex;flex-direction:row;align-items:flex-start;gap:14px;padding:14px 16px 10px;flex-wrap:wrap;position:relative}.entity-profile-avatar{width:64px;height:64px;border-radius:50%;border:2.5px solid;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);position:relative;box-shadow:0 3px 12px #0000001a;flex-shrink:0}.entity-profile-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.entity-profile-avatar .avatar-emoji{font-size:1.6rem}.entity-profile-avatar .verified-badge{position:absolute;bottom:1px;right:1px;width:18px;height:18px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-micro);font-weight:700;border:2px solid var(--bg-base)}.entity-profile-hero-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.entity-profile-name{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.3}.entity-profile-type-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:var(--text-caption);font-weight:600;margin-top:2px;align-self:flex-start}.entity-profile-bio{color:var(--text-muted);font-size:var(--text-small);text-align:left;margin-top:2px;max-width:32ch;line-height:1.4}.entity-profile-actions{display:flex;gap:10px;margin:16px 0 12px;padding:0 16px}.entity-profile-dna{padding:20px}.entity-profile-section-title{font-size:var(--text-h3);font-weight:600;color:var(--text-primary);margin-bottom:14px}.entity-profile-radar{width:100%;max-width:240px;margin:0 auto;display:block}.entity-profile-trait-grid{display:flex;flex-wrap:wrap;gap:8px}.entity-profile-trait-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:20px;font-size:var(--text-small)}.entity-profile-trait-chip .trait-label{color:var(--text-muted)}.entity-profile-trait-chip .trait-value{color:var(--text-primary);font-weight:500}.entity-profile-tabs{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 16px;background:var(--bg-base)}.entity-profile-tabs .tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 0;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:var(--text-body);font-weight:500;cursor:pointer;transition:color var(--dur-micro),border-color var(--dur-micro)}.entity-profile-tabs .tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);font-weight:600}.entity-profile-content{padding:16px;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.entity-profile-content .empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:var(--text-h3)}.entity-profile-posts{padding:0}.entity-profile-posts .xhs-card{margin-bottom:0}.entity-profile-friends{display:flex;flex-direction:column;gap:8px}.entity-profile-friends .friend-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-surface);border-radius:14px;border:1px solid var(--border-subtle);cursor:pointer;transition:background var(--dur-micro),transform var(--dur-micro)}@media(hover:hover)and (pointer:fine){.entity-profile-friends .friend-card:hover{background:var(--bg-hover);transform:translateY(-1px)}}.entity-profile-friends .friend-avatar{width:44px;height:44px;border-radius:50%;border:2px solid;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-base);font-size:1.3rem;flex-shrink:0}.entity-profile-friends .friend-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.entity-profile-friends .friend-info{min-width:0}.entity-profile-friends .friend-name{font-size:var(--text-h3);font-weight:600;color:var(--text-primary)}.entity-profile-friends .friend-bio{font-size:var(--text-small);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spin{animation:spin var(--dur-spin) linear infinite}.entity-profile-content-root{width:100%;display:flex;flex-direction:column;min-height:0;flex:1}.tab-snap-viewport{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-height:0;overflow-y:hidden}.tab-snap-viewport::-webkit-scrollbar{display:none}.tab-snap-panel{flex:0 0 100%;scroll-snap-align:start;min-height:0;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.entity-profile-avatar-wrap{position:relative;flex-shrink:0}.entity-profile-more-backdrop{position:fixed;inset:0;z-index:100;background:transparent}.entity-profile-more-popover{position:absolute;top:56px;right:8px;z-index:101;min-width:160px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 8px 24px #0000002e;padding:4px;animation:entity-profile-more-fade .12s ease-out}@keyframes entity-profile-more-fade{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.entity-profile-more-stats{padding:8px 12px;font-size:.78rem;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);margin-bottom:4px}.entity-profile-more-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;text-align:left;font-family:inherit;font-size:.9rem;color:var(--text-primary);border-radius:8px;cursor:pointer;transition:background .12s}.entity-profile-more-item>svg{flex-shrink:0;color:var(--text-muted)}.entity-profile-more-item--destructive>svg{color:inherit}@media(hover:hover)and (pointer:fine){.entity-profile-more-item:hover{background:var(--bg-input)}}.entity-profile-more-item:active{background:var(--bg-input)}.entity-profile-more-item--destructive{color:var(--danger, #ff3b30)}.entity-adv-backdrop{position:fixed;inset:0;z-index:10100;background:#00000080;animation:entity-adv-fade-in var(--dur-fast) ease}@keyframes entity-adv-fade-in{0%{opacity:0}to{opacity:1}}.entity-adv-sheet{position:fixed;left:0;right:0;bottom:0;z-index:10101;max-height:70vh;background:var(--bg-surface, var(--bg-base, #fff));border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #0000001f;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0px);animation:entity-adv-slide-up .28s var(--ease-ios-push);overflow:hidden}@keyframes entity-adv-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:768px){.entity-adv-sheet{left:50%;right:auto;transform:translate(-50%);width:100%;max-width:480px;border-radius:16px 16px 0 0}@keyframes entity-adv-slide-up{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}}.entity-adv-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.entity-adv-title{font-size:.95rem;font-weight:600;color:var(--text-primary)}.entity-adv-close{background:none;border:none;color:var(--text-muted);cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background var(--dur-micro);-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.entity-adv-close:hover{background:var(--bg-hover)}}.entity-adv-list{display:flex;flex-direction:column;padding:8px 8px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch}.entity-adv-item{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px;background:none;border:none;border-radius:10px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-micro);-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.entity-adv-item:hover{background:var(--bg-hover)}}.entity-adv-item-icon{flex-shrink:0;margin-top:2px;color:var(--text-secondary)}.entity-adv-item-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.entity-adv-item-label{font-size:.9rem;font-weight:500;color:var(--text-primary);line-height:1.3}.entity-adv-item-desc{font-size:.78rem;color:var(--text-tertiary);line-height:1.35}.entity-adv-item--danger .entity-adv-item-icon,.entity-adv-item--danger .entity-adv-item-label{color:#e05c5c}@media(hover:hover)and (pointer:fine){.entity-adv-item--danger:hover{background:#e05c5c14}}.cl-add-friend-btn{width:32px;height:32px;border-radius:50%;background:var(--bg-input, rgba(255, 255, 255, .06));border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-micro);padding:0}@media(hover:hover)and (pointer:fine){.cl-add-friend-btn:hover{background:var(--accent-primary, #15b886);color:#fff}}.cl-add-friend-btn:active{transform:scale(.92)}.add-friend-backdrop{position:fixed;inset:0;z-index:10100;background:#00000073;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);display:flex;align-items:flex-end;justify-content:center;animation:add-friend-fade-in var(--dur-fast) ease}@keyframes add-friend-fade-in{0%{opacity:0}to{opacity:1}}.add-friend-sheet{position:relative;width:100%;max-width:520px;max-height:88vh;background:var(--bg-card, #181a1f);border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -4px 20px #00000059;animation:add-friend-slide-up .28s var(--ease-ios-push);padding-bottom:env(safe-area-inset-bottom,0)}@keyframes add-friend-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:768px){.add-friend-backdrop{align-items:center}.add-friend-sheet{width:480px;max-height:80vh;border-radius:16px;animation:add-friend-zoom-in .22s var(--ease-ios-push)}@keyframes add-friend-zoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.add-friend-sheet .add-friend-handle{display:none}}.add-friend-handle{width:36px;height:4px;margin:10px auto 4px;border-radius:2px;background:var(--border-subtle, rgba(255, 255, 255, .18));flex-shrink:0}.add-friend-header{display:flex;align-items:center;justify-content:space-between;padding:8px 18px 14px;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .08));flex-shrink:0}.add-friend-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.add-friend-close{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-micro)}@media(hover:hover)and (pointer:fine){.add-friend-close:hover{background:var(--bg-input, rgba(255, 255, 255, .08));color:var(--text-primary)}}.add-friend-body{overflow-y:auto;padding:14px 18px 22px;display:flex;flex-direction:column;gap:18px;-webkit-overflow-scrolling:touch}.add-friend-section{display:flex;flex-direction:column;gap:10px}.add-friend-section-header{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:500;color:var(--text-secondary)}.add-friend-scan-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;background:var(--accent-primary, #15b886);border:none;border-radius:12px;color:#fff;font-size:.92rem;font-weight:500;cursor:pointer;transition:opacity var(--dur-micro),transform var(--dur-instant)}.add-friend-scan-btn:hover{opacity:.9}.add-friend-scan-btn:active{transform:scale(.97)}.add-friend-ai-list{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.add-friend-ai-list::-webkit-scrollbar{display:none}.add-friend-ai-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;background:var(--bg-input, rgba(255, 255, 255, .04));border:1px solid var(--border-subtle, rgba(255, 255, 255, .08));border-radius:12px;color:var(--text-primary);font-size:.78rem;min-width:96px;max-width:96px;flex-shrink:0;transition:background var(--dur-micro),border-color var(--dur-micro)}.add-friend-ai-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.add-friend-ai-type{font-size:.68rem;opacity:.85}.add-friend-ai-share{position:absolute;top:6px;right:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#0000002e;border:none;border-radius:8px;color:var(--text-muted);cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro)}@media(hover:hover)and (pointer:fine){.add-friend-ai-share:hover{background:var(--accent-primary, #15b886);color:#fff}}.add-friend-guest{padding:36px 22px 28px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.add-friend-guest-text{margin:0;font-size:.92rem;color:var(--text-secondary);line-height:1.5}.add-friend-guest-btn{padding:10px 28px;background:var(--accent-primary, #15b886);color:#fff;border:none;border-radius:24px;font-size:.92rem;font-weight:600;cursor:pointer;transition:opacity var(--dur-micro),transform var(--dur-instant)}.add-friend-guest-btn:hover{opacity:.9}.add-friend-guest-btn:active{transform:scale(.97)}.qr-card{padding:20px;display:flex;flex-direction:column;gap:20px}.qr-card-profile{display:flex;align-items:center;gap:14px}.qr-card-avatar-skeleton{width:48px;height:48px;border-radius:50%;background:var(--bg-input, rgba(255, 255, 255, .08));animation:qr-pulse 1.5s ease-in-out infinite;flex-shrink:0}.qr-card-name-skeleton{width:80px;height:18px;border-radius:4px;background:var(--bg-input, rgba(255, 255, 255, .08));animation:qr-pulse 1.5s ease-in-out infinite}.qr-card-id-skeleton{width:140px;height:14px;border-radius:4px;background:var(--bg-input, rgba(255, 255, 255, .08));animation:qr-pulse 1.5s ease-in-out infinite}.qr-card-info{display:flex;flex-direction:column;gap:4px;min-width:0}.qr-card-name{font-size:1.1rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-qr-id-row{display:flex;align-items:center;gap:4px;max-width:100%;overflow:hidden}.qr-image-wrap{display:flex;flex-direction:row;align-items:flex-start;justify-content:center;gap:8px}.qr-image-spacer{width:32px;flex-shrink:0}.my-qr-refresh-icon{background:var(--bg-input, rgba(255, 255, 255, .08));border:none;color:var(--text-secondary, #999);cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;transition:color var(--dur-micro),background var(--dur-micro),transform var(--dur-instant);-webkit-tap-highlight-color:transparent;flex-shrink:0}@media(hover:hover)and (pointer:fine){.my-qr-refresh-icon:hover{background:var(--bg-input-hover, rgba(255, 255, 255, .15));color:var(--text-primary)}}.my-qr-refresh-icon:active{transform:scale(.92);color:#15b886}.my-qr-refresh-icon:disabled{opacity:.4;cursor:not-allowed}.qr-card-id{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:2px 0;cursor:pointer;color:var(--text-muted, #999);font-size:.78rem;transition:color var(--dur-micro);max-width:100%}.qr-card-id:hover{color:var(--text-secondary)}.qr-card-id:active{color:var(--accent-primary, #15b886)}.qr-card-id-label{color:var(--text-tertiary, #999);flex-shrink:0}.qr-card-id-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;transform-origin:left center}.qr-card-id-value-copied{animation:qr-id-pop .5s ease-out}.qr-card-code{display:flex;flex-direction:column;align-items:center;gap:8px}.qr-card-skeleton{width:180px;height:180px;border-radius:12px;background:var(--bg-input, rgba(0, 0, 0, .04));animation:qr-pulse 1.5s ease-in-out infinite}@keyframes qr-pulse{0%,to{opacity:.5}50%{opacity:1}}.qr-card-img-btn{background:none;border:none;padding:0;cursor:pointer;border-radius:8px;overflow:hidden;transition:transform var(--dur-micro);line-height:0}.qr-card-img-btn:active{transform:scale(.97)}.qr-card-img-btn img{display:block;border-radius:8px}.qr-card-retry{width:180px;height:180px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--bg-input, rgba(0, 0, 0, .04));border:1px dashed var(--border-subtle, rgba(0, 0, 0, .12));color:var(--text-secondary);font-size:.85rem;cursor:pointer}.qr-card-hint{font-size:.72rem;color:var(--text-muted, #999)}.qr-card-modal-backdrop{position:fixed;inset:0;z-index:10200;background:#000000d9;display:flex;align-items:center;justify-content:center;animation:add-friend-fade-in var(--dur-fast) ease}.qr-card-modal-close{position:absolute;top:max(16px,env(safe-area-inset-top,16px));right:16px;width:36px;height:36px;border-radius:50%;background:#ffffff26;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.qr-card-modal-img{max-width:80vw;max-height:80vh;border-radius:12px}@keyframes friends-page-slide-in{0%{transform:translate(30%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes friends-page-content-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.qr-scanner-page{position:fixed;inset:0;z-index:10000;background:#000;display:flex;flex-direction:column;color:#fff;animation:friends-page-slide-in var(--dur-normal) var(--ease-ios-push)}.qr-scanner-header{position:absolute;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:center;height:calc(52px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,transparent 100%)}.qr-scanner-back{position:absolute;left:12px;bottom:0;width:40px;height:52px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#fff;cursor:pointer}.qr-scanner-torch{position:absolute;right:12px;bottom:0;width:40px;height:52px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#fff;cursor:pointer;transition:opacity var(--dur-micro)}.qr-scanner-torch:active{opacity:.6}.qr-scanner-torch[aria-pressed=true]{color:#fc0}.qr-scanner-title{font-size:1rem;font-weight:600}.qr-scanner-viewport{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.qr-scanner-video{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.qr-scanner-frame{position:relative;width:260px;height:260px;z-index:1}.qr-scanner-corner{position:absolute;width:28px;height:28px;border-color:#fff;border-style:solid;border-width:0}.qr-scanner-corner.tl{top:0;left:0;border-top-width:3px;border-left-width:3px;border-top-left-radius:12px}.qr-scanner-corner.tr{top:0;right:0;border-top-width:3px;border-right-width:3px;border-top-right-radius:12px}.qr-scanner-corner.bl{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:12px}.qr-scanner-corner.br{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:12px}.qr-scanner-stopped,.qr-scanner-processing{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#000000a6;color:#fff;font-size:.9rem}.qr-scanner-stopped p{margin:0}.qr-scanner-stopped button{padding:8px 24px;background:#fff3;border:none;border-radius:20px;color:#fff;font-size:.85rem;cursor:pointer}.qr-scanner-hint{text-align:center;font-size:.8rem;color:#fff9;margin:0;padding:12px 0 0;flex-shrink:0;animation:friends-page-content-fade .35s ease .08s both}.qr-scanner-bottom{display:flex;align-items:center;justify-content:space-around;padding:16px 24px;padding-bottom:max(16px,env(safe-area-inset-bottom,16px));flex-shrink:0}.qr-scanner-bottom-btn{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;color:#fffc;font-size:.72rem;cursor:pointer;padding:0;transition:color var(--dur-micro),opacity var(--dur-micro)}.qr-scanner-bottom-btn:hover{color:#fff}.qr-scanner-bottom-btn:active{opacity:.7}.qr-scanner-bottom-btn:disabled{opacity:.35;pointer-events:none}.qr-scanner-bottom-icon{width:52px;height:52px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center}html.native-camera-active,html.native-camera-active body{visibility:hidden!important}html.native-camera-active .qr-scanner-page,html.native-camera-active .qr-scanner-page *{visibility:visible!important}html.native-camera-active,html.native-camera-active body,html.native-camera-active #root,html.native-camera-active .app-shell,html.native-camera-active .app-main,html.native-camera-active .navigation-stack-host,html.native-camera-active .navigation-current-layer,html.native-camera-active .subpage-root,html.native-camera-active .qr-scanner-page,html.native-camera-active .qr-scanner-viewport{background:transparent!important}html.native-camera-active .qr-scanner-video{display:none!important}.qr-fullpage{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}.qr-fullpage-card{width:100%;max-width:360px;background:var(--bg-card, #1a1c21);border-radius:20px;padding:28px 24px 24px;display:flex;flex-direction:column;gap:16px}.qr-fullpage-profile{display:flex;align-items:center;gap:14px}.qr-fullpage-info{display:flex;flex-direction:column;gap:4px;min-width:0}.qr-fullpage-name{font-size:1.2rem;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qr-fullpage-id{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:2px 0;cursor:pointer;color:var(--text-secondary, #999);font-size:.78rem;transition:color var(--dur-micro);max-width:100%}.qr-fullpage-id:hover{color:var(--text-primary)}.qr-fullpage-id:active{color:#15b886}.qr-fullpage-id-label{color:var(--text-secondary, #999);flex-shrink:0}.qr-fullpage-id-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;transform-origin:left center}.qr-fullpage-id-value-copied{animation:qr-id-pop .5s ease-out}@keyframes qr-id-pop{0%{transform:scale(1);color:inherit}40%{transform:scale(1.08);color:#15b886}to{transform:scale(1);color:inherit}}.qr-fullpage-divider{height:1px;background:var(--border-subtle, rgba(255, 255, 255, .06))}.qr-fullpage-qr{display:flex;flex-direction:column;align-items:center;gap:10px}.qr-fullpage-qr img{border-radius:8px}.qr-fullpage-skeleton{width:200px;height:200px;border-radius:12px;background:var(--bg-input, rgba(255, 255, 255, .08));animation:qr-pulse 1.5s ease-in-out infinite}.qr-fullpage-hint{font-size:.75rem;color:var(--text-muted, #999)}.add-friend-page{position:fixed;inset:0;z-index:10000;background:var(--bg-base, #111);display:flex;flex-direction:column;color:var(--text-primary)}.add-friend-page-header{position:relative;display:flex;align-items:center;justify-content:center;height:calc(52px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);flex-shrink:0;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .08))}.add-friend-page-back{position:absolute;left:12px;bottom:0;width:40px;height:52px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-primary);cursor:pointer}.add-friend-page-title{font-size:1rem;font-weight:600}.add-friend-page-body{flex:1;overflow-y:auto;padding:20px 16px;padding-bottom:max(20px,env(safe-area-inset-bottom,20px));-webkit-overflow-scrolling:touch;animation:friends-page-content-fade .35s ease .08s both}.add-friend-page-card{background:var(--bg-card, #1a1c21);border-radius:16px;overflow:hidden}.add-friend-page-divider{height:1px;margin:0 18px;background:var(--border-subtle, rgba(255, 255, 255, .06))}.add-friend-page-menu{display:flex;flex-direction:column}.add-friend-page-menu-item{display:flex;align-items:center;gap:14px;padding:16px 18px;background:none;border:none;color:var(--text-primary);font-size:.92rem;cursor:pointer;transition:background var(--dur-micro);text-align:left}.add-friend-page-menu-item:not(:last-child){border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}@media(hover:hover)and (pointer:fine){.add-friend-page-menu-item:hover{background:var(--bg-input, rgba(255, 255, 255, .04))}}.add-friend-page-menu-item:active{background:var(--bg-input, rgba(255, 255, 255, .08))}.add-friend-page-menu-label{flex:1}.add-friend-page-menu-arrow{color:var(--text-muted, #666);flex-shrink:0}.ai-manage-page{position:fixed;inset:0;z-index:10000;background:var(--bg-base, #111);display:flex;flex-direction:column;color:var(--text-primary);overflow:hidden;animation:friends-page-slide-in var(--dur-normal) var(--ease-ios-push)}.ai-manage-page--embedded{position:static;inset:auto;z-index:auto;height:100%;animation:none}.ai-manage-header{position:relative;display:flex;align-items:center;justify-content:center;height:calc(52px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);flex-shrink:0;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .08))}.ai-manage-back{position:absolute;left:12px;bottom:0;width:40px;height:52px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-primary);cursor:pointer}.ai-manage-title{font-size:1rem;font-weight:600}.ai-manage-create{position:absolute;right:12px;bottom:0;width:40px;height:52px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-primary);cursor:pointer}.ai-manage-body{flex:1;overflow-x:hidden;overflow-y:auto;padding:16px max(16px,env(safe-area-inset-right,16px)) max(20px,env(safe-area-inset-bottom,20px)) max(16px,env(safe-area-inset-left,16px));-webkit-overflow-scrolling:touch;animation:friends-page-content-fade .35s ease .08s both}.ai-manage-list{display:flex;flex-direction:column;background:var(--bg-card, #1a1c21);border-radius:14px;overflow:hidden}.ai-manage-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:none;border:none;color:var(--text-primary);cursor:pointer;transition:background var(--dur-micro);text-align:left}.ai-manage-item:not(:last-of-type){border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}.ai-manage-item-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.ai-manage-item-name{font-size:.92rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-manage-item-type{font-size:.75rem;opacity:.8}.ai-manage-item-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.ai-manage-action-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border-subtle, rgba(255, 255, 255, .1));border-radius:10px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro)}@media(hover:hover)and (pointer:fine){.ai-manage-action-edit:hover{background:#ffffff14;color:var(--text-primary)}}.ai-manage-action-edit:active{background:#ffffff1f}@media(hover:hover)and (pointer:fine){.ai-manage-action-delete:hover{background:#ef44441f;color:#ef4444}}.ai-manage-action-delete:active{background:#ef444433;color:#ef4444}.ai-manage-create-card{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:16px;background:none;border:2px dashed var(--border-subtle, rgba(255, 255, 255, .12));border-radius:14px;color:var(--text-muted);font-size:.88rem;cursor:pointer;transition:border-color var(--dur-micro),color var(--dur-micro)}.ai-manage-create-card:hover{border-color:var(--accent-primary, #15b886);color:var(--accent-primary, #15b886)}.ai-manage-create-card:active{background:#ffffff08}.ai-manage-skeleton-list{display:flex;flex-direction:column;gap:2px;background:var(--bg-card, #1a1c21);border-radius:14px;overflow:hidden}.ai-manage-skeleton-item{height:64px;background:var(--bg-input, rgba(255, 255, 255, .04));animation:qr-pulse 1.5s ease-in-out infinite}.ai-manage-skeleton-item:not(:last-child){border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}.ai-manage-empty{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 20px;color:var(--text-muted);font-size:.9rem}.ai-manage-empty p{margin:0}.ai-manage-empty-btn{display:flex;align-items:center;gap:6px;padding:10px 24px;background:var(--accent-primary, #15b886);color:#fff;border:none;border-radius:24px;font-size:.88rem;font-weight:500;cursor:pointer;transition:opacity var(--dur-micro)}.ai-manage-empty-btn:hover{opacity:.9}.frp-body{padding:0 0 max(20px,env(safe-area-inset-bottom,20px))}.frp-ptr-indicator{display:flex;align-items:center;justify-content:center;overflow:hidden}.frp-ptr-spinner{width:20px;height:20px;border:2px solid var(--accent-primary, #15b886);border-top-color:transparent;border-radius:50%;animation:frp-spin var(--dur-spin) linear infinite;display:inline-block}@keyframes frp-spin{to{transform:rotate(360deg)}}.frp-list{display:flex;flex-direction:column;gap:0}.frp-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}.frp-row:last-child{border-bottom:none}.frp-avatar{width:44px;height:44px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.frp-avatar--fallback{background:var(--accent-primary, #15b886);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600}.frp-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.frp-row-name,.frp-row-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frp-row-name{font-size:.92rem;font-weight:600;color:var(--text-primary)}.frp-row-sub{font-size:.78rem;color:var(--text-secondary)}.frp-accept-btn{flex-shrink:0;padding:7px 14px;border-radius:20px;border:1.5px solid var(--accent-primary, #15b886);background:transparent;color:var(--accent-primary, #15b886);font-size:.82rem;font-weight:600;cursor:pointer;transition:background var(--dur-micro),color var(--dur-micro),opacity var(--dur-micro)}@media(hover:hover)and (pointer:fine){.frp-accept-btn:hover{background:var(--accent-primary, #15b886);color:#fff}}.frp-accept-btn:active{opacity:.8}.frp-accept-btn:disabled{opacity:.55;cursor:not-allowed}.frp-accept-btn--done{background:var(--bg-input, rgba(255, 255, 255, .06));border-color:transparent;color:var(--text-secondary)}.frp-row--skeleton{pointer-events:none}.frp-skeleton{background:var(--bg-input, rgba(255, 255, 255, .08));border-radius:6px;animation:frp-shimmer var(--dur-skeleton) ease infinite}@keyframes frp-shimmer{0%,to{opacity:1}50%{opacity:.45}}.frp-skeleton.frp-avatar{border-radius:50%}.frp-skeleton--name{width:120px;height:13px}.frp-skeleton--sub{width:80px;height:11px;margin-top:4px}.frp-skeleton--btn{width:64px;height:32px;border-radius:20px;flex-shrink:0}.frp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 24px;text-align:center}.frp-empty-icon{color:var(--text-muted, #555)}.frp-empty-text{font-size:.92rem;color:var(--text-secondary);margin:0}.frp-cta-btn{padding:10px 24px;border-radius:24px;background:var(--accent-primary, #15b886);border:none;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity var(--dur-micro)}.frp-cta-btn:hover{opacity:.88}.frp-retry-btn{padding:9px 22px;border-radius:24px;background:transparent;border:1.5px solid var(--border-subtle, rgba(255, 255, 255, .18));color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:background var(--dur-micro)}@media(hover:hover)and (pointer:fine){.frp-retry-btn:hover{background:var(--bg-input, rgba(255, 255, 255, .06))}}
