@charset "UTF-8";
/* 界面样式：聊天、线下故事、经历中心、IF 世界与一起旅行。 */
.incoming-video-dialog{width:min(360px,calc(100vw - 40px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #e5e5e5;border-radius:24px;background:#fff;color:#262626;box-shadow:0 24px 100px #0002;overflow:auto}.incoming-video-dialog::backdrop{background:#0006;backdrop-filter:blur(8px)}.incoming-video-card{padding:34px 28px 28px;text-align:center}.incoming-video-kicker{color:#999;font-size:10px;letter-spacing:4px}.incoming-video-avatar{margin:30px auto 20px}.incoming-video-avatar .avatar{width:94px;height:94px;margin:auto;border:1px solid #e7e7e7;font-size:32px;overflow:hidden}.incoming-video-avatar img{width:100%;height:100%;object-fit:cover}.incoming-video-card h2{margin:0;font:500 23px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;overflow-wrap:anywhere}.incoming-video-card>p{margin:9px 0 36px;color:#888;font-size:12px}.incoming-video-actions{display:flex;justify-content:center;gap:64px}.incoming-video-actions button{display:grid;justify-items:center;gap:12px;min-width:68px;padding:3px;color:#777}.incoming-video-actions button>span{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#f1f1f1;font-size:29px;font-weight:300}.incoming-video-actions button[data-incoming-accept]>span{background:#252525;color:#fff}.incoming-video-actions svg{width:23px;height:23px}.incoming-video-actions strong{font-size:12px;font-weight:400;letter-spacing:2px}.incoming-video-frequency{display:block;margin:12px 0 18px;color:#777;font-size:12px}.incoming-video-frequency select{max-width:140px;padding:8px 28px 8px 12px;border:1px solid #e5e5e5;border-radius:8px;background:#fff;color:#444;font:inherit}
:root{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#262626;background:#fff;font-synthesis:none;--surface:#f4f4f4;--muted:#a2a2a2;--line:#eeeeee}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #979797;outline-offset:5px}button{border:0;background:none}button:hover{filter:brightness(.96)}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.phone{height:100dvh;min-height:480px;max-width:780px;margin:auto;position:relative;display:flex;flex-direction:column;padding:0 48px;overflow:hidden;background:white}.topbar{padding:54px 0 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}h1{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:44px;letter-spacing:-1.5px;margin:0;font-weight:400;display:flex;align-items:center;gap:7px}.top-actions{display:flex;align-items:center;gap:13px}.avatar-stack{display:flex;padding:0 5px}.avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;position:relative;font-family:Georgia,serif;font-size:21px;color:#4b4b4b;background:#e6e6e6;border:3px solid #fff;flex-shrink:0}.avatar-stack .avatar+.avatar{margin-left:-15px}.avatar-stack .avatar:last-child{background:#3c3c3c;color:#f2f2f2}.icon-button{width:28px;height:40px;display:grid;place-items:center}.icon-button svg{width:19px}.conversation{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;padding:10px 0 24px;display:flex;flex-direction:column}.bottom{padding:12px 0 max(34px,env(safe-area-inset-bottom));position:relative;background:#fff;z-index:4}.dock{display:flex;justify-content:space-between;gap:18px}.dock-item{padding:0;display:flex;align-items:center;flex-direction:column;gap:13px;font-size:10px;letter-spacing:2px;color:#8b8b8b}.circle{width:56px;height:56px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:#676767;transition:background .2s,transform .2s}.dock-item:hover .circle{transform:translateY(-3px);background:#ebebeb}.dock-item:nth-child(2) .circle{background:#ebebeb;color:#5e5e5e}.dock-item:last-child .circle{background:#ededed}.dock-item .circle svg{width:25px;height:25px}.composer{display:flex;align-items:center;gap:9px;min-height:99px}.composer[hidden],.dock[hidden],[hidden]{display:none!important}.small{width:40px;height:40px;flex-shrink:0}.small svg{width:19px;height:19px}.composer-tools{position:relative}.close-input{position:absolute;top:47px;font-size:9px;width:40px;padding:0;color:#949494;letter-spacing:1px}.input-wrap{display:flex;align-items:center;background:#f2f2f2;border:1px solid #eaeaea;border-radius:26px;padding:0 12px 0 17px;height:40px;flex:1;min-width:0}textarea{background:transparent;border:0;outline:none!important;resize:none;width:100%;font-size:13px;line-height:24px;max-height:96px;color:#474747}textarea::placeholder{color:#adadad}.emoji{display:grid;place-items:center;padding:0;color:#979797}.emoji svg{width:20px;height:20px}.input-wrap textarea{line-height:20px;max-height:20px}.send{background:#666666;color:white}.shade{position:absolute;inset:0;background:rgba(0,0,0,.12);z-index:5;backdrop-filter:blur(3px)}.sheet{position:absolute;bottom:0;left:0;right:0;z-index:6;background:#fff;border-radius:28px 28px 0 0;padding:15px 38px 42px;box-shadow:0 -10px 60px #33333308;max-height:78%;overflow:auto;animation:slide .25s ease}.handle{width:30px;height:3px;background:#dedede;border-radius:3px;margin:0 auto 25px}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.sheet h2{font-weight:500;font-size:20px;margin:0}.sheet-sub{font-size:11px;color:#a2a2a2;margin:7px 0 0}.sheet-close{color:#979797;font-size:23px}.choices{display:grid;gap:8px}.choice{display:flex;align-items:center;text-align:left;padding:13px;border-radius:15px;gap:14px;border:1px solid transparent}.choice.selected{border-color:#e6e6e6;background:#f7f7f7}.choice .avatar{width:49px;height:49px}.choice strong{font-size:14px;font-weight:500}.choice p{font-size:11px;color:#9b9b9b;margin:5px 0 0}.check{margin-left:auto;color:#808080}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.feature{background:#f6f6f6;border-radius:17px;padding:23px 8px;display:flex;align-items:center;gap:12px;flex-direction:column;font-size:12px}.sheet label{font-size:12px;display:block;color:#868686;margin-bottom:10px}.sheet input{width:100%;padding:14px;border:1px solid #e7e7e7;border-radius:12px;background:#fbfbfb;margin:7px 0 15px;color:#4a4a4a}.primary{padding:13px 20px;background:#696969;color:white;border-radius:12px;width:100%;font-size:12px}.sheet-copy{font-size:13px;line-height:1.9;color:#959595}.message{display:flex;gap:10px;margin:14px 0;align-items:flex-end;max-width:87%;animation:appear .2s ease}.message .avatar{width:30px;height:30px;font-size:14px;border:0}.bubble{padding:12px 16px;background:#f4f4f4;border-radius:17px 17px 17px 4px;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.message.mine{align-self:flex-end;flex-direction:row-reverse}.mine .bubble{background:#eeeeee;border-radius:17px 17px 4px 17px}.timestamp{text-align:center;color:#b3b3b3;font-size:9px;letter-spacing:1px;margin:15px 0}.toast{position:absolute;bottom:170px;left:50%;transform:translateX(-50%);background:#4a4a4a;color:white;padding:12px 19px;border-radius:30px;font-size:12px;z-index:10;white-space:nowrap}@keyframes slide{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(min-width:850px){.phone{max-width:700px;padding:0 65px}.topbar{padding-top:64px}.bottom{padding-bottom:45px}.circle{width:60px;height:60px}.small{width:42px;height:42px}}@media(max-width:480px){.phone{padding:0 25px}.topbar{padding-top:max(30px,env(safe-area-inset-top));padding-bottom:22px}h1{font-size:40px}.circle{width:50px;height:50px}.dock{gap:12px}.small{width:35px;height:35px}.composer{gap:6px}.input-wrap{height:35px;padding-left:12px;padding-right:9px}.input-wrap textarea{font-size:12px;line-height:18px;max-height:18px}.sheet{padding-left:25px;padding-right:25px}.bottom{padding-bottom:max(27px,env(safe-area-inset-bottom))}.avatar{width:38px;height:38px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.dock-item .circle{background:var(--surface);color:#555}.dock-item .circle svg{width:21px;height:21px;stroke-width:1.3}.dock-item{font-size:9px;letter-spacing:1px;gap:11px}.avatar-stack .avatar{border-width:2px}.sheet-sub:empty{display:none}
.avatar-stack .avatar:nth-child(1){background:#dedede;color:#343434}.avatar-stack .avatar:nth-child(2){background:#bcbcbc;color:#343434}.avatar-stack .avatar:nth-child(3){background:#858585;color:#fff}.avatar-stack .avatar:nth-child(4){background:#303030;color:#fff}
.composer-tools{flex-shrink:0}.quick-features{position:absolute;z-index:8;bottom:50px;left:0;display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:10px 0;animation:quick-in .18s ease}.quick-item{display:flex;align-items:center;gap:10px;padding:0;border:0;background:transparent;color:#555;font-size:10px;white-space:nowrap}.quick-item svg{width:38px;height:38px;padding:10px;border-radius:50%;background:#f0f0f0;stroke-width:1.4}.quick-item span{background:#fff;padding:5px 8px;border-radius:12px;box-shadow:0 2px 12px #0000000c}.quick-exit svg{background:#333;color:white;transform:rotate(180deg)}.composer-tools>.small{position:relative;z-index:9}.quick-features[hidden]{display:none!important}@keyframes quick-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.avatar-stack .avatar{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:21px;font-style:italic;font-weight:500}.quick-item>span:last-child{background:#fff;padding:5px 8px;border-radius:12px;box-shadow:0 2px 12px #0000000c}.quick-item>.quick-icon{display:grid;place-items:center;padding:0;background:transparent;box-shadow:none}.quick-item>.quick-icon svg{width:38px;height:38px;padding:10px;border-radius:50%;background:#f0f0f0;stroke-width:1.4}.quick-exit>.quick-icon svg{background:#333;color:#fff;transform:rotate(180deg)}


#emoji.is-send{width:28px;height:28px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:#e2e2e2;color:#363636}#emoji.is-send svg{width:15px;height:15px}.bottom:has(.composer:not([hidden])){padding-top:10px;padding-bottom:var(--app-composer-bottom-gap,15px)}.bottom:has(.composer:not([hidden])) .composer{min-height:0}

.quick-features{max-height:65dvh;overflow-y:auto;overscroll-behavior:contain}
/* Original centered personal file */
.profile-dialog{width:min(420px,calc(100vw - 36px));max-height:calc(100dvh - 36px);margin:auto;padding:26px 28px 20px;border:1px solid #e9e9e9;border-radius:22px;background:#fff;color:#333;box-shadow:0 20px 80px #00000014;overflow:auto;scrollbar-width:thin;animation:appear .2s ease}
.profile-dialog::backdrop{background:#00000020;backdrop-filter:blur(5px)}
.profile-heading{display:flex;align-items:center;justify-content:space-between}.profile-eyebrow{font-size:8px;letter-spacing:2.2px;color:#939393}.profile-close{width:28px;height:28px;font-size:24px;font-weight:300;color:#858585;line-height:1}
.profile-title-row{display:flex;justify-content:space-between;align-items:center;margin:12px 0 23px}.profile-title-row h2{font-size:21px;letter-spacing:3px;font-weight:400;margin:0}.profile-title-row>button{font-size:10px;color:#888;padding:7px 0 7px 10px}
.profile-identity{display:flex;align-items:center;gap:20px;padding:0 0 25px;margin-bottom:22px;border-bottom:1px solid #ededed}.portrait-control{position:relative;flex-shrink:0}.profile-portrait{width:76px;height:76px;border:1px solid #ebebeb;border-radius:50%;background:#f5f5f5;overflow:hidden;display:grid;place-items:center;padding:0}.profile-portrait>svg{width:26px;height:26px;stroke:#a0a0a0;stroke-width:1}.profile-portrait img,.message .avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:grayscale(1)}.portrait-plus{position:absolute;right:0;bottom:0;pointer-events:none;width:21px;height:21px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:#dedede;color:#555;font-size:12px}.profile-preview{min-width:0}.profile-number{font-size:8px;letter-spacing:2px;color:#a0a0a0}.profile-preview h3{font-size:18px;font-weight:400;letter-spacing:1px;margin:7px 0;overflow-wrap:anywhere}.profile-preview p{font-size:10px;color:#999;margin:0;line-height:1.6;overflow-wrap:anywhere}.profile-preview button{padding:6px 0 0;font-size:9px;color:#999;text-decoration:underline;text-underline-offset:3px}
.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 20px}.profile-fields label{display:block;min-width:0;font-size:11px;color:#555;letter-spacing:.5px}.profile-fields label>span{font-size:7px;letter-spacing:1px;color:#aaa;margin-left:4px}.profile-fields input,.profile-fields textarea{display:block;width:100%;min-width:0;margin-top:8px;border:0;border-bottom:1px solid #e6e6e6;border-radius:0;padding:8px 0 10px;background:#fff;color:#333;font-size:12px;font-weight:400;line-height:20px}.profile-fields input:focus,.profile-fields textarea:focus{outline:none;border-color:#777}.profile-fields input::placeholder,.profile-fields textarea::placeholder{color:#b3b3b3;font-size:11px}.profile-fields textarea{height:74px;max-height:none;resize:vertical}.profile-fields input[type=date]{min-height:39px;appearance:none}.profile-wide{grid-column:1/-1}
.profile-pagination{display:flex;align-items:center;justify-content:space-between;margin:25px 0 18px}.profile-pagination button{font-size:10px;letter-spacing:.5px;color:#666;padding:8px 0}.profile-pagination button>span{margin:0 5px}.profile-pagination button:disabled{color:#c8c8c8;cursor:default;filter:none}.profile-pagination>span{font-size:10px;letter-spacing:1px;color:#555;font-variant-numeric:tabular-nums}.profile-pagination i{font-style:normal;color:#ccc;margin:0 10px}.profile-confirm{width:100%;border-radius:12px;padding:14px 18px;background:#333;color:#fff;font-size:11px;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between}.profile-confirm span{font-size:16px;font-weight:300}.profile-footnote{text-align:center;font-size:9px;color:#aaa;letter-spacing:.8px;margin:12px 0 0}.profile-dialog:focus{outline:none}
@media(max-width:380px){.profile-dialog{padding:20px}.profile-fields{gap:16px 12px}.profile-fields label>span{font-size:6px;letter-spacing:0}.profile-identity{gap:15px}}
@media(max-height:650px){.profile-dialog{padding-top:18px;padding-bottom:15px}.profile-title-row{margin:5px 0 16px}.profile-identity{padding-bottom:16px;margin-bottom:16px}.profile-fields{gap:13px}.profile-pagination{margin:16px 0 12px}}
@media(prefers-reduced-motion:reduce){.profile-dialog{animation:none}}
@media(min-width:850px){.input-wrap{height:42px}}
/* Restored first angel collage style. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.profile-dialog{width:min(400px,calc(100vw - 36px));max-height:calc(100dvh - 32px);padding:20px 28px 18px;border:1px solid #eee;border-radius:24px;color:#444;box-shadow:0 18px 80px #00000017}.profile-dialog::backdrop{background:#00000014;backdrop-filter:blur(5px)}.profile-eyebrow{font-size:7px;letter-spacing:2.4px;color:#a0a0a0}.profile-close{width:27px;height:27px;font-size:21px;color:#999;border-radius:50%}
.profile-title-row{margin:6px 0 0;gap:10px}.profile-title-row h2{font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:32px;font-weight:400;letter-spacing:-.4px}.profile-title-row>button{padding:7px 0;color:#929292;font-size:9px;white-space:nowrap}
.profile-identity{display:block;position:relative;height:196px;isolation:isolate;padding:0;border:0;margin:0 0 17px}.dot-scrap{position:absolute;left:9px;top:37px;width:68px;height:91px;background-color:#f8f8f8;background-image:radial-gradient(#888 1px,transparent 1.3px);background-size:10px 10px;transform:rotate(-13deg);border:5px solid #fff;box-shadow:0 2px 7px #00000009;border-radius:3px;z-index:-1}.dot-scrap:before{content:"";position:absolute;top:-8px;left:13px;width:35px;height:14px;background:#e7e7e78c;transform:rotate(8deg)}
.angel-wings{position:absolute;top:41px;left:50%;transform:translateX(-50%);width:222px;height:104px;stroke:none;filter:drop-shadow(0 2px 2px #00000009);pointer-events:none}.angel-halo{position:absolute;top:16px;left:calc(50% - 23px);width:46px;height:12px;border:1.3px solid #aaa;border-radius:50%;transform:rotate(-10deg);box-shadow:0 2px 0 #ededed;pointer-events:none}.portrait-control{position:absolute;top:45px;left:calc(50% - 41px);width:82px;height:82px}.profile-portrait{width:82px;height:82px;background:linear-gradient(140deg,#f7f7f7,#e9e9e9);border:4px solid #fff;box-shadow:0 0 0 1px #eee}.portrait-plus{right:0;bottom:2px;width:19px;height:19px;background:#e9e9e9;font-size:11px;color:#777}
.star-sticker{position:absolute;top:19px;right:17px;width:40px;height:40px;transform:rotate(13deg);fill:#e5e5e5;stroke:#fff;stroke-width:3;filter:drop-shadow(0 1px 1px #bbb);pointer-events:none}.music-sticker{position:absolute;left:34px;top:120px;color:#777;transform:rotate(-13deg);pointer-events:none}.music-sticker svg{width:25px;height:27px;stroke-width:1.8}.little-star{position:absolute;right:36px;top:118px;width:24px;height:24px;stroke:#aaa;stroke-width:1;transform:rotate(12deg);pointer-events:none}
.profile-preview{position:absolute;left:65px;right:65px;top:140px;text-align:center}.profile-number{position:absolute;top:-19px;right:-53px;font-family:Georgia,serif;font-style:italic;font-size:9px;letter-spacing:0;color:#aaa;transform:rotate(7deg)}.profile-preview h3{margin:0 0 5px;font-size:16px;letter-spacing:2px;font-weight:400;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-preview p{font-size:9px;color:#aaa;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-preview button{font-size:8px;color:#aaa;padding:5px 0 0}
.profile-fields{gap:14px 13px}.profile-fields label{font-size:10px;letter-spacing:.6px;color:#777}.profile-fields label>span{font-size:6px;letter-spacing:1px}.profile-fields input,.profile-fields textarea{margin-top:7px;padding:8px 0;border-color:#ededed;background:transparent;color:#555}.profile-fields input::placeholder,.profile-fields textarea::placeholder{font-size:10px;color:#bcbcbc}
.profile-demographics{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;align-items:end}.profile-demographics label{min-width:0}.profile-demographics select{display:block;width:100%;min-width:0;margin-top:7px;padding:8px 0;border:0;border-bottom:1px solid #ededed;border-radius:0;background:transparent;color:#555;font:inherit;font-size:11px}
.profile-fields .name-paper,.profile-fields .nickname-paper{position:relative;padding:12px 13px 5px;border:1px solid #eee;border-radius:3px;background:#fff;box-shadow:0 3px 8px #00000004}.profile-fields .name-paper{transform:rotate(-1.3deg)}.profile-fields .nickname-paper{transform:rotate(1.3deg);background:#fafafa}.name-paper:before{content:"";position:absolute;width:26px;height:9px;background:#e9e9e991;top:-5px;left:15px;transform:rotate(-6deg)}.profile-fields .name-paper input,.profile-fields .nickname-paper input{border:0;padding:4px 0 7px}
.profile-fields .birthday-ticket{display:flex;align-items:center;gap:6px;border-bottom:1px solid #eee;padding:0 4px}.birthday-ticket>span{margin-right:9px}.profile-fields .birthday-ticket input{width:0;flex:1;min-height:34px;margin:0;padding:6px 0;border:0;font-size:11px;appearance:none}
.profile-fields .details-note{position:relative;background:#fafafa;border:1px solid #f0f0f0;padding:12px 14px 10px;border-radius:9px}.note-decoration{position:absolute;right:15px;top:9px;color:#aaa;transform:rotate(10deg);pointer-events:none}.note-decoration svg{width:16px;height:16px}.profile-fields .details-note textarea{height:51px;max-height:280px;overflow-y:hidden;line-height:21px;padding:0;margin-top:9px;border:0;background:repeating-linear-gradient(transparent 0 20px,#ededed 20px 21px);font-size:11px;transition:height .16s ease}
.profile-pagination{margin:18px 0 13px}.profile-pagination button{font-size:9px;color:#888}.profile-pagination button:disabled{color:#d1d1d1}.profile-pagination>span{font-family:Georgia,serif;font-size:10px;color:#777}.profile-confirm{padding:12px 17px;border-radius:24px;background:#eaeaea;color:#555;font-size:10px}.profile-confirm>span{font-size:14px}.profile-footnote{font-size:8px;letter-spacing:.5px;margin:10px 0 0}
@media(max-width:380px){.profile-dialog{padding:18px 21px}.profile-title-row h2{font-size:29px}.dot-scrap{left:0}.star-sticker{right:3px}.music-sticker{left:20px}.little-star{right:22px}.profile-fields{gap:13px 10px}.profile-fields .name-paper,.profile-fields .nickname-paper{padding-left:10px;padding-right:10px}}
@media(max-height:690px){.profile-dialog{padding-top:14px;padding-bottom:14px}.profile-identity{height:180px;margin-bottom:12px}.profile-fields{gap:10px}.profile-pagination{margin:12px 0 10px}}

/* Compact white sticker wings; no detached polka-dot paper. */
.angel-wings{top:39px;width:188px;height:102px;filter:none}.angel-halo{top:24px;width:34px;height:9px;left:calc(50% - 17px);border-color:#c2c2c2;box-shadow:none}.star-sticker{width:23px;height:23px;top:33px;right:calc(50% - 104px);fill:#e3e3e3;filter:drop-shadow(0 1px 1px #ddd)}.music-sticker{left:calc(50% - 100px);top:36px;color:#aaa}.music-sticker svg{width:18px;height:20px}.little-star{width:14px;height:14px;right:calc(50% - 96px);top:112px;stroke:#bcbcbc}.profile-number{top:-7px;right:-37px;font-size:8px;color:#bbb}
.profile-identity>img.angel-wings{display:block;object-fit:contain;border:0}
/* Centered character roster and its matching little-devil profile. */
.character-list{display:flex;flex-direction:column;gap:3px;margin:24px 0 17px;max-height:40dvh;overflow:auto}.character-row{display:flex;align-items:center;gap:13px;padding:13px 5px;text-align:left;border-bottom:1px solid #f0f0f0}.character-row:last-child{border-bottom:0}.character-row .avatar{width:43px;height:43px;font-size:17px;background:#eee;color:#666}.character-row .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;filter:grayscale(1)}.character-row-info{flex:1;min-width:0}.character-row-info strong{display:block;font-size:13px;letter-spacing:1px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-row-info small{display:block;margin-top:6px;font-size:9px;color:#aaa}.character-row>svg{width:14px;height:14px;color:#aaa}.character-current{font-size:8px;color:#999;background:#f3f3f3;border-radius:10px;padding:4px 8px;white-space:nowrap}.character-back{font-size:9px!important}.character-import-actions{display:flex;align-items:center;gap:12px}.character-import-actions #importCharacter{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:22px;background:#eee;color:#666;padding:12px;font-size:11px}.character-import-actions #importCharacter svg{width:15px;height:15px}.character-import-actions #importCharacter:disabled{opacity:.5;cursor:wait}.character-import-actions #newCharacter{font-size:9px;color:#999;padding:10px 0}.character-formats{text-align:center;font-size:8px;letter-spacing:1.8px;color:#aaa;margin:12px 0 0}.character-feedback{text-align:center;line-height:1.8;color:#999;font-size:9px;margin:10px 0 0;overflow-wrap:anywhere}
.devil-identity{height:193px!important}.devil-wings{position:absolute;width:200px;height:100px;top:37px;left:calc(50% - 100px);fill:#484848;stroke:#fff;stroke-width:2;filter:drop-shadow(0 1px 1px #ddd);pointer-events:none}.devil-wings .devil-feather{stroke:#bdbdbd;stroke-width:1;fill:none}.devil-horns{position:absolute;width:96px;height:48px;top:22px;left:calc(50% - 48px);fill:#555;stroke:#fff;stroke-width:2;pointer-events:none}.devil-tail{position:absolute;top:91px;right:calc(50% - 123px);width:49px;height:64px;fill:none;stroke:#777;stroke-width:1.5;pointer-events:none}.devil-tail .tail-tip{fill:#777;stroke:none}.devil-star{position:absolute;left:calc(50% - 105px);top:37px;width:16px;height:16px;fill:#e1e1e1;stroke:#aaa;stroke-width:1;pointer-events:none}.character-dialog .profile-fields input{font-size:11px}.character-dialog .profile-fields label>span{letter-spacing:.5px}

.character-dialog .devil-identity{height:176px!important}.character-dialog .character-feedback{font-size:8px;line-height:1.6;margin-top:8px}

/* Equal import actions and centered confirmation label. */
.character-import-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.character-import-actions #importCharacter,.character-import-actions #newCharacter{height:42px;min-width:0;padding:0 12px;border-radius:22px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;white-space:nowrap}.character-import-actions #newCharacter{background:#f7f7f7;border:1px solid #ededed;color:#777}.character-dialog .profile-confirm{position:relative;justify-content:center;text-align:center}.character-dialog .profile-confirm>span{position:absolute;right:17px}.character-dialog .profile-fields input[name=nickname]::placeholder{color:transparent}

.empty-profiles{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px 12px}.empty-profile-mark{width:56px;height:56px;display:grid;place-items:center;border:1px solid #ededed;border-radius:50%;color:#aaa}.empty-profile-mark svg{width:22px;height:22px}.empty-profiles h2{font-size:15px;font-weight:400;letter-spacing:2px;margin:19px 0 8px}.empty-profiles p{font-size:10px;color:#aaa;margin:0 0 22px}.empty-profiles .profile-confirm{max-width:230px;justify-content:center;gap:15px}.character-list.is-empty{min-height:145px;justify-content:center}.empty-characters{display:flex;align-items:center;flex-direction:column;gap:9px;padding:16px;color:#999}.empty-characters>span svg{width:22px;height:22px;stroke:#aaa;stroke-width:1}.empty-characters strong{font-size:11px;font-weight:400;letter-spacing:1px}.empty-characters small{font-size:9px;color:#b0b0b0}
.profile-roster{display:grid;gap:2px;max-height:78px;margin:0 0 16px;overflow:auto;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;scrollbar-width:thin}.profile-roster-row{display:flex;align-items:center;gap:8px;min-height:31px;padding:2px 4px;border-bottom:1px solid #f4f4f4}.profile-roster-row:last-child{border-bottom:0}.profile-roster-entry{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:1;min-width:0;padding:5px 2px;color:#888;text-align:left;font-size:9px}.profile-roster-entry>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-roster-entry small{flex:none;color:#bbb;font-size:7px}.profile-roster-entry.active{color:#444}.profile-roster-entry.active small{color:#999}.profile-roster-delete,.character-row-delete{flex:none;padding:5px 3px;border-bottom:1px solid #e8e8e8;color:#aaa;font-size:8px;letter-spacing:.3px;transition:color .18s,border-color .18s}.profile-roster-delete:hover,.character-row-delete:hover{color:#777;border-color:#bdbdbd}
.character-row{padding:8px 3px}.character-row-main{display:flex;align-items:center;gap:13px;flex:1;min-width:0;padding:5px 2px;text-align:left}.character-row-main>svg{width:14px;height:14px;flex:none;color:#aaa}
.settings-screen{position:absolute;inset:0;z-index:12;background:#fff;display:flex;flex-direction:column;padding:0 48px;animation:appear .18s ease}.settings-screen[hidden]{display:none!important}.settings-topbar{display:flex;align-items:center;justify-content:space-between;padding:54px 0 26px;border-bottom:1px solid #f1f1f1}.settings-topbar h2{margin:0;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:39px;font-style:italic;font-weight:400;letter-spacing:-.5px;color:#333}.settings-topbar button{width:34px;height:34px;border-radius:50%;background:#f5f5f5;font-size:20px;color:#777}.settings-content{width:100%;max-width:540px;margin:0 auto;overflow:auto;padding:36px 0 48px}.settings-kicker,.settings-version{font-size:8px;letter-spacing:2px;color:#aaa}.settings-kicker{margin:0 0 20px}.settings-group{padding:20px 0;border-bottom:1px solid #eee}.settings-group h3{margin:0 0 16px;font-size:13px;font-weight:400;letter-spacing:1px;color:#444}.settings-group h3 span{font-family:monospace;font-size:8px;letter-spacing:1.2px;color:#aaa;margin-left:7px}.settings-summary{display:flex;align-items:center;gap:13px}.settings-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#eee;color:#777;font-size:16px;overflow:hidden}.settings-avatar img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.settings-summary>span:nth-child(2){flex:1;min-width:0}.settings-summary strong,.settings-summary small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-summary strong{font-size:12px;font-weight:400}.settings-summary small{font-size:9px;color:#aaa;margin-top:5px}.settings-summary button,.settings-row>span:last-child{display:flex;align-items:center;gap:8px;font-size:10px;color:#888}.settings-summary button svg,.settings-row svg{width:13px;height:13px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:5px 0;width:100%;font-size:11px;color:#666;text-align:left}.settings-note{font-size:10px;color:#aaa;line-height:1.8}.settings-action{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 15px;border-radius:12px;background:#f5f5f5;color:#666;font-size:11px}.settings-action svg{width:15px;height:15px}.settings-version{text-align:center;margin:30px 0 0;font-size:7px}
@media(max-width:480px){.settings-screen{padding:0 25px}.settings-topbar{padding-top:max(30px,env(safe-area-inset-top));padding-bottom:20px}.settings-content{padding-top:25px}}
.settings-screen{padding:0 48px}.settings-topbar{justify-content:flex-start;padding:54px 0 26px}.settings-topbar #closeSettings{width:auto;height:auto;padding:0;border-radius:0;background:transparent;color:#333;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:39px;font-style:italic;font-weight:400;letter-spacing:-.5px}.settings-content{padding-top:26px}.settings-group{padding:17px 0}.settings-group h3{margin-bottom:13px}.settings-form{display:grid;gap:12px}.settings-form label{display:block;font-size:10px;color:#777}.settings-form label input{display:block;width:100%;margin-top:6px;border:0;border-bottom:1px solid #e6e6e6;padding:9px 0;background:#fff;color:#444;font-size:12px}.settings-form input:focus{outline:none;border-color:#888}.settings-primary,.settings-secondary{min-height:40px;border-radius:12px;background:#eee;color:#555;padding:9px 14px;font-size:10px}.settings-form .settings-primary{width:100%}.settings-secondary{border:1px solid #e9e9e9;background:#fff}.settings-button-row{display:flex;gap:10px}.settings-button-row button{flex:1}.settings-switch-row{display:flex!important;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer}.settings-switch-row strong,.settings-switch-row small{display:block;font-weight:400}.settings-switch-row strong{font-size:11px;color:#666}.settings-switch-row small{font-size:9px;color:#aaa;margin-top:5px}.settings-switch-row input{position:absolute;opacity:0;pointer-events:none}.settings-switch-row i{position:relative;width:34px;height:19px;border-radius:12px;background:#ddd;transition:background .18s}.settings-switch-row i:after{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s}.settings-switch-row input:checked+i{background:#555}.settings-switch-row input:checked+i:after{transform:translateX(15px)}.settings-upload{display:flex!important;align-items:center;justify-content:space-between;margin-top:15px;padding:12px 0;font-size:10px;color:#777;border-top:1px solid #eee}.settings-upload>span{display:flex;align-items:center;gap:7px}.settings-upload svg{width:13px;height:13px}.wallpaper-preview{display:flex;align-items:center;gap:12px}.wallpaper-preview img{width:74px;height:74px;border-radius:12px;object-fit:cover;filter:grayscale(1)}.wallpaper-preview button{color:#888;font-size:9px}.lock-screen{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:30px;background:#f6f6f6 center/cover no-repeat}.lock-screen[hidden]{display:none!important}.lock-content{width:min(320px,100%);padding:32px 26px;text-align:center;border:1px solid #ffffffa8;border-radius:22px;background:#ffffffdf;backdrop-filter:blur(16px);box-shadow:0 15px 50px #00000012}.lock-wordmark{margin:0 0 35px;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:35px;font-style:italic}.lock-kicker{font-size:7px;letter-spacing:2px;color:#aaa}.lock-content h2{margin:8px 0 23px;font-size:17px;font-weight:400;letter-spacing:2px}.lock-content form{display:grid;gap:12px}.lock-content input{width:100%;padding:12px;border:1px solid #eee;border-radius:12px;background:#fff;text-align:center;font-size:12px}.lock-content form button{padding:12px;border-radius:12px;background:#444;color:#fff;font-size:11px}.lock-content #lockFeedback{min-height:14px;margin:10px 0 0;color:#999;font-size:9px}
@media(max-width:480px){.settings-screen{padding:0 25px}.settings-topbar{padding-top:max(30px,env(safe-area-inset-top));padding-bottom:20px}.settings-topbar #closeSettings{font-size:35px}.settings-content{padding-top:20px}}
.settings-menu{display:grid;gap:11px}.settings-menu-item{width:100%;min-height:69px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #eeeeee;border-radius:14px;background:#fff;text-align:left;box-shadow:0 3px 12px #00000004}.settings-menu-item>span{min-width:0}.settings-menu-item strong{display:block;font-size:15px;font-weight:450;letter-spacing:.4px;color:#3f3f3f}.settings-menu-item small{display:block;margin-top:6px;font-size:8px;letter-spacing:.7px;color:#aaa}.settings-menu-item svg{width:15px;height:15px;flex:none;color:#aaa}.settings-menu-item:active{background:#f8f8f8}.settings-menu+.settings-version{margin-top:28px}
.settings-page-heading{display:flex;align-items:baseline;gap:10px;margin:4px 0 25px;padding-bottom:18px;border-bottom:1px solid #eee}.settings-page-heading h2{margin:0;font-size:23px;font-weight:400;letter-spacing:.3px;color:#444}.settings-page-heading span{font-size:8px;letter-spacing:1.4px;color:#aaa}.settings-page-form,.settings-page-body{display:block;padding-top:3px}.settings-page-form{display:grid;gap:18px}.settings-page-body>.settings-note{margin:0 0 18px}
.settings-menu{display:grid;gap:0}.settings-menu-item{position:relative;width:100%;min-height:76px;display:flex;align-items:center;justify-content:flex-start;padding:17px 4px 21px;border:0;border-radius:0;background:transparent;text-align:left;box-shadow:none}.settings-menu-item>span{font-size:19px;font-weight:300;letter-spacing:1.1px;color:#505050}.settings-menu-item:after,.settings-menu-item:before{content:"";position:absolute;bottom:0;pointer-events:none}.settings-menu-item:after{left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,#e4e4e4 17%,#bdbdbd 50%,#e4e4e4 83%,transparent 100%)}.settings-menu-item:before{left:34%;width:32%;height:2px;bottom:-.5px;background:linear-gradient(90deg,transparent,#a9a9a9 50%,transparent)}.settings-menu-item:active{background:transparent}.settings-menu-item:hover{filter:none}.settings-menu+.settings-version{margin-top:28px}
.settings-menu-item>span{font-weight:400;letter-spacing:.5px}.settings-menu-item:before{display:none}.settings-menu-item:after{height:1px;bottom:0;background:linear-gradient(90deg,transparent 0%,#e5e5e5 10%,#e5e5e5 90%,transparent 100%)}.settings-topbar #closeSettings{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:38px;font-style:italic;font-weight:400;letter-spacing:-.5px;color:#444}.dock{transform:translateY(10px);justify-content:center;gap:clamp(12px,4vw,20px)}.dock-item{gap:8px;font-size:9px;letter-spacing:1px;color:#999}.dock-item .circle,.dock-item:nth-child(2) .circle,.dock-item:last-child .circle{width:52px;height:52px;background:#f4f4f4;color:#696969;border:1px solid #eeeeee}.dock-item .circle svg{width:22px;height:22px;stroke-width:1.35}.dock-item:hover .circle{transform:none;background:#ededed!important}
.api-config-panel{display:grid;gap:6px}.api-config-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.api-config-heading h2{margin:0;font-size:18px;font-weight:400;color:#555}.api-add-config{padding:8px 0;color:#777;font-size:11px}.api-config-list{display:grid}.api-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.api-form-actions button{min-width:0}.api-form-actions .settings-primary{min-height:40px;border-radius:12px;background:#eee;color:#555;padding:9px 14px;font-size:10px}
.is-system-settings>.api-config-panel .api-config-heading{position:sticky;top:0;z-index:5;min-height:38px;padding:4px 0 7px;background:#fff}
.offline-settings{padding-top:2px}.offline-settings-label{margin:0 0 14px;font-size:12px;color:#666}.offline-theme-options{display:flex;gap:17px;padding:4px 0 24px}.offline-theme{display:flex;flex-direction:column;align-items:center;gap:7px;padding:0;background:transparent;color:#999;font-size:9px}.offline-theme i{width:38px;height:38px;border:1px solid #e6e6e6;border-radius:50%}.offline-theme.selected i{box-shadow:0 0 0 2px #fff,0 0 0 3px #aaa}.offline-settings .settings-row{border-top:1px solid #eee;padding:15px 0}
.topbar h1{cursor:pointer;-webkit-tap-highlight-color:transparent}.topbar h1:focus-visible,.settings-topbar #closeSettings:focus-visible{outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent}
.top-actions{gap:2px;margin-right:clamp(-18px,-3vw,-10px)}.avatar-stack{padding:0}.icon-button.settings-button{width:24px;flex:none}
.online-preferences{display:grid;gap:0;margin-top:30px;padding-bottom:30px}.online-preferences h2{margin:0 0 10px;padding-bottom:12px;border-bottom:1px solid #e9e9e9;font-size:14px;font-weight:500;color:#444}.settings-select-row{display:flex!important;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #eee;color:#666!important;font-size:11px!important}.settings-select-row select{max-width:58%;border:0;background:transparent;color:#555;text-align:right;font:inherit;outline:none}.online-preferences .settings-switch-row{border-bottom:1px solid #eee;padding:12px 0}.online-preferences .settings-switch-row strong{font-size:11px;color:#666}.online-preferences .settings-switch-row small{font-size:9px;color:#aaa}.memory-summary-field{display:grid!important;gap:8px;padding:14px 0;color:#666!important;font-size:11px!important}.memory-summary-field textarea{width:100%;resize:vertical;border:1px solid #e8e8e8;border-radius:12px;padding:11px;background:#fafafa;color:#555;font-family:inherit;font-size:11px;line-height:1.6}.emoji-pack-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;padding:10px 0 22px}.emoji-pack-item{aspect-ratio:1;border-radius:50%;background:#f2f2f2;color:#555;font-size:22px}.message-content{display:flex;flex-direction:column;gap:4px;max-width:min(76%,420px)}.bubble-translation{padding:0 4px;color:#999;font-size:10px;line-height:1.5}.message-time{align-self:flex-end;color:#aaa;font-size:9px;letter-spacing:.4px}
.settings-topbar #closeSettings:has(.settings-title-main){display:flex;align-items:baseline;gap:9px;width:auto;height:auto;padding:0;border-radius:0;background:transparent}.settings-title-main{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:40px;font-style:italic;font-weight:400;letter-spacing:-1px;color:#383838}.settings-title-sub{font-family:inherit;font-size:15px;font-weight:400;font-style:normal;letter-spacing:.4px;color:#999}
.memory-page{padding-bottom:34px}.memory-control-card{margin:18px 0 14px;padding:5px 15px;border:1px solid #ecebea;border-radius:15px;background:linear-gradient(145deg,#fff,#faf9f8)}.memory-main-toggle{padding:12px 0!important;border-bottom:1px solid #f0efee}.memory-main-toggle:last-of-type{border-bottom:0}.memory-main-toggle strong{font-size:10px!important;color:#555!important}.memory-main-toggle small{font-size:8px!important}.memory-round-setting{display:flex;align-items:center;justify-content:space-between;padding:12px 0 13px;color:#666;font-size:9px}.memory-round-setting>div{display:flex;align-items:baseline;gap:5px}.memory-round-setting b{font-size:20px;font-weight:400;color:#444}.memory-round-setting small,.memory-advanced-grid small{font-size:8px;color:#aaa;font-weight:400}.memory-round-setting i{margin-left:7px;color:#aaa;font-size:8px;font-style:normal}.memory-level-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0}.memory-level-card{position:relative;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:5px 9px;padding:11px 12px;border:1px solid #efeeed;border-radius:12px;background:#fff}.memory-level-index{grid-row:1/3;color:#aaa;font-size:6px;letter-spacing:1px}.memory-level-card strong{color:#555;font-size:10px;font-weight:500}.memory-level-card p{grid-column:2;margin:0;color:#aaa;font-size:8px;line-height:1.5}.memory-level-value{grid-column:3;grid-row:1/3;padding:5px 7px;border-radius:20px;background:#f6f5f4;color:#999;font-size:7px;white-space:nowrap}.memory-level-card.is-core{background:#faf9f8}.memory-advanced{margin:12px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.memory-advanced summary{display:flex;align-items:center;justify-content:space-between;padding:12px 2px;list-style:none;cursor:pointer}.memory-advanced summary::-webkit-details-marker{display:none}.memory-advanced summary>span{display:grid;gap:4px}.memory-advanced summary strong{color:#666;font-size:9px;font-weight:500}.memory-advanced summary small{color:#aaa;font-size:8px}.memory-advanced summary i{color:#999;font-size:15px;font-style:normal;transition:transform .2s}.memory-advanced[open] summary i{transform:rotate(180deg)}.memory-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:2px 0 12px}.memory-advanced-grid>label{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:9px 8px;border-radius:9px;background:#f8f7f6;color:#999;font-size:8px}.memory-advanced-grid>label strong{color:#666;font-size:8px;font-weight:400;text-align:right}.memory-semantic-row{display:flex;align-items:center;gap:9px;padding:10px 0 12px;border-top:1px solid #eee}.memory-semantic-row input{width:13px;height:13px;margin:0;accent-color:#555}.memory-semantic-row span{display:grid;gap:4px}.memory-semantic-row strong{color:#666;font-size:9px;font-weight:400}.memory-semantic-row small{color:#aaa;font-size:8px}.memory-status-strip{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:14px 0;padding:11px 10px;border-radius:10px;background:#f7f6f5;color:#999;font-size:7px;white-space:nowrap}.memory-status-strip b{color:#555;font-size:12px;font-weight:400}.memory-status-strip i{width:2px;height:2px;border-radius:50%;background:#c8c6c4}.memory-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.memory-actions button{height:37px;border:1px solid #eae9e8;border-radius:11px;background:#fff;color:#777;font-size:9px}.memory-actions .memory-save-button{border-color:#444;background:#444;color:#fff}.memory-offline-note{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding:12px 2px;border-top:1px solid #eee}.memory-offline-note>span{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#f4f3f2;color:#999}.memory-offline-note svg{width:13px;height:13px}.memory-offline-note p{display:grid;gap:4px;margin:0}.memory-offline-note strong{color:#777;font-size:9px;font-weight:500}.memory-offline-note small{color:#aaa;font-size:8px;line-height:1.6}
.memory-control-card,.memory-level-card,.memory-advanced-grid>label,.memory-status-strip,.memory-offline-note>span{background:#fff}.memory-control-card{border-color:#e8e8e8;border-radius:13px;box-shadow:none}.memory-level-card{border-color:#ebebeb;border-radius:11px}.memory-level-card.is-core{background:#fafafa}.memory-main-toggle{border-color:#eee}.memory-round-setting{display:grid;grid-template-columns:1fr auto;gap:10px}.memory-number-wrap{display:grid;grid-template-columns:42px 16px;align-items:center;justify-items:center;gap:0 3px}.memory-number-wrap>input,.memory-inline-setting input,.memory-advanced-grid input{width:44px;height:27px;border:1px solid #e8e8e8;border-radius:7px;background:#fff;color:#444;text-align:center;font:11px/1 inherit;outline:none}.memory-number-wrap>input:focus,.memory-inline-setting input:focus,.memory-advanced-grid input:focus{border-color:#888}.memory-number-wrap small{grid-column:2;grid-row:1}.memory-number-wrap i{grid-column:1/3;margin-top:4px;font-style:normal;font-size:7px;color:#aaa;white-space:nowrap}.memory-inline-setting{grid-column:3;grid-row:1/3;display:flex;align-items:center;gap:3px;color:#999;font-size:7px;white-space:nowrap}.memory-inline-setting input{width:34px;height:24px;font-size:9px}.memory-level-card{grid-template-columns:73px 1fr auto}.memory-level-card p{grid-column:2/4}.memory-level-value{grid-column:3;grid-row:1}.memory-advanced-grid>label{align-items:center;background:#fafafa;border:1px solid #f0f0f0;color:#777}.memory-advanced-grid>label>span{display:flex;align-items:center;gap:3px;white-space:nowrap}.memory-advanced-grid input{width:39px;height:23px;border-radius:6px;font-size:8px}.memory-status-strip{border:1px solid #eee;border-radius:9px}.memory-actions button{border-color:#e5e5e5;border-radius:9px}.memory-actions .memory-save-button{background:#333;border-color:#333}.more-page{padding-bottom:34px}.more-preference-card{margin:14px 0;padding:13px 14px;border:1px solid #e9e9e9;border-radius:13px;background:#fff}.more-card-heading{display:flex;align-items:center;gap:10px;margin-bottom:11px}.more-card-heading>span:nth-child(2){display:grid;gap:4px;flex:1}.more-card-heading strong{color:#555;font-size:10px;font-weight:500}.more-card-heading small{color:#aaa;font-size:8px}.more-card-mark{display:grid;width:29px;height:29px;place-items:center;border:1px solid #eee;border-radius:50%;color:#777}.more-card-mark svg{width:13px;height:13px}.subtle-action{padding:5px 0;color:#777;font-size:8px}.emoji-group-empty{display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:9px;padding:12px 0 2px;border-top:1px solid #f0f0f0}.emoji-group-empty>span{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#f7f7f7;color:#999;font-size:15px}.emoji-group-empty p{display:grid;gap:4px;margin:0}.emoji-group-empty strong{color:#777;font-size:9px;font-weight:400}.emoji-group-empty small{color:#aaa;font-size:7px;line-height:1.5}.emoji-group-empty button{padding:7px 8px;border:1px solid #e7e7e7;border-radius:8px;background:#fff;color:#777;font-size:7px;white-space:nowrap}.emoji-group-options{display:flex;flex-wrap:wrap;gap:7px;padding-top:10px;border-top:1px solid #eee}.emoji-group-chip{position:relative;display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #e8e8e8;border-radius:20px;color:#777;font-size:8px}.emoji-group-chip input{width:12px;height:12px;margin:0;accent-color:#333}.emoji-group-chip small{color:#aaa;font-size:7px}.more-main-toggle{padding:0 0 11px!important}.more-main-toggle strong,.more-auto-expand strong{color:#555!important;font-size:10px!important}.more-main-toggle small,.more-auto-expand small{font-size:8px!important}.translation-fields[hidden]{display:none}.translation-language-grid{display:grid;grid-template-columns:1fr 20px 1fr;align-items:end;gap:7px;padding:13px 0;border-top:1px solid #eee}.translation-language-grid>label{display:grid;gap:7px;color:#999;font-size:8px}.translation-language-grid select,.timezone-select-row select{width:100%;min-width:0;border:1px solid #e9e9e9;border-radius:8px;padding:8px 7px;background:#fff;color:#555;font-size:8px;outline:none}.translation-language-grid>i{padding-bottom:8px;color:#aaa;font-size:11px;font-style:normal;text-align:center}.more-auto-expand{padding:10px 0 0!important;border-top:1px solid #eee}.timezone-preference{padding-bottom:5px}.timezone-preference .more-card-heading{margin-bottom:5px}.timezone-select-row{display:grid;grid-template-columns:85px 1fr;align-items:center;gap:8px;padding:10px 0;border-top:1px solid #f0f0f0;color:#777;font-size:9px}.timezone-select-row>span{display:flex;align-items:center;gap:7px}.timezone-select-row select{padding:9px}.timezone-dot{width:6px;height:6px;border-radius:50%;background:#555}.role-dot{background:#aaa}
.memory-number-wrap>input,.memory-inline-setting input,.memory-advanced-grid input{font-family:inherit;font-size:11px;line-height:1}
.ideal-emoji-group-tabs{display:flex;align-items:center;gap:7px;overflow:auto;padding:10px 0;border-top:1px solid #f0f0f0}.ideal-emoji-group-tabs button{flex:none;padding:6px 10px;border:1px solid transparent;border-radius:20px;background:transparent;color:#999;font-size:8px}.ideal-emoji-group-tabs button.active{border-color:#e6e6e6;background:#f8f8f8;color:#444}.ideal-emoji-group-tabs .ideal-emoji-add-group{border-color:#eee;color:#777}.ideal-emoji-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:2px 0 10px}.ideal-emoji-tile{display:grid;aspect-ratio:1;align-content:center;justify-items:center;gap:5px;border:1px solid #eee;border-radius:10px;background:#fafafa;color:#888}.ideal-emoji-tile>span{font-size:20px}.ideal-emoji-tile small{max-width:90%;overflow:hidden;color:#aaa;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.ideal-emoji-empty{grid-column:1/-1;padding:15px 8px;border-radius:9px;background:#fafafa;color:#aaa;font-size:8px;text-align:center}.ideal-emoji-empty.is-large{display:grid;justify-items:center;gap:7px;padding:18px 12px;border-top:1px solid #f1f1f1}.ideal-emoji-empty.is-large>span{display:grid;width:35px;height:35px;place-items:center;border-radius:50%;background:#fff;color:#999;font-size:17px}.ideal-emoji-empty strong{color:#777;font-size:9px;font-weight:400}.ideal-emoji-empty small{color:#aaa;font-size:7px}.ideal-emoji-actions{display:flex;justify-content:flex-end;gap:7px;padding-top:8px;border-top:1px solid #f0f0f0}.ideal-emoji-actions button{padding:6px 10px;border:1px solid #e9e9e9;border-radius:8px;background:#fff;color:#777;font-size:8px}
.ideal-emoji-tile img{width:100%;height:calc(100% - 14px);padding:8px;object-fit:contain;filter:none}
.online-setting-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:1px 0 26px;border-bottom:1px solid #ededed}.online-setting-tab{position:relative;padding:11px 2px 13px;background:none;color:#aaa;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:14px;font-style:italic;letter-spacing:.1px;white-space:nowrap}.online-setting-tab:after{position:absolute;right:25%;bottom:-1px;left:25%;height:1px;background:#333;content:"";opacity:0;transition:all .2s}.online-setting-tab.active{color:#333}.online-setting-tab.active:after{right:18%;left:18%;opacity:1}.online-settings-panel{min-height:330px;animation:appear .2s ease}.online-setting-section{padding-bottom:25px}.online-section-kicker{margin:0 0 8px;color:#bbb;font-size:7px;letter-spacing:2px}.online-setting-section h2{margin:0;color:#444;font-size:18px;font-weight:400;letter-spacing:.4px}.online-section-copy{max-width:340px;margin:9px 0 20px;color:#999;font-size:10px;line-height:1.8}.setting-user-card,.lore-character-card{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #eee;border-radius:15px;background:linear-gradient(135deg,#fafafa,#fff)}.setting-user-card .avatar,.lore-character-card .avatar{width:40px;height:40px;flex:none;border:1px solid #eee;background:#f1f1f1;color:#888}.setting-user-card>div,.lore-character-card>div{display:grid;gap:4px;min-width:0;flex:1}.setting-user-card strong,.lore-character-card strong{overflow:hidden;color:#555;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.setting-user-card small,.lore-character-card small{color:#aaa;font-size:9px}.setting-empty-user{display:flex;align-items:center;gap:10px;padding:15px 14px;border:1px dashed #e3e3e3;border-radius:14px;color:#aaa;font-size:10px}.setting-empty-user svg{width:18px;height:18px}.setting-field{display:grid!important;gap:9px;margin-top:18px;color:#666!important;font-size:10px!important}.setting-field select,.setting-field textarea{width:100%;border:1px solid #ededed;border-radius:12px;background:#fff;color:#666;font:inherit;font-size:11px;padding:11px 12px;outline:none}.setting-field textarea{resize:vertical;line-height:1.65}.setting-field textarea::placeholder{color:#c0c0c0}.lore-character-card{margin:14px 0}.lore-count{padding:5px 8px;border-radius:20px;background:#f2f2f2;color:#999;font-size:8px;white-space:nowrap}.lore-master-switch{padding:13px 2px!important;border-bottom:1px solid #eee}.worldbook-empty{display:grid;justify-items:center;gap:9px;margin-top:17px;padding:23px 18px;border-radius:16px;background:#f8f8f7;text-align:center}.worldbook-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#fff;color:#aaa}.worldbook-mark svg{width:17px;height:17px}.worldbook-empty strong{color:#777;font-size:10px;font-weight:500}.worldbook-empty p{max-width:245px;margin:0;color:#aaa;font-size:9px;line-height:1.7}.memory-source-card{margin:12px 0;padding:14px;border:1px solid #ededed;border-radius:15px;background:#fff;box-shadow:0 5px 18px #00000004}.memory-source-top{display:flex;align-items:center;gap:8px;margin-bottom:13px}.memory-source-icon{display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:#f4f4f4;color:#888}.memory-source-icon svg{width:13px;height:13px}.memory-source-tag{color:#999;font-size:8px;letter-spacing:.5px}.memory-source-action{margin-left:auto;color:#aaa;font-size:9px}.memory-source-card>strong{color:#555;font-size:11px;font-weight:500}.memory-source-card>p{margin:6px 0 9px;color:#aaa;font-size:9px;line-height:1.6}.memory-source-card .settings-switch-row{padding:10px 0 0!important;border-top:1px solid #f1f1f1}.memory-source-card .settings-switch-row strong{font-size:10px}.memory-source-card .settings-switch-row small{font-size:8px}.more-setting-list{padding:0 13px;border:1px solid #ededed;border-radius:15px;background:#fff}.more-setting-list .settings-select-row,.more-setting-list .settings-switch-row{padding:14px 0;border-bottom:1px solid #f0f0f0}.more-setting-list>*:last-child{border-bottom:0}.more-setting-list .settings-switch-row{cursor:default}.more-setting-footnote{margin:11px 2px;color:#aaa;font-size:9px;line-height:1.6}
.timezone-person-row{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:9px;padding:10px 0;border-top:1px solid #f0f0f0;color:#777;font-size:9px}.timezone-person-row>span{display:flex;align-items:center;gap:7px}.timezone-selects{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6px;min-width:0}.timezone-selects select{width:100%;min-width:0;border:1px solid #e9e9e9;border-radius:8px;padding:9px 7px;background:#fff;color:#555;font-size:8px;outline:none}.timezone-selects select:focus{border-color:#999}.timezone-difference{padding:11px 0 7px;border-top:1px solid #f0f0f0;color:#777;text-align:center;font-size:9px;letter-spacing:.3px}
.chat-settings-context{display:flex;align-items:center;gap:10px;margin:0 0 9px;padding:10px 11px;border:1px solid #ededed;border-radius:12px;background:#fff}.chat-settings-context>.avatar{width:32px;height:32px;border:1px solid #eee;font-size:15px}.chat-settings-context>span:not(.avatar){display:grid;gap:3px}.chat-settings-context small{color:#aaa;font-size:8px;letter-spacing:.4px}.chat-settings-context strong{color:#555;font-size:10px;font-weight:500}.chat-settings-context .role-context-empty{color:#999;font-size:9px}.timezone-master-toggle{padding:4px 0 11px!important}.timezone-fields[hidden]{display:none!important}
.online-settings-panel .online-section-kicker,.online-settings-panel .online-setting-section>h2{display:none}.online-settings-panel .online-section-copy{margin:0 0 15px;max-width:360px}
.settings-content.is-online-settings{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:0}.is-online-settings .chat-settings-context,.is-online-settings .online-setting-tabs{flex:none}.is-online-settings .online-settings-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:36px}
.timezone-card-heading{margin-bottom:7px}.timezone-inline-toggle{position:relative;display:block;flex:none;width:31px;height:18px;margin-left:auto;cursor:pointer}.timezone-inline-toggle input{position:absolute;width:1px;height:1px;opacity:0}.timezone-inline-toggle i{position:absolute;inset:0;border-radius:12px;background:#ddd;transition:background .18s}.timezone-inline-toggle i:after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;content:"";transition:transform .18s}.timezone-inline-toggle input:checked+i{background:#555}.timezone-inline-toggle input:checked+i:after{transform:translateX(13px)}.timezone-inline-toggle input:focus-visible+i{outline:2px solid #999;outline-offset:3px}
.timezone-reset-row{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid #f0f0f0}.timezone-reset-row button{display:inline-flex;align-items:center;gap:5px;padding:4px 1px;color:#999;font-size:8px;letter-spacing:.2px}.timezone-reset-row button span{font-size:12px}.timezone-reset-row button:hover{color:#444}
.settings-content.is-system-settings{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:0}.system-setting-tabs{display:grid;grid-template-columns:repeat(3,1fr);flex:none;gap:0;margin:1px 0 24px;border-bottom:1px solid #ededed}.system-setting-tab{position:relative;padding:11px 2px 13px;background:transparent;color:#aaa;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:14px;font-style:italic;letter-spacing:.1px;white-space:nowrap}.system-setting-tab:after{position:absolute;right:25%;bottom:-1px;left:25%;height:1px;background:#333;content:"";opacity:0;transition:all .2s}.system-setting-tab.active{color:#333}.system-setting-tab.active:after{right:18%;left:18%;opacity:1}.is-system-settings>.api-config-panel,.is-system-settings>.settings-page-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:36px}.is-system-settings .api-config-heading h2{font-size:16px;font-weight:400;letter-spacing:.2px}.is-system-settings .settings-page-form{gap:15px}.is-system-settings .settings-page-form label{font-size:10px;letter-spacing:.2px;color:#777}
.system-setting-tabs{padding-top:1px}.system-setting-tab:focus-visible{outline:1px solid #ddd;outline-offset:2px}.is-system-settings>.api-config-panel,.is-system-settings>.settings-page-body{scrollbar-width:thin;scrollbar-color:#ddd transparent}
.timezone-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid #f0f0f0}.timezone-footer .timezone-difference{flex:1;padding:0;border:0;text-align:left}.timezone-reset-row{display:none}.timezone-reset{display:inline-flex;flex:none;align-items:center;gap:5px;padding:4px 1px;background:transparent;color:#999;font-size:8px;letter-spacing:.2px;white-space:nowrap}.timezone-reset span{font-size:12px}.timezone-reset:hover{color:#444}
.settings-screen.compact-settings-top .settings-topbar{padding-bottom:12px}.settings-content.is-online-settings,.settings-content.is-system-settings,.settings-content.is-offline-settings{padding-top:8px}.offline-settings-title-sub{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:16px;font-style:italic;letter-spacing:0;color:#aaa}
.is-system-settings>.api-config-panel{align-content:start}.is-system-settings .system-setting-tabs{margin-bottom:14px}.is-system-settings .api-form-actions button{height:34px;min-height:34px;padding:6px 12px;border-radius:9px;font-size:9px}.is-system-settings .api-form-actions .settings-primary{min-height:34px;padding:6px 12px}
.memory-page{display:block;padding-bottom:30px}.memory-library-intro{display:flex;align-items:center;gap:10px;padding:4px 0 14px}.memory-library-mark{display:grid;width:31px;height:31px;flex:none;place-items:center;border:1px solid #ededed;border-radius:50%;color:#777}.memory-library-mark svg{width:15px;height:15px;stroke-width:1.3}.memory-library-intro>div{display:grid;gap:4px}.memory-library-intro strong{color:#555;font-size:11px;font-weight:500}.memory-library-intro small{color:#aaa;font-size:8px;line-height:1.5}.memory-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.memory-scope-tabs{display:flex;align-items:center;gap:4px}.memory-scope-tabs button{padding:6px 9px;border-radius:20px;color:#999;font-size:8px}.memory-scope-tabs button.active{background:#333;color:#fff}.memory-add-button{padding:7px 11px;border:1px solid #e5e5e5;border-radius:20px;background:#fff;color:#555;font-size:8px;white-space:nowrap}.memory-add-button:disabled{opacity:.4;cursor:default}.memory-entry-list{display:grid;gap:9px;padding:12px 0 15px}.memory-entry-card{padding:13px 13px 10px;border:1px solid #ececec;border-radius:12px;background:#fff}.memory-entry-meta{display:flex;align-items:center;gap:7px;color:#aaa;font-size:8px}.memory-entry-meta time{margin-left:auto;font-variant-numeric:tabular-nums}.memory-source-pill{padding:4px 7px;border-radius:20px;background:#f1f1f1;color:#666}.memory-source-pill.offline{background:#e7e7e7;color:#444}.memory-entry-card h3{margin:10px 0 5px;color:#555;font-size:11px;font-weight:500}.memory-entry-card p{margin:0;color:#888;font-size:9px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.memory-entry-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:7px;border-top:1px solid #f2f2f2}.memory-entry-actions button{padding:3px 0;color:#aaa;font-size:8px}.memory-entry-actions button:hover{color:#444}.memory-library-empty{display:grid;justify-items:center;gap:8px;padding:30px 20px 25px;text-align:center}.memory-library-empty>span{display:grid;width:37px;height:37px;place-items:center;border:1px solid #eee;border-radius:50%;color:#aaa;font-size:17px}.memory-library-empty strong{color:#777;font-size:10px;font-weight:400}.memory-library-empty p{max-width:250px;margin:0;color:#aaa;font-size:8px;line-height:1.7}.memory-empty-counts{display:flex;align-items:center;gap:8px;margin-top:4px;color:#999;font-size:8px}.memory-empty-counts i{width:3px;height:3px;border-radius:50%;background:#bbb}.memory-entry-editor{margin:11px 0;padding:13px;border:1px solid #e8e8e8;border-radius:12px;background:#fafafa}.memory-entry-editor[hidden]{display:none!important}.memory-editor-selects{display:grid;grid-template-columns:1fr 1fr;gap:10px}.memory-editor-selects label,.memory-editor-field{display:grid;gap:6px;margin:0 0 10px;color:#999;font-size:8px}.memory-editor-selects select,.memory-editor-field input,.memory-editor-field textarea{width:100%;min-width:0;border:1px solid #e8e8e8;border-radius:8px;padding:8px;background:#fff;color:#555;font-size:9px;outline:none}.memory-editor-field textarea{resize:vertical;line-height:1.6}.memory-editor-actions{display:flex;justify-content:flex-end;gap:8px}.memory-editor-actions button{padding:7px 12px;border:1px solid #e5e5e5;border-radius:8px;background:#fff;color:#777;font-size:8px}.memory-editor-actions button[type=submit]{background:#333;border-color:#333;color:#fff}.memory-settings-fold{margin-top:7px;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.memory-settings-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 1px;list-style:none;cursor:pointer}.memory-settings-fold>summary::-webkit-details-marker{display:none}.memory-settings-fold>summary>span{display:grid;gap:4px}.memory-settings-fold>summary strong{color:#666;font-size:9px;font-weight:500}.memory-settings-fold>summary small{color:#aaa;font-size:7px}.memory-settings-fold>summary>i{color:#999;font-size:13px;font-style:normal;transition:transform .2s}.memory-settings-fold[open]>summary>i{transform:rotate(180deg)}.memory-settings-content{padding:0 0 13px}.memory-settings-content .memory-control-card{margin:0 0 10px}.memory-settings-content .memory-level-grid{margin-bottom:10px}.memory-settings-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid #eee;color:#aaa;font-size:8px}.memory-settings-footer .memory-save-button{height:30px;padding:0 12px;border:0;border-radius:16px;background:#333;color:#fff;font-size:8px}
.memory-settings-fold>summary>i,.memory-advanced summary>i{display:block;width:7px;height:7px;flex:none;border-right:1px solid #888;border-bottom:1px solid #888;font-size:0;transform:rotate(45deg);transition:transform .2s}.memory-settings-fold[open]>summary>i,.memory-advanced[open] summary>i{transform:rotate(225deg)}
.memory-settings-fold>summary>i{width:14px;height:14px;border:0;color:#888;font-family:inherit;font-size:16px;font-style:normal;line-height:14px;text-align:center;transform:none}.memory-settings-fold>summary>i::before{content:"+"}.memory-settings-fold[open]>summary>i{transform:none}.memory-settings-fold[open]>summary>i::before{content:"−"}
.memory-settings-fold>summary>i,.memory-advanced summary>i{display:grid;width:14px;height:14px;flex:none;place-items:center;border:0;color:#888;font-family:inherit;font-size:16px;font-style:normal;line-height:14px;transform:none}.memory-settings-fold>summary>i::before,.memory-advanced summary>i::before{content:"+"}.memory-settings-fold[open]>summary>i,.memory-advanced[open] summary>i{transform:none}.memory-settings-fold[open]>summary>i::before,.memory-advanced[open] summary>i::before{content:"−"}
.memory-settings-fold>summary>.memory-disclosure-mark,.memory-advanced summary>.memory-disclosure-mark{display:flex;width:16px;height:16px;align-items:center;justify-content:center;border:0;color:#888;font-family:inherit;font-size:13px;font-style:normal;line-height:1;transform:none}.memory-settings-fold>summary>.memory-disclosure-mark .memory-mark-open,.memory-advanced summary>.memory-disclosure-mark .memory-mark-open{display:none}.memory-settings-fold[open]>summary>.memory-disclosure-mark .memory-mark-closed,.memory-advanced[open] summary>.memory-disclosure-mark .memory-mark-closed{display:none}.memory-settings-fold[open]>summary>.memory-disclosure-mark .memory-mark-open,.memory-advanced[open] summary>.memory-disclosure-mark .memory-mark-open{display:inline}
.memory-settings-fold>summary>.memory-disclosure-mark::before,.memory-advanced summary>.memory-disclosure-mark::before{display:none!important;content:none!important}
.memory-settings-actions{display:flex;align-items:center;gap:7px}.memory-settings-actions .memory-collapse-button{height:30px;padding:0 12px;border:1px solid #e7e7e7;border-radius:16px;background:#fff;color:#888;font-size:8px}
.memory-scope-tabs button{position:relative;padding:7px 9px 9px;border-radius:0;background:transparent;color:#aaa}.memory-scope-tabs button.active{background:transparent;color:#333}.memory-scope-tabs button:after{position:absolute;right:25%;bottom:2px;left:25%;height:1px;background:#333;content:"";opacity:0;transition:all .18s}.memory-scope-tabs button.active:after{right:12%;left:12%;opacity:1}
.is-online-settings .setting-user-card,.is-online-settings .lore-character-card{padding:12px 2px;border:0;border-top:1px solid #eee;border-bottom:1px solid #eee;border-radius:0;background:transparent;box-shadow:none}.is-online-settings .setting-empty-user{padding:12px 2px;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent}.is-online-settings .setting-field select,.is-online-settings .setting-field textarea{border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background:transparent;padding:10px 2px}.is-online-settings .setting-field select:focus,.is-online-settings .setting-field textarea:focus{border-color:#777}.is-online-settings .worldbook-empty{margin-top:12px;padding:20px 4px;border-top:1px solid #eee;border-bottom:1px solid #eee;border-radius:0;background:transparent}.is-online-settings .worldbook-mark{border-radius:0;background:transparent}.is-online-settings .memory-control-card{margin:0 0 10px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.is-online-settings .memory-level-card{border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent;padding:11px 3px}.is-online-settings .memory-level-card.is-core{background:transparent}.is-online-settings .memory-entry-card{padding:12px 2px 9px;border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background:transparent}.is-online-settings .memory-entry-editor{padding:12px 2px;border:0;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0;background:transparent}.is-online-settings .memory-editor-selects select,.is-online-settings .memory-editor-field input,.is-online-settings .memory-editor-field textarea{border:0;border-bottom:1px solid #e6e6e6;border-radius:0;background:transparent;padding:8px 2px}.is-online-settings .more-preference-card{margin:0;padding:10px 0;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent}.is-online-settings .more-preference-card:first-of-type{border-top:0}.is-online-settings .more-card-mark{border:0;border-radius:0;background:transparent}.is-online-settings .translation-language-grid select,.is-online-settings .timezone-selects select{border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:transparent;padding:8px 2px}.is-online-settings .ideal-emoji-group-tabs button{border:0;border-radius:0;background:transparent;padding:7px 8px;color:#999}.is-online-settings .ideal-emoji-group-tabs button.active{color:#333;box-shadow:inset 0 -1px #333}.is-online-settings .ideal-emoji-empty{border-radius:0;background:transparent}.is-online-settings .ideal-emoji-actions button{border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;padding:6px 3px}.is-online-settings .ideal-emoji-tile{border-radius:0;box-shadow:none}
.is-online-settings .memory-advanced-grid>label{border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent}.is-online-settings .memory-advanced-grid input,.is-online-settings .memory-number-wrap>input,.is-online-settings .memory-inline-setting input{border-radius:0;background:transparent}.is-online-settings .memory-add-button{padding:7px 3px;border:0;border-bottom:1px solid #aaa;border-radius:0;background:transparent}.is-online-settings .memory-editor-actions button{border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;padding:7px 3px}.is-online-settings .memory-editor-actions button[type=submit]{border-color:#444;background:transparent;color:#444}.is-online-settings .memory-settings-actions .memory-collapse-button,.is-online-settings .memory-settings-footer .memory-save-button{height:auto;padding:5px 2px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#777}.is-online-settings .memory-settings-actions .memory-save-button{border-color:#444;color:#444}
.is-online-settings .more-card-heading>span:first-child{display:grid;flex:1;gap:4px}.emoji-management-content[hidden]{display:none!important}
.emoji-role-group{padding:11px 0;border-top:1px solid #f0f0f0}.emoji-role-group:first-child{border-top:0}.emoji-role-group-toggle{padding:3px 2px 9px!important}.emoji-role-preview{display:flex;gap:8px;overflow-x:auto;padding:3px 2px 5px;scrollbar-width:thin}.emoji-role-preview-item{display:grid;flex:0 0 52px;grid-template-rows:42px 13px;justify-items:center;gap:4px;color:#888}.emoji-role-preview-item img{width:42px;height:42px;object-fit:contain;filter:none!important}.emoji-role-preview-item small{width:52px;overflow:hidden;color:#999;font-size:8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.emoji-role-empty,.emoji-role-no-groups{margin:0;padding:8px 2px;color:#aaa;font-size:9px;line-height:1.6}.angel-wings{display:block;z-index:0;overflow:visible;stroke:none;pointer-events:none}
.emoji-role-group-head{display:flex;align-items:center;gap:12px}.emoji-role-expand{display:flex;flex:1;min-width:0;align-items:center;justify-content:space-between;gap:12px;padding:3px 2px;text-align:left}.emoji-role-expand>span{display:grid;min-width:0;gap:4px}.emoji-role-expand strong{overflow:hidden;color:#666;font-size:10px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.emoji-role-expand small{color:#aaa;font-size:8px}.emoji-role-expand-mark{width:20px;color:#888;font-size:15px;font-weight:300;text-align:center}.emoji-role-enable{display:flex;align-items:center;gap:7px;color:#999;font-size:8px;white-space:nowrap}.emoji-role-enable input{position:absolute;opacity:0;pointer-events:none}.emoji-role-enable i{position:relative;width:30px;height:17px;border-radius:12px;background:#ddd;transition:background .18s}.emoji-role-enable i:after{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;content:"";transition:transform .18s}.emoji-role-enable input:checked+i{background:#555}.emoji-role-enable input:checked+i:after{transform:translateX(13px)}.emoji-role-content{height:210px;margin-top:8px;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid #f1f1f1;border-bottom:1px solid #f1f1f1;scrollbar-width:thin}.emoji-role-content[hidden]{display:none!important}.emoji-role-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:12px 8px;padding:10px 4px}.emoji-role-preview-item{display:grid;grid-template-rows:52px 14px;justify-items:center;gap:4px;min-width:0}.emoji-role-preview-item img{width:52px;height:52px;object-fit:contain;filter:none!important}.emoji-role-preview-item small{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Keep the Memory tab connected to its settings without an empty divider. */
.is-memory-settings .online-setting-tabs{margin-bottom:8px;border-bottom:1px solid #ededed}
.is-memory-settings .memory-settings-fold{margin-top:0;border-top:0}

/* Let short category pages end at their content instead of filling the panel. */
.is-online-settings .online-settings-panel{flex:0 1 auto;min-height:0;padding-bottom:0}
.is-online-settings .online-setting-section:not(.memory-page){padding-bottom:0}
.is-online-settings .more-page{padding-bottom:0}
.is-online-settings .online-setting-tabs{margin-bottom:0}
.is-memory-settings .online-setting-tabs{margin-bottom:8px}
.is-online-settings .lore-character-card{margin-top:0}
.is-online-settings .more-page>.more-preference-card:first-of-type{margin-top:0}
.is-world-settings .lore-character-card{border-top:0}
.is-online-settings .more-page>.more-preference-card:first-of-type{border-top:0}
.is-online-settings .lore-character-card .avatar{overflow:hidden;border-radius:50%}
.is-online-settings .lore-character-card .avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;filter:none}
.role-worldbook-add-entry{display:flex;align-items:center;gap:3px;flex:none;padding:5px 0;border-bottom:1px solid #ddd;background:transparent;color:#666;font-size:9px;white-space:nowrap}
.role-worldbook-add-entry span{font-size:14px}
.worldbook-entry-list{min-height:0;margin-top:0;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;scrollbar-width:thin}
.worldbook-entry{position:relative;padding:11px 2px;border-bottom:1px solid #e8e8e8}
.worldbook-entry-list>.worldbook-entry:first-child{padding-top:0}
.worldbook-entry-disclosure{width:100%;min-width:0}
.worldbook-entry-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:20px;padding-right:43px;list-style:none;cursor:pointer}
.worldbook-entry-disclosure>summary::-webkit-details-marker{display:none}
.worldbook-entry-disclosure>summary>span{display:grid;gap:5px;min-width:0}
.worldbook-entry-disclosure strong{color:#555;font-size:10px;font-weight:500}
.worldbook-entry-disclosure small{color:#aaa;font-size:8px;line-height:1.5;overflow-wrap:anywhere}
.worldbook-entry-disclosure>summary>i{display:grid;width:16px;height:16px;flex:none;place-items:center;color:#999;font-size:14px;font-style:normal;line-height:1}
.worldbook-entry-disclosure>summary>i::before{content:"+"}
.worldbook-entry-disclosure[open]>summary>i::before{content:"−"}
.worldbook-entry-disclosure>p{margin:9px 0 0;color:#888;font-size:9px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.worldbook-entry-toggle{position:absolute;top:12px;right:2px;z-index:1;display:block;width:31px;height:18px;cursor:pointer}
.worldbook-entry-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.worldbook-entry-toggle i{position:absolute;inset:0;border-radius:12px;background:#ddd;transition:background .18s;pointer-events:none}
.worldbook-entry-toggle i:after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;content:"";transition:transform .18s}
.worldbook-entry-toggle input:checked+i{background:#555}
.worldbook-entry-toggle input:checked+i:after{transform:translateX(13px)}
.worldbook-entry-toggle input:focus-visible+i{outline:2px solid #999;outline-offset:3px}
.worldbook-empty{padding:18px 2px!important;color:#999;font-size:9px;text-align:left!important}
.worldbook-empty p,.worldbook-empty .worldbook-mark{display:none}
.is-world-settings .online-settings-panel{display:flex;flex:1 1 0;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:0}
.is-world-settings .online-setting-section:not(.memory-page){display:flex;flex:1;flex-direction:column;min-height:0;padding-bottom:0}
.is-world-settings .lore-character-card .lore-master-switch{display:inline-flex!important;align-items:center;justify-content:center;flex:none;width:34px;height:24px;margin:0;padding:0!important;border:0;background:transparent}
.is-world-settings .worldbook-entry-list{flex:1 1 0;max-height:none}
#chatTitle{align-items:baseline}
.chat-character-name{display:inline-block;max-width:min(25vw,170px);margin-left:.25em;overflow:hidden;color:#999;font-size:.4em;font-style:italic;font-weight:400;letter-spacing:0;line-height:1;text-overflow:ellipsis;white-space:nowrap}

/* Quiet, grouped direct-message bubbles. */
.message{gap:8px;margin:12px 0;align-items:flex-end;width:100%;max-width:100%}
.conversation{margin-inline:-12px}
.message.is-grouped{margin-top:-5px}
.message .avatar{width:38px;height:38px;font-size:17px}
.message .avatar.is-group-hidden{visibility:hidden}
.message-content{gap:4px}
.message-type-text .message-content{flex:1;min-width:0;max-width:calc(100% - 92px)}
.message-type-text:not(.mine) .message-content{margin-right:46px}
.message-type-text.mine .message-content{margin-left:46px}
.bubble{padding:10px 14px;border:1px solid #e9e9e9;border-radius:15px;background:#fff;color:#494949;font-size:13px;line-height:1.7;box-shadow:none}
.mine .bubble{border-color:#eeeeee;border-radius:15px;background:#f0f0f0;color:#494949}
.bubble-translation{padding:0 4px;color:#a0a0a0;font-size:10px;line-height:1.55}
.message-bubble-line{position:relative;display:flex;align-items:flex-end;gap:7px;width:100%;min-width:0}
.message.mine .message-bubble-line{justify-content:flex-end}
.message:not(.mine) .message-bubble-line{justify-content:flex-start}
.message-time{position:static;z-index:1;flex:0 0 auto;align-self:flex-end;width:auto;margin:0 0 3px;padding:0;color:#b0b0b0;font-size:8px;letter-spacing:.1px;line-height:1;white-space:nowrap}
.message-type-text .bubble{flex-shrink:0;max-width:100%}
.message-type-text .message-delivery-anchor{flex-shrink:0;width:max-content;max-width:100%}
.mine .bubble-translation{text-align:right}
.call-summary-message{position:relative;align-self:center;width:min(86%,370px);margin:18px 0 14px;color:#555}
.call-summary-kicker{display:flex;align-items:center;gap:9px;margin-bottom:6px;color:#999}
.call-summary-kicker i{height:1px;flex:1;background:#ededed}
.call-summary-kicker span{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:14px;font-style:italic;line-height:1;color:#888}
.call-summary-open{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px;border-top:1px solid #ededed;border-bottom:1px solid #ededed;background:transparent;text-align:left}
.call-summary-copy{display:grid;gap:4px;min-width:0}
.call-summary-copy strong{color:#666;font-size:10px;font-weight:400}
.call-summary-copy small{overflow:hidden;color:#aaa;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.call-summary-link{flex:none;color:#888;font-size:8px}
.call-summary-link i{margin-left:3px;color:#aaa;font-size:14px;font-style:normal;vertical-align:-1px}
.call-summary-detail{padding:3px 0 2px}
.call-summary-delete{display:block;margin:12px 0 0 auto;padding:6px 0;color:#999;font-size:10px}
.call-summary-delete:hover{color:#555}
.toast.is-compact{padding:6px 14px;font-size:11px}
.call-summary-detail>small{display:block;margin-bottom:9px;color:#aaa;font-size:9px;letter-spacing:1px}
.call-summary-detail>p{margin:0;padding:13px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555;font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.call-summary-overview>small,.call-summary-transcript>header small{display:block;color:#aaa;font-size:9px;letter-spacing:1px}
.call-summary-overview>p{margin:8px 0 0;padding:11px 0 13px;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555;font-size:12px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.call-summary-transcript{margin-top:16px}
.call-summary-transcript>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}
.call-summary-transcript>header span{color:#aaa;font-size:8px;font-variant-numeric:tabular-nums}
.call-summary-transcript-list{max-height:38dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.call-summary-transcript-line{padding:9px 1px 10px;border-bottom:1px solid #f0f0f0}
.call-summary-transcript-line>header{display:flex;align-items:baseline;gap:10px}
.call-summary-transcript-line>header strong{color:#777;font-size:9px;font-weight:500}
.call-summary-transcript-line>header time{margin-left:auto;color:#b6b6b6;font-size:8px;font-variant-numeric:tabular-nums}
.call-summary-transcript-line>p{margin:4px 0 0;color:#555;font-size:11px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}
.call-summary-transcript-line.is-user>p{color:#777}
.call-summary-transcript-empty{margin:0;padding:12px 0;color:#aaa;font-size:10px;line-height:1.7}

/* Solid monochrome capsule navigation and separate add action. */
.bottom:has(#dock:not([hidden])){padding-bottom:max(10px,env(safe-area-inset-bottom,0px));flex-shrink:0}
#dock{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:430px;margin:0 auto;transform:none}
#dock{position:relative}
.dock-feature-menu{right:0;bottom:calc(100% + 10px);left:auto;max-width:100%;align-items:stretch}
.dock-feature-menu[hidden]{display:none!important}
.dock-capsule{display:flex;align-items:center;flex:1;min-width:0;height:58px;padding:5px;border:1px solid #e5e5e5;border-radius:999px;background:#fafafa}
.dock-tab{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-width:0;height:46px;padding:0 6px;border-radius:999px;color:#555;background:transparent;transition:background .18s,color .18s}
.dock-tab>span{font-size:10px;font-weight:400;letter-spacing:.5px;white-space:nowrap}
.dock-tab.is-current{background:#e9e9e9;color:#171717}
.dock-tab:hover{filter:none}
.dock-tab svg{width:23px;height:23px;flex:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.dock-add{display:grid;place-items:center;flex:none;width:58px;height:58px;padding:0;border:1px solid #e5e5e5;border-radius:50%;background:#fafafa;color:#171717}
.dock-add svg{width:26px;height:26px;stroke-width:1.6}
.dock-add:hover{background:#ededed;filter:none}
@media(max-width:380px){#dock{gap:10px}.dock-capsule{height:54px}.dock-tab{height:42px}.dock-add{width:54px;height:54px}}
@media(hover:hover){.dock-tab:hover{background:#ededed}.dock-tab.is-current:hover{background:#e9e9e9}}
@media(hover:none),(pointer:coarse){.dock-tab:hover{background:transparent}.dock-tab.is-current:hover{background:#e9e9e9}.dock-tab:active{background:#e3e3e3;transition-duration:0s}}
.dock-feature-menu .quick-item{justify-content:space-between;gap:12px}
.dock-feature-menu .quick-item>span:first-child{background:#fff;padding:5px 8px;border-radius:12px;box-shadow:0 2px 12px #0000000c}
.dock-feature-menu .quick-item>.quick-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;padding:0;border-radius:50%;background:#f0f0f0;box-shadow:none}
.dock-feature-menu .quick-item>.quick-icon svg{width:38px;height:38px;padding:10px;border-radius:50%;background:#f0f0f0;color:#555;stroke-width:1.4}
.system-setting-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.version-page{padding-top:20px}.version-eyebrow{margin:0 0 24px;color:#aaa;font-family:Georgia,serif;font-size:9px;letter-spacing:2px}.version-current,.version-available{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 1px;border-bottom:1px solid #eee;color:#888;font-size:11px}.version-current strong,.version-available strong{color:#555;font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:400;letter-spacing:.4px}.version-status{min-height:38px;margin:17px 0;color:#999;font-size:10px;line-height:1.8}.version-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.version-actions button{min-height:38px;border-radius:10px;font-size:10px}.version-actions .settings-primary{background:#333;color:#fff}.version-actions button[hidden]{display:none!important}
.version-page{align-content:start;padding-top:18px}.version-heading{display:flex;align-items:center;gap:13px;margin:0 0 25px;padding:0 0 19px;border-bottom:1px solid #eee}.version-mark{display:grid;width:40px;height:40px;flex:none;place-items:center;border:1px solid #e7e7e7;border-radius:50%;color:#555;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",Georgia,serif;font-size:26px;font-style:italic}.version-heading>div{display:grid;gap:5px}.version-heading small,.version-current small,.version-available small{color:#aaa;font-family:Georgia,serif;font-size:8px;font-weight:400;letter-spacing:1.5px}.version-heading strong{color:#555;font-size:13px;font-weight:400;letter-spacing:.5px}.version-current,.version-available{align-items:center;padding:15px 1px;border-bottom:1px solid #eee}.version-current>span,.version-available>span{display:grid;gap:6px}.version-current>span>strong,.version-available>span>strong{color:#777;font-size:10px;font-weight:400}.version-current>b,.version-available>b{color:#444;font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:400;letter-spacing:.3px;font-variant-numeric:tabular-nums}.version-status{display:flex;align-items:flex-start;gap:9px;min-height:45px;margin:16px 0 12px;color:#999;font-size:9px;line-height:1.8}.version-status>i{width:6px;height:6px;flex:none;margin-top:5px;border-radius:50%;background:#bbb}.version-status.is-update>i{background:#555}.version-actions{grid-template-columns:1fr}.version-actions.has-update{grid-template-columns:1fr 1fr}.version-actions button{min-height:38px;border-radius:8px;font-size:9px;letter-spacing:.3px}.version-actions #checkVersion{border:1px solid #dedede;background:#fff;color:#666}.version-actions #updateVersion{border:1px solid #333;background:#333;color:#fff}.version-actions button:disabled{opacity:.55}.version-actions button[hidden]{display:none!important}
@media(max-width:380px){.system-setting-tab{font-size:12px;letter-spacing:0}.system-setting-tabs{margin-bottom:12px}.version-heading{margin-bottom:20px}.version-page{padding-top:13px}}
.version-page{align-content:start;gap:0;padding:17px 0 32px}.version-caption{display:flex;align-items:center;gap:8px;margin:0 1px 7px;color:#aaa;font-family:Georgia,"Songti SC",serif;font-size:9px;letter-spacing:1px}.version-caption>span{color:#777;font-style:italic;letter-spacing:1.6px}.version-caption>i{width:18px;height:1px;background:#ddd}.version-caption>small{font-size:9px;letter-spacing:.6px}.version-comparison{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);align-items:center;gap:0;padding:18px 0 17px;border-top:1px solid #ededed;border-bottom:1px solid #ededed}.version-current,.version-available{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:6px;padding:0 12px 0 2px;border:0}.version-available{padding:0 0 0 17px}.version-current>small,.version-available>small{color:#aaa;font-family:Georgia,serif;font-size:7px;letter-spacing:1.1px}.version-current>b,.version-available>b{color:#454545;font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:400;letter-spacing:.2px;line-height:1.15;font-variant-numeric:tabular-nums}.version-current>span,.version-available>span{color:#999;font-size:9px;letter-spacing:.2px}.version-divider{width:1px;height:54px;background:#e8e8e8}.version-status{display:flex;align-items:center;gap:7px;min-height:36px;margin:8px 1px 5px;color:#999;font-size:9px;line-height:1.7}.version-status>i{width:4px;height:4px;flex:none;border-radius:50%;background:#c7c7c7}.version-status.is-update>i{background:#555}.version-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;border-top:1px solid #ededed;border-bottom:1px solid #ededed}.version-actions.has-update{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.version-actions #checkVersion{width:100%;min-height:42px;display:flex;align-items:center;gap:9px;padding:0 2px;border:0;border-radius:0;background:transparent;color:#555;text-align:left}.version-check-icon{display:grid;width:23px;height:23px;flex:none;place-items:center;color:#777}.version-check-icon svg{width:15px;height:15px;stroke-width:1.35}.version-actions #checkVersion>span:nth-child(2){font-size:10px;letter-spacing:.3px}.version-actions #checkVersion>small{margin-left:auto;color:#aaa;font-family:Georgia,serif;font-size:7px;letter-spacing:1.4px}.version-actions #checkVersion:disabled{opacity:.55}.version-actions #updateVersion{min-height:34px;align-self:center;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:0 11px;border:1px solid #333;border-radius:2px;background:#333;color:#fff;font-size:9px;letter-spacing:.3px}.version-actions #updateVersion[hidden]{display:none!important}.version-actions #updateVersion i{font-size:13px;font-style:normal}
.is-system-settings .system-setting-tabs{margin-bottom:2px}.version-page{padding-top:2px}.version-caption{margin-bottom:6px}.version-actions{border:0}.version-actions #checkVersion{min-height:44px;gap:10px;padding:0 13px;border:1px solid #333;border-radius:2px;background:#333;color:#fff;transition:background .16s ease,border-color .16s ease}.version-actions #checkVersion:hover{background:#444;border-color:#444;filter:none}.version-check-icon{width:23px;height:23px;color:#fff}.version-check-icon svg{width:16px;height:16px;stroke-width:1.4}.version-actions #checkVersion>span:nth-child(2){font-size:10px;font-weight:500;letter-spacing:.7px}.version-actions #checkVersion>small{color:#d0d0d0;font-size:7px;letter-spacing:1.2px}.version-actions #checkVersion:disabled{background:#777;border-color:#777;color:#fff}.version-actions.has-update #checkVersion{justify-content:center}.version-actions.has-update #checkVersion>small{margin-left:auto}
.feature-screen{position:absolute;inset:0;z-index:14;display:flex;flex-direction:column;padding:0 48px;background:#fff;animation:appear .2s ease}
.feature-screen[hidden]{display:none!important}
.feature-page-topbar{display:flex;align-items:center;flex:none;padding:54px 0 22px;border-bottom:1px solid #f0f0f0}
.feature-page-brand{display:flex;align-items:baseline;gap:9px;min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.feature-page-brand:hover{filter:none}
.feature-load-error{display:grid;justify-items:start;gap:8px;padding:24px 2px;color:#777;font-size:11px}
.feature-load-error p{margin:0;color:#aaa;font-size:10px}
.feature-load-error button{padding:7px 0;border-bottom:1px solid #ddd;color:#666;font-size:10px}
.feature-page-wordmark{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:37px;font-style:italic;font-weight:400;letter-spacing:-1px;color:#383838;line-height:1}
.feature-page-brand>small{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;color:#aaa;font-size:14px;font-style:italic;font-weight:400;letter-spacing:0}
.feature-page-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 0 30px;scrollbar-width:thin}
.global-worldbook-heading{padding:2px 0 13px;border-bottom:1px solid #eee}
.global-worldbook-heading>p:last-child{margin:6px 0 0;color:#aaa;font-size:9px}
.global-worldbook-add{display:block;margin:10px 0;padding:8px 0;color:#666;font-size:10px}
.global-worldbook-editor{display:grid;gap:12px;margin:4px 0 16px;padding:14px;border:1px solid #eee;border-radius:14px;background:#fafafa}
.global-worldbook-editor[hidden]{display:none!important}
.global-worldbook-editor:focus-within{max-height:min(42vh,calc(var(--app-viewport-height,100dvh) - 150px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.global-worldbook-editor label{display:block;color:#777;font-size:9px}
.global-worldbook-editor input,.global-worldbook-editor textarea{display:block;width:100%;margin-top:6px;padding:9px 2px;border:0;border-bottom:1px solid #e6e6e6;border-radius:0;background:transparent;color:#444;font-size:11px;resize:vertical}
.global-worldbook-editor>div{display:flex;justify-content:flex-end;gap:16px;padding-top:3px}
.global-worldbook-editor>div,.role-worldbook-entry-form>div{position:sticky;bottom:0;z-index:1;background:#fff;padding-bottom:3px}
.global-worldbook-editor>div button{color:#777;font-size:9px}
.global-worldbook-editor>div button[type=submit]{color:#333}
.global-worldbook-entry{padding:12px 2px;border-bottom:1px solid #eee}
.global-worldbook-entry-top{display:flex;align-items:flex-start;gap:12px}
.global-worldbook-entry details{flex:1;min-width:0}
.global-worldbook-entry summary{display:grid;gap:5px;list-style:none;cursor:pointer}
.global-worldbook-entry summary::-webkit-details-marker{display:none}
.global-worldbook-entry summary strong{color:#555;font-size:10px;font-weight:500}
.global-worldbook-entry summary small{color:#aaa;font-size:8px;overflow-wrap:anywhere}
.global-worldbook-entry details>p{margin:9px 0 0;color:#888;font-size:9px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.global-worldbook-toggle{position:relative;flex:none;width:31px;height:18px;border-radius:12px;background:#ddd}
.global-worldbook-toggle i{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s}
.global-worldbook-toggle.is-on{background:#555}
.global-worldbook-toggle.is-on i{transform:translateX(13px)}
.global-worldbook-actions{display:flex;gap:14px;margin-top:7px}
.global-worldbook-actions button{color:#999;font-size:8px}
.global-worldbook-empty{padding:22px 2px;border-bottom:1px solid #eee;color:#aaa;font-size:9px}
.feature-page-kicker{margin:0;color:#bbb;font-size:7px;letter-spacing:2px}
.beautify-page h2,.forum-page h2{margin:8px 0;color:#555;font-size:17px;font-weight:400}
.beautify-page>p:not(.feature-page-kicker),.forum-page>p:not(.feature-page-kicker){margin:0;color:#aaa;font-size:9px;line-height:1.7}
.beautify-options{display:grid;gap:0;margin-top:18px}
.beautify-option{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid #eee;color:#777;text-align:left;font-size:10px}
.beautify-option>i{width:25px;height:25px;border:1px solid #e8e8e8;border-radius:50%}
.beautify-option.selected{color:#333}
.beautify-option.selected>i{outline:1px solid #777;outline-offset:3px}
.forum-page{display:grid;justify-items:center;align-content:center;gap:8px;height:100%;text-align:center}
.forum-page h2{margin:0}
.forum-page .feature-page-kicker{margin:0}
.forum-status{margin-top:6px;padding:6px 10px;border:1px solid #eee;border-radius:20px;color:#aaa;font-size:8px;letter-spacing:.5px}
@media(max-width:480px){.feature-screen{padding:0 25px}.feature-page-topbar{padding-top:max(30px,env(safe-area-inset-top));padding-bottom:17px}.feature-page-wordmark{font-size:34px}}
.message .avatar img{filter:none}
.character-row .avatar img{filter:none}
.profile-user-list{max-height:min(52dvh,420px);gap:0;margin:0;border:0}
.profile-user-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #f0f0f0}
.profile-user-select{display:flex;align-items:center;gap:11px;flex:1;min-width:0;padding:3px 0;text-align:left}
.profile-user-avatar{display:grid;width:42px;height:42px;flex:none;place-items:center;overflow:hidden;border:1px solid #eee;border-radius:50%;background:#ededed;color:#666;font-size:16px}
.profile-user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:none}
.profile-user-info{display:grid;gap:4px;min-width:0}
.profile-user-info strong{overflow:hidden;color:#555;font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.profile-user-info small{overflow:hidden;color:#aaa;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.profile-user-current{flex:none;color:#888;font-size:8px}
.profile-user-edit{flex:none;padding:5px 2px;color:#888;font-size:8px}
.profile-preview #profileBoundRoleCount{display:block;margin-top:7px;color:#999;font-size:8px;letter-spacing:.3px}
.setting-field:has(select[data-role-user]){position:relative}
.setting-field select[data-role-user]{appearance:none;-webkit-appearance:none;padding-right:30px}
.setting-field:has(select[data-role-user])::after{position:absolute;right:8px;bottom:12px;content:"＋";color:#888;font-size:14px;line-height:1;pointer-events:none}
.setting-user-card .avatar{overflow:hidden;border-radius:50%}
.setting-user-card .avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;filter:none}

/* Header portrait arrangement. */
.avatar-stack .avatar{overflow:hidden}
.avatar-stack .avatar img,.header-avatar-preview .avatar img,.header-avatar-config .avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;filter:none}
.header-avatar-preview{display:flex;justify-content:center;gap:0;padding:6px 0 25px;border-bottom:1px solid #eee}
.header-avatar-preview .avatar{width:54px;height:54px}
.header-avatar-preview .avatar+.avatar{margin-left:-12px}
.header-avatar-config-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid #eee}
.header-avatar-number{color:#bbb;font-family:Georgia,serif;font-size:12px;font-style:italic}
.header-avatar-config-row .avatar{width:44px;height:44px;overflow:hidden}
.header-avatar-controls{flex:1;min-width:0}
.header-avatar-controls select{width:100%;padding:5px 0;border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background:white;color:#555;font-size:11px}
.header-avatar-controls>div{display:flex;gap:18px;margin-top:8px}
.header-avatar-controls button{padding:4px 0;color:#888;font-size:10px}
.header-avatar-controls button:disabled{opacity:.3;cursor:default}
.header-avatar-actions{display:flex;justify-content:space-between;gap:16px;margin-top:22px}
.header-avatar-actions button{padding:8px 0;border-bottom:1px solid #ddd;color:#888;font-size:11px}
.header-avatar-actions button:last-child{border-color:#555;color:#444}

.character-header-arrange{display:block;margin:16px auto 0;padding:5px 0;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:none;color:#aaa;font-size:9px}

/* Letter stationery shared by previews, writing, and full reading. */
.experience-section{margin-top:28px;color:#666;font-size:10px}
.experience-section button{border-radius:0;background:none;box-shadow:none}
.experience-section [hidden]{display:none!important}
.experience-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.experience-heading>span{display:flex;align-items:baseline;gap:9px;color:#555;font-family:"Songti SC",serif;font-size:14px;letter-spacing:1px}
.experience-heading small{color:#bbb;font-family:Georgia,serif;font-size:10px;letter-spacing:0}
.experience-add{display:flex;align-items:center;gap:8px;padding:8px 0;color:#666;font-size:10px}
.experience-add>span{font-size:16px;font-weight:300}
.experience-add:disabled{opacity:.4;cursor:default}
.experience-sort{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid #eee;color:#aaa;font-size:9px}
.experience-sort>span{color:#bbb;font-size:8px}
.experience-sort button{padding:4px 0;border-bottom:1px solid transparent;color:#aaa;font-size:9px}
.experience-sort button[aria-pressed=true]{border-bottom-color:#888;color:#555}
.experience-sort small{margin-left:auto;color:#bbb;font-size:8px}
.experience-notes{display:grid;gap:16px;padding-bottom:24px}
.experience-note{height:180px;padding:17px 20px 13px;border:1px solid #e9e9e9;border-radius:0;background:#fff}
.experience-note header{display:flex;justify-content:space-between;align-items:center;height:15px;gap:10px}
.experience-note-index{color:#aaa;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",Georgia,serif;font-size:14px;font-style:italic}
.experience-note-index::before{content:"No. ";font-size:11px}
.experience-note-level{display:flex;align-items:center;gap:7px;color:#999;font-size:8px}
.experience-note-level>span:last-child{display:none}
.experience-level-ticks{display:flex;align-items:center;gap:3px}
.experience-level-ticks i{width:1px;height:7px;background:#ddd}
.experience-level-ticks i.is-filled{background:#888}
.experience-preview{display:block;width:100%;height:78px;margin:12px 0 14px;padding:0;text-align:left;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px)!important;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;line-height:26px}
.experience-preview>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
.experience-note footer,.experience-reader footer{display:flex;align-items:center;justify-content:flex-end;gap:13px}
.experience-note-date{margin-right:auto;color:#aaa;font-family:Georgia,"Songti SC",serif;font-size:9px;font-style:italic;letter-spacing:.5px}
.experience-note footer button,.experience-reader footer button{padding:5px 0;color:#999;font-size:8px}
.experience-note footer button:first-of-type{color:#666}
.experience-section button:hover{color:#333}
.experience-editor,.experience-reader{margin-top:18px;padding:22px 20px 18px;border:1px solid #e9e9e9;border-radius:0;background:#fff}
.experience-content-label{display:block;color:#777;font-size:11px}
.experience-content-label>span{font-family:"Songti SC",serif;letter-spacing:1px}
.experience-content-label textarea{display:block;width:100%;height:234px;margin:20px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:26px;resize:vertical;scrollbar-width:thin}
.experience-content-label textarea::placeholder{color:#bbb;font-size:11px}
.experience-importance{min-width:0;margin:25px 0 0;padding:0;border:0}
.experience-importance legend{margin-bottom:12px;padding:0;color:#999;font-size:9px}
.experience-importance>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.experience-importance label{position:relative;cursor:pointer}
.experience-importance input{position:absolute;width:1px;height:1px;opacity:0}
.experience-importance label>span{display:flex;flex-direction:column;align-items:center;gap:7px;padding:5px 0 10px;border-bottom:1px solid #e8e8e8;color:#aaa;font-size:8px;white-space:nowrap}
.experience-importance i{color:#bbb;font-family:Georgia,serif;font-size:14px;font-style:italic}
.experience-importance input:checked+span{border-color:#777;color:#555}
.experience-importance input:checked+span i{color:#555}
.experience-importance input:focus-visible+span{outline:1px solid #999;outline-offset:3px}
.experience-editor-actions{display:flex;justify-content:flex-end;gap:22px;margin-top:23px}
.experience-editor-actions button{padding:6px 0;color:#999;font-size:9px}
.experience-editor-actions button[type=submit]{border-bottom:1px solid #999;color:#555}
.experience-reader header{display:flex;align-items:center;justify-content:space-between;color:#999;font-size:9px}
.experience-reader header button{padding:4px 0;color:#999;font-size:9px}
.experience-reader p{margin:20px 0;max-height:55dvh;padding:0;overflow-y:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,#f0f0f0 27px,#f0f0f0 28px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:28px;scrollbar-width:thin}
.experience-empty{padding:24px 20px;border:1px solid #eee;color:#aaa;font-family:"Songti SC",serif;font-size:11px;line-height:2}
@media(max-width:380px){.experience-note{padding-right:14px;padding-left:14px}.experience-editor,.experience-reader{padding-right:14px;padding-left:14px}.experience-sort{gap:12px}.experience-importance>div{gap:5px}}

/* A detached, centered editor for the four header portraits. */
.sheet.is-centered-panel{top:50%;bottom:auto;left:50%;right:auto;width:calc(100% - 48px);max-width:420px;max-height:calc(100% - 48px);transform:translate(-50%,-50%);padding:26px 26px 24px;border:1px solid #e6e6e6;border-radius:22px;background:#fff;box-shadow:0 12px 48px #00000014;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;animation:centered-panel-in .16s ease}
.sheet.is-centered-panel .handle{display:none}
.sheet.is-centered-panel .sheet-head{margin-bottom:20px;align-items:flex-start}
.sheet.is-centered-panel h2{font-family:"Great Vibes",cursive;font-size:30px;font-style:normal;font-weight:400;letter-spacing:0}
.sheet.is-centered-panel .sheet-sub{font-size:10px;line-height:1.8}
@keyframes centered-panel-in{from{opacity:0}to{opacity:1}}
@media(max-width:380px){.sheet.is-centered-panel{width:calc(100% - 36px);max-height:calc(100% - 36px);padding:22px 18px}}

.global-worldbook-toolbar{display:flex;align-items:center;gap:24px;margin:12px 0 0}
.global-worldbook-toolbar button{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#666;font-size:10px;letter-spacing:.3px}
.global-worldbook-toolbar button span{font-size:15px;font-weight:300}
.global-worldbook-toolbar .global-worldbook-import{color:#444}
.global-worldbook-import-status{min-height:15px;margin:4px 0 8px;color:#999;font-size:9px;line-height:1.6}
.global-worldbook-editor{border-radius:0;background:#fafafa}

#featureScreen:has(.global-worldbook) .feature-page-topbar{padding-bottom:11px}
#featurePageContent:has(.global-worldbook){padding-top:5px}
.global-worldbook-toolbar{margin-top:0}
.global-worldbook-import-status:empty{display:none}
.global-worldbook-import-status{min-height:0;margin:3px 0 4px}
.global-worldbook-entry{padding-top:9px;padding-bottom:9px}

.global-worldbook-library{display:flex;align-items:center;gap:14px;padding:3px 0 12px;border-bottom:1px solid #eee}
.global-worldbook-library label{display:flex;flex:1;align-items:center;gap:12px;min-width:0;color:#aaa;font-size:9px}
.global-worldbook-library select{flex:1;min-width:0;padding:6px 20px 6px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#555;font-size:11px}
.global-worldbook-library>small{flex:none;color:#aaa;font-size:9px}

/* Chat sticker picker and per-group URL management. */
.emoji-picker-panel{display:grid;gap:10px;min-width:0}
.emoji-picker-toolbar{display:flex;align-items:center;gap:10px;border-bottom:1px solid #ececec}
.emoji-picker-tabs{display:flex;align-items:center;gap:5px;min-width:0;flex:1;overflow-x:auto;scrollbar-width:none}
.emoji-picker-tabs::-webkit-scrollbar{display:none}
.emoji-picker-tab-wrap{display:flex;align-items:center;flex:none}
.emoji-picker-tab,.emoji-picker-manage{position:relative;flex:none;padding:10px 8px 9px;color:#999;font-size:9px;white-space:nowrap}
.emoji-picker-tab.active{color:#333}
.emoji-picker-tab.active:after{position:absolute;right:8px;bottom:-1px;left:8px;height:1px;background:#444;content:""}
.emoji-picker-manage{padding-inline:5px;color:#777}
.emoji-picker-manage.active{color:#333}
.emoji-picker-delete-group{display:grid;width:18px;height:20px;place-items:center;color:#999;font-size:14px;line-height:1}
.emoji-picker-management{display:grid;gap:7px;padding:3px 0 9px;border-bottom:1px solid #eee}
.emoji-picker-group-form{display:flex;align-items:center;gap:12px;padding:2px 0 7px;border-bottom:1px solid #f0f0f0}
.emoji-picker-group-form input,.emoji-picker-import-form input,.emoji-picker-import-form select{width:100%;min-width:0;padding:8px 1px;border:0;border-bottom:1px solid #e7e7e7;border-radius:0;background:transparent;color:#555;font-size:10px;outline:none}
.emoji-picker-group-form input{flex:1}
.emoji-picker-group-form button,.emoji-picker-import-toggle,.emoji-picker-import-form>button{flex:none;padding:7px 0;color:#555;font-size:9px;white-space:nowrap}
.emoji-picker-import-toggle{justify-self:start;color:#777}
.emoji-picker-import-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 13px;padding:4px 0 0}
.emoji-picker-import-form label{display:grid;gap:2px;color:#aaa;font-size:8px}
.emoji-picker-import-form label:first-child{grid-column:1/-1}
.emoji-picker-import-form>button{grid-column:1/-1;justify-self:end;padding:7px 0 2px;border-bottom:1px solid #bbb}
.emoji-picker-import-form>button:disabled{opacity:.4}
.emoji-picker-import-form>small{grid-column:1/-1;color:#aaa;font-size:8px}
.emoji-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:min(42dvh,340px);overflow-y:auto;overscroll-behavior:contain;padding:2px 1px 4px;scrollbar-width:thin}
.emoji-picker-grid.is-built-in{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}
.emoji-picker-item-wrap{position:relative;min-width:0}
.emoji-picker-item{position:relative;display:grid;width:100%;aspect-ratio:1;align-content:center;justify-items:center;gap:4px;min-width:0;padding:4px;border-bottom:1px solid #eee;background:#fff;color:#555}
.emoji-picker-item.is-text{border:0;font-size:25px}
.emoji-picker-item.is-image img{width:100%;height:calc(100% - 13px);object-fit:contain}
.emoji-picker-item small{max-width:100%;overflow:hidden;color:#999;font-size:7px;text-overflow:ellipsis;white-space:nowrap}
.emoji-picker-delete-item{position:absolute;top:1px;right:1px;display:grid;width:19px;height:19px;place-items:center;background:#444;color:#fff;font-size:13px;line-height:1}
.emoji-picker-empty{grid-column:1/-1;margin:0;padding:24px 8px;border-top:1px solid #f0f0f0;color:#aaa;font-size:9px;line-height:1.8;text-align:center}
.message-sticker-image{display:block;width:auto;height:auto;max-width:min(34vw,148px);max-height:148px;object-fit:contain}
@media(max-width:380px){.emoji-picker-grid{gap:5px}.emoji-picker-grid.is-built-in{gap:1px}.emoji-picker-item.is-text{font-size:22px}.emoji-picker-management{gap:5px}}
.emoji-inline-panel{position:static;width:100%;margin-top:9px;padding-top:8px;border-top:1px solid #ececec;background:#fff}
.emoji-inline-panel[hidden]{display:none!important}
.emoji-inline-panel .emoji-picker-panel{background:#fff;align-content:start;grid-auto-rows:max-content;gap:5px;min-height:min(42dvh,360px);max-height:min(52dvh,460px);overflow-y:auto;overscroll-behavior:contain;padding:0 1px 3px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.emoji-inline-panel .emoji-picker-toolbar{position:sticky;top:0;z-index:1;background:#fff}
.emoji-inline-panel .emoji-picker-grid{grid-template-columns:repeat(auto-fill,minmax(64px,76px));justify-content:start;gap:6px;max-height:none;overflow:visible;padding:0;touch-action:pan-y}
.emoji-inline-panel .emoji-picker-item.is-image{height:91px;aspect-ratio:auto;grid-template-rows:70px 15px;align-content:start;gap:3px;padding:0 2px 2px;overflow:visible}
.emoji-inline-panel .emoji-picker-item.is-image img{display:block;width:100%;height:70px;min-height:0;object-fit:contain}
.emoji-inline-panel .emoji-picker-item.is-image small{display:block;width:100%;height:15px;max-width:100%;color:#777;font-size:9px;line-height:15px;text-align:center;text-overflow:ellipsis;white-space:nowrap}
.emoji-inline-panel .emoji-picker-tabs{width:100%;flex:none;gap:12px;min-height:27px;margin:0;padding:0 1px;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.emoji-inline-panel .emoji-picker-tabs .emoji-picker-tab{scroll-snap-align:start;padding:6px 2px 5px}
.emoji-inline-panel .emoji-picker-tabs .emoji-picker-tab.active:after{right:2px;left:2px}
.emoji-inline-panel .emoji-picker-import-button{justify-self:start;padding:7px 0;border-bottom:1px solid #bbb;color:#444;font-size:9px;letter-spacing:.2px}
.emoji-inline-panel .emoji-picker-no-groups{padding:10px 8px 9px;color:#999;font-size:9px}
.emoji-inline-panel .emoji-picker-import-form{padding-bottom:4px}
.emoji-inline-panel .emoji-picker-import-form>button{justify-self:start}
.emoji-inline-panel .emoji-picker-toolbar{position:static;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;white-space:nowrap}
.emoji-picker-collection{display:flex;align-items:center;gap:7px;flex:1;min-width:0}
.emoji-picker-collection strong{flex:none;color:#777;font-size:9px;font-weight:400;white-space:nowrap}
.emoji-picker-collection select{width:auto;max-width:min(30vw,105px);min-width:45px;padding:5px 16px 5px 2px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:#fff;color:#555;font-size:9px;outline:none;text-overflow:ellipsis}
.emoji-picker-collection select:disabled{color:#aaa;opacity:1}
.emoji-picker-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex:none}
.emoji-inline-panel .emoji-picker-actions button{flex:none;padding:6px 0;border:0;border-bottom:1px solid #ccc;border-radius:0;background:transparent;color:#555;font-size:8px;white-space:nowrap}
.emoji-inline-panel .emoji-picker-actions .emoji-picker-manage{padding:6px 0;color:#888}
.emoji-inline-panel .emoji-picker-actions .emoji-picker-manage.active{color:#333;border-color:#555}
.emoji-inline-panel .emoji-picker-actions .emoji-picker-delete-active-group{color:#888}
.emoji-inline-panel .emoji-picker-import-form{margin-top:2px;padding-top:8px;border-top:1px solid #eee}
.emoji-inline-panel .emoji-picker-import-form .emoji-picker-import-source{grid-column:1/-1;gap:5px}
.emoji-inline-panel .emoji-picker-import-source textarea{width:100%;min-height:76px;max-height:126px;margin:0;padding:8px 1px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#555;font-size:9px;line-height:1.65;resize:vertical;outline:none}
.emoji-inline-panel .emoji-picker-import-source textarea::placeholder{color:#b3b3b3}
.emoji-inline-panel .emoji-picker-import-hint{grid-column:1/-1;margin:0;color:#aaa;font-size:8px;line-height:1.6}
.emoji-inline-panel .emoji-picker-import-form{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr) 72px;align-items:end;gap:8px 9px}.emoji-inline-panel .emoji-picker-import-form .emoji-picker-target-group{grid-column:1}.emoji-inline-panel .emoji-picker-import-form .emoji-picker-new-group-label{grid-column:2}.emoji-inline-panel .emoji-picker-import-form.is-first-group .emoji-picker-new-group-label{grid-column:1/3}.emoji-inline-panel .emoji-picker-import-form>button.emoji-picker-submit-import{grid-column:3;justify-self:stretch;align-self:end;min-height:31px;padding:0 8px;border:1px solid #444;border-radius:2px;background:#444;color:#fff;font-size:9px;letter-spacing:.5px}.emoji-inline-panel .emoji-picker-import-hint{grid-column:1/-1}
.emoji-inline-panel{box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin-right:0;overflow:hidden}.emoji-inline-panel .emoji-picker-panel{box-sizing:border-box;width:100%;max-width:100%;min-width:0;height:min(52dvh,460px);min-height:min(42dvh,360px);max-height:min(52dvh,460px);grid-template-rows:max-content max-content max-content max-content minmax(0,1fr);overflow:hidden}.emoji-inline-panel .emoji-picker-grid{grid-row:5;min-height:0;height:100%;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:0 1px 4px;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.emoji-inline-panel .emoji-picker-grid{width:100%;grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch;column-gap:6px}
.api-editing-label{margin:0;color:#999;font-size:9px}
.api-profile-routing{padding:0 0 8px;border-bottom:1px solid #eee}.api-profile-routing-heading{display:grid;gap:5px;padding:8px 0 5px}.api-profile-routing-heading strong{color:#555;font-size:11px;font-weight:400}.api-profile-routing-heading small{color:#999;font-size:8px;line-height:1.6}.api-config-list{display:grid}.api-profile-card{padding:11px 0 12px;border-top:1px solid #eee}.api-profile-card.is-default{border-top-color:#bbb}.api-profile-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.api-profile-summary{display:grid;flex:1;min-width:0;gap:4px}.api-profile-summary strong{overflow:hidden;color:#555;font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.api-profile-summary small{overflow:hidden;color:#aaa;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.api-profile-actions{display:flex;align-items:center;gap:12px;flex:none}.api-profile-actions button{padding:5px 0;border-bottom:1px solid #ddd;color:#888;font-size:8px;white-space:nowrap}.api-profile-actions .api-profile-default{color:#777}.api-profile-card.is-default .api-profile-default{border-color:#555;color:#444}.api-profile-default:disabled{cursor:default;opacity:1}.api-profile-uses{display:grid;gap:7px;margin-top:9px}.api-profile-uses>small{color:#999;font-size:8px}.api-profile-feature-list{display:grid;gap:5px}.api-feature-choice{display:grid!important;grid-template-columns:14px minmax(58px,74px) minmax(0,1fr);align-items:center;gap:8px;margin:0!important;color:#777!important;font-size:8px!important;letter-spacing:0!important}.api-feature-choice input{position:static;width:13px!important;height:13px!important;margin:0;accent-color:#444}.api-feature-choice span{display:block;padding:0;border:0;background:transparent;color:#777;line-height:1.3;white-space:nowrap}.api-feature-choice select{width:100%;min-width:0;margin:0;padding:4px 18px 4px 6px;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background-color:transparent;color:#777;font-size:8px;outline:none}.api-feature-choice select:disabled{opacity:.42}.api-feature-choice select:focus-visible{outline:1px solid #aaa;outline-offset:1px}
.message-sticker-custom{min-width:0;min-height:0;justify-items:start;gap:4px;text-shadow:none}
@media(max-height:600px){.emoji-inline-panel .emoji-picker-panel{height:min(50dvh,360px);min-height:min(38dvh,270px);max-height:min(50dvh,360px)}}
/* A sealed white letter: all presentation is scoped to the invitation. */
.role-invitation{--invitation-envelope-height:clamp(155px,44vw,180px);box-sizing:border-box;flex-shrink:0;width:min(100%,360px);max-width:100%;margin:12px auto 10px;border:1px solid #dedede;border-radius:4px;background:#fff;color:#505050;box-shadow:0 1px 0 #fff,0 3px 0 -1px #f4f4f4,0 4px 0 -1px #e8e8e8,0 7px 16px #00000007;font-size:12px;line-height:1.6}
.message-type-text .role-invitation{align-self:center;width:min(360px,calc(100% + 68px));max-width:none;margin-inline:0}
.message-type-text:has(>.avatar:not(.is-group-hidden)) .role-invitation{width:min(100%,320px);max-width:100%;--invitation-envelope-height:clamp(128px,35vw,160px)}
.role-invitation-envelope{position:relative;display:block;box-sizing:border-box;width:100%;height:var(--invitation-envelope-height);padding:0;border-radius:inherit;overflow:hidden;perspective:900px;list-style:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.role-invitation-envelope::before{position:absolute;z-index:1;inset:7px;border:1px solid #ededed;border-radius:2px;box-shadow:0 1px 0 #fff,inset 0 1px 0 #fff;content:"";pointer-events:none}
.role-invitation-envelope::-webkit-details-marker{display:none}
.role-invitation-envelope::marker{content:""}
.role-invitation-envelope:focus-visible{outline:2px solid #aaa;outline-offset:4px}
.role-invitation-folds{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:none;pointer-events:none}
.role-invitation-pocket-side{fill:#f8f8f8;stroke:none}
.role-invitation-pocket-front{fill:#fff;stroke:none}
.role-invitation-flap-layer{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:none;overflow:visible;transform-origin:50% 0;backface-visibility:hidden;filter:drop-shadow(0 2px 2px #0000000c);pointer-events:none}
.role-invitation-flap{fill:#fdfdfd;stroke:none}
.role-invitation-flap-crease{fill:none;stroke:#e3e3e3;stroke-width:1;vector-effect:non-scaling-stroke}
.role-invitation-seams{fill:none;stroke:#dedede;stroke-width:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 0 #fff)}
.role-invitation-letterhead{position:absolute;left:50%;top:27px;width:calc(100% - 48px);transform:translateX(-50%);color:#777;font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",Georgia,serif;font-size:22px;font-weight:400;line-height:1.3;text-align:center}
.role-invitation-letterhead::after{display:block;width:26px;height:1px;margin:6px auto 0;background:#d4d4d4;content:""}
.role-invitation-envelope-status{position:absolute;right:16px;top:12px;color:#aaa;font-size:8px;line-height:1.4}
.role-invitation-seal{position:absolute;left:50%;top:59%;display:grid;place-items:center;width:48px;height:48px;transform:translate(-50%,-50%) rotate(-8deg);border:1px solid #c5c3c0;border-radius:46% 53% 45% 52% / 52% 45% 54% 47%;background:#dedddb;box-shadow:inset 2px 3px 3px #ffffffe0,inset -2px -3px 3px #aaa8a56b,0 3px 5px #00000012;transition:transform .2s ease;pointer-events:none}
.role-invitation-seal::before{position:absolute;inset:7px;border:1px solid #b5b3b0;border-radius:50%;box-shadow:0 1px 0 #ffffffc4,inset 0 1px 2px #a8a6a333;content:""}
.role-invitation-seal::after{position:absolute;inset:2px;border:1px solid #ffffff80;border-radius:inherit;content:""}
.role-invitation-seal i{color:#85837f;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",Georgia,serif;font-size:26px;font-weight:400;line-height:1;text-shadow:0 1px 0 #ffffffed}
.role-invitation-envelope:active .role-invitation-seal{transform:translate(-50%,-50%) rotate(-8deg) scale(.94)}
.role-invitation-address{position:absolute;left:20px;bottom:17px;max-width:calc(100% - 100px);color:#666;font-size:11px;overflow-wrap:anywhere}
.role-invitation-address>span{margin-left:8px;color:#aaa;font-size:9px}
.role-invitation-unseal{position:absolute;right:18px;bottom:18px;color:#aaa;font-size:9px;letter-spacing:.08em}
.role-invitation-address,.role-invitation-unseal{display:none}
.role-invitation-close-label{display:none}
.role-invitation[open]>.role-invitation-envelope{height:49px;border-radius:5px 5px 0 0}
.role-invitation[open]>.role-invitation-envelope::before,.role-invitation[open] .role-invitation-letterhead::after{display:none}
.role-invitation[open] .role-invitation-letterhead{top:13px;width:calc(100% - 116px);font-size:18px}
.role-invitation[open] .role-invitation-folds,.role-invitation[open] .role-invitation-flap-layer,.role-invitation[open] .role-invitation-seal,.role-invitation[open] .role-invitation-address,.role-invitation[open] .role-invitation-envelope-status,.role-invitation[open] .role-invitation-open-label{display:none}
.role-invitation[open] .role-invitation-close-label{display:inline}
.role-invitation[open] .role-invitation-unseal{top:20px;bottom:auto}
.role-invitation-paper{position:relative;margin:0 7px 7px;padding:12px 17px 18px;border:1px solid #ededed;background:#fff;border-radius:2px;box-shadow:0 2px 5px #00000004}
.role-invitation.is-unsealing .role-invitation-seal{animation:invitation-seal-release .3s ease-in both}
.role-invitation.is-unsealing .role-invitation-flap-layer{animation:invitation-flap-lift .44s .18s cubic-bezier(.4,0,.2,1) both}
.role-invitation.is-unsealing .role-invitation-letterhead{animation:invitation-ink-lift .42s .18s ease-in both}
.role-invitation.is-unsealing .role-invitation-unseal{opacity:0;transition:opacity .15s}
.role-invitation.is-opening>.role-invitation-envelope{animation:invitation-envelope-settle .66s cubic-bezier(.22,.61,.36,1) both}
.role-invitation.is-opening>.role-invitation-paper{overflow:hidden;animation:invitation-paper-withdraw .66s cubic-bezier(.22,.61,.36,1) both}
.role-invitation.is-closing>.role-invitation-envelope{animation:invitation-envelope-return .22s ease-in both}
.role-invitation.is-closing>.role-invitation-paper{overflow:hidden;animation:invitation-paper-return .22s ease-in both}
.role-invitation-paper>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.role-invitation-paper>header strong{min-width:0;color:#333;font-size:16px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}
.role-invitation-paper>header small{flex:none;max-width:36%;color:#aaa;font-size:9px;text-align:right;line-height:1.5;overflow-wrap:anywhere}
.role-invitation-paper>p{margin:5px 0 18px;color:#888;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.role-invitation-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 0 17px;border-bottom:1px solid #eee}
.role-invitation-details>span{display:grid;gap:5px;min-width:0;color:#555;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.role-invitation-details small{color:#aaa;font-size:10px}
.role-invitation-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:14px}
.role-invitation-actions button,.role-invitation-reopen{box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-width:0;min-height:34px;padding:7px 9px;border:1px solid #e5e5e5;border-radius:9px;background:#fff;color:#777;font:inherit;font-size:11px;font-weight:400;line-height:1.5;text-align:center;touch-action:manipulation;transition:opacity .15s ease}
.role-invitation-reopen{border-color:#dedede;background:#efefef;color:#444}
.role-invitation-reopen{width:100%;margin-top:14px}
.role-invitation-actions button:not(:disabled):active,.role-invitation-reopen:not(:disabled):active{opacity:.65}
.role-invitation-actions button:disabled{border-color:#e5e5e5;background:#fff;color:#777;cursor:default;opacity:1}
.role-invitation-reopen:disabled{border-color:#eee;background:#f7f7f7;color:#bbb;cursor:default}
.role-invitation-hint{display:block;margin-top:10px;color:#aaa;font-size:9px;line-height:1.6;overflow-wrap:anywhere}
@keyframes invitation-seal-release{0%{opacity:1;transform:translate(-50%,-50%) rotate(-8deg)}35%{opacity:1;transform:translate(-50%,-55%) rotate(-14deg) scale(1.06)}100%{opacity:0;transform:translate(-40%,-18%) rotate(8deg) scale(.94)}}
@keyframes invitation-flap-lift{0%{transform:rotateX(0)}100%{transform:rotateX(165deg)}}
@keyframes invitation-ink-lift{0%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-20px) scaleY(.65)}}
@keyframes invitation-envelope-settle{from{height:var(--invitation-envelope-height)}to{height:49px}}
@keyframes invitation-paper-withdraw{from{height:0;padding-top:0;padding-bottom:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;opacity:0;transform:translateY(28px) scale(.97)}35%{opacity:1}to{height:var(--invitation-paper-height);padding-top:12px;padding-bottom:18px;margin-bottom:7px;border-top-width:1px;border-bottom-width:1px;opacity:1;transform:translateY(0) scale(1)}}
@keyframes invitation-envelope-return{from{height:49px}to{height:var(--invitation-envelope-height)}}
@keyframes invitation-paper-return{from{height:var(--invitation-paper-height);opacity:1;transform:translateY(0)}to{height:0;padding-top:0;padding-bottom:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;opacity:0;transform:translateY(12px) scale(.98)}}
@media(prefers-reduced-motion:reduce){.role-invitation .role-invitation-envelope,.role-invitation .role-invitation-paper,.role-invitation .role-invitation-flap-layer,.role-invitation .role-invitation-letterhead,.role-invitation .role-invitation-seal{animation:none!important}.role-invitation-seal,.role-invitation-actions button,.role-invitation-reopen{transition:none}}
.global-worldbook-toolbar{margin-top:3px;gap:20px}
.global-worldbook-toolbar button{padding:5px 0}
.global-worldbook-toolbar .global-worldbook-add{margin:0}

.global-worldbook-entry{position:relative;padding:13px 0;border-bottom:1px solid #e8e8e8}
.global-worldbook-entry-top{position:relative;display:block;padding-right:38px}
.global-worldbook-entry details{width:100%;padding-right:0}
.global-worldbook-entry details>p{max-height:min(42vh,260px);margin-right:-38px;overflow-y:auto;overscroll-behavior:contain;padding:0 2px 0 0;scrollbar-width:thin}
.global-worldbook-toggle{position:absolute;top:0;right:0;z-index:1}

#featurePageContent:has(.global-worldbook){display:flex;flex-direction:column;overflow:hidden}
.global-worldbook{display:flex;flex:1 1 0;flex-direction:column;min-height:0}
.global-worldbook-library,.global-worldbook-toolbar{flex:none}
.global-worldbook-import-status:not(:empty){flex:none}
.global-worldbook-list{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.global-worldbook-entry-top{padding-right:38px}
.global-worldbook-entry details>p{margin-right:-38px}
.global-worldbook-toggle{top:0;right:0}

/* API model chooser */
.api-retained-model-note{display:block;margin:-4px 0 2px;color:#999;font-size:8px;line-height:1.5}
.api-current-model-list{display:grid;gap:6px;margin:-1px 0 3px}
.api-current-model-list>small{color:#999;font-size:8px;line-height:1.5}
.api-current-model-options{display:grid;max-height:min(22vh,170px);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid #eee;border-bottom:1px solid #eee;scrollbar-width:thin}
.api-current-model-option{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;padding:5px 2px;border-bottom:1px solid #f0f0f0;color:#666;font-size:9px;line-height:1.35}.api-current-model-option:last-child{border-bottom:0}.api-current-model-option>span{overflow-wrap:anywhere}.api-current-model-option>small{flex:none;color:#aaa;font-size:8px}
.api-model-dialog{box-sizing:border-box;width:min(440px,calc(100vw - 34px));max-width:none;max-height:min(78dvh,680px);margin:auto;padding:0;overflow:hidden;border:1px solid #e8e8e8;border-radius:14px;background:#fff;color:#444;box-shadow:0 18px 60px #0002}
.api-model-dialog::backdrop{background:#16161645;backdrop-filter:blur(2px)}
.api-model-picker{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;max-height:min(78dvh,680px);min-height:260px;padding:20px 22px 16px}
.api-model-picker-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:0 0 14px;border-bottom:1px solid #ededed}
.api-model-picker-heading h2{margin:0;color:#333;font-family:"Great Vibes",cursive;font-size:32px;font-style:normal;font-weight:400;line-height:1.2;letter-spacing:0}
.api-model-picker-heading p{margin:7px 0 0;color:#999;font-size:10px;line-height:1.6}
.api-model-close{flex:none;padding:0 2px;color:#888;font-size:23px;line-height:1}
.api-model-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;color:#999;font-size:9px}
.api-model-tools>div{display:flex;gap:14px}
.api-model-tools button{padding:2px 0;border-bottom:1px solid #ddd;color:#777;font-size:9px}
.api-model-url-tabs{display:flex;gap:6px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;padding:10px 0 1px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.api-model-url-item{display:flex;flex:none;align-items:center;max-width:75%;border-bottom:1px solid #e7e7e7}
.api-model-url-tab{flex:none;max-width:62%;padding:6px 9px;border-bottom:1px solid #e7e7e7;color:#999;font-size:9px;white-space:nowrap}
.api-model-url-item .api-model-url-tab{max-width:calc(100% - 24px);border-bottom:0}
.api-model-url-tab span{display:block;overflow:hidden;text-overflow:ellipsis}
.api-model-url-item:has(.api-model-url-tab.active){border-color:#444}
.api-model-url-item .api-model-url-tab.active{color:#444}
.api-model-url-delete{flex:none;padding:4px 7px;color:#aaa;font-size:14px;line-height:1}
.api-model-url-delete:hover{color:#444}
.api-model-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.api-model-option{display:flex;align-items:center;gap:10px;min-height:42px;margin:0!important;padding:8px 3px;border-bottom:1px solid #f1f1f1;color:#555!important;font-size:10px!important;letter-spacing:0!important}
.api-model-option:last-child{border-bottom:0}
.api-model-option input{width:15px!important;height:15px!important;flex:none;margin:0;accent-color:#444}
.api-model-option span{overflow-wrap:anywhere;line-height:1.4}
.api-model-empty{margin:0;padding:18px 3px;color:#aaa;font-size:10px}
.api-model-picker-footer{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding-top:14px}
.api-model-picker-footer button{min-height:32px;padding:0 2px;color:#888;font-size:10px}
.api-model-picker-footer .api-model-keep{padding:0 13px;border:1px solid #444;background:#444;color:#fff}
.api-model-keep span{margin-left:4px;color:#ddd}
.api-model-loading,.api-model-error{grid-row:3 / span 2;display:flex;align-items:center;justify-content:center;gap:9px;min-height:120px;color:#888;font-size:11px;line-height:1.7;text-align:center}
.api-model-loading span{width:14px;height:14px;border:1px solid #ddd;border-top-color:#555;border-radius:50%;animation:api-model-spin .8s linear infinite}
.api-model-error{color:#888}
@keyframes api-model-spin{to{transform:rotate(360deg)}}
@media(max-width:520px){.api-model-picker{padding:17px 17px 14px}.api-model-dialog{width:calc(100vw - 28px)}}

/* Offline settings and saved letter records. */
#settingsContent.is-offline-settings{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:0}
.offline-setting-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:none;margin-top:-2px;margin-bottom:8px;border-bottom:1px solid #e9e9e9}
.offline-setting-tabs button{position:relative;padding:7px 4px 9px;background:transparent;color:#aaa;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:14px;font-style:italic;letter-spacing:.1px;white-space:nowrap}
.offline-setting-tabs button.active{color:#444}
.offline-setting-tabs button.active::after{position:absolute;right:30%;bottom:-1px;left:30%;height:1px;background:#555;content:""}
.offline-settings-panel{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}
.offline-records-page{display:flex;flex:1;flex-direction:column;min-height:0}
.offline-records-heading{display:flex;flex:none;align-items:center;justify-content:space-between;gap:12px;padding:0 0 12px;border-bottom:1px solid #eee;color:#555;font-family:"Songti SC",serif;font-size:14px;letter-spacing:.8px}
.offline-records-heading>span{display:flex;align-items:baseline;gap:9px}
.offline-records-heading small{color:#aaa;font-family:Georgia,serif;font-size:9px;letter-spacing:0}
.offline-records-heading button{padding:6px 0;border-bottom:1px solid #bbb;color:#777;font-family:inherit;font-size:9px;letter-spacing:0;white-space:nowrap}
.offline-records-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:13px 2px 20px;scrollbar-width:thin}
.offline-record-note{margin:0 0 10px;padding:11px 14px 8px;border:1px solid #e9e9e9;background:#fff;color:#555}
.offline-record-note>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
.offline-record-index{color:#aaa;font-family:"Snell Roundhand","Apple Chancery","Great Vibes",Georgia,serif;font-size:13px;font-style:italic}
.offline-record-date{color:#aaa;font-family:Georgia,"Songti SC",serif;font-size:9px;font-style:italic;letter-spacing:.3px}
.offline-record-meta{margin:0 0 4px;color:#888;font-size:8px;letter-spacing:.3px}
.offline-record-meta i{padding:0 5px;color:#bbb;font-style:normal}
.offline-record-preview{display:block;overflow:hidden;margin:0;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:11px;line-height:20px;white-space:nowrap;text-overflow:ellipsis}
.offline-record-summary{display:block;overflow:hidden;margin:5px 0 0;padding-top:5px;border-top:1px solid #eee;color:#777;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:10px;line-height:17px;white-space:nowrap;text-overflow:ellipsis}
.offline-record-note>footer{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:5px;padding-top:4px;border-top:1px solid #eee}
.offline-record-note>footer button{padding:4px 0;color:#999;font-size:8px}
.offline-record-note>footer button:first-child{margin-right:auto;color:#666}
.offline-record-transcript{max-height:42dvh;overflow:auto;margin-top:10px;padding-top:5px;border-top:1px solid #eee;overscroll-behavior:contain;scrollbar-width:thin}
.offline-record-transcript p{display:grid;gap:5px;margin:9px 0 13px;color:#666;font-size:10px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.offline-record-transcript strong{color:#999;font-size:8px;font-weight:400;letter-spacing:.5px}
.offline-records-empty{padding:28px 16px;border:1px solid #eee;color:#999}
.offline-records-empty>span{font-family:"Snell Roundhand","Apple Chancery","Great Vibes",cursive;font-size:17px;font-style:italic}
.offline-records-empty p{margin:9px 0 0;color:#aaa;font-size:9px;line-height:1.7}
.offline-general-settings.is-preset-active :is(input,select,textarea,button):disabled{color:#bdbdbd;opacity:.58;cursor:not-allowed}
.offline-general-settings.is-preset-active .offline-extra-tabs button:disabled{color:#c4c4c4}
@media(max-width:480px){#settingsContent.is-offline-settings{padding-bottom:8px}.offline-records-list{padding-right:1px;padding-left:1px}.offline-record-note{padding-right:12px;padding-left:12px}}
.offline-general-settings{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:5px 1px 20px;color:#777;-webkit-overflow-scrolling:touch}
.offline-general-kicker{margin:1px 0 14px;color:#b0b0b0;font-family:Georgia,serif;font-size:8px;letter-spacing:2px}
.offline-general-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}
.offline-general-grid>label{display:grid;align-content:start;gap:7px;min-width:0;padding:0 2px 8px;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px;letter-spacing:.3px}
.offline-paragraph-ranges{grid-column:1/-1;min-width:0;margin:0;padding:0 2px 9px;border:0;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px;letter-spacing:.3px}
.offline-paragraph-ranges legend{padding:0 0 7px}
.offline-paragraph-ranges>div{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.offline-paragraph-ranges label{display:grid;gap:6px;min-width:0}
.offline-paragraph-ranges label>span{display:flex;align-items:center;gap:6px;color:#555;font-size:10px;white-space:nowrap}
.offline-paragraph-ranges input{width:54px!important;min-height:24px;padding:2px 4px!important;border:1px solid #e9e9e9!important;border-radius:5px!important;background:#fff!important;text-align:center}
.offline-paragraph-ranges label>span>input:first-child{margin-left:5px}
.offline-general-grid input,.offline-general-grid select,.offline-general-grid textarea{width:100%;min-width:0;padding:4px 0;border:0;border-radius:0;outline:none;background:transparent;color:#555;font:inherit;font-size:11px;letter-spacing:0}
.offline-general-grid select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);background-position:calc(100% - 4px) 50%,100% 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}
.offline-general-grid textarea{min-height:116px;resize:vertical;line-height:1.8;background:repeating-linear-gradient(transparent 0 25px,#ededed 25px 26px)}
.offline-general-grid input::placeholder,.offline-general-grid textarea::placeholder{color:#c0c0c0;font-size:9px}
.offline-general-grid input:disabled,.offline-general-grid select:disabled,.offline-general-grid textarea:disabled{color:#bdbdbd;opacity:.7}
.offline-general-prompt{grid-column:1/-1;display:grid;gap:9px;padding:0 2px 9px;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px;letter-spacing:.3px}.offline-general-prompt summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:27px;cursor:pointer;list-style:none}.offline-general-prompt summary::-webkit-details-marker{display:none}.offline-general-prompt summary span{color:#777}.offline-general-prompt summary small{margin-left:auto;color:#b0b0b0;font-size:8px;letter-spacing:0}.offline-general-prompt summary i{position:relative;width:14px;height:14px;flex:none}.offline-general-prompt summary i::before,.offline-general-prompt summary i::after{position:absolute;top:6px;left:3px;width:8px;height:1px;background:#999;content:""}.offline-general-prompt summary i::after{transform:rotate(90deg);transition:transform .18s}.offline-general-prompt[open] summary i::after{transform:rotate(0)}.offline-general-prompt textarea{min-height:230px;max-height:520px;padding:4px 0 8px;line-height:1.8;resize:vertical}
.offline-style-manager{grid-column:1/-1;min-width:0;padding:0 2px 10px;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px;letter-spacing:.3px}.offline-style-manager>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 7px}.offline-style-manager>header>span{display:grid;gap:4px;color:#777}.offline-style-manager>header small{color:#b0b0b0;font-size:8px;letter-spacing:0}.offline-style-manager>header button,.offline-style-actions button{padding:3px 0;border-bottom:1px solid #ddd;background:transparent;color:#888;font-size:8px;white-space:nowrap}.offline-style-manager>header button:disabled,.offline-style-actions button:disabled{color:#ccc;border-color:#eee}.offline-style-list{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.offline-style-choice{display:flex;align-items:center;gap:8px;min-width:0;border-top:1px solid #f0f0f0}.offline-style-choice.is-selected{background:#fafafa}.offline-style-select{display:flex;flex:1;align-items:center;justify-content:space-between;gap:6px;min-width:0;padding:9px 2px;background:transparent;color:#888;text-align:left;font-size:9px}.offline-style-select span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offline-style-select i{width:12px;flex:none;color:#555;font-size:9px;font-style:normal;text-align:center}.offline-style-select:disabled{color:#bbb}.offline-style-actions{display:flex;flex:none;gap:8px}.offline-style-actions button{font-size:7px}.offline-style-form{grid-column:1/-1;display:grid;gap:10px;margin:10px 0 0;padding:11px 2px 2px;border-top:1px solid #eee}.offline-style-form[hidden]{display:none!important}.offline-style-form label{display:grid;gap:6px;color:#999;font-size:8px}.offline-style-form input,.offline-style-form textarea{width:100%;min-width:0;padding:5px 0;border:0;border-bottom:1px solid #e3e3e3;border-radius:0;background:transparent;color:#555;font:inherit;font-size:10px;line-height:1.7;outline:none;resize:vertical}.offline-style-form textarea{min-height:90px}.offline-style-form>div{display:flex;justify-content:flex-end;gap:15px}.offline-style-form>div button{padding:5px 0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:8px}
.offline-style-list{grid-template-columns:minmax(0,1fr);gap:9px;padding-top:5px}.offline-style-choice{display:block;min-width:0;min-height:112px;padding:10px 13px 8px;border:1px solid #e9e9e9;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f2f2f2 25px,#f2f2f2 26px)}.offline-style-choice.is-selected{border-color:#b8b8b8;background:repeating-linear-gradient(to bottom,#fdfdfd 0,#fdfdfd 25px,#ededed 25px,#ededed 26px)}.offline-style-choice>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.offline-style-index{color:#aaa;font-family:Georgia,serif;font-size:8px;font-style:italic;letter-spacing:1px}.offline-style-select{width:100%;padding:5px 0 2px;color:#555;font-family:"Songti SC",serif;font-size:12px;letter-spacing:.5px}.offline-style-select i{color:#666;font-family:inherit}.offline-style-description{margin:1px 16px 0 0;color:#777;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:9px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.offline-style-form textarea,.offline-general-prompt textarea{height:234px;min-height:234px;max-height:60dvh;padding:0 2px 8px;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;line-height:26px;resize:vertical;scrollbar-width:thin}.offline-style-form textarea::placeholder,.offline-general-prompt textarea::placeholder{color:#bbb;font-family:inherit;font-size:11px}
.offline-style-picker{display:flex!important;align-items:center;gap:18px;min-height:34px;padding:0 2px 7px!important;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px;letter-spacing:.3px}
.offline-style-picker select{flex:1;width:auto!important;min-width:0;padding-right:17px!important;color:#555!important;font-family:"Songti SC","Noto Serif CJK SC",serif!important;font-size:12px!important}
.offline-selected-style{min-width:0;padding:2px 2px 9px;border-bottom:1px solid #e9e9e9}
.offline-selected-style>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:25px}
.offline-selected-style>header strong{overflow:hidden;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;font-weight:400;letter-spacing:.4px;text-overflow:ellipsis;white-space:nowrap}
.offline-selected-style>header>div{display:flex;flex:none;gap:12px}
.offline-selected-style>header button{padding:2px 0;border-bottom:1px solid #ddd;background:transparent;color:#888;font-size:8px;white-space:nowrap}
.offline-selected-style>header button[hidden]{display:none!important}
.offline-selected-style textarea{display:block;width:100%;height:234px;min-height:234px;max-height:60dvh;margin:0;padding:0 2px 8px;border:0;border-radius:0;outline:none;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;line-height:26px;resize:none;overflow-y:auto;scrollbar-width:thin}
.offline-selected-style textarea:disabled{color:#bdbdbd;opacity:.7}
.offline-style-manager:has(.offline-style-form:not([hidden])) .offline-style-picker{border-bottom:0!important}
.offline-style-manager .offline-style-form{margin-top:0;padding-top:3px;border-top:0}
.offline-prompt-manager{display:grid;gap:12px}
.offline-prompt-picker{display:flex!important;align-items:center;gap:14px;margin:0!important;padding:0 2px 8px;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px}
.offline-prompt-picker select{flex:1;width:auto!important;min-width:0;padding-right:17px!important;color:#555!important;font-family:"Songti SC","Noto Serif CJK SC",serif!important;font-size:11px!important}
.offline-prompt-active-note{margin:0;color:#aaa;font-size:8px;line-height:1.6}
.offline-prompt-selected{min-width:0;padding:1px 2px 8px;border-bottom:1px solid #e9e9e9}
.offline-prompt-selected[hidden],.offline-prompt-form[hidden],.offline-prompt-add[hidden]{display:none!important}
.offline-prompt-selected>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:24px}
.offline-prompt-selected>header strong{overflow:hidden;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:11px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.offline-prompt-selected>header>div{display:flex;flex:none;gap:12px}
.offline-prompt-selected>header button{padding:2px 0;border-bottom:1px solid #ddd;background:transparent;color:#888;font-size:8px}
.offline-prompt-selected textarea,.offline-prompt-form textarea{display:block;width:100%;height:234px;min-height:234px;max-height:60dvh;padding:0 2px 8px;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;line-height:26px;resize:none;overflow-y:auto;scrollbar-width:thin}
.offline-prompt-add{justify-self:start;padding:4px 0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:9px}
.offline-prompt-form{display:grid;gap:10px;margin:0;padding:4px 2px 2px;border:0}
.offline-prompt-form label,.offline-prompt-addendum{display:grid;gap:6px;color:#999;font-size:8px;letter-spacing:.3px}
.offline-prompt-form input{width:100%;min-width:0;padding:5px 0;border:0;border-bottom:1px solid #e3e3e3;border-radius:0;background:transparent;color:#555;font-size:11px;outline:none}
.offline-prompt-form>div{display:flex;justify-content:flex-end;gap:15px}
.offline-prompt-form>div button{padding:5px 0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:8px}
.offline-prompt-addendum textarea{height:150px;min-height:150px;max-height:45dvh;padding:0 2px 8px;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:11px;line-height:26px;resize:none;overflow-y:auto;scrollbar-width:thin}
.offline-prompt-guide{border-top:1px solid #eee;border-bottom:1px solid #eee}
.offline-prompt-guide>summary{padding:10px 1px;color:#777;font-size:9px;cursor:pointer;list-style:none}
.offline-prompt-guide>summary::-webkit-details-marker{display:none}
.offline-prompt-guide>div{padding:0 1px 10px;color:#888;font-size:9px;line-height:1.8}
.offline-prompt-guide p{margin:6px 0}
.offline-prompt-guide ul{display:grid;gap:4px;margin:7px 0;padding-left:17px}
.offline-prompt-guide ol{display:grid;gap:6px;margin:8px 0;padding-left:18px}
.offline-prompt-guide code{color:#555;font-family:ui-monospace,SFMono-Regular,monospace;font-size:8px}
.offline-prompt-example{max-width:100%;margin:8px 0;padding:9px 10px;border-left:1px solid #ddd;background:#fafafa;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.offline-prompt-guide-warning{margin-top:10px!important;padding:8px 9px;border-left:1px solid #ccc;background:#fafafa;color:#777}
@media(max-width:380px){.offline-general-grid{gap:13px 12px}.offline-general-grid>label{font-size:8px}.offline-general-grid input,.offline-general-grid select{font-size:10px}}

/* Keep the app viewport fixed; only explicitly scrollable content should move. */
html,body{width:100%;height:100vh;overflow:hidden;overscroll-behavior:none}
body{position:fixed;inset:0}
.phone{height:100dvh;min-height:0;max-height:100dvh;overscroll-behavior:none}
:where(.conversation,.settings-content,.feature-page-content,.sheet,.profile-dialog,.character-list,.offline-records-list,.global-worldbook-list,.worldbook-entry-list,.quick-features,.video-call-messages,.offline-record-transcript){overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.topbar{padding-top:24px;padding-bottom:12px}
.conversation{padding-top:6px}
.settings-topbar{padding-top:24px;padding-bottom:8px}
.settings-content{padding-top:12px}
.feature-page-topbar{padding-top:24px;padding-bottom:9px}
.feature-page-content{padding-top:12px}
@media(min-width:850px){.topbar{padding-top:28px}}
@media(max-width:480px){
  .topbar{padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}
  .settings-topbar{padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:7px}
  .settings-content{padding-top:10px}
  .feature-page-topbar{padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:7px}
  .feature-page-content{padding-top:10px}
}

/* Keep the input controls and their SVG artwork centered in the circular buttons. */
#inputFunctions,#reply{display:flex;align-items:center;justify-content:center;align-self:center;padding:0;margin:0;line-height:0;box-sizing:border-box}
#inputFunctions svg,#reply svg{display:block;flex:0 0 19px;width:19px;height:19px;margin:0;transform:none}

.global-worldbook-new{flex:none;padding:5px 0 5px 10px;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#777;font-size:9px;white-space:nowrap}
.global-worldbook-book-form,.role-worldbook-name-form,.role-worldbook-entry-form{display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:14px;margin:8px 0;padding:10px 0;border-bottom:1px solid #eee;background:#fff}
.global-worldbook-book-form[hidden],.role-worldbook-name-form[hidden],.role-worldbook-entry-form[hidden]{display:none!important}
.global-worldbook-book-form label,.role-worldbook-name-form label,.role-worldbook-entry-form label{display:block;min-width:0;color:#888;font-size:9px}
.global-worldbook-book-form input,.role-worldbook-name-form input,.role-worldbook-entry-form input,.role-worldbook-entry-form textarea{display:block;width:100%;margin-top:6px;padding:8px 2px;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:transparent;color:#555;font-size:10px}
.global-worldbook-book-form button,.role-worldbook-name-form button,.role-worldbook-entry-form button{padding:7px 0;border-bottom:1px solid #ddd;color:#777;font-size:9px;white-space:nowrap}
.role-worldbook-toolbar{display:flex;flex:none;align-items:center;gap:clamp(9px,3vw,16px);min-height:37px;padding:2px 0;border-bottom:1px solid #eee}
.role-worldbook-toolbar>button{display:flex;align-items:center;gap:5px;flex:none;padding:6px 0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#666;font-size:9px;white-space:nowrap}
.role-worldbook-toolbar>button span{font-size:14px}
.role-worldbook-select{flex:1;min-width:0}
.role-worldbook-select select{width:100%;min-width:0;padding:6px 15px 6px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:#fff;color:#555;font-size:10px}
.role-worldbook-status{flex:none;min-height:0;margin:0;color:#999;font-size:8px}
.role-worldbook-status:empty{display:none}
.role-worldbook-name-form{grid-template-columns:1fr auto auto;flex:none}
.role-worldbook-entry-form{grid-template-columns:1fr;flex:none;max-height:42vh;overflow:auto;padding:12px 9px;overscroll-behavior:contain;background:#fafafa;scrollbar-width:thin}
.role-worldbook-entry-form>div{display:flex;justify-content:flex-end;gap:16px;margin:0 -9px -12px;padding:9px 9px 12px;background:#fafafa}
.role-worldbook-entry-form textarea{min-height:170px;max-height:45vh;resize:vertical;line-height:1.7;overflow-y:auto}
.role-worldbook-entry-actions{display:flex;gap:14px;margin:5px 0 0;padding-right:38px}
.role-worldbook-entry-actions button{padding:3px 0;color:#aaa;font-size:8px}
.worldbook-entry-list .worldbook-entry{padding-bottom:8px}
.worldbook-entry-list .worldbook-entry-disclosure>p{max-height:180px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.global-worldbook-book-form{grid-template-columns:1fr auto auto;margin:3px 0 8px;padding:8px 0}
@media(max-width:380px){.role-worldbook-toolbar{gap:9px}.role-worldbook-toolbar>button{font-size:8px}.global-worldbook-new{font-size:8px;padding-left:6px}}

/* Distinct, quiet message treatments for media and actions. */
.message-type-image:not(.message-image-description) .message-content{width:min(62vw,240px);max-width:calc(100% - 42px)}
.message-type-sticker .message-content{max-width:min(72vw,340px)}
.message-type-voice .message-content{max-width:min(82vw,360px)}
.message-type-transfer .message-content,.message-type-location .message-content{max-width:min(76vw,300px)}
.message-type-image .message-bubble-line,.message-type-sticker .message-bubble-line{align-items:flex-end}
.message-image{display:block;width:100%;max-width:100%;padding:0;overflow:hidden;border:0;border-radius:4px;background:transparent;box-shadow:none;line-height:0}
.message-image img{display:block;width:100%;height:auto;max-width:100%;max-height:320px;object-fit:contain}
/* Compact stacked photo messages in private and group chat. */
.message-type-image:has(.chat-image-stack) .message-content{width:auto;max-width:calc(100% - 36px)}
.chat-image-stack{display:flex;align-items:center;justify-content:flex-end;gap:8px;width:min(238px,calc(100vw - 112px));height:174px;padding:0;background:transparent;touch-action:pan-y;user-select:none}
.chat-image-stack-layers{position:relative;order:2;flex:0 0 146px;height:174px}
.chat-image-stack-photo{position:absolute;top:0;left:0;width:126px;height:158px;max-width:none;max-height:none;object-fit:cover;border-radius:11px;box-shadow:0 4px 12px #0002;pointer-events:none}
.chat-image-stack-photo.is-layer-0{z-index:3;transform:rotate(-1deg)}
.chat-image-stack-photo.is-layer-1{z-index:2;top:7px;left:10px;opacity:.65;transform:rotate(2deg)}
.chat-image-stack-photo.is-layer-2{z-index:1;top:14px;left:20px;opacity:.45;transform:rotate(4deg)}
.chat-image-stack-expand{order:1;flex:none;padding:8px 10px;border-radius:999px;background:#e9e9e9;color:#666;font-size:11px;white-space:nowrap}
.chat-image-grid{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:min(280px,100%);max-width:100%;padding:0;text-align:left;background:transparent;touch-action:pan-y}
.chat-image-grid-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%}
.chat-image-grid-row[data-columns="1"]{grid-template-columns:minmax(0,1fr)}
.chat-image-grid-row[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.chat-image-grid .chat-image-grid-cell{position:relative;display:block;aspect-ratio:1;min-width:0;width:100%;height:auto;margin:0;padding:0;overflow:hidden;border-radius:5px;background:#e9e9ec;line-height:0}
.chat-image-grid .chat-image-grid-row[data-columns="1"] .chat-image-grid-cell{aspect-ratio:1.85}
.chat-image-grid .chat-image-grid-cell img{display:block;width:100%;height:100%;max-width:100%;max-height:none;object-fit:cover;pointer-events:none}
.chat-image-grid-triptych{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:3px;width:100%;aspect-ratio:1.55}
.chat-image-grid .chat-image-grid-triptych .chat-image-grid-cell{aspect-ratio:auto;height:100%}
.chat-image-grid-triptych .chat-image-grid-cell:first-child{grid-row:span 2}
.chat-image-scroll-spacer{flex:none;width:100%;min-height:0;pointer-events:none}
.chat-image-expanded-item{display:flex;align-items:center;gap:8px;max-width:100%}
.chat-image-stack-collapse{flex:none;padding:7px 10px;border-radius:999px;background:#e9e9e9;color:#666;font-size:11px}
.message-type-image:has(.chat-image-expanded-item) .message-content{width:min(62vw,240px)}
.chat-image-expanded-item .message-image{min-width:0}
.chat-image-batch-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain}
.chat-image-batch-carousel::-webkit-scrollbar{display:none}
.chat-image-batch-carousel figure{display:grid;place-items:center;flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:center}
.chat-image-batch-carousel img{display:block;width:auto;max-width:100%;height:auto;max-height:min(52dvh,400px);object-fit:contain}
.chat-image-batch-carousel figcaption{padding:8px;color:#888;font-size:11px}
.chat-image-batch-controls{display:flex;justify-content:space-between;margin-top:8px}
.chat-image-batch-controls button{width:36px;height:36px;border-radius:50%;background:#eee;font-size:24px}
@media(max-width:380px){.chat-image-stack{width:min(210px,calc(100vw - 100px))}.chat-image-stack-layers{flex-basis:130px}.chat-image-stack-photo{width:110px}}
.image-description-card{width:min(var(--image-frame-width,240px),62vw);max-width:100%;color:#555}
.image-description-preview{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;width:100%;aspect-ratio:var(--image-ratio,1 / 1);overflow:hidden;padding:10px 12px;background:#f1f1ef;color:#777}
.image-description-mark{display:flex;align-items:center;gap:7px;color:#888;font-size:9px;letter-spacing:.5px}
.image-description-mark svg{width:14px;height:14px;stroke-width:1.5}
.image-description-preview>small{align-self:flex-end;color:#999;font-size:8px;letter-spacing:.5px}
.image-description-card p{display:flex;flex:1;align-items:center;justify-content:center;min-height:0;overflow:auto;margin:7px 0;color:#666;font-size:11px;line-height:1.7;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}
.message-sticker{display:grid;place-items:center;min-width:58px;min-height:58px;color:#333;font-size:54px;line-height:1.1;text-shadow:0 2px 5px #0000000d}
.voice-message-wrap{display:flex;flex-direction:column;align-items:flex-start;width:100%;max-width:100%}
.mine .voice-message-wrap{align-items:flex-end}
.voice-message-card{display:flex;align-items:center;gap:9px;width:min(var(--voice-width,180px),100%);min-height:46px;padding:0 12px;border:1px solid #e9e9e9;border-radius:15px 15px 15px 4px;background:#fff;color:#494949;text-align:left;transition:background .18s}
.mine .voice-message-card{border-color:#eee;border-radius:15px 15px 4px 15px;background:#f0f0f0}
.voice-message-card:hover{filter:none;background:#f8f8f8}
.mine .voice-message-card:hover{background:#ebebeb}
.voice-mark{display:grid;place-items:center;width:17px;height:22px;flex:none;color:#555}
.voice-mark svg{width:16px;height:16px;stroke-width:1.65}
.voice-wave{display:flex;align-items:center;justify-content:space-between;gap:2px;min-width:0;flex:1;height:23px;overflow:hidden}
.voice-wave i{display:block;width:2px;flex:none;border-radius:2px;background:#aaa;transition:background .18s}
.voice-message-card.is-expanded .voice-wave i:nth-child(3n){background:#555}
.voice-duration{flex:none;color:#777;font-size:10px;font-variant-numeric:tabular-nums}
.voice-toggle-mark{width:7px;height:7px;flex:none;margin:0 2px 3px 1px;border-right:1px solid #888;border-bottom:1px solid #888;transform:rotate(45deg);transition:transform .18s}
.voice-message-card.is-expanded .voice-toggle-mark{margin-bottom:-4px;transform:rotate(225deg)}
.voice-transcript{box-sizing:border-box;width:fit-content;max-width:100%;margin:5px 0 0;padding:10px 13px;border:1px solid #e9e9e9;border-radius:15px 15px 15px 4px;background:#fff;color:#494949;font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.mine .voice-transcript{border-color:#eee;border-radius:15px 15px 4px 15px;background:#f0f0f0}
.voice-transcript[hidden]{display:none}
.voice-translation{display:block;margin-top:6px;padding-top:6px;border-top:1px solid #e7e7e7;color:#999;font-size:10px}
.transfer-message-card,.location-message-card{width:min(68vw,274px);overflow:hidden;border:1px solid #e4e4e4;border-radius:3px;background:#fff;color:#454545;box-shadow:none}
.mine .transfer-message-card,.mine .location-message-card{background:#fff}
.transfer-message-card{width:min(67vw,264px)}
.transfer-card-head{display:flex;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid #ededed;color:#555;font-size:10px;letter-spacing:.5px}
.transfer-symbol{display:grid;place-items:center;width:22px;height:22px;border:1px solid #e8e8e8;color:#555}
.transfer-symbol svg{width:14px;height:14px;stroke-width:1.35}
.transfer-card-head small{margin-left:auto;color:#999;font-size:9px;letter-spacing:.2px}
.transfer-amount{display:flex;align-items:baseline;gap:5px;margin:12px 13px 0;padding:11px 12px 12px;border-left:2px solid #666;background:#f4f4f4;color:#292929;font-variant-numeric:tabular-nums}
.transfer-amount>span{min-width:28px;color:#777;font-size:9px;letter-spacing:.3px}
.transfer-exchange{margin:6px 13px 0;color:#aaa;font-size:8px;line-height:1.5;font-variant-numeric:tabular-nums}
.transfer-parties{display:flex;align-items:baseline;gap:5px;margin:0 13px;padding:9px 0 7px;border-bottom:1px solid #ededed;color:#999;font-size:8px}
.transfer-parties strong{overflow:hidden;color:#666;font-size:9px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.transfer-parties i{margin:0 2px;color:#bbb;font-size:8px;font-style:normal}
.transfer-amount span{color:#777;font-size:12px}
.transfer-amount strong{font-family:Georgia,"Times New Roman",serif;font-size:29px;font-weight:400;letter-spacing:-.5px;line-height:1.1}
.transfer-note{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:baseline;gap:8px;margin:0;padding:11px 13px 12px}
.transfer-note small{color:#aaa;font-size:8px;letter-spacing:.7px}
.transfer-note p{margin:0;color:#696969;font-size:10px;line-height:1.6;overflow-wrap:anywhere}
.transfer-note-translation{display:block;margin-top:6px;padding-top:6px;border-top:1px solid #e7e7e7;color:#999;font-size:10px}
.transfer-actions{display:flex;gap:12px;justify-content:flex-end;margin:0 13px;padding:9px 0 11px;border-top:1px solid #ededed}
.transfer-actions button{padding:3px 0;border:0;background:none;color:#555;font:inherit;font-size:10px;letter-spacing:.4px;cursor:pointer}
.transfer-actions button+button{color:#999}
.location-message-card{width:min(68vw,274px)}
.location-map{position:relative;height:105px;overflow:hidden;background:#ededeb}
.location-map-placeholder{background:#f0f0ee}
.location-placeholder-art{display:block;width:100%;height:100%}
.location-tiles{position:absolute;display:grid;grid-template-columns:repeat(2,256px);grid-auto-rows:256px;width:512px;height:512px}
.location-tiles img{display:block;width:256px;height:256px;filter:grayscale(1) contrast(.94)}
.location-pin{position:absolute;z-index:2;top:50%;left:50%;display:grid;place-items:center;width:29px;height:29px;border:2px solid #fff;border-radius:50%;background:#333;color:#fff;box-shadow:0 2px 8px #0003;transform:translate(-50%,-50%)}
.location-pin svg{width:15px;height:15px;stroke-width:1.8}
.location-attribution{position:absolute;z-index:3;right:4px;bottom:3px;padding:2px 3px;background:#fffffff0;color:#555;font-size:7px;line-height:1.2;text-decoration:none;white-space:nowrap}
.location-info{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:11px 13px;padding:13px}
.location-name{display:grid;gap:5px;min-width:0}
.location-name small,.location-distance small,.location-detail small{color:#aaa;font-size:8px;letter-spacing:.7px}
.location-name strong{overflow:hidden;color:#383838;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.location-distance{display:grid;gap:5px;justify-items:end;min-width:70px;padding-left:13px;border-left:1px solid #e7e7e7;text-align:right}
.location-distance strong{max-width:105px;overflow:hidden;color:#555;font-family:Georgia,"Times New Roman",serif;font-size:13px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.location-detail{grid-column:1/-1;display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;margin:0;padding-top:9px;border-top:1px solid #ededed;color:#777;font-size:9px;line-height:1.55;overflow-wrap:anywhere}
.location-card-foot{display:flex;align-items:center;justify-content:space-between;padding:7px 13px;border-top:1px solid #ededed;color:#aaa;font-size:8px;letter-spacing:.5px}
.location-card-foot small{color:#777;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px}
.image-send-choices{display:grid;gap:7px}
.image-send-choices>button{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid #eee;text-align:left}
.image-choice-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#f2f2f2;color:#555}
.image-choice-icon svg{width:19px;height:19px}
.image-send-choices>button>span:nth-child(2){display:grid;gap:4px}
.image-send-choices strong{font-size:12px;font-weight:500}
.image-send-choices small{color:#999;font-size:9px}
.image-send-choices>button>i{margin-left:auto;color:#999;font-size:19px;font-style:normal}
.image-description-form textarea{display:block;width:100%;min-height:105px;max-height:180px;margin-top:8px;padding:10px;border:1px solid #e7e7e7;border-radius:0;background:#fafafa;font-size:12px;line-height:1.7}
.image-ratio-select{min-width:0;margin:12px 0 16px;padding:0;border:0}
.image-ratio-select legend{margin-bottom:8px;color:#888;font-size:10px}
.image-ratio-scroll{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.image-ratio-scroll::-webkit-scrollbar{display:none}
.image-ratio-scroll label{position:relative;flex:0 0 56px;cursor:pointer;scroll-snap-align:start}
.image-ratio-scroll input{position:absolute;width:1px;height:1px;opacity:0}
.image-ratio-scroll label>span{display:grid;justify-items:center;align-content:center;gap:4px;height:58px;border-bottom:1px solid #e8e8e8;color:#999}
.image-ratio-scroll label>span>i{display:block;width:22px;height:22px;max-width:34px;border:1px solid #bdbdbd;background:#f5f5f4}
.image-ratio-scroll label>span>small{font-size:8px;line-height:1.2}
.image-ratio-scroll label>span>em{font-size:7px;font-style:normal;color:#aaa;line-height:1}
.image-ratio-scroll input:checked+span{border-color:#444;color:#444}
.image-ratio-scroll input:checked+span>i{border-color:#555;background:#ececea}
.transfer-composer .transfer-amount-input{display:flex;align-items:center;gap:8px;margin:6px 0 16px;border-bottom:1px solid #ddd}
.transfer-composer .transfer-amount-input span{font-size:20px;color:#777}
.transfer-composer .transfer-amount-input input{margin:0;padding:10px 0;border:0;background:transparent;font-size:28px}
.transfer-composer>label>input,.location-composer>label>input{border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;padding:10px 0}
.location-composer{display:grid;gap:5px}
.location-coordinates-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 15px;padding:10px 0;border-bottom:1px solid #eee;color:#aaa;font-size:9px}
.location-coordinates-row span{min-width:0;flex:1;line-height:1.5}
.location-coordinates-row button{color:#686868;font-size:10px}
.location-coordinates-row button:disabled{opacity:.45;cursor:wait}
.location-coordinate-manual{display:grid!important;gap:4px;margin:0 0 8px!important;color:#999!important;font-size:9px!important}
.location-coordinate-manual input{margin:0!important;padding:9px 0!important;color:#555}
.voice-composer{display:grid;gap:16px}
.voice-composer-status{display:flex;align-items:center;gap:9px;padding:13px 0;border-bottom:1px solid #eee;color:#777;font-size:11px}
.voice-composer-status i{width:7px;height:7px;border-radius:50%;background:#b6b6b6}
.voice-composer-status time{margin-left:auto;color:#aaa;font-size:10px;font-variant-numeric:tabular-nums}
.voice-composer-preview{display:flex;align-items:center;gap:10px;min-height:0}
.voice-composer-preview:empty{display:none}
.voice-composer-preview audio{width:100%;height:36px}
.voice-composer-preview button{flex:none;color:#999;font-size:10px}
.voice-composer-actions{display:flex;gap:9px}
.voice-composer-actions button{flex:1;padding:12px 8px;border:1px solid #e6e6e6;color:#555;font-size:11px}
.voice-composer-actions button[data-voice-send]{background:#333;color:#fff;border-color:#333}
.voice-composer-actions button:disabled{opacity:.35;cursor:default}
.sheet.is-centered-panel .voice-composer{display:grid;gap:9px}
.sheet.is-centered-panel .voice-composer label{margin:4px 0 8px;color:#777;font-size:11px}
.sheet.is-centered-panel .voice-composer input,.sheet.is-centered-panel .voice-composer textarea{display:block;width:100%;margin:7px 0 0;padding:10px 0;border:0;border-bottom:1px solid #dedede;border-radius:0;background:transparent;color:#4b4b4b;font-size:13px;line-height:1.7}
.sheet.is-centered-panel .voice-composer input{max-width:120px;font-variant-numeric:tabular-nums}
.sheet.is-centered-panel .voice-composer textarea{min-height:96px;max-height:180px;resize:vertical}
.voice-composer-hint{margin:0 0 8px;color:#aaa;font-size:9px;line-height:1.7}
.image-preview-large{display:block;width:100%;max-height:65vh;object-fit:contain}
/* Full-screen text-first video call */
.video-call-screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;min-height:100dvh;background:#fff;color:#242424;padding:env(safe-area-inset-top) 0 0;animation:appear .18s ease}
.video-call-header{height:74px;flex:none;display:flex;align-items:center;gap:16px;padding:0 clamp(18px,5vw,52px);border-bottom:1px solid #ededed}
.video-call-brand{display:flex;align-items:baseline;gap:7px;min-width:0;max-width:100%;font-size:44px;white-space:nowrap}
.video-call-title{display:block;flex:none;width:max-content;padding:0;background:none;font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:1em;line-height:1;font-weight:400;letter-spacing:-1.5px;color:#292929;white-space:nowrap}
.video-call-brand .chat-character-name{flex:0 1 auto;min-width:0;color:#aaa;font-family:inherit;font-size:12px;font-style:normal;font-weight:300;line-height:1}
.video-call-callee{display:flex;flex:none;align-items:baseline;gap:5px;margin-left:11px;color:#aaa;font-size:12px;font-weight:300;line-height:1;white-space:nowrap}
.video-call-callee i,.video-call-return>i{width:6px;height:6px;border-radius:50%;background:#777;flex:none}
.video-call-screen.is-minimized{display:none!important;pointer-events:none}
.video-call-return{position:absolute;z-index:5;align-self:flex-start;width:fit-content;max-width:100%;margin:0;display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border:1px solid #e8e8e8;border-radius:999px;background:#fff;color:#333;box-shadow:0 3px 12px #0000000c;text-align:left}
.video-call-return>span:first-child{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#242424;color:#fff}
.video-call-return>span:first-child svg{width:16px;height:16px}
.video-call-return>span:nth-child(2){display:grid;gap:3px}
.video-call-return strong{font:italic 13px/1 Georgia,"Times New Roman",serif;font-weight:400}
.video-call-return small{font-size:8px;color:#999}
.video-call-return>i{margin-left:1px;transition:background .2s ease}
.video-call-return>i{background:#151515}
.video-call-return.has-reply>i{background:#55a879}
.video-call-spacer{flex:1}
.video-call-stage{position:relative;display:flex;flex:1;min-height:0;width:100%;max-width:900px;margin:0 auto;padding:18px clamp(18px,5vw,52px) 8px;--video-call-pip-height:clamp(139px,29.333vw,235px)}
.video-call-messages{width:100%;min-height:0;overflow:auto;scrollbar-width:thin;padding:calc(var(--video-call-pip-height) + 8px) 0 18px;display:flex;flex-direction:column;overscroll-behavior:contain}
.video-call-messages .message{max-width:min(78%,650px)}
.video-call-messages .message .avatar{width:34px;height:34px;font-size:15px}
.video-call-messages .video-call-message{align-items:flex-start;margin:0;max-width:min(82%,680px)}
.video-call-messages .video-call-message .avatar{width:28px;height:28px;font-size:13px}
.video-call-messages .video-call-message .message-content{flex:1;min-width:0;padding:1px 0}
.video-call-messages .video-call-message{animation:none}
.video-call-messages>.video-call-message{width:100%;max-width:100%;flex:none;align-self:stretch;align-items:flex-start;gap:10px;margin:0 0 22px;padding:0 2px;}
.video-call-messages>.video-call-message{flex-direction:row;}
.video-call-messages>.video-call-message.mine{flex-direction:row-reverse;}
.video-call-messages>.video-call-message.is-grouped{margin-top:-13px}
.video-call-messages>.video-call-message .avatar{width:30px;height:30px;flex:0 0 30px;margin-top:1px;border:0;font-size:13px;}
.video-call-messages>.video-call-message .message-content{display:flex;flex:0 1 min(76%,620px);min-width:0;max-width:min(76%,620px);width:auto;padding:1px 0;}
.video-call-messages>.video-call-message.mine .message-content{align-items:flex-end;text-align:right;}
.video-call-text{color:#171717;font-size:15px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.video-call-action{color:#aaa;font-style:italic}
.video-call-pip{position:absolute;z-index:2;right:clamp(18px,5vw,52px);top:14px;width:clamp(104px,22vw,176px);aspect-ratio:3/4;overflow:hidden;background:#111;color:#fff;box-shadow:0 4px 22px #0002}
.video-call-pip video{width:100%;height:100%;display:block;object-fit:cover}
.video-call-pip.is-selfie video{transform:scaleX(-1)}
.video-call-pip.is-off{background:#050505}
.video-call-camera-off{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#777}
.video-call-camera-off[hidden]{display:none}
.video-call-camera-off svg{width:21px;height:21px;stroke-width:1.3}
.video-call-camera-off small{font-size:9px;letter-spacing:.3px}
.video-call-self-label{position:absolute;bottom:8px;left:9px;font-size:10px;color:#fff;text-shadow:0 1px 4px #000}
.video-call-footer{flex:none;padding:0 clamp(18px,5vw,52px) 15px;background:#fff}
.video-call-hint{max-width:790px;margin:0 auto 10px;color:#999;font-size:10px;line-height:1.5}
.video-call-composer{max-width:790px;margin:0 auto;display:flex;align-items:flex-end;gap:10px;padding:12px 14px 12px 17px;border:1px solid #e5e5e5;background:#f7f7f7}
.video-call-composer textarea{min-height:24px;max-height:100px;line-height:24px;color:#333}
.video-call-composer button{width:30px;height:30px;flex:none;display:grid;place-items:center;background:#242424;color:#fff}
.video-call-composer button svg{width:16px;height:16px}
.video-call-controls{height:66px;display:flex;align-items:center;justify-content:center;gap:24px}
.video-call-controls button{min-width:72px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#555}
.video-call-controls button>span{width:36px;height:36px;display:grid;place-items:center;border:1px solid #ddd;border-radius:50%;background:#fff}
.video-call-controls button svg{width:17px;height:17px}
.video-call-controls button small{font-size:9px;color:#888}
.video-call-controls .video-call-camera-toggle.is-on>span{background:#242424;border-color:#242424;color:#fff}
.video-call-controls .video-call-end>span{background:#272727;color:#fff;border-color:#272727;font-size:25px;line-height:1}
@media(max-width:520px){.video-call-header{height:66px}.video-call-stage{padding:12px 17px 6px;--video-call-pip-height:141px}.video-call-pip{right:17px;top:10px;width:106px}.video-call-messages{padding-top:calc(var(--video-call-pip-height) + 10px)}.video-call-messages>.video-call-message .message-content{flex-basis:min(78%,620px);max-width:min(78%,620px)}.video-call-text{font-size:15px;line-height:1.72}.video-call-messages .bubble{font-size:13px}.video-call-footer{padding-left:17px;padding-right:17px}.video-call-controls{height:62px;gap:30px}}
.video-call-controls{height:auto;max-width:790px;margin:0 auto;padding:3px 0 12px;justify-content:space-around;gap:10px}
.video-call-controls button{min-width:64px;gap:4px}
.video-call-controls button>span{width:38px;height:38px}
.video-call-controls button small{font-size:9px;white-space:nowrap}
.video-call-controls button:disabled{opacity:.4;cursor:default}
.video-call-composer{min-height:48px;align-items:center;gap:9px;padding:6px 7px 6px 16px;border-radius:24px;background:#f5f5f5;border-color:#e9e9e9}
.video-call-composer textarea{min-height:26px;max-height:105px;line-height:22px;align-self:center;overflow-y:auto}
.video-call-composer button{width:34px;height:34px;border-radius:50%;background:#282828}
.video-call-composer button{display:grid;place-items:center;align-self:center;padding:0;line-height:0;box-sizing:border-box}
.video-call-composer button svg{display:block;width:18px;height:18px;flex:none;margin:0;transform:none}
.video-call-composer,.video-call-composer textarea{-webkit-tap-highlight-color:transparent}
.video-call-composer textarea,.video-call-composer textarea:focus,.video-call-composer textarea:focus-visible,.video-call-composer textarea:active{appearance:none;-webkit-appearance:none;border:0;outline:none!important;box-shadow:none!important;background-color:transparent!important}
.video-call-hint:empty{display:none}
.video-call-composer textarea{min-width:0;flex:1}
.video-call-composer .video-call-reply{background:#e8e8e8;color:#555}
.video-call-composer .video-call-reply svg{width:18px;height:18px;stroke-width:1.5}
.video-call-controls .video-call-retry svg{width:20px;height:20px;stroke-width:1.5}
.video-call-composer button:disabled{opacity:.4;cursor:default}
@media(max-width:520px){.video-call-controls{height:auto;gap:7px;padding-bottom:10px}.video-call-controls button{min-width:57px}.video-call-controls button>span{width:36px;height:36px}.video-call-controls button small{font-size:8px}.video-call-composer{min-height:46px}}

/* Keep the online Memory settings panel vertically scrollable without sideways page drift. */
.settings-content.is-memory-settings{min-width:0;max-width:100%;overflow:hidden;overscroll-behavior-x:none}
.is-memory-settings #onlineSettingsPanel{width:100%;min-width:0;max-width:100%;flex:1 1 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-x:none;overscroll-behavior-y:contain;touch-action:pan-y}
.is-memory-settings .memory-page,.is-memory-settings .memory-settings-fold,.is-memory-settings .memory-settings-content,.is-memory-settings .memory-control-card,.is-memory-settings .memory-round-setting,.is-memory-settings .memory-level-grid,.is-memory-settings .memory-level-card,.is-memory-settings .memory-advanced,.is-memory-settings .memory-advanced-grid,.is-memory-settings .memory-settings-footer{min-width:0;max-width:100%}
.is-memory-settings .memory-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Keep each worldbook entry's expand target and actions on a single compact row. */
.worldbook-entry-row{position:relative;display:block;min-width:0}
.worldbook-entry-disclosure{width:100%}
.worldbook-entry-disclosure>summary{padding-right:88px}
.worldbook-entry-disclosure>summary>i{display:none}
.worldbook-entry-row .worldbook-entry-toggle{position:absolute;top:1px;right:52px;z-index:1}
.role-worldbook-entry-actions{position:absolute;top:0;right:0;display:flex;align-items:center;gap:10px;margin:0;padding:0}
.role-worldbook-entry-actions button,.global-worldbook-actions button{padding:2px 0;border-bottom:1px solid #e5e5e5;color:#888;font-size:8px;line-height:1.5;white-space:nowrap}
.global-worldbook-library>button{flex:none;padding:5px 0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:9px;white-space:nowrap}
.global-worldbook-library>.global-worldbook-delete-book{color:#999}
.global-worldbook-editor textarea,.role-worldbook-entry-form textarea{min-height:170px;max-height:45vh;line-height:1.7;overflow-y:auto}
@media(pointer:coarse){.global-worldbook-editor input,.global-worldbook-editor textarea,.role-worldbook-entry-form input,.role-worldbook-entry-form textarea,.role-worldbook-name-form input,.global-worldbook-book-form input{font-size:16px;line-height:1.5}}
.global-worldbook-entry-top{position:relative;display:block;padding-right:0}
.global-worldbook-entry details{width:100%;min-width:0}
.global-worldbook-entry summary{padding-right:88px}
.global-worldbook-toggle{position:absolute;top:0;right:52px}
.global-worldbook-actions{position:absolute;top:0;right:0;display:flex;align-items:center;gap:10px;margin:0}
.global-worldbook-entry details>p{margin-right:0}
@media(max-width:380px){.global-worldbook-library{gap:8px}.global-worldbook-library>button{font-size:8px}.role-worldbook-entry-actions,.global-worldbook-actions{gap:7px}.worldbook-entry-disclosure>summary,.global-worldbook-entry summary{padding-right:84px}.worldbook-entry-row .worldbook-entry-toggle,.global-worldbook-toggle{right:49px}}
@media(max-width:480px){.video-call-brand{font-size:40px}.video-call-brand .chat-character-name{max-width:20vw;font-size:11px}.video-call-callee{margin-left:7px;font-size:11px}}
@media(max-width:480px){.message-type-image:not(.message-image-description) .message-content{width:min(62vw,240px);max-width:calc(100% - 42px)}.message-image img{max-height:320px}.image-description-card{width:min(var(--image-frame-width,240px),62vw)}.voice-message-wrap{width:min(var(--voice-width,180px),76vw)}.transfer-message-card,.location-message-card{width:min(66vw,250px)}}

/* The header and composer stay outside the independently scrolling call log. */
.video-call-screen{inset:auto 0;top:var(--app-viewport-top,0px);height:var(--app-viewport-height,100dvh);min-height:0;overflow:hidden;animation:none}
.video-call-header{position:relative;z-index:3;flex-shrink:0;background:#fff}
.video-call-stage{flex:1 1 0;overflow:hidden}
.video-call-messages{height:100%;min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.video-call-messages>.message{flex-shrink:0}
.video-call-composer textarea{font-size:16px}
.video-call-brand .chat-character-name{font-family:var(--iris-character-font,"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes","Songti SC",serif)}
.chat-character-name{font-family:var(--iris-character-font,"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes","Songti SC",serif)}
.chat-reply-indicator{display:inline-flex;align-items:baseline;gap:3px;margin-left:.45em;color:#aaa;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-size:10px;font-style:normal;font-weight:400;letter-spacing:0;line-height:1;white-space:nowrap;vertical-align:baseline}
.chat-reply-label{color:#aaa}
.chat-reply-dots{display:inline-flex;align-items:center;gap:2px;height:9px}
.chat-reply-dots i{width:3px;height:3px;border-radius:50%;background:#aaa;animation:chat-reply-wave .85s ease-in-out infinite;will-change:transform,opacity}
.chat-reply-dots i:nth-child(2){animation-delay:.12s}
.chat-reply-dots i:nth-child(3){animation-delay:.24s}
@keyframes chat-reply-wave{0%,60%,100%{transform:translateY(1px);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
@media(prefers-reduced-motion:reduce){.chat-reply-dots i{animation:none;opacity:.8}}
.reply-typing-message{pointer-events:none}
.reply-typing-message .message-content{flex:1;min-width:0;max-width:calc(100% - 92px)}
.reply-typing-bubble{display:inline-flex;align-items:center;gap:4px;min-width:38px;padding:12px 14px;border:1px solid #e9e9e9;border-radius:15px 15px 15px 4px;background:#fff}
.reply-typing-bubble i{width:5px;height:5px;border-radius:50%;background:#aaa;animation:chat-reply-wave .85s ease-in-out infinite}
.reply-typing-bubble i:nth-child(2){animation-delay:.12s}
.reply-typing-bubble i:nth-child(3){animation-delay:.24s}
@media(prefers-reduced-motion:reduce){.reply-typing-bubble i{animation:none;opacity:.8}}
.message.has-reply-variants{position:relative;margin-bottom:34px}
.reply-variant-controls{position:absolute;right:0;bottom:-23px;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:19px;color:#aaa}
.reply-variant-controls button{display:grid;width:20px;height:19px;place-items:center;padding:0;color:#888}
.reply-variant-controls button:first-child{grid-column:1;justify-self:start}
.reply-variant-controls button:last-child{grid-column:3;justify-self:end}
.reply-variant-controls button:disabled{color:#ccc;cursor:default}
.reply-variant-controls button svg{width:12px;height:12px;stroke-width:1.6}
.reply-variant-count{grid-column:2;min-width:22px;color:#aaa;font-size:8px;font-variant-numeric:tabular-nums;text-align:center}
.reply-variant-spacer{grid-column:1;min-width:20px}
.actual-time-note{margin:2px 0 0;color:#aaa;font-size:8px;line-height:1.6}
.video-call-callee{font-family:var(--iris-character-font,"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes","Songti SC",serif)}

/* Every full page shares the visible viewport, including while typing. */
.phone{position:fixed;left:0;right:0;top:var(--app-viewport-top,0px);bottom:var(--app-viewport-bottom,0px);height:auto;max-height:none;min-height:0;transition:none}
.settings-screen,.feature-screen{min-height:0;overflow:hidden}
.topbar,.settings-topbar,.feature-page-topbar{flex-shrink:0}
.settings-content,.feature-page-content{flex:1;min-height:0;min-width:0;overflow-x:hidden}
.conversation{min-height:0;overflow-x:hidden;overflow-y:auto}
.conversation>.message{flex-shrink:0}
:where(.conversation,.settings-content,.feature-page-content,#onlineSettingsPanel,.offline-general-settings,.offline-records-list,.global-worldbook-list,.worldbook-entry-list,.api-config-panel,.settings-page-body){overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.profile-dialog{max-height:calc(var(--app-viewport-height,100dvh) - 32px);top:var(--app-viewport-top,0px);bottom:calc(100% - var(--app-viewport-top,0px) - var(--app-viewport-height,100dvh));margin-block:auto;overflow-y:auto}
@media(pointer:coarse){.input-wrap textarea{font-size:16px;line-height:22px;max-height:22px}}

/* Existing chat content stays visible through page changes and updates. */
.conversation .message,.conversation .call-summary-message{animation:none!important}

/* Offline story mode uses named prose blocks instead of chat bubbles. */
.conversation.is-offline-story{display:flex;flex-direction:column;align-items:stretch;padding:20px clamp(20px,5.5vw,52px) 32px}
.conversation.is-offline-story>.offline-prose-entry{position:relative;display:block;width:100%;max-width:100%;margin:0 0 50px;padding:0;overflow:visible}
.conversation.is-offline-story>.offline-stage-fold{display:block;align-self:stretch;margin:-14px 0 28px;padding:5px 0;border:0;background:transparent;color:#aaa;font:inherit;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;letter-spacing:.04em;line-height:1.6;text-align:left;cursor:pointer}
.conversation.is-offline-story>.offline-stage-fold:hover{color:#777}
.offline-prose-heading{display:flex;align-items:flex-start;gap:9px;margin:0 0 clamp(22px,6vh,52px);min-height:0;color:#222}
.offline-prose-author{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.offline-prose-heading .offline-prose-author>strong{font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi","楷体-简","楷体",serif;font-size:clamp(16px,4.5vw,21px);font-weight:400;letter-spacing:.08em;line-height:1.3;writing-mode:horizontal-tb;text-orientation:mixed;overflow-wrap:anywhere}
.offline-prose-excerpt{color:#999;font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi","楷体-简","楷体",serif;font-size:10px;font-weight:400;letter-spacing:.04em;line-height:1.45;white-space:nowrap}
.offline-prose-heading>.message-time{margin-left:auto;color:#aaa;font-family:Georgia,serif;font-size:9px;letter-spacing:.2px;white-space:nowrap}
.offline-prose-reflection{align-self:flex-start;padding:3px 0;color:#999;font-size:8px;letter-spacing:.08em}
.offline-prose-body{width:100%;max-width:none;color:#292929;font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi",serif;font-size:clamp(15px,4.35vw,19px);font-weight:400;letter-spacing:.025em;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;text-indent:2em}
.offline-prose-body .bubble{padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;box-shadow:none}
.offline-prose-quote{margin:0 0 1em;padding:0 0 0 1em;border:0;border-left:1px solid #bbb;color:#888;text-indent:0}
.offline-prose-quote small{font-size:.72em;letter-spacing:.04em}
.offline-prose-quote p{margin:.35em 0 0;font-size:.82em;line-height:1.8}
.offline-prose-translation{margin:12px 0 0 2em;color:#aaa;font-family:system-ui,sans-serif;font-size:11px;line-height:1.7;letter-spacing:0;white-space:pre-wrap}
.offline-draft-cot-text{margin:0 0 1em;text-indent:0;white-space:pre-wrap;overflow-wrap:anywhere}
.offline-prose-entry .reply-variant-controls{position:relative;inset:auto;display:flex;justify-content:space-between;margin:12px 0 0}
.offline-prose-entry .reply-variant-count{margin:auto}
@media(max-width:480px){.conversation.is-offline-story{padding:16px 20px 28px}.conversation.is-offline-story>.offline-prose-entry{margin-bottom:38px}.offline-prose-heading{margin-bottom:clamp(18px,4vh,30px)}.offline-prose-body{font-size:clamp(15px,4.25vw,17px);line-height:1.95}}

.version-actions #checkVersion,.version-actions #updateVersion{height:44px;min-height:44px;align-self:stretch}
.version-diagnostics{margin-top:20px;color:#777;font-size:11px}
.version-diagnostics summary{cursor:pointer}
.version-diagnostics p{line-height:1.7}
.version-diagnostics textarea{height:180px;max-height:180px;margin-top:12px;font:11px/1.5 monospace;overflow:auto;user-select:text}
.video-call-screen{padding-top:0}
.video-call-header{height:auto;min-height:0;align-items:flex-start;padding:24px clamp(18px,5vw,52px) 9px}
@media(max-width:480px){.video-call-header{padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:7px}}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):focus,textarea:focus,select:focus,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):focus-visible,textarea:focus-visible,select:focus-visible{outline:none!important;outline-offset:0!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}

/* Keep worldbook editors and their save controls inside the visible area above mobile keyboards. */
@media(pointer:coarse){
 .role-worldbook-entry-form:focus-within,.role-worldbook-name-form:focus-within,.global-worldbook-editor:focus-within,.global-worldbook-book-form:focus-within{max-height:min(42vh,max(148px,calc(var(--app-viewport-height,100dvh) - 250px)));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding-block:10px}
 .role-worldbook-entry-form:focus-within textarea,.global-worldbook-editor:focus-within textarea{min-height:88px;max-height:min(45vh,max(88px,calc(var(--app-viewport-height,100dvh) - 350px)));overflow-y:auto}
 .role-worldbook-entry-form input,.role-worldbook-entry-form textarea,.role-worldbook-name-form input,.global-worldbook-editor input,.global-worldbook-editor textarea,.global-worldbook-book-form input{font-size:14px;line-height:1.5}
 .role-worldbook-entry-form:focus-within>div,.global-worldbook-editor:focus-within>div{position:sticky;bottom:0;z-index:2}
}

.api-manual-model-field[hidden],#apiManualModelField[hidden]{display:none!important}

/* Global worldbook controls: actions stay on one line, books scroll below. */
.global-worldbook-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(10px,3vw,18px);margin:0;padding:4px 0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.global-worldbook-toolbar::-webkit-scrollbar,.global-worldbook-library::-webkit-scrollbar{display:none}
.global-worldbook-toolbar button{flex:none;gap:4px;padding:6px 0;border:0;border-bottom:1px solid #e6e6e6;background:transparent;color:#777;font-size:9px;letter-spacing:0;white-space:nowrap}
.global-worldbook-toolbar .global-worldbook-import{color:#555}
.global-worldbook-toolbar .global-worldbook-delete-book{color:#999}
.global-worldbook-library{display:flex;align-items:center;gap:7px;min-height:42px;padding:7px 0 9px;border-bottom:1px solid #eee;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch}
.global-worldbook-book{display:inline-flex;flex:none;align-items:center;gap:7px;min-height:32px;padding:3px 8px;border:1px solid #ededed;border-radius:18px;background:#fff}
.global-worldbook-book.is-selected{border-color:#cfcfcf;background:#f7f7f7}
.global-worldbook-book-name{max-width:160px;overflow:hidden;padding:3px 0;background:transparent;color:#888;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.global-worldbook-book.is-selected .global-worldbook-book-name{color:#444}
.global-worldbook-scope{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border:0;color:#999;font-size:9px}
.global-worldbook-scope>div{display:flex;align-items:center;gap:3px;padding:2px;border:1px solid #ececec;border-radius:14px;background:#fff}
.global-worldbook-scope button{padding:5px 8px;border:0;border-radius:11px;background:transparent;color:#999;font-size:8px;line-height:1.2;white-space:nowrap}
.global-worldbook-scope button[aria-pressed="true"]{background:#eee;color:#333}
.global-worldbook-book-toggle{position:relative;flex:none;width:27px;height:16px;padding:0;border:0;border-radius:12px;background:#ddd;transition:background .18s}
.global-worldbook-book-toggle i{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s}
.global-worldbook-book-toggle.is-on{background:#555}
.global-worldbook-book-toggle.is-on i{transform:translateX(11px)}
.global-worldbook-book-form{grid-template-columns:minmax(0,1fr) auto auto}
@media(max-width:380px){.global-worldbook-toolbar{gap:12px}.global-worldbook-toolbar button{font-size:8px}.global-worldbook-book{gap:6px;padding-right:7px;padding-left:7px}.global-worldbook-book-name{max-width:130px}}

/* Keep touch double-taps from zooming or nudging the whole app; vertical scrolling remains available. */
html,body,.phone{touch-action:manipulation}

/* Long-press message actions and batch selection. */
.conversation>.message{position:relative}
.message-action-menu{position:absolute;z-index:5;top:-34px;left:46px;display:flex;align-items:center;gap:2px;padding:4px 5px;border:1px solid #e8e8e8;border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 5px 18px #00000012;white-space:nowrap;box-sizing:border-box;overflow-x:auto;max-width:calc(100vw - 32px)}
.message.mine .message-action-menu{right:0;left:auto}
/* First-message toolbars stay below the header in both chat modes. */
.conversation>:is(.message,.call-summary-message)[data-message-index="0"]>.message-action-menu{top:6px}
.message-action-menu button{min-height:27px;padding:0 9px;border-radius:13px;color:#555;font-size:10px;line-height:1}
.message-action-menu button:hover{background:#f1f1f1}
.message-action-menu button:disabled{color:#c6c6c6;cursor:default}
.message.selection-mode{cursor:pointer}
.message.selection-mode .message-content{transition:transform .16s ease}
.message.is-selected .bubble,.message.is-selected .transfer-message-card,.message.is-selected .location-message-card{outline:1px solid #777;outline-offset:2px}
.message-selection-check{position:absolute;top:50%;right:1px;display:grid;width:19px;height:19px;place-items:center;border:1px solid #c9c9c9;border-radius:50%;background:#fff;color:#fff;font-size:11px;transform:translateY(-50%)}
.message.is-selected .message-selection-check{border-color:#555;background:#555}
.message-selection-bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:12px;margin:8px -8px 0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ededed;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);font-size:11px}
.message-selection-bar span{margin-right:auto;color:#777}
.message-selection-bar button{padding:8px 11px;border-radius:16px;color:#555;font-size:11px}
.message-selection-bar [data-selection-bookmark]{padding:8px 13px;border-radius:18px;background:#333;color:#fff;font-weight:500}
.message-selection-bar [data-selection-cancel]{color:#888}
.message-selection-bar [data-selection-delete]{border:1px solid #e4d8d8;background:transparent;color:#9a6868}
.message-selection-bar button:disabled{opacity:.4;cursor:default}
.message-edit-form label{display:block;margin-bottom:15px;color:#777;font-size:11px}
.sheet.is-message-edit .sheet-head h2{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:27px;font-style:italic;font-weight:400;letter-spacing:.1px;color:#555}
.message-edit-form textarea{display:block;width:100%;min-height:76px;max-height:35vh;margin-top:8px;padding:10px 12px;border:1px solid #e7e7e7;border-radius:12px;background:#fafafa;color:#444;font-size:13px;line-height:1.65;resize:vertical}
@media(max-width:480px){.message-action-menu{left:42px;gap:0;padding:3px}.message.mine .message-action-menu{right:0;left:auto}.message-action-menu button{padding:0 7px;font-size:10px}.message-selection-bar{margin-inline:-4px}}

/* Show the quoted source as a distinct inset card in the sent message. */
.bubble-quote{display:block;margin:0 0 9px;padding:8px 10px;border:0;border-left:2px solid #b6b6b6;border-radius:0 9px 9px 0;background:#ffffffa8;color:#777}
.bubble-quote-speaker{display:block;margin-bottom:3px;color:#777;font-size:10px;font-weight:500;line-height:1.35}
.bubble-quote p{display:-webkit-box;margin:0;overflow:hidden;color:#858585;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.bubble-quote small{display:block;margin-top:3px;color:#aaa;font-size:9px;line-height:1.4}
.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere}
.quote-composer-preview{display:flex;align-items:flex-start;gap:12px;width:min(100%,560px);margin:0 auto 8px;padding:8px 12px;border-left:2px solid #aaa;background:#f7f7f7;color:#777}
.quote-composer-preview>div{flex:1;min-width:0}
.quote-composer-preview span{display:block;margin-bottom:3px;font-size:9px;font-weight:500}
.quote-composer-preview p{display:-webkit-box;margin:0;overflow:hidden;color:#999;font-size:10px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.quote-composer-preview button{flex:none;padding:0 3px;color:#999;font-size:18px;line-height:1}
@media(max-width:480px){.quote-composer-preview{margin-bottom:6px;padding:7px 10px}.bubble-quote{padding:7px 9px}}

.api-saved-url-tabs{display:flex;align-items:stretch;gap:16px;min-width:0;overflow-x:auto;margin:4px 0 0;padding:2px 0 0;border-bottom:1px solid #eee;scrollbar-width:none;-webkit-overflow-scrolling:touch}.api-saved-url-tabs::-webkit-scrollbar{display:none}.api-saved-url-tab{position:relative;flex:none;max-width:45%;padding:8px 2px 9px;overflow:hidden;background:transparent;color:#aaa;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.api-saved-url-tab:after{position:absolute;right:20%;bottom:-1px;left:20%;height:1px;background:#444;content:"";opacity:0}.api-saved-url-tab.active{color:#444}.api-saved-url-tab.active:after{right:0;left:0;opacity:1}.api-config-list>.api-profile-card[hidden]{display:none}.api-profile-card{border-top:0}.api-profile-card.is-default{border-top:0}

/* Unread inner voice appears once, then rests quietly on the avatar. */
.message .reflection-avatar{position:relative;overflow:visible;padding:0;cursor:pointer}
.reflection-unread-tag{position:absolute;z-index:2;right:-5px;top:-10px;display:grid;place-items:center;width:31px;height:20px;pointer-events:none}
.reflection-unread-tag.is-new{animation:reflection-tag-appear .45s cubic-bezier(.22,.61,.36,1) both}
.reflection-unread-tag>svg{position:absolute;inset:0;display:block;width:31px;height:20px;fill:#f8f8f8;stroke:#aaa;stroke-width:.8;stroke-linejoin:round;filter:drop-shadow(0 1px 1.5px #00000010)}
.reflection-tag-dots{position:relative;display:flex;align-items:center;gap:3.5px;padding-top:2px}
.reflection-tag-dots i{display:block;width:2.8px;height:2.8px;border-radius:50%;background:#444;opacity:.5}
.reflection-unread-tag.is-new .reflection-tag-dots i{animation:reflection-tag-dot 1.65s ease-in-out 2}
.reflection-tag-dots i:nth-child(2){animation-delay:.16s}
.reflection-tag-dots i:nth-child(3){animation-delay:.32s}
@keyframes reflection-tag-appear{from{opacity:0;transform:translate(-3px,4px) scale(.9)}to{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes reflection-tag-dot{0%,50%,100%{opacity:.5;transform:translateY(0)}22%{opacity:1;transform:translateY(-3px)}}
.reflection-note{display:grid;gap:20px;max-height:50dvh;overflow-y:auto;overscroll-behavior:contain}
.reflection-note section+section{border-top:1px solid #ededed;padding-top:18px}
.reflection-note small{color:#999;font-size:10px;letter-spacing:1px}
.reflection-note p{margin:8px 0 0;color:#555;font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.reflection-note p.reflection-translation{margin-top:4px;padding-top:5px;border-top:1px solid #eee;color:#999;font-size:11px;line-height:1.65}
@media(prefers-reduced-motion:reduce){.reflection-unread-tag,.reflection-tag-dots i{animation:none}}

/* Shared panel structure; app themes use data attributes, never alternate class names. */
.sheet.is-centered-panel.is-reflection-app{padding:0;width:calc(100% - 28px);max-width:440px;height:min(760px,calc(var(--app-viewport-height,100dvh) - 44px));max-height:calc(var(--app-viewport-height,100dvh) - 44px);display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:#fff;border:1px solid #e9e9e9;isolation:isolate}
.sheet.is-reflection-app>.sheet-head{display:none}
.reflection-panel-host{display:flex;flex-direction:column;flex:1;min-height:0}
.reflection-panel{display:flex;flex-direction:column;flex:1;min-height:0;background:#fff;color:#111;animation:reflection-panel-in .2s ease}
.reflection-header{display:flex;align-items:center;gap:8px;flex:none;min-height:66px;padding:14px 16px}
.reflection-header strong{flex:1;font-size:18px;text-align:center;line-height:1.4;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reflection-header button{display:grid;place-items:center;padding:5px;min-width:32px;height:34px;color:inherit}
.reflection-header svg{width:23px;height:23px;stroke-width:1.8}
.reflection-header-actions{display:flex;align-items:center;gap:16px}
.reflection-tools{display:flex;align-items:center;justify-content:space-between;gap:20px}
.reflection-tools svg{flex-shrink:0;width:23px;height:23px;stroke-width:1.7}
.reflection-more-button svg circle{fill:currentColor;stroke-width:1.6}
.reflection-content{flex:1;min-height:0;padding:20px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;overflow-wrap:anywhere}
.reflection-label{color:#969696;font-size:11px;line-height:1.6}
.reflection-text{margin:8px 0 0;white-space:pre-wrap;font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.reflection-translation{display:block;margin:4px 0 0;color:#999;font-size:clamp(9px,2.7vw,11px);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.reflection-title-translation{margin-top:-16px;margin-bottom:18px}
.reflection-item+.reflection-item{margin-top:26px}
.reflection-meta{font-size:11px;color:#969696;line-height:1.7}
.reflection-footer{flex:none;padding:15px 20px 22px}
.reflection-footer:empty{display:none}
.reflection-footer>.reflection-tools{width:100%}
.reflection-empty{color:#9a9a9a;font-size:12px;text-align:center;padding:24px 0;line-height:1.8}
.reflection-generate{padding:10px 18px;border:1px solid #ddd;border-radius:22px;font-size:12px;color:#444;background:#fff}
.reflection-generate:disabled{opacity:.5;cursor:wait}
.reflection-error{font-size:11px;color:#a65d5d}
/* Apple Notes: white page, gold navigation and four evenly spaced tools. */
.reflection-panel[data-panel="notes"] .reflection-header{color:#d9b84f;padding:17px 15px;gap:2px}
.reflection-panel[data-panel="notes"] .reflection-header strong{text-align:left;font-size:17px;font-weight:400}
.reflection-panel[data-panel="notes"] .reflection-header-actions{gap:15px}
.reflection-panel[data-panel="notes"] .reflection-header .reflection-tools{gap:15px}
.reflection-panel[data-panel="notes"] .reflection-more-button{border:0;border-radius:0;min-width:24px;width:24px;height:24px;padding:0;margin-left:0}
.reflection-panel[data-panel="notes"] .reflection-back{padding:0;min-width:17px}
.reflection-panel[data-panel="notes"] .reflection-back,
.reflection-panel[data-panel="notes"] .reflection-back:hover,
.reflection-panel[data-panel="notes"] .reflection-back:active,
.reflection-panel[data-panel="notes"] .reflection-back:focus,
.reflection-panel[data-panel="notes"] .reflection-back:focus-visible{
 appearance:none!important;-webkit-appearance:none!important;background:transparent!important;border:0!important;border-radius:0!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;filter:none!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important;touch-action:manipulation
}
.reflection-panel[data-panel="notes"] .reflection-back .reflection-notes-icon{opacity:.78;pointer-events:none}
.reflection-panel[data-panel="notes"] .reflection-notes-icon{display:block;flex:none;object-fit:contain}
.reflection-panel[data-panel="notes"] .reflection-header .reflection-notes-icon{width:clamp(20px,5.7vw,24px);height:clamp(20px,5.7vw,24px)}
.reflection-panel[data-panel="notes"] .reflection-footer .reflection-notes-icon{width:clamp(26px,7.5vw,31px);height:clamp(26px,7.5vw,31px)}
.reflection-panel[data-panel="notes"] .reflection-content{padding:12px 25px 35px}
.reflection-panel[data-panel="notes"] .reflection-meta{text-align:center;color:#a3a3a3;margin-bottom:24px}
.reflection-title{font-size:27px;line-height:1.35;letter-spacing:-.7px;margin:0 0 28px;font-weight:700}
.reflection-group+.reflection-group{margin-top:28px}
.reflection-group>.reflection-label{color:#242424;font-size:17px;font-weight:600;margin-bottom:12px}
.reflection-panel[data-panel="notes"] .reflection-item{display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto auto;align-items:start;column-gap:11px;row-gap:0;margin:0;padding:7px 0}
.reflection-panel[data-panel="notes"] .reflection-item>.reflection-label{flex:0 0 20px;width:20px;height:20px;border:1.5px solid #e6be4a;border-radius:50%;margin-top:4px;line-height:17px;text-align:center;color:#fff}
.reflection-panel[data-panel="notes"] .reflection-item>.reflection-label{grid-column:1;grid-row:1 / span 2}
.reflection-panel[data-panel="notes"] .reflection-item>.reflection-text{grid-column:2;grid-row:1;margin:0;font-size:15px;line-height:1.8}
.reflection-panel[data-panel="notes"] .reflection-item>.reflection-translation{grid-column:2;grid-row:2;margin-top:3px}
.reflection-panel[data-panel="notes"] [data-state="done"]>.reflection-label{background:#e6be4a}
.reflection-panel[data-panel="notes"] [data-state="done"] .reflection-text{color:#989898}
.reflection-panel[data-panel="notes"] .reflection-footer{color:#d5ad36;padding:16px 26px 23px}
.reflection-panel[data-panel="notes"] .reflection-footer svg{width:26px;height:26px}
/* ChatGPT reference: blue question pills, uninterrupted answer text, soft composer. */
.reflection-panel[data-panel="gpt"] .reflection-header{padding:15px 20px 20px}
.reflection-panel[data-panel="gpt"] .reflection-header-actions{gap:22px}
.reflection-panel[data-panel="gpt"] .reflection-content{display:flex;flex-direction:column;gap:0;padding:20px 18px 35px}
.reflection-panel[data-panel="gpt"] .reflection-item{margin:0;flex:none}
.reflection-panel[data-panel="gpt"] .reflection-label{display:none}
.reflection-panel[data-panel="gpt"] [data-speaker="character"]{align-self:flex-end;background:#e5f3fd;color:#0072bc;border-radius:26px;max-width:88%;padding:12px 17px;margin:0 0 30px}
.reflection-panel[data-panel="gpt"] .reflection-text{font-size:16px;line-height:1.85;margin:0}
.reflection-panel[data-panel="gpt"] [data-speaker="gpt"]{padding:0 1px}
.reflection-response-tools{color:#656565;margin:17px 0 40px;flex:none}
.reflection-response-tools .reflection-tools{justify-content:flex-start;gap:18px}
.reflection-response-tools svg{width:18px;height:18px}
.reflection-panel[data-panel="gpt"] .reflection-footer{padding:9px 18px 19px}
.reflection-composer{display:flex;align-items:center;gap:13px;background:#f3f3f3;border-radius:30px;padding:9px 10px 9px 14px;color:#999;font-size:16px;white-space:nowrap}
.reflection-composer>span{display:flex;align-items:center;flex:none}
.reflection-composer>span:nth-child(2){flex:1;min-width:0;font-size:14px}
.reflection-composer svg{width:25px;height:25px;color:#111;stroke-width:1.8}
.reflection-composer .reflection-voice{background:#008cff;border-radius:50%;width:35px;height:35px;justify-content:center}
.reflection-composer .reflection-voice svg{color:#fff;width:21px;height:21px}
/* X post detail: identity, full-width body, metadata, action row and bottom navigation. */
.reflection-panel[data-panel="x"] .reflection-header{padding:14px 13px}
.reflection-panel[data-panel="x"] .reflection-content{padding:14px 14px 0}
.reflection-profile{display:flex;align-items:center;gap:10px;margin:0 0 24px;min-width:0}
.reflection-profile>.avatar{display:grid;flex:0 0 43px;width:43px;height:43px;min-width:43px;max-width:43px;overflow:hidden;border:0;border-radius:50%;font-size:18px}
.reflection-profile>.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.reflection-profile>div{min-width:0;flex:1}
.reflection-profile strong{display:block;font-size:16px;line-height:1.4;color:#101419}
.reflection-profile>div>span{display:block;color:#586873;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reflection-draft{flex:none;background:#11171b;border-radius:18px;color:#fff;font-size:12px;padding:5px 12px}
.reflection-panel[data-panel="x"] .reflection-item>.reflection-label{display:none}
.reflection-panel[data-panel="x"] .reflection-text{font-size:18px;line-height:1.6;margin:0;color:#101419}
.reflection-panel[data-panel="x"] .reflection-meta{font-size:12px;margin:26px 0 16px;color:#596a75}
.reflection-post-actions{padding:0 0 20px;color:#566772}
.reflection-post-actions svg{width:23px;height:23px}
.reflection-related{display:flex;justify-content:space-between;padding:12px 0 17px;border-bottom:1px solid #e8ecef;color:#566772;font-size:13px;font-weight:600}
.reflection-panel[data-panel="x"] .reflection-footer{padding:8px 13px 19px;border-top:1px solid #f1f3f4}
.reflection-reply-placeholder{background:#eff3f5;color:#64737d;border-radius:26px;padding:10px 15px;font-size:14px;margin-bottom:21px}
.reflection-panel[data-panel="x"] .reflection-footer>.reflection-tools{padding:0 12px}
.reflection-panel[data-panel="x"] .reflection-footer svg{width:25px;height:25px;stroke-width:1.9}

/* Theme manager and isolated CSS preview. */
.reflection-theme-list{display:grid;gap:9px}
.reflection-theme-list button[data-theme-select]{display:flex;flex-direction:column;gap:5px;align-items:flex-start;text-align:left;border:1px solid #e8e8e8;background:#fafafa;border-radius:13px;padding:16px;width:100%}
.reflection-theme-list button[aria-pressed="true"]{border-color:#777;background:#f0f0f0}
.reflection-theme-list strong{font-size:14px;font-weight:500}
.reflection-theme-list span{font-size:11px;color:#999}
.reflection-theme-custom{display:flex;gap:8px;align-items:center}.reflection-theme-custom>button:last-child{flex:none;font-size:12px;color:#888;padding:10px}
.reflection-editor-actions{display:flex;gap:10px;margin-top:20px;justify-content:space-between}
.reflection-editor-actions button{padding:11px 15px;border:1px solid #e5e5e5;border-radius:12px;font-size:12px}
.reflection-editor-actions button:last-child{background:#333;color:#fff;border-color:#333}
.reflection-editor textarea{display:block;min-height:125px;max-height:250px;resize:vertical;border:1px solid #ddd;border-radius:10px;padding:12px;font:12px/1.7 monospace;margin-top:8px;background:#fafafa}
.reflection-help{font-size:11px;color:#999;line-height:1.8;overflow-wrap:anywhere}
.reflection-preview{display:block;width:100%;height:210px;border:1px solid #eee;border-radius:12px;margin-top:15px;background:white}
.reflection-custom-frame{width:100%;height:100%;border:0;display:block}
.reflection-panel[data-panel="custom"] .reflection-content{padding:0;overflow:hidden}
[data-theme-error]{font-size:12px;color:#a65d5d}
@keyframes reflection-panel-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:360px){.sheet.is-centered-panel.is-reflection-app{width:calc(100% - 16px)}.reflection-header-actions,.reflection-panel[data-panel="notes"] .reflection-header .reflection-tools{gap:10px}.reflection-composer{gap:9px}.reflection-content{padding:16px}}

/* Inner Voice chooser: editorial list instead of a grid of rounded tiles. */
.sheet.is-centered-panel:has(.reflection-theme-list) .sheet-head{margin:0 0 10px}
.sheet.is-centered-panel:has(.reflection-theme-list) .sheet-head h2{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:36px;font-style:italic;letter-spacing:-1.5px;color:#555}
.sheet.is-centered-panel:has(.reflection-editor) .sheet-head h2{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:33px;font-style:italic;letter-spacing:-1.3px;color:#555}
.reflection-theme-list{display:grid;gap:0;border-top:1px solid #ececec}
.reflection-theme-list button[data-theme-select]{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:18px;text-align:left;width:100%;padding:17px 8px;border:0;border-bottom:1px solid #ececec;border-radius:0;background:transparent}
.reflection-theme-list button[data-theme-select] strong{font-size:15px;font-weight:500;letter-spacing:.1px}
.reflection-theme-list button[data-theme-select] span{font-size:11px;color:#999;text-align:right}
.reflection-theme-list button[data-theme-select][aria-pressed="true"]:after{content:'✓';font-size:13px;color:#777;margin-left:4px}
.reflection-theme-list button[data-theme-select][aria-pressed="true"]{background:transparent;border-color:#ececec}
.reflection-theme-custom{border-bottom:1px solid #ececec}
.reflection-theme-custom>button[data-theme-select]{width:auto;flex:1;border-bottom:0}
.reflection-theme-custom>button:last-child{border:0;border-left:1px solid #ececec;border-radius:0;padding:16px}
.reflection-editor-actions{padding-top:8px}
.reflection-editor-actions button{border-radius:2px}
.reflection-editor-actions button:last-child{background:#555;border-color:#555}
.reflection-panel[data-panel="x"] .reflection-profile>div>span{color:#69747c}
.reflection-panel[data-panel="x"] .reflection-meta{padding-top:8px;border-top:1px solid #eff0f1}
.reflection-panel[data-panel="x"] .reflection-related{margin-top:4px}
.reflection-script-title{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-style:italic;font-size:34px;letter-spacing:-1.2px;color:#555}
/* Keep the inner voice app within half of the currently visible viewport. */
.sheet.is-centered-panel.is-reflection-app{height:min(50dvh,calc(var(--app-viewport-height,100dvh) * .5));max-height:min(50dvh,calc(var(--app-viewport-height,100dvh) * .5))}

/* Inner Voice theme setup follows the flat supplemental-experience settings. */
.reflection-theme-list{display:grid;gap:30px;border:0}
.reflection-theme-section h3{display:flex;align-items:baseline;gap:9px;padding:0;margin:0 0 12px;color:#555;font-family:"Songti SC",serif;font-size:14px;font-weight:400;letter-spacing:1px}
.reflection-theme-section{border:0}
.reflection-theme-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;padding:13px 2px;border:0!important;border-bottom:1px solid #ededed!important;border-radius:0!important;background:transparent!important;text-align:left;color:#555}
.reflection-theme-row strong{font-size:12px;font-weight:400;letter-spacing:.3px}
.reflection-theme-row span{font-size:11px;color:#999}
.reflection-theme-row[aria-pressed="true"] strong{color:#222}
.reflection-theme-custom{display:flex;align-items:center;gap:14px;border-bottom:1px solid #ededed}
.reflection-theme-custom .reflection-theme-row{flex:1;border-bottom:0!important}
.reflection-theme-custom>[data-theme-edit],.reflection-theme-custom>[data-theme-delete]{padding:9px 2px;color:#888;font-size:10px;border-radius:0!important}
.reflection-theme-custom>[data-theme-delete]{color:#a66}
.reflection-theme-empty{padding:12px 2px;color:#aaa;font-size:11px}
.reflection-editor{display:grid;gap:18px}
.reflection-editor>label{display:block;margin:0;color:#555;font-family:"Songti SC",serif;font-size:13px;letter-spacing:.4px}
.reflection-editor input,.reflection-editor textarea{display:block;width:100%;margin:9px 0 0;padding:11px 2px;border:0!important;border-bottom:1px solid #ddd!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#444;font-size:12px;line-height:1.8}
.reflection-editor textarea{min-height:108px;max-height:240px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.reflection-editor textarea:focus,.reflection-editor input:focus{border-bottom-color:#888!important}
.reflection-editor .reflection-help{margin:-8px 0 0;color:#aaa;font-size:10px;line-height:1.8}
.reflection-tutorial{border-top:1px solid #eee;border-bottom:1px solid #eee;padding:11px 2px;color:#777;font-size:11px;line-height:1.8}
.reflection-tutorial summary{cursor:pointer;color:#555;font-family:"Songti SC",serif;font-size:12px;letter-spacing:.3px}
.reflection-tutorial p{margin:10px 0 0;color:#888}
.reflection-tutorial code{font:10px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;color:#555;overflow-wrap:anywhere;background:#f7f7f7}
.reflection-editor .reflection-preview{border:0;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0;margin:0;height:190px}
.reflection-editor-actions{border-top:1px solid #eee;padding-top:14px}
.reflection-editor-actions button{border:0!important;border-bottom:1px solid #ccc!important;border-radius:0!important;background:transparent!important;color:#666!important;padding:9px 2px!important}
.reflection-editor-actions button:last-child{border-bottom-color:#777!important;color:#333!important}
[data-theme-error]{color:#a66;font-size:11px}

/* Compact two-row theme picker with the active theme shown up front. */
.reflection-current-theme{display:flex;align-items:baseline;justify-content:space-between;padding:4px 2px 17px;border-bottom:1px solid #e8e8e8;color:#999;font-family:"Songti SC",serif;font-size:11px;letter-spacing:.5px}
.reflection-current-theme strong{color:#555;font-size:13px;font-weight:400}
.reflection-theme-list{display:grid;gap:0;padding-top:3px}
.reflection-theme-section{border-bottom:1px solid #e9e9e9}
.reflection-theme-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 2px;background:transparent;color:#555;text-align:left;font-family:"Songti SC",serif;font-size:13px;letter-spacing:.8px}
.reflection-theme-group-toggle i{font-family:Georgia,serif;font-size:18px;font-style:normal;font-weight:300;color:#888;line-height:1}
.reflection-theme-group-toggle[aria-expanded="true"] i{font-size:0}
.reflection-theme-group-toggle[aria-expanded="true"] i:after{content:'−';font-size:18px}
.reflection-theme-options{padding:0 0 12px 13px}
.reflection-theme-options[hidden]{display:none!important}
.reflection-theme-row{padding:11px 2px}
.reflection-theme-row[aria-pressed="true"] strong:after{content:' · 正在使用';color:#999;font-size:10px}
.reflection-current-theme+.reflection-theme-list .reflection-theme-row[aria-pressed="true"] span{display:none}
.reflection-theme-custom{gap:12px}
.reflection-theme-custom>[data-theme-edit],.reflection-theme-custom>[data-theme-delete]{font-size:10px}

/* Full-screen custom theme editor with a back chevron instead of a close icon. */
.sheet.is-centered-panel.is-reflection-editor-fullscreen{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden;transform:none;border:0;border-radius:0;box-shadow:none;background:#fff;animation:none}
.sheet.is-reflection-editor-fullscreen>.sheet-head{display:none}
.reflection-editor-fullscreen{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#fff}
.reflection-editor-topbar{flex:none;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:calc(var(--app-safe-top,env(safe-area-inset-top)) + 10px) 20px 13px;border-bottom:1px solid #ededed}
.reflection-editor-topbar button{display:grid;place-items:center;width:32px;height:32px;padding:3px;color:#555}
.reflection-editor-topbar button svg{width:22px;height:22px}
.reflection-editor-topbar strong{justify-self:center;font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:27px;font-style:italic;font-weight:400;color:#555}
.reflection-editor-topbar>span{font-size:10px;color:#999;white-space:nowrap}
.reflection-editor-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 26px max(25px,env(safe-area-inset-bottom))}
.reflection-editor-scroll .reflection-editor{max-width:620px;margin:0 auto}
@media(min-width:700px){.reflection-editor-scroll{padding-right:48px;padding-left:48px}}

/* Bundle the Kai font so mobile role names do not depend on installed system fonts. */
@font-face{font-family:"Iris Kai";src:url("assets/fonts/iris-kai.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
#chatTitle .chat-character-name,.video-call-brand .chat-character-name{font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi","楷体-简","楷体",serif;font-style:normal;font-weight:400;font-synthesis:none}
.reflection-theme-group-toggle{gap:18px}
.reflection-theme-group-toggle i{display:block;flex:1;height:1px;background:#dedede;font-size:0;line-height:0}
.reflection-theme-group-toggle[aria-expanded="true"] i:after{content:none}
.reflection-editor-topbar{grid-template-columns:1fr auto}
.reflection-editor-topbar button{display:block;width:auto;height:auto;justify-self:start;padding:4px 0;border:0;background:transparent;font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:31px;font-style:italic;font-weight:400;letter-spacing:-1px;color:#555;text-align:left}
.reflection-editor-topbar button svg{display:none}
.reflection-editor-topbar>span{font-family:"KaiTi","STKaiti","Kaiti SC","楷体",serif;font-size:15px;color:#666}
.reflection-editor-fixed-actions{display:flex;flex:none;justify-content:space-between;gap:22px;padding:12px 26px calc(13px + env(safe-area-inset-bottom));border-top:1px solid #ededed;background:#fff}
.reflection-editor-fixed-actions button{min-width:92px;padding:10px 2px;border:0;border-bottom:1px solid #aaa;border-radius:0;background:transparent;color:#666;font-family:"KaiTi","STKaiti","Kaiti SC","楷体",serif;font-size:13px;text-align:center}
.reflection-editor-fixed-actions button:last-child{border-bottom-color:#555;color:#333}
.reflection-editor-scroll{padding-bottom:22px}

/* Native select popovers for both theme groups. */
.reflection-theme-picker{position:relative;display:flex;align-items:center;gap:17px;width:100%;min-height:48px;padding:12px 2px;border-bottom:1px solid #e9e9e9;color:#555;font-family:"Songti SC",serif;font-size:13px;letter-spacing:.8px;cursor:pointer}
.reflection-theme-picker>span{flex:none}
.reflection-theme-picker>i{display:block;flex:1;height:1px;background:#dedede}
.reflection-theme-picker>select{position:absolute;inset:0;width:100%;height:100%;opacity:.015;cursor:pointer}
.reflection-theme-picker:focus-within{outline:1px solid #bbb;outline-offset:2px}
/* X identity and navigation details. */
.reflection-profile strong.reflection-x-name{display:flex;align-items:center;gap:5px;min-width:0}
.reflection-x-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reflection-verified{flex:none;width:17px;height:17px;stroke:none;overflow:visible}
.reflection-verified path:first-child{fill:#1d9bf0;stroke:none}
.reflection-verified path:last-child{fill:none;stroke:#fff;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.reflection-panel[data-panel="x"] .reflection-footer>.reflection-tools{padding:0 10px;gap:24px}
.reflection-panel[data-panel="x"] .reflection-footer>.reflection-tools svg{width:24px;height:24px;stroke-width:1.9}
/* Compact native selectors, with quiet rules matching the surrounding Iris UI. */
.sheet .reflection-current-theme{padding:5px 0 18px;align-items:center;border-bottom:0;font-family:inherit;font-size:10px;letter-spacing:.5px}
.sheet .reflection-current-theme strong{font-family:"KaiTi","STKaiti","Kaiti SC",serif;font-size:14px;color:#555}
.sheet .reflection-theme-list{gap:0;padding:0;border-top:1px solid #eee}
.sheet label.reflection-theme-picker{display:flex;align-items:center;gap:22px;margin:0;padding:19px 0;min-height:56px;font-family:"KaiTi","STKaiti","Kaiti SC",serif;font-size:14px;color:#666;border-bottom:1px solid #f0f0f0}
.sheet .reflection-theme-picker>span{min-width:56px}
.sheet .reflection-theme-picker>i{background:#d8d8d8;transition:background .2s}
.sheet .reflection-theme-picker:hover>i,.sheet .reflection-theme-picker:focus-within>i{background:#999}
.sheet .reflection-theme-picker:focus-within{outline:none}
.sheet:has(.reflection-theme-picker) .reflection-editor-actions{border-top:0;margin-top:19px;padding-top:0}
.sheet:has(.reflection-theme-picker) .reflection-editor-actions button{font-size:11px;padding:8px 0!important}
.reflection-post-actions{display:flex;align-items:center;justify-content:space-between;gap:6px}
.reflection-post-actions button{display:flex;align-items:center;gap:5px;min-height:38px;padding:5px 2px;color:#536471;font-size:11px}
.reflection-post-actions button[data-x-action="heart"][aria-pressed="true"]{color:#f91880}
.reflection-post-actions button[data-x-action="repost"][aria-pressed="true"]{color:#00a878}
.reflection-post-actions button[data-x-action="bookmark"][aria-pressed="true"]{color:#1d9bf0}
.reflection-post-actions button[data-x-action="heart"][aria-pressed="true"] svg,.reflection-post-actions button[data-x-action="bookmark"][aria-pressed="true"] svg{fill:currentColor}
.reflection-x-reply{display:flex;align-items:flex-start;gap:10px;padding:17px 0;border-bottom:1px solid #eff3f4}
.reflection-npc-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#e9edf0;color:#536471;font-size:14px}
.reflection-x-reply>div{min-width:0;flex:1}
.reflection-npc-heading{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;line-height:1.5}
.reflection-npc-heading strong{font-size:13px;color:#0f1419}
.reflection-npc-heading span{font-size:11px;color:#536471;overflow-wrap:anywhere}
.reflection-x-reply p{font-size:14px;line-height:1.7;margin:4px 0 0;white-space:pre-wrap;color:#0f1419}
.reflection-x-composer{display:flex;align-items:center;gap:8px;margin-bottom:15px}
.sheet .reflection-x-composer input{flex:1;min-width:0;width:auto;margin:0;padding:10px 13px;border:0;border-radius:22px;background:#eff3f5;font-size:13px}
.reflection-x-composer button{flex:none;background:#1d9bf0;color:white;padding:8px 12px;font-size:12px;border-radius:20px}
/* Reference-matched X icon set, isolated from generic Iris SVG rules. */
.reflection-panel[data-panel="x"] svg.reflection-x-icon{display:block;flex:none;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.reflection-panel[data-panel="x"] .reflection-post-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 24px;align-items:center;gap:5px;padding:5px 0 19px}
.reflection-panel[data-panel="x"] .reflection-post-actions button{justify-content:flex-start;gap:8px;min-width:0;min-height:36px;padding:4px 0;color:#536471;font:13px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-variant-numeric:tabular-nums}
.reflection-panel[data-panel="x"] .reflection-post-actions svg.reflection-x-icon{width:21px;height:21px;stroke-width:1.85}
.reflection-panel[data-panel="x"] .reflection-post-actions button:last-child{justify-content:flex-end}
.reflection-panel[data-panel="x"] .reflection-post-actions button[data-x-action="heart"][aria-pressed="true"]{color:#f91880}
.reflection-panel[data-panel="x"] .reflection-post-actions button[data-x-action="repost"][aria-pressed="true"]{color:#00a878}
.reflection-panel[data-panel="x"] .reflection-post-actions button[data-x-action="bookmark"][aria-pressed="true"]{color:#1d9bf0}
.reflection-panel[data-panel="x"] .reflection-post-actions button[aria-pressed="true"] :is([data-x-icon="heart"],[data-x-icon="bookmark"]){fill:currentColor}
.reflection-x-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;width:100%;padding:5px 0 1px;color:#0f1419}
.reflection-x-nav>span{display:grid;place-items:center;min-height:36px}
.reflection-panel[data-panel="x"] .reflection-x-nav svg.reflection-x-icon{width:25px;height:25px;stroke-width:1.85}
.reflection-panel[data-panel="x"] .reflection-x-nav [data-x-icon="grok"]{width:27px;height:27px;stroke-width:1.75}
@media(max-width:360px){.reflection-panel[data-panel="x"] .reflection-post-actions button{gap:5px;font-size:12px}.reflection-panel[data-panel="x"] .reflection-post-actions svg.reflection-x-icon{width:20px;height:20px}}
/* Explicit paint rules avoid :first-child matching every wrapped nav icon. */
.reflection-panel[data-panel="x"] .reflection-x-nav svg.reflection-x-icon{fill:none;stroke:currentColor}
.reflection-panel[data-panel="x"] .reflection-x-nav [data-x-icon="home"] path{fill:currentColor;stroke:none}
.reflection-panel[data-panel="x"] .reflection-x-nav [data-x-icon="grok"] path:first-child{fill:none;stroke:currentColor}
.reflection-panel[data-panel="x"] .reflection-x-nav [data-x-icon="grok"] path:last-child{fill:currentColor;stroke:none}
.reflection-panel[data-panel="x"] .reflection-x-nav :is([data-x-icon="search"],[data-x-icon="bell"],[data-x-icon="message"])>*{fill:none;stroke:currentColor}
.reflection-panel[data-panel="x"] .reflection-post-actions [data-x-icon="repost"]{fill:none;stroke:currentColor;stroke-width:1.85;stroke-linejoin:round;stroke-linecap:round}
/* Hide scroll indicators while preserving touch/wheel scrolling. Inputs retain theirs. */
*:not(input):not(textarea){scrollbar-width:none!important;-ms-overflow-style:none}
*:not(input):not(textarea)::-webkit-scrollbar{display:none!important;width:0;height:0}
input,textarea{scrollbar-width:thin}
/* API settings wrap inside the page rather than panning sideways. */
.is-system-settings>.api-config-panel,.api-config-list,.api-profile-card{min-width:0;max-width:100%;overflow-x:hidden}
.backup-page{padding-top:0!important}.backup-section{padding:16px 0 18px;border-bottom:1px solid #ededed}.backup-section>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.backup-section>header h3{margin:0;color:#555;font-size:12px;font-weight:400}.backup-section>header small{color:#aaa;font-size:8px}.backup-scope-picker{display:flex;gap:18px;margin-top:12px;border-bottom:1px solid #eee}.backup-scope-picker button{position:relative;padding:8px 1px 10px;background:transparent;color:#aaa;font-size:9px}.backup-scope-picker button::after{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:#444;content:"";opacity:0}.backup-scope-picker button.is-active{color:#444}.backup-scope-picker button.is-active::after{opacity:1}.backup-scope-picker button:focus-visible,.backup-text-action:focus-visible,.backup-primary-action:focus-visible{outline:1px solid #ddd;outline-offset:3px}.backup-scope-description{margin:9px 0;color:#999;font-size:9px;line-height:1.65}.backup-counts{display:flex;align-items:baseline;gap:8px;margin:10px 0 13px;color:#aaa;font-size:8px}.backup-counts span{display:flex;align-items:baseline;gap:3px;white-space:nowrap}.backup-counts strong{color:#555;font-family:Georgia,serif;font-size:13px;font-weight:400}.backup-counts i{width:2px;height:2px;border-radius:50%;background:#ccc}.backup-file-format{display:flex!important;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;color:#888!important;font-size:9px!important}.backup-file-format select{width:auto;min-width:76px;padding:6px 20px 6px 2px;border:0!important;border-bottom:1px solid #ddd!important;border-radius:0!important;background:#fff;color:#555;font-size:9px;outline:none}.backup-primary-action{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:39px;padding:0 2px;border:0;border-top:1px solid #ddd;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#555;text-align:left;font-size:10px}.backup-primary-action i,.backup-text-action i{color:#888;font-size:15px;font-style:normal}.backup-primary-action:disabled{opacity:.5}.backup-restore-section{padding-top:16px;border-bottom:0}.backup-restore-section>p{margin:9px 0;color:#999;font-size:9px;line-height:1.7}.backup-text-action{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 2px;border:0;border-bottom:1px solid #eee;background:transparent;color:#777;text-align:left;font-size:10px}.backup-preview{display:grid;gap:9px;margin-top:13px;padding:12px 0 0;border-top:1px solid #eee}.backup-preview h3{margin:0;color:#555;font-size:11px;font-weight:500}.backup-preview>p{margin:0;color:#999;font-size:8px}.backup-preview ul{display:grid;grid-template-columns:1fr auto;gap:7px 12px;margin:0;padding:10px 0;list-style:none;border-block:1px solid #f0f0f0}.backup-preview li{display:contents;color:#888;font-size:9px}.backup-preview li strong{color:#555;font-size:9px;font-weight:400;text-align:right}.backup-preview fieldset{display:grid;gap:5px;margin:0;padding:5px 0 7px;border:0}.backup-preview legend{padding:0 0 7px;color:#666;font-size:9px}.backup-preview fieldset label{display:flex;align-items:center;gap:7px;color:#555;font-size:9px}.backup-preview fieldset input{accent-color:#555}.backup-preview fieldset small{margin:0 0 5px 21px;color:#999;font-size:8px;line-height:1.6}.backup-feedback{min-height:15px;margin:10px 0;color:#999;font-size:9px;line-height:1.6}.backup-preview button:disabled{opacity:.55}
.api-saved-url-tabs{flex-wrap:wrap;overflow-x:hidden;gap:5px 14px;width:100%;min-width:0}
.api-saved-url-tab{max-width:100%;flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:left}
.api-profile-heading{flex-wrap:wrap}
.api-profile-actions{flex-wrap:wrap;max-width:100%;gap:9px}
.api-config-panel input,.api-config-panel select,.api-config-panel textarea{min-width:0;max-width:100%}
.api-profile-editor-switch{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #eee;color:#888;font-size:9px;letter-spacing:.2px}
.api-profile-editor-switch select{width:100%;padding:7px 20px 7px 2px;border:0;border-radius:0;background:transparent;color:#555;font-size:10px;outline:none}
/* Theme choices sit directly under each heading, with horizontal swipe. */
.reflection-choice-group{margin-top:18px}
.reflection-choice-group h3{display:flex;align-items:center;gap:16px;margin:0 0 10px;color:#777;font-family:"KaiTi","STKaiti","Kaiti SC",serif;font-size:13px;font-weight:400}
.reflection-choice-group h3 i{height:1px;flex:1;background:#e7e7e7}
.reflection-choice-strip{display:flex;gap:22px;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding:4px 0 10px;-webkit-overflow-scrolling:touch}
.reflection-choice-strip button[data-theme-choice]{flex:none;padding:8px 0;border-bottom:1px solid transparent;font-size:12px;white-space:nowrap;color:#999;border-radius:0;background:none}
.reflection-choice-strip button[data-theme-choice][aria-pressed="true"]{color:#333;border-bottom-color:#555}
.reflection-choice-custom{flex:none;display:flex;flex-direction:column;align-items:flex-start;max-width:180px}
.reflection-choice-custom>button{max-width:180px;overflow:hidden;text-overflow:ellipsis}
.reflection-choice-custom>div{display:flex;gap:12px}
.reflection-choice-custom>div button{font-size:9px;color:#aaa;padding:6px 0}
.reflection-choice-empty{font-size:11px;color:#aaa;padding:10px 0}
/* External transparent icon assets have independent paint and responsive dimensions. */
.reflection-panel[data-panel="x"] .reflection-x-icon{display:block;object-fit:contain;flex:none;max-width:none}
.reflection-panel[data-panel="x"] .reflection-x-nav .reflection-x-icon{width:clamp(22px,6vw,27px);height:clamp(22px,6vw,27px)}
.reflection-panel[data-panel="x"] .reflection-x-nav [data-x-icon="grok"]{width:clamp(24px,6.5vw,29px);height:clamp(24px,6.5vw,29px)}
.reflection-panel[data-panel="x"] .reflection-post-actions .reflection-x-icon{width:clamp(18px,5vw,23px);height:clamp(18px,5vw,23px)}
.reflection-panel[data-panel="gpt"] .reflection-response-tools{position:relative;display:flex;align-items:center;gap:15px;margin:16px 0 35px;flex:none}
.reflection-response-tools>button{display:grid;place-items:center;flex:none;padding:2px;min-width:24px;min-height:28px;border-radius:0;background:none}
.reflection-gpt-icon{display:block;object-fit:contain;flex:none;width:clamp(17px,4.8vw,21px);height:clamp(17px,4.8vw,21px)}
.reflection-gpt-compose .reflection-gpt-icon{width:clamp(23px,6.2vw,28px);height:clamp(23px,6.2vw,28px)}
.reflection-response-tools>button[aria-pressed="true"]{background:#edf4fa;border-radius:5px}
.reflection-gpt-more{position:absolute;left:50px;top:35px;z-index:2;padding:9px 12px;border:1px solid #e4e4e4;background:white;box-shadow:0 3px 14px #0000000c;white-space:nowrap}
.reflection-gpt-more button{font-size:11px;color:#555;padding:4px 0}
/* Exact screenshot cutouts: preserve each asset's aspect ratio. */
.reflection-panel[data-panel="x"] .reflection-verified{display:block;width:clamp(14px,4vw,18px);height:auto;object-fit:contain}
.reflection-x-follow{flex:none;display:grid;place-items:center;min-width:53px;margin-left:6px;padding:0;color:#0f1419;font-size:11px;white-space:nowrap}
.reflection-x-follow img{display:block;width:clamp(51px,14vw,65px);height:auto;object-fit:contain}
.reflection-x-follow[aria-pressed="true"]{padding:7px 9px;border:1px solid #cfd9de;border-radius:20px}
.reflection-panel[data-panel="x"] .reflection-x-nav .reflection-x-icon{width:clamp(22px,6vw,27px);height:clamp(22px,6vw,27px);object-fit:contain}
.reflection-panel[data-panel="x"] .reflection-x-nav [data-x-icon="bell"]{width:clamp(27px,7.2vw,34px);height:clamp(25px,6.8vw,32px)}
.reflection-gpt-icon{object-fit:contain}
/* Keep the panel steady on open, redraw, and local interactions. */
.sheet.is-centered-panel.is-reflection-app,.sheet.is-centered-panel.is-reflection-app .reflection-panel{animation:none!important}
.reflection-tutorial-body{padding:4px 0 8px}
.reflection-tutorial-body h4{margin:18px 0 6px;color:#555;font-family:"KaiTi","STKaiti","Kaiti SC",serif;font-size:12px;font-weight:500}
.reflection-tutorial-body p{margin:6px 0 11px;line-height:1.85}
.reflection-tutorial-body pre{max-width:100%;overflow:auto;margin:9px 0 14px;padding:13px 10px;border-left:1px solid #ddd;background:#fafafa;white-space:pre;scrollbar-width:thin}
.reflection-tutorial-body pre code{background:transparent;font-size:10px;line-height:1.8}
/* Compact custom-theme editor header and prevent page-level sideways panning. */
.sheet.is-centered-panel.is-reflection-editor-fullscreen{overflow-x:hidden}
.reflection-editor-fullscreen{max-width:100%;overflow-x:hidden}
.reflection-editor-topbar{display:flex;justify-content:flex-start;gap:12px;min-height:0;padding:calc(var(--app-safe-top,env(safe-area-inset-top)) + 4px) 20px 8px;overflow:hidden}
.reflection-editor-topbar button{flex:none;width:auto;max-width:55%;font-size:28px;line-height:1.2}
.reflection-editor-topbar>span{flex:none;margin-left:2px;color:#aaa;font-family:"KaiTi","STKaiti","Kaiti SC","楷体",serif;font-size:12px;white-space:nowrap}
.reflection-editor-scroll{width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y}
.reflection-editor-scroll .reflection-editor{width:100%;max-width:620px;min-width:0;overflow-wrap:anywhere}
.reflection-editor-scroll .reflection-editor>label,.reflection-editor-scroll .reflection-help,.reflection-tutorial-body{min-width:0;max-width:100%;overflow-wrap:anywhere}
.reflection-tutorial-body pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:hidden}
.reflection-editor-scroll .reflection-preview{max-width:100%;min-width:0}
.reflection-tutorial-body table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}
.reflection-tutorial-body th,.reflection-tutorial-body td{padding:8px 4px;border-bottom:1px solid #e8e8e8;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.reflection-tutorial-body th{color:#666;font-weight:500}
.reflection-tutorial-body td{color:#888}
.reflection-tutorial-body th:first-child,.reflection-tutorial-body td:first-child{width:37%}
.reflection-tutorial-body th:nth-child(2),.reflection-tutorial-body td:nth-child(2){width:25%}
.reflection-tutorial-body pre{white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere}

/* Tighten the X post metadata and related row, and remove their divider rules. */
.reflection-panel[data-panel="x"] .reflection-meta{margin:12px -6px 5px;padding:0;border:0}
.reflection-panel[data-panel="x"] .reflection-post-actions{padding:0 0 6px}
.reflection-panel[data-panel="x"] .reflection-related{margin:0 -6px;padding:5px 0 8px;border:0}

/* Keep GPT response artwork click-through so the feedback buttons receive taps. */
.reflection-panel[data-panel="gpt"] .reflection-response-tools{margin-top:6px}
.reflection-gpt-icon{pointer-events:none}
/* Keep the four GPT artwork controls at the image size; never draw a focus box around the cutouts. */
.reflection-panel[data-panel="gpt"] .reflection-response-tools>button{width:clamp(17px,4.8vw,21px);height:clamp(17px,4.8vw,21px);min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;-webkit-tap-highlight-color:transparent}
.reflection-panel[data-panel="gpt"] .reflection-response-tools>button:focus,.reflection-panel[data-panel="gpt"] .reflection-response-tools>button:focus-visible,.reflection-panel[data-panel="gpt"] .reflection-response-tools>button:active{border:0;border-radius:0;background:transparent;box-shadow:none;outline:none}
.reflection-panel[data-panel="gpt"] .reflection-response-tools>button[aria-pressed="true"]{background:transparent;border-radius:0;box-shadow:none}
.reflection-panel .reflection-more-button,.reflection-panel .reflection-more-button:focus,.reflection-panel .reflection-more-button:focus-visible,.reflection-panel .reflection-more-button:active{border:0;outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent}

/* Keep settings taps from triggering native double-tap zoom or scrolling the page behind the screen. */
.settings-screen{touch-action:manipulation;overscroll-behavior-y:none}
.system-setting-tabs,.system-setting-tabs button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.system-setting-tabs button{-webkit-user-select:none;user-select:none}

/* Keep inner-voice typography compact and responsive to the available screen width. */
.reflection-panel .reflection-header strong{font-size:clamp(15px,4.2vw,17px)}
.reflection-panel .reflection-text{font-size:clamp(13px,3.7vw,15px);line-height:1.75}
.reflection-panel[data-panel="notes"] .reflection-header strong{font-size:clamp(14px,3.8vw,16px)}
.reflection-panel[data-panel="notes"] .reflection-title{font-size:clamp(20px,5.8vw,24px);line-height:1.3;margin-bottom:18px}
.reflection-panel[data-panel="notes"] .reflection-group>.reflection-label{font-size:clamp(14px,4vw,16px);margin-bottom:8px}
.reflection-panel[data-panel="notes"] .reflection-text{font-size:clamp(13px,3.7vw,15px)}
.reflection-panel[data-panel="gpt"] .reflection-text{font-size:clamp(13px,3.7vw,15px);line-height:1.75}
.reflection-panel[data-panel="gpt"] [data-speaker="character"]{padding:10px 14px;margin-bottom:22px}
.reflection-panel[data-panel="x"] .reflection-profile strong{font-size:clamp(14px,3.8vw,16px)}
.reflection-panel[data-panel="x"] .reflection-profile>div>span{font-size:clamp(11px,3vw,12px)}
.reflection-panel[data-panel="x"] .reflection-text{font-size:clamp(14px,3.9vw,16px);line-height:1.55}
.reflection-panel[data-panel="x"] .reflection-meta{font-size:clamp(10px,3vw,11px)}
.reflection-panel[data-panel="x"] .reflection-related{font-size:clamp(11px,3.2vw,12px)}
.reflection-panel[data-panel="x"] .reflection-x-reply p{font-size:clamp(12px,3.5vw,14px);line-height:1.6}
.reflection-panel[data-panel="x"] .reflection-npc-heading strong{font-size:clamp(12px,3.4vw,13px)}
.reflection-panel[data-panel="x"] .reflection-npc-heading span{font-size:clamp(10px,2.9vw,11px)}
.reflection-panel[data-panel="gpt"] .reflection-composer{font-size:14px}
.reflection-panel[data-panel="gpt"] .reflection-gpt-compose .reflection-gpt-icon,.reflection-panel[data-panel="gpt"] .reflection-more-button svg{width:clamp(20px,6vw,23px);height:clamp(20px,6vw,23px)}

.memory-summary-card{margin:12px 0;padding:13px;border:1px solid #ededed;border-radius:12px;background:#fff}
.memory-summary-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.memory-summary-heading strong{color:#555;font-size:10px;font-weight:500}
.memory-summary-heading small,.memory-summary-error{color:#aaa;font-size:8px;line-height:1.6;text-align:right}
.memory-summary-card>p{margin:9px 0 0;color:#777;font-size:9px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.memory-summary-card>p.memory-summary-empty{color:#aaa}
.memory-summary-error{display:block;margin-top:6px;color:#a77777;text-align:left}
.is-online-settings .memory-summary-card{margin:0 0 12px;padding:11px 2px;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent}
.is-online-settings .memory-summary-heading small{white-space:nowrap}

/* Keep the Notes toolbar's more control free of the browser's pressed/focus tile. */
.reflection-panel[data-panel="notes"] .reflection-more-button,
.reflection-panel[data-panel="notes"] .reflection-more-button:hover,
.reflection-panel[data-panel="notes"] .reflection-more-button:active,
.reflection-panel[data-panel="notes"] .reflection-more-button:focus,
.reflection-panel[data-panel="notes"] .reflection-more-button:focus-visible{
 appearance:none!important;-webkit-appearance:none!important;background:transparent!important;border:0!important;border-radius:0!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;filter:none!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important;touch-action:manipulation
}
.reflection-panel[data-panel="notes"] .reflection-more-button img{pointer-events:none}

/* Thin the extracted GPT toolbar artwork instead of changing its display size. */
.reflection-panel[data-panel="gpt"] .reflection-response-tools .reflection-gpt-icon{opacity:1}
.quick-features:not(.dock-feature-menu){width:min(360px,calc(100vw - 50px))}.quick-action-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:min(100%,360px);margin-top:0;padding-top:0;border-top:0}.quick-action-row .quick-item,.quick-action-item{min-width:0;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;padding:0;color:#666;font-size:8px;line-height:1.25;white-space:normal;text-align:left}.quick-action-row>.quick-item.quick-exit{width:auto;white-space:normal}.quick-action-row .quick-item>span:last-child,.quick-action-item>span:last-child{min-width:0;max-width:100%;padding:4px 3px;background:#fff;border-radius:8px;box-shadow:0 2px 12px #0000000c;overflow-wrap:anywhere}.quick-action-row .quick-icon,.quick-action-item .quick-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;padding:0;border-radius:50%;background:#f0f0f0}.quick-action-row .quick-icon svg,.quick-action-item .quick-icon svg{width:38px;height:38px;padding:10px;border-radius:50%;background:#f0f0f0;color:#5d5d5d;stroke-width:1.4}.quick-action-row .quick-exit .quick-icon svg{background:#333;color:#fff;transform:rotate(180deg)}.quick-action-item.is-blocked .quick-icon,.quick-action-item.is-blocked .quick-icon svg{background:#555;color:#fff}.quick-action-item.is-destructive .quick-icon svg{color:#777}
.message-delivery-anchor{position:relative;display:inline-flex;align-items:center;min-width:0;max-width:100%}.message-delivery-failed{position:absolute;left:calc(100% + 7px);top:50%;display:inline-grid;place-items:center;width:17px;height:17px;transform:translateY(-50%);color:#fff;background:#e5484d;border-radius:50%;font:700 12px/1 Arial,sans-serif}
.sms-notification{position:absolute;z-index:100;top:max(12px,env(safe-area-inset-top));left:50%;width:calc(100% - 28px);max-width:560px;transform:translateX(-50%);border:1px solid #e8e8e8;border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 8px 32px #00000012;backdrop-filter:blur(18px);animation:sms-banner-arrive .25s ease}
.sms-notification-open{display:flex;align-items:center;gap:12px;width:100%;padding:15px 32px 15px 15px;text-align:left}
.sms-notification .avatar{flex:none;width:42px;height:42px;border:0;font-size:17px;overflow:hidden}.sms-notification .avatar img{width:100%;height:100%;object-fit:cover}
.sms-notification-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.sms-notification-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.sms-notification-heading strong{min-width:0;color:#555;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sms-notification-heading time{flex:none;color:#aaa;font-size:9px;white-space:nowrap}.sms-notification-name{color:#aaa;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sms-notification-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:#666;font-size:12px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.sms-notification-dismiss{position:absolute;top:6px;right:5px;display:grid;place-items:center;width:25px;height:25px;padding:0;color:#aaa;font-size:17px}
@keyframes sms-banner-arrive{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){.sms-notification,.sms-typing>i{animation:none}}
.character-row-info strong,.profile-user-info strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roster-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.roster-phone{display:block;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#999;font-size:8px;font-weight:400;letter-spacing:0;line-height:1.5;overflow-wrap:normal}
.character-row-info small.roster-phone{margin-top:3px}
.character-phone-action,.profile-phone-action{flex:none;padding:5px 6px;border-bottom:1px solid #e7e7e7;color:#888;font-size:8px;white-space:nowrap}
.character-phone-action:disabled{opacity:.5}
.profile-user-row{flex-wrap:wrap}
.profile-phone-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;flex:0 0 100%;padding:10px 5px 4px;border-top:1px solid #f1f1f1}
.profile-phone-editor label{display:grid;gap:4px;min-width:0;color:#999;font-size:8px}
.profile-phone-editor select,.profile-phone-editor input{width:100%;min-width:0;height:30px;padding:0 8px;border:1px solid #ececec;border-radius:7px;background:#fff;color:#666;font-size:9px}
.profile-phone-editor>[name="customCarrier"]{align-self:end}
.profile-phone-editor-number{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column:1/-1;align-items:end;gap:8px}
.profile-phone-editor-number button,.profile-phone-editor-actions button{padding:6px 10px;border-radius:7px;background:#f4f4f4;color:#777;font-size:8px;white-space:nowrap}
.profile-phone-editor-actions{display:flex;grid-column:1/-1;justify-content:flex-end;gap:8px}
#featurePageContent:has(.sms-thread-view){display:flex;flex-direction:column;overflow:hidden;padding-top:0;padding-bottom:0}
.sms-inbox{max-width:560px;margin:0 auto}.sms-inbox>.feature-page-kicker{margin:4px 0 8px}.sms-inbox>h2{margin:0 0 20px;font-size:22px;font-weight:400;letter-spacing:1px;color:#444}
.sms-contact-list{display:grid;border-top:1px solid #eee}.sms-contact-row{display:flex;align-items:center;gap:12px;min-width:0;width:100%;padding:12px 2px;border-bottom:1px solid #eee;text-align:left}.sms-contact-row>.avatar{width:42px;height:42px;font-size:16px}.sms-contact-copy{display:grid;gap:5px;flex:1;min-width:0}.sms-contact-copy>strong{display:flex;align-items:baseline;gap:8px;min-width:0;color:#555;font-size:11px;font-weight:500;white-space:nowrap}.sms-contact-copy>strong>small{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#aaa;font-size:8px;font-weight:400}.sms-contact-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#999;font-size:9px}.sms-contact-row>time{flex:none;color:#aaa;font-size:8px}.sms-contact-row>svg{width:13px;height:13px;flex:none;color:#bbb}
.sms-back-mark{font-family:system-ui,sans-serif;font-size:32px;font-style:normal;font-weight:300;line-height:1;color:#888;margin-right:-5px}
.sms-empty{display:grid;justify-items:center;gap:11px;padding:72px 24px;color:#aaa;text-align:center}.sms-empty>span svg{width:30px;height:30px;color:#bbb}.sms-empty>strong{font-size:12px;font-weight:400;color:#777}.sms-empty>p{max-width:230px;margin:0;font-size:9px;line-height:1.8}
.sms-thread-view{display:flex;flex:1;flex-direction:column;min-height:0;width:100%;max-width:560px;margin:0 auto}.sms-thread-contact{display:grid;justify-items:center;gap:5px;flex:none;padding:8px 0 14px;border-bottom:1px solid #f0f0f0}.sms-thread-contact>.avatar{width:35px;height:35px;font-size:14px}.sms-thread-contact>strong{font-size:11px;font-weight:500;color:#555}.sms-thread-contact>small{font-size:8px;color:#aaa;letter-spacing:1px}.sms-thread-messages{display:flex;flex:1;flex-direction:column;gap:9px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px 2px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sms-bubble-row{display:flex;flex-direction:column;align-items:flex-start;max-width:82%;gap:3px}.sms-bubble-row.is-mine{align-self:flex-end;align-items:flex-end}.sms-bubble{max-width:100%;padding:9px 13px;border-radius:17px 17px 17px 5px;background:#f1f1f1;color:#444;font-size:12px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.sms-bubble-row.is-mine .sms-bubble{border-radius:17px 17px 5px 17px;background:#e8e8e8}.sms-bubble>small{display:block;margin-top:4px;color:#999;font-size:9px;line-height:1.5}.sms-bubble-row>time{padding:0 4px;color:#bbb;font-size:7px}.sms-thread-empty{align-self:center;margin:auto;color:#aaa;font-size:9px}.sms-typing{display:flex;gap:4px;padding:12px 14px}.sms-typing>i{width:5px;height:5px;border-radius:50%;background:#aaa;animation:chat-reply-wave .85s ease-in-out infinite}.sms-typing>i:nth-child(2){animation-delay:.12s}.sms-typing>i:nth-child(3){animation-delay:.24s}@keyframes smsTyping{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
.sms-composer{display:flex;align-items:flex-end;gap:8px;flex:none;padding:10px 0 max(5px,env(safe-area-inset-bottom));border-top:1px solid #f0f0f0;background:#fff}.sms-composer textarea{flex:1;min-width:0;min-height:38px;max-height:100px;padding:10px 13px;border:1px solid #eee;border-radius:20px;background:#f6f6f6;color:#444;font-size:12px;line-height:18px;resize:vertical;overflow-y:auto}.sms-composer button{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:#555;color:#fff}.sms-composer button svg{width:17px;height:17px;transform:rotate(90deg);stroke-width:1.8}
@media(max-width:480px){.sms-inbox>h2{font-size:20px}.sms-contact-row{gap:9px;padding:11px 1px}.sms-contact-row>.avatar{width:37px;height:37px}.sms-contact-copy>strong{gap:5px;font-size:10px}.sms-contact-copy>strong>small{font-size:7px}.sms-bubble{font-size:11px}.sms-composer textarea{font-size:16px}}

/* SMS uses the current profile as the inbox identity and an iPhone-like composer. */
.avatar>img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;border-radius:inherit}
.feature-page-topbar:has(.sms-feature-heading){justify-content:space-between;padding-top:24px;padding-bottom:12px}
#featurePageTitle:has(.sms-feature-heading){flex:1 1 auto;width:100%;min-width:0}
.sms-feature-heading{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-width:0}
.sms-feature-heading .feature-page-brand{align-items:center;min-height:40px}
.sms-feature-heading .feature-page-wordmark{font-size:30px}
.sms-feature-heading:has(.sms-thread-top-contact){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,58%) minmax(0,1fr);gap:0;align-items:center}
.sms-feature-heading:has(.sms-thread-top-contact)>.feature-page-brand{grid-column:1;justify-self:start}
.sms-thread-top-contact{position:static;grid-column:2;transform:none;display:grid;grid-template-rows:auto auto;justify-items:center;align-content:center;gap:4px;width:100%;min-width:0;color:#333;pointer-events:none}
.sms-thread-top-contact>strong{max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#888;font-size:12px;font-weight:400;letter-spacing:.1px;line-height:1.15}
.sms-thread-top-contact>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aaa;font-size:10px;font-weight:400;letter-spacing:.5px;line-height:1.2}
@media(min-width:850px){.feature-page-topbar:has(.sms-feature-heading){padding-top:28px}}
@media(max-width:480px){.feature-page-topbar:has(.sms-feature-heading){padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}}
.sms-user-switch{position:relative;z-index:5;flex:none;margin-left:auto}
.sms-user-switch>button{display:grid;width:40px;height:40px;place-items:center end;padding:0;border:0;border-radius:50%;background:transparent;-webkit-tap-highlight-color:transparent}
.sms-user-switch>button>.avatar{width:34px;height:34px;border:1px solid #e7e7e7;font-size:13px}
.sms-user-switch>button>.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.sms-user-menu{position:fixed;z-index:9999;top:0;right:12px;display:flex;flex-direction:column;width:min(270px,calc(100vw - 24px));min-width:min(210px,calc(100vw - 24px));max-height:min(55vh,360px);overflow-y:auto;padding:8px;background:#fff;border:1px solid #eee;border-radius:13px;box-shadow:0 12px 34px #00000018}
.sms-user-menu[hidden]{display:none!important}
.sms-user-menu>p{margin:3px 8px 7px;color:#aaa;font-size:9px;letter-spacing:.3px}
.sms-user-menu>button{display:flex;align-items:center;gap:9px;width:100%;min-width:0;min-height:44px;padding:7px 8px;border:0;border-radius:8px;background:transparent;text-align:left;color:#555!important;font-size:11px!important;line-height:1.3;overflow:hidden}
.sms-user-menu>button.is-current{background:#f5f5f5}
.sms-user-option-avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;overflow:hidden;border-radius:50%;background:#ededed;color:#777;font-size:11px}
.sms-user-option-avatar>img{display:block;width:100%;height:100%;min-width:30px;min-height:30px;object-fit:cover;border-radius:50%}
.sms-user-menu>button>.sms-user-option-name{display:block;flex:1 1 auto;min-width:0;color:#444!important;font-size:11px!important;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sms-user-menu>button>i{flex:none;margin-left:auto;color:#999;font-size:8px;font-style:normal;white-space:nowrap}
.sms-bubble{position:relative;border-radius:18px 18px 18px 5px;background:#e5e5ea;color:#171717;font-size:clamp(14px,4vw,17px);line-height:1.35;padding:9px 13px}
.sms-bubble-row.is-mine .sms-bubble{border-radius:18px 18px 5px 18px;background:#087eff;color:#fff}
.sms-bubble-row.is-mine .sms-bubble>small{color:#e7f2ff}
.sms-bubble-row>time{font-size:8px}
.sms-composer{align-items:center;gap:10px;padding:9px 0 max(5px,env(safe-area-inset-bottom));border-top:0}
.sms-composer .sms-attach{width:34px;height:34px;border:0;background:#e9e9eb;color:#85858a;font:300 27px/1 system-ui,sans-serif}
.sms-composer .sms-attach:disabled{opacity:1}
.sms-composer .sms-attach svg{display:block;width:19px;height:19px;stroke-width:1.8}
.sms-composer-field{position:relative;display:flex;flex:1;align-items:flex-end;min-width:0;min-height:39px;padding:0 7px 0 12px;border:1px solid #d9d9dd;border-radius:22px;background:#fff}
.sms-composer-field>textarea{display:block;width:100%;min-height:37px;max-height:104px;padding:9px 30px 8px 2px;border:0;border-radius:0;background:transparent;color:#222;font-size:16px;line-height:20px;resize:none;overflow-y:auto;outline:0;box-shadow:none}
.sms-composer-field>textarea::placeholder{color:#c2c2c6}
.sms-composer .sms-send,.sms-composer .sms-mic{position:absolute;right:5px;bottom:4px;width:28px;height:28px;padding:0;border:0;border-radius:50%}
.sms-composer .sms-send{background:#34c759;color:#fff}
.sms-composer .sms-send svg{width:17px;height:17px;transform:rotate(0);stroke-width:2.4}
.sms-composer .sms-mic{background:transparent;color:#aeb1b7}
.sms-composer .sms-mic svg{width:18px;height:18px;transform:none;stroke-width:1.8}
.sms-composer .sms-reply{width:34px;height:34px;border:0;background:#e9e9eb;color:#777}
.sms-composer .sms-reply svg{width:19px;height:19px;transform:none;stroke-width:1.8}
.sms-composer .sms-reply:disabled{opacity:.5}
.sms-composer button[hidden]{display:none!important}
@media(max-width:480px){.sms-thread-contact{padding:5px 0 12px}.sms-thread-messages{gap:8px;padding:13px 2px}.sms-bubble-row{max-width:88%}.sms-bubble{font-size:16px;padding:9px 12px}.sms-composer .sms-attach{width:34px;height:34px}.sms-composer-field{min-height:39px}}

/* SMS actions share the online chat's quiet gray palette and small type. */
.sms-bubble-row{position:relative}
.sms-bubble-row.has-sms-actions{z-index:8}
.conversation .message,.conversation .message .bubble,.sms-bubble-row,.sms-bubble{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sms-message-actions{position:fixed;z-index:30;visibility:hidden;width:224px;max-width:calc(100vw - 50px);padding:5px;border:1px solid #e8e8e8;border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 5px 18px #00000012}
.sms-reaction-picker{display:flex;align-items:center;justify-content:space-between;gap:2px;padding:1px 2px 5px}
.sms-reaction-picker button{display:grid;place-items:center;flex:1;min-width:0;height:32px;padding:0;border-radius:50%;color:#999;transition:background .15s ease,color .15s ease}
.sms-reaction-picker button svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
.sms-reaction-picker button[data-sms-reaction-choice="heart"] svg{fill:currentColor;stroke:none}
.sms-reaction-picker button.is-active{background:#efefef;color:#555}
.sms-reaction-picker button:hover,.sms-reaction-picker button:active{background:#f3f3f3;color:#666}
.sms-action-row{display:flex;align-items:center;gap:2px;padding-top:4px;border-top:1px solid #f0f0f0}
.sms-action-row button{flex:1;min-width:0;min-height:29px;padding:0 5px;border-radius:13px;color:#777;font-size:10px;font-weight:400;line-height:1;white-space:nowrap}
.sms-action-row button:hover,.sms-action-row button:active{background:#f1f1f1;color:#555}
.sms-action-row button:disabled{color:#c6c6c6;cursor:default}
.sms-message-reaction{position:absolute;z-index:2;top:-12px;right:1px;left:auto;display:grid;place-items:center;width:32px;height:32px;padding:6px;border:2px solid #fff;border-radius:50%;background:#34c759;color:#fff;box-shadow:0 1px 4px #00000010}
.sms-message-reaction svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.sms-bubble:has(>.sms-message-reaction){padding-right:30px}
.sms-bubble-row.has-sms-actions .sms-message-reaction{pointer-events:none}
.sms-message-actions{width:224px;padding:5px 7px 6px}
.sms-select-action{display:block;width:100%;min-height:27px;margin-top:4px;padding:4px 0 0;border-top:1px solid #f0f0f0;color:#888;font-size:10px;text-align:center}
.sms-select-action:active{color:#555}
.sms-composer{position:relative}
.sms-attach-menu{position:absolute;z-index:12;bottom:calc(100% + 8px);left:0;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.sms-attach-menu[hidden]{display:none!important}
.sms-attach-menu button{display:block;width:100%;min-height:34px;padding:0 12px;border-radius:8px;background:transparent;color:#666;font-size:12px;text-align:left}
.sms-attach-menu button:active{background:#f1f1f1}
.sms-attach-menu button:disabled{color:#c6c6c6;cursor:default}
.sms-attach-menu .sms-clear-item{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;min-height:40px;padding:3px 0;border-radius:9px;background:transparent;color:#666;font-size:9px;text-align:left}
.sms-attach-menu .sms-clear-item .quick-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#e9e9eb;color:#777}
.sms-attach-menu .sms-clear-item .quick-icon svg{display:block;width:34px;height:34px;padding:8px;border:0;border-radius:50%;background:#e9e9eb;color:#777;stroke-width:1.5;transform:none}
.sms-attach-menu .sms-clear-item>span:last-child{padding:5px 9px;border-radius:13px;background:#f2f2f3;box-shadow:none;color:#666}
.sms-thread-view.is-selecting .sms-composer{display:none}
.sms-thread-view.is-selecting .sms-message-reaction{pointer-events:none}
.sms-thread-view.is-selecting .sms-bubble-row{max-width:calc(88% - 24px);margin-left:24px}
.sms-thread-view.is-selecting .sms-bubble-row.is-mine{margin-right:24px;margin-left:0}
.sms-selection-check{position:absolute;top:50%;left:-24px;display:grid;width:18px;height:18px;place-items:center;border:1px solid #c9c9c9;border-radius:50%;background:#fff;color:#fff;font-size:11px;transform:translateY(-50%)}
.sms-bubble-row.is-mine .sms-selection-check{right:-24px;left:auto}
.sms-bubble-row.is-sms-selected .sms-bubble{outline:1px solid #777;outline-offset:2px}
.sms-bubble-row.is-sms-selected .sms-selection-check{border-color:#555;background:#555}
.sms-selection-bar{display:flex;align-items:center;gap:10px;flex:none;padding:10px 2px max(10px,env(safe-area-inset-bottom));border-top:1px solid #ededed;background:rgba(255,255,255,.96);font-size:11px}
.sms-selection-bar span{margin-right:auto;color:#777}
.sms-selection-bar button{padding:7px 10px;border-radius:15px;color:#666;font-size:11px}
.sms-selection-bar [data-sms-selection-delete]{background:#555;color:#fff}
.sms-selection-bar button:disabled{opacity:.4;cursor:default}

.sms-send-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin:8px 0;border:1px solid #e9e9e9;border-radius:14px;background:#fafafa;color:#777}.sms-send-error>span{display:grid;gap:4px;min-width:0}.sms-send-error strong{font-size:11px;font-weight:500}.sms-send-error small{font-size:10px;line-height:1.5;overflow-wrap:anywhere}.sms-send-error button{display:flex;align-items:center;gap:5px;flex:none;color:#666;font-size:10px}.sms-send-error button svg{width:16px;height:16px}

/* Keep the online and offline composer text centered inside its pill. */
.input-wrap textarea{display:block;height:22px;min-height:22px;max-height:22px;margin:0;padding:0;align-self:center;line-height:22px;overflow:hidden}

.sms-composer>.sms-attach,.sms-composer>.sms-reply{box-sizing:border-box;flex:0 0 36px;width:36px;min-width:36px;max-width:36px;height:36px;min-height:36px;max-height:36px;padding:0;aspect-ratio:1;border-radius:50%;align-self:flex-end}

.iris-keepalive-audio{display:none!important}.keepalive-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 20px;padding:16px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;cursor:pointer}.keepalive-copy{display:grid;gap:6px;min-width:0}.keepalive-card strong{color:#555;font-size:12px;font-weight:400}.keepalive-card small{max-width:420px;color:#999;font-size:9px;line-height:1.7}.keepalive-card input{position:absolute;opacity:0;pointer-events:none}.keepalive-switch{position:relative;flex:none;width:34px;height:19px;border-radius:12px;background:#ddd;transition:background .18s}.keepalive-switch:after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s}.keepalive-card input:checked+.keepalive-switch{background:#555}.keepalive-card input:checked+.keepalive-switch:after{transform:translateX(15px)}.keepalive-status{color:#888;font-size:9px;white-space:nowrap}.is-system-settings .keepalive-card{border-top:0}

/* Offline story composition uses Enter for line breaks and grows for multiline drafts. */
.phone:has(.conversation.is-offline-story) .composer .input-wrap,.if-story-page>.if-chat-composer .input-wrap{height:auto;min-height:40px;max-height:106px;padding:8px 12px 8px 17px}
.phone:has(.conversation.is-offline-story) .composer .input-wrap textarea,.if-story-page>.if-chat-composer .input-wrap textarea{height:auto;min-height:22px;max-height:88px;align-self:stretch;overflow-x:hidden;overflow-y:auto;white-space:pre-wrap;line-height:22px}
.conversation.is-offline-story>.offline-prose-entry{flex-shrink:0}
.conversation.is-offline-story>.offline-prose-entry.has-next-same-speaker{margin-bottom:0}
.conversation.is-offline-story>.offline-prose-entry.is-continuation{margin-top:0}

/* Offline prose semantics and live reply state. */
.offline-prose-body{white-space:normal;text-indent:0}
.offline-prose-paragraph{margin:0 0 1em;text-indent:2em;white-space:pre-wrap}
.offline-prose-paragraph:last-child{margin-bottom:0}
.offline-prose-thought{color:#704d70;font-style:italic!important;font-synthesis:style;font-weight:500}
.offline-prose-dialogue{color:#8b4f46;font-weight:650}
.offline-streaming-entry{animation:none!important}
.offline-reply-status{display:flex;align-items:center;gap:8px;min-height:36px;margin:0 0 3px;padding:3px 5px;color:#817c7b;font-size:11px;line-height:1.2}
.offline-reply-status[hidden]{display:none!important}
.offline-reply-status>.avatar{width:25px;height:25px;border:0;font-size:11px}
.offline-reply-status>.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.offline-reply-status-name{color:#57514f;font-weight:500}
.offline-reply-status-label{color:#999}
.offline-reply-status .chat-reply-dots{height:12px}
@media(max-width:480px){.offline-reply-status{min-height:32px;margin-bottom:2px;padding-left:3px;font-size:10px}.offline-reply-status>.avatar{width:23px;height:23px}}

/* Give speaker changes a clearer pause while keeping same-speaker continuations compact. */
.conversation.is-offline-story>.offline-prose-entry:not(.has-next-same-speaker){margin-bottom:62px}
@media(min-width:481px){.conversation.is-offline-story>.offline-prose-entry:not(.has-next-same-speaker){margin-bottom:96px}}
@media(max-width:480px){.conversation.is-offline-story>.offline-prose-entry:not(.has-next-same-speaker){margin-bottom:84px}}

/* Indent the first line of every prose paragraph; center the offline reply row. */
.offline-prose-body>.offline-prose-paragraph{text-indent:2em}
.offline-reply-status{justify-content:center;text-align:center}

.offline-prose-body>.offline-prose-paragraph{text-indent:2em!important}

/* Offline style details stay compact until opened; extra prompt sections use small horizontal tabs. */
.offline-style-fold{grid-column:1/-1;min-width:0;border-bottom:1px solid #e9e9e9;color:#999;font-size:9px;letter-spacing:.3px}
.offline-style-fold>summary{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:0 2px;cursor:pointer;list-style:none;color:#777}
.offline-style-fold>summary::-webkit-details-marker{display:none}
.offline-style-fold>summary i{position:relative;display:block;width:12px;height:12px;flex:none}
.offline-style-fold>summary i:before,.offline-style-fold>summary i:after{position:absolute;top:5px;left:2px;width:8px;height:1px;background:#999;content:""}
.offline-style-fold>summary i:after{transform:rotate(90deg);transition:transform .18s}
.offline-style-fold[open]>summary i:after{transform:rotate(0)}
.offline-style-fold>.offline-style-manager{border:0}
.offline-extra-settings{grid-column:1/-1;display:grid;gap:8px;padding:0 2px 10px;border-bottom:1px solid #e9e9e9}
.offline-extra-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:3px;border-bottom:1px solid #e9e9e9}
.offline-extra-tabs button{position:relative;padding:6px 4px 7px;background:transparent;color:#aaa;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:9px;letter-spacing:.4px;white-space:nowrap}
.offline-extra-tabs button.active{color:#555}
.offline-extra-tabs button.active::after{position:absolute;right:34%;bottom:-1px;left:34%;height:1px;background:#777;content:""}
.offline-extra-pane[hidden]{display:none!important}
.offline-extra-pane{display:grid;gap:7px}
.offline-extra-fold,.offline-regex-rule{border-bottom:1px solid #eee}
.offline-extra-fold>summary,.offline-regex-rule>summary{display:flex;align-items:center;justify-content:space-between;min-height:34px;cursor:pointer;list-style:none;color:#777;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:10px;letter-spacing:.2px}
.offline-extra-fold>summary::-webkit-details-marker,.offline-regex-rule>summary::-webkit-details-marker{display:none}
.offline-extra-fold>summary i,.offline-regex-rule>summary i{position:relative;display:block;width:12px;height:12px;flex:none}
.offline-extra-fold>summary i:before,.offline-extra-fold>summary i:after,.offline-regex-rule>summary i:before,.offline-regex-rule>summary i:after{position:absolute;top:5px;left:2px;width:8px;height:1px;background:#aaa;content:""}
.offline-extra-fold>summary i:after,.offline-regex-rule>summary i:after{transform:rotate(90deg);transition:transform .18s}
.offline-extra-fold[open]>summary i:after,.offline-regex-rule[open]>summary i:after{transform:rotate(0)}
.offline-extra-fold[open],.offline-regex-rule[open]{padding-bottom:8px}
.offline-config-item,.offline-regex-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid #ece9ec;border-radius:11px;background:rgba(255,255,255,.78)}
.offline-config-item>.offline-extra-fold,.offline-regex-item>.offline-regex-rule{min-width:0;border:0}
.offline-regex-item>.offline-regex-rule{width:100%;align-self:start}
.offline-config-item:has(>details[open]),.offline-regex-item:has(>.offline-regex-rule[open]){grid-template-columns:minmax(0,1fr)}
.offline-config-item:has(>details[open])>.offline-extra-fold,.offline-regex-item:has(>.offline-regex-rule[open])>.offline-regex-rule{grid-column:1}
.offline-config-item:has(>details[open])>.offline-config-actions,.offline-regex-item:has(>.offline-regex-rule[open])>.offline-config-actions{grid-column:1;justify-self:end;margin-top:0}
.offline-config-actions{display:flex;align-items:center;gap:5px;align-self:center;margin-top:0}
.offline-config-switch{position:relative;display:inline-flex;width:42px;height:24px;margin:0;flex:none;cursor:pointer}
.offline-config-switch input{position:absolute;width:1px;height:1px;opacity:0}
.offline-config-switch i{position:absolute;inset:0;border-radius:999px;background:#ddd;transition:background .18s}
.offline-config-switch i:after{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;content:"";transition:transform .18s}
.offline-config-switch input:checked+i{background:#111}
.offline-config-switch input:checked+i:after{transform:translateX(18px)}
.offline-config-switch input:focus-visible+i{outline:2px solid #aaa;outline-offset:2px}
.offline-config-actions>.offline-extra-remove{display:inline-flex;align-items:center;justify-content:center;width:42px;height:24px;margin:0;padding:0;border:0;border-radius:999px;background:#f4f3f4;color:#999;font-size:9px;line-height:1}
.offline-regex-item>.offline-config-actions>[data-regex-save]{display:none}
.offline-regex-item>.offline-config-actions>[data-regex-cancel]{display:none}
.offline-regex-item:has(>.offline-regex-rule[open])>.offline-config-actions>[data-regex-cancel],.offline-regex-item:has(>.offline-regex-rule[open])>.offline-config-actions>[data-regex-save]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:24px;margin:0;padding:0 9px;border:1px solid #e4e1e4;border-radius:999px;background:#fff;color:#777;font-size:9px;line-height:1}
.offline-config-actions>.offline-extra-remove:active{background:#eae8ea;color:#666}
.offline-extra-fold>summary,.offline-regex-rule>summary{min-height:36px}
.offline-draft-cot-content{max-height:360px;overflow:auto;padding:6px 3px;color:#666;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:9px;line-height:1.7;white-space:pre-wrap;scrollbar-width:thin}
.offline-extra-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;color:#999;font-size:8px;letter-spacing:.3px}.offline-extra-field>span{color:#999;font-size:8px;letter-spacing:.3px}
.offline-extra-name{display:grid;grid-column:1/-1;gap:5px;color:#999;font-size:9px;letter-spacing:.2px}
.offline-extra-name input{width:100%;min-width:0;padding:5px 2px;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:11px;outline:none}
.offline-extra-name input::placeholder{color:#bbb}
.offline-extra-field textarea{grid-column:1/-1;width:100%;min-height:116px;max-height:45dvh;padding:5px 2px 8px;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:11px;line-height:26px;resize:vertical;scrollbar-width:thin}
.offline-extra-field textarea::placeholder{color:#bbb;font-size:10px}
.offline-extra-add,.offline-extra-remove{justify-self:start;padding:5px 0;border-bottom:1px solid #ddd;background:transparent;color:#888;font-size:9px;letter-spacing:.1px}
.offline-extra-remove{justify-self:end;padding:2px 0;color:#aaa;font-size:8px}
.offline-extra-field footer,.offline-regex-rule footer{display:flex;align-items:center;justify-content:flex-end;gap:14px;grid-column:1/-1}
.offline-extra-save{padding:4px 10px;border:1px solid #e4e1e4;border-radius:999px;background:#fff;color:#777;font-size:9px;letter-spacing:.2px}
.offline-extra-cancel{padding:4px 10px;border:1px solid #eee;border-radius:999px;background:#fafafa;color:#999;font-size:9px;letter-spacing:.2px}
.offline-extra-save:active{background:#f5f3f5;color:#444}
.offline-extra-cancel:active{background:#f5f3f5;color:#666}
.offline-extra-add:active,.offline-extra-remove:active{color:#555}
.offline-extra-pane[data-offline-extra-pane="regex"]>.offline-extra-add{justify-self:stretch;padding:7px 10px;border:1px dashed #e7e4e7;border-radius:9px;background:rgba(255,255,255,.55);color:#999;text-align:center}
.offline-extra-pane[data-offline-extra-pane="regex"]>.offline-extra-add:active{background:#f7f6f7}
.offline-regex-rule{display:block;padding:0 5px;border:0;border-bottom:0;border-radius:0;background:transparent}
.offline-regex-rule-content{display:grid;gap:8px;padding:4px 2px 1px}
.offline-regex-rule-content>header{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,1fr);align-items:end;gap:8px}
.offline-regex-rule-content label{display:grid;gap:5px;color:#999;font-size:9px;letter-spacing:.2px}
.offline-regex-scopes{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;margin:0;padding:0;border:0;color:#999}
.offline-regex-scopes legend{width:100%;padding:0 0 3px;color:#999;font-size:9px;letter-spacing:.2px}
.offline-regex-scopes label{display:flex;align-items:center;gap:0;padding:5px 8px;border:1px solid #efedef;border-radius:999px;background:#fff;color:#999;font-size:9px;white-space:nowrap;cursor:pointer}
.offline-regex-scopes label:has(input:checked){border-color:#e1dee1;background:#f5f4f5;color:#666}
.offline-regex-scopes input[type="checkbox"]{position:absolute;width:1px;min-height:1px;height:1px;opacity:0}
.offline-regex-rule input:not([type="checkbox"]),.offline-regex-rule select{width:100%;min-height:32px;padding:6px 9px;border:1px solid #efedef;border-radius:8px;background:#fff;color:#666;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:10px}
.offline-regex-rule textarea{width:100%;min-height:42px;max-height:150px;padding:7px 9px;border:1px solid #efedef;border-radius:8px;background:#fff;color:#555;font-family:ui-monospace,SFMono-Regular,monospace;font-size:9px;line-height:1.6;resize:vertical;overflow-wrap:anywhere}
.offline-regex-rule-content>label:nth-of-type(2) textarea{min-height:34px}
.offline-regex-rule textarea::placeholder{color:#bbb;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:9px}
.offline-regex-rule-content footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:1px}
.offline-regex-rule-content .offline-extra-save{min-width:66px}
.offline-regex-item .offline-config-switch{align-self:start;margin-top:0}
.offline-regex-lanes{display:flex;align-items:center;gap:6px;margin:0;padding:7px 0 0;border:0;border-top:1px solid #f0eef0}
.offline-regex-lanes legend{width:100%;padding:0 0 3px;color:#999;font-size:9px}
.offline-regex-test{border-top:1px solid #f0eef0;padding-top:6px}
.offline-regex-test>summary{display:flex;align-items:center;min-height:27px;color:#888;font-size:10px;cursor:pointer;list-style:none}
.offline-regex-test>summary::-webkit-details-marker{display:none}
.offline-regex-test>div{display:grid;gap:7px;padding:4px 0}
.offline-regex-test textarea{width:100%;min-height:54px;padding:7px 9px;border:1px solid #efedef;border-radius:8px;background:#fff;color:#555;font:10px/1.6 ui-monospace,SFMono-Regular,monospace;resize:vertical}
.offline-regex-test-options{display:flex;align-items:center;gap:6px}
.offline-regex-test-options select{min-height:30px;padding:4px 7px;border:1px solid #efedef;border-radius:8px;background:#fff;color:#777;font-size:10px}
.offline-regex-test-options button{min-height:30px;padding:0 11px;border:1px solid #e9e6e9;border-radius:8px;background:#f8f7f8;color:#666;font-size:10px}
.offline-regex-test-result{display:grid;grid-template-columns:1fr;gap:4px;max-height:220px;overflow:auto;padding:8px;border-radius:8px;background:#f7f6f7}
.offline-regex-test-result small{color:#999;font-size:9px}
.offline-regex-test-result pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#666;font:10px/1.55 ui-monospace,SFMono-Regular,monospace}
.offline-regex-order{margin:0 0 6px;padding:8px 10px;border-radius:9px;background:#f7f6f7;color:#929092;font-size:9px;line-height:1.65}
.offline-stage-memory-panel{display:grid;gap:10px;padding:12px}
.offline-stage-memory-panel>header{display:grid;gap:4px;margin-bottom:2px}
.offline-stage-memory-panel>header strong{color:#676368;font-size:13px;font-weight:500}
.offline-stage-memory-panel>header small,.offline-stage-memory-footnote{color:#a09ba0;font-size:10px;line-height:1.6}
.offline-stage-memory-status{margin:0;padding:9px 11px;border-radius:9px;background:#faf5f2;color:#a37b68;font-size:10px;line-height:1.6}
.offline-stage-memory-card{padding:0 10px 9px;border:1px solid #ece9ec;border-radius:11px;background:rgba(255,255,255,.82)}
.offline-stage-memory-card.is-stale{border-color:#eadbd5;background:#fffaf8}
.offline-stage-memory-card details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;color:#777;font-size:10px;cursor:pointer;list-style:none}
.offline-stage-memory-card details>summary::-webkit-details-marker{display:none}
.offline-stage-memory-card details>summary small{flex:none;color:#aaa;font-size:9px}
.offline-stage-memory-card textarea{width:100%;min-height:90px;padding:9px 10px;border:1px solid #efedef;border-radius:9px;background:#fff;color:#666;font:11px/1.65 -apple-system,BlinkMacSystemFont,sans-serif;resize:vertical}
.offline-stage-memory-card footer{display:flex;justify-content:flex-end;gap:7px;padding-top:8px}
.offline-stage-memory-card footer button{min-height:30px;padding:0 11px;border:1px solid #e9e6e9;border-radius:8px;background:#f8f7f8;color:#777;font-size:10px}
.offline-stage-memory-card footer button:disabled{opacity:.45}
.offline-stage-memory-empty{display:grid;gap:5px;padding:22px 12px;border:1px dashed #e9e6e9;border-radius:11px;text-align:center;color:#aaa;font-size:10px}
.offline-stage-memory-empty strong{color:#888;font-size:11px;font-weight:500}
.offline-stage-memory-footnote{margin:2px 0 0}

.offline-generation-diagnostics .offline-extra-field{display:block}
.offline-generation-diagnostics .offline-extra-field>details{margin-top:10px}

/* Raw streamed blocks stay plain until their comment or paragraph is complete. */
.offline-prose-body>.offline-streaming-plain{white-space:pre-wrap;overflow-wrap:anywhere}

/* Indent each user-entered line; blank lines retain a paragraph gap. */
.offline-prose-entry.is-user .offline-user-paragraph{margin:0 0 1em}
.offline-prose-entry.is-user .offline-user-paragraph:last-child{margin-bottom:0}
.offline-prose-entry.is-user .offline-user-paragraph>.offline-prose-paragraph{margin:0;text-indent:2em!important}

/* Show the requirements save action to the left of its enable switch when expanded. */
.offline-config-item>.offline-config-actions>[data-offline-extra-save="requirements"]{display:none}
.offline-config-item:has(>.offline-extra-fold[open])>.offline-config-actions>[data-offline-extra-save="requirements"]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:24px;margin:0;padding:0 9px;line-height:1}

/* Editable draft COT uses the same expanded save action as other requirements. */
textarea.offline-draft-cot-content{display:block;width:100%;min-height:280px;border:0;border-radius:0;background:transparent;resize:vertical;outline:none}
.offline-config-item>.offline-config-actions>[data-mini-theater-prompt-save]{display:none}
.offline-config-item:has(>.offline-extra-fold[open])>.offline-config-actions>[data-mini-theater-prompt-save]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:24px;margin:0;padding:0 9px;line-height:1}
.offline-config-item>.offline-config-actions>[data-draft-cot-save]{display:none}
.offline-config-item:has(>.offline-extra-fold[open])>.offline-config-actions>[data-draft-cot-save]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:24px;margin:0;padding:0 9px;line-height:1}

/* Offline interactive side stories are isolated and folded below their main reply. */
.offline-mini-theater{width:100%;min-width:0;margin-top:14px;text-indent:0;color:#777;font:11px/1.7 "Songti SC",serif}
.offline-mini-theater>summary{display:flex;align-items:center;gap:6px;list-style:none;cursor:pointer;padding:4px 0;touch-action:manipulation}
.offline-mini-theater>summary::-webkit-details-marker{display:none}
.offline-mini-theater>summary::before{content:'▸'}
.offline-mini-theater[open]>summary::before{content:'▾'}
.offline-mini-theater-frame{display:block;width:100%;max-width:100%;height:48px;margin-top:8px;border:0;background:transparent;overflow:hidden;pointer-events:auto;touch-action:auto;-webkit-overflow-scrolling:touch}
.offline-mini-theater-status{margin:6px 0 0;color:#9a5b4a;font:12px/1.5 "Songti SC",serif}

/* Local community forum */
.forum-app{position:relative;min-height:100%;max-width:620px;margin:0 auto;padding:0 0 34px;color:#4e4e4e}
.forum-app button,.forum-app input,.forum-app textarea,.forum-app select{font:inherit}
.forum-world-switch{display:flex;align-items:center;gap:9px;padding:3px 0 11px;border-bottom:1px solid #eee;color:#999;font-size:9px}
.forum-world-switch label{flex:none}.forum-world-switch select{flex:1;min-width:0;padding:5px 18px 5px 2px;border:0;background:transparent;color:#555;font-size:10px;text-align:right;outline:none}.forum-world-switch>button,.forum-subpage-head>button{padding:7px 0;color:#888;font-size:9px}
.forum-world-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:17px 0 12px}.forum-world-intro>div{min-width:0}.forum-world-intro small{color:#aaa;font-size:7px;letter-spacing:1.7px}.forum-world-intro h2{margin:4px 0;color:#444;font-size:18px;font-weight:400;letter-spacing:.3px;overflow-wrap:anywhere}.forum-world-intro p{margin:4px 0 0;color:#999;font-size:9px;line-height:1.6}.forum-world-intro>span{flex:none;padding:5px 8px;border-radius:20px;background:#f5f5f5;color:#999;font-size:8px}
.forum-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:3px 0 13px}.forum-tools>button{position:relative;min-height:32px;border:1px solid #eee;border-radius:10px;background:#fff;color:#777;font-size:9px}.forum-tools>button:first-child{display:flex;align-items:center;justify-content:center;gap:4px}.forum-tools>button i{position:absolute;top:-5px;right:-4px;display:grid;min-width:14px;height:14px;place-items:center;border-radius:10px;background:#555;color:white;font-size:7px;font-style:normal}
.forum-main-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #eee}.forum-main-tabs button{position:relative;padding:10px 2px;color:#aaa;font-size:10px}.forum-main-tabs button.is-active{color:#444}.forum-main-tabs button.is-active:after{position:absolute;right:25%;bottom:-1px;left:25%;height:1px;background:#555;content:""}
.forum-feed-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 1px 7px;color:#555;font-size:10px}.forum-feed-heading button{padding:4px 0;color:#999;font-size:8px}.forum-post{margin:0;padding:13px 1px 12px;border-bottom:1px solid #eee;background:#fff}.forum-post-author{display:flex;align-items:center;gap:9px;min-width:0}.forum-avatar{display:grid;flex:none;width:34px;height:34px;place-items:center;overflow:hidden;border:0;border-radius:50%;background:#ededed;color:#777;font-size:13px}.forum-avatar img{width:100%;height:100%;object-fit:cover}.forum-avatar.is-anonymous{background:#f2f2f2;color:#999;font-size:10px}.forum-author-meta{display:grid;flex:1;min-width:0;gap:3px}.forum-author-meta>button{width:fit-content;max-width:100%;overflow:hidden;color:#555;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.forum-author-meta small{color:#aaa;font-size:8px}.forum-post-more{padding:3px 2px;color:#999;font-size:16px;letter-spacing:1px}.forum-post-open{display:block;width:100%;padding:9px 0 4px;text-align:left;cursor:pointer}.forum-post-open>p,.forum-post-full>p{margin:0;color:#555;font-size:11px;line-height:1.75;overflow-wrap:anywhere;white-space:pre-wrap}.forum-post-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px}.forum-post-image{width:100%;max-height:220px;aspect-ratio:1;object-fit:cover;border-radius:9px;background:#f2f2f2}.forum-topics{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.forum-topics button,.forum-topics span{padding:3px 0;color:#999;font-size:8px}.forum-post-actions{display:flex;align-items:center;gap:20px;padding-top:8px}.forum-post-actions button,.forum-post-actions>span{padding:3px 0;color:#999;font-size:8px}.forum-post-actions button.is-on{color:#555}.forum-post-actions button span{margin-left:2px}
.forum-poll{display:grid;gap:6px;margin-top:8px}.forum-poll>button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;overflow:hidden;padding:7px 9px;border:1px solid #e9e9e9;border-radius:8px;background:#fff;color:#666;text-align:left;font-size:9px}.forum-poll>button>span,.forum-poll>button>small{position:relative;z-index:1}.forum-poll>button>i{position:absolute;inset:0 auto 0 0;background:#f0f0f0}.forum-poll>small{color:#aaa;font-size:8px}
.forum-compose-fab{position:fixed;right:max(30px,calc((100vw - 700px)/2));bottom:calc(92px + env(safe-area-inset-bottom));z-index:3;width:43px;height:43px;border-radius:50%;background:#555;color:#fff;font-size:23px;box-shadow:0 4px 15px #00000018}.forum-join-hint{margin:15px 0;color:#999;font-size:9px;text-align:center}.forum-load-more{display:block;margin:14px auto;padding:8px 15px;border:1px solid #e8e8e8;border-radius:10px;color:#888;font-size:9px}.forum-empty{display:grid;justify-items:center;gap:8px;padding:42px 12px;color:#999;text-align:center}.forum-empty>span{font-size:24px;color:#ccc}.forum-empty strong{color:#666;font-size:11px;font-weight:400}.forum-empty p{max-width:270px;margin:0;color:#aaa;font-size:9px;line-height:1.7}.forum-primary{min-height:35px;padding:8px 15px;border:1px solid #5c5c5c;border-radius:10px;background:#5c5c5c;color:#fff;font-size:10px}.forum-flash{margin:0 0 8px;padding:8px 10px;border-radius:8px;background:#f2f2f2;color:#777;font-size:9px;line-height:1.6}.forum-muted{color:#aaa;font-size:9px;line-height:1.7}
.forum-subpage{padding:0 0 22px}.forum-subpage-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;border-bottom:1px solid #eee}.forum-subpage-head h2{flex:1;margin:0;color:#555;font-size:14px;font-weight:400}.forum-subpage-head>button:last-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forum-search-form{display:flex;gap:8px;padding:12px 0}.forum-search-form input{flex:1;min-width:0;padding:10px;border:1px solid #e9e9e9;border-radius:10px;background:#fafafa;color:#555;font-size:10px}.forum-search-form button,.forum-comment-form button,.forum-reply-form button{padding:7px 11px;border-radius:9px;background:#666;color:#fff;font-size:9px}
.forum-post-full{padding:15px 1px}.forum-post-full>p{margin:14px 0}.forum-detail-image{display:block;width:100%;max-height:440px;margin:8px 0;object-fit:contain;border-radius:10px;background:#f4f4f4}.forum-comments{padding-top:13px}.forum-comments>header{display:flex;gap:7px;align-items:center;padding-bottom:10px;color:#555;font-size:11px}.forum-comments>header small{color:#aaa;font-size:8px}.forum-comment-form,.forum-reply-form{display:flex;gap:7px;padding:7px 0 12px}.forum-comment-form input,.forum-reply-form input{flex:1;min-width:0;padding:9px 10px;border:1px solid #e9e9e9;border-radius:10px;background:#fafafa;color:#555;font-size:10px}.forum-comment{display:flex;gap:8px;padding:10px 0;border-top:1px solid #f0f0f0}.forum-comment .forum-avatar{width:28px;height:28px;font-size:10px}.forum-comment-body{flex:1;min-width:0}.forum-comment-body>header{display:flex;justify-content:space-between;gap:8px}.forum-comment-body>header button{overflow:hidden;color:#666;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.forum-comment-body>header time,.forum-reply-to{flex:none;color:#aaa;font-size:8px}.forum-comment-body>p{margin:5px 0;color:#666;font-size:10px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.forum-comment-body>footer{display:flex;flex-wrap:wrap;gap:14px}.forum-comment-body>footer button{padding:4px 0;color:#aaa;font-size:8px}.forum-comment-body>footer button.is-on{color:#555}.forum-comment.is-reply{margin-left:min(calc(var(--forum-depth)*13px),52px);padding-top:8px}.forum-reply-form{padding:5px 0 0}.forum-reply-form[hidden]{display:none!important}
.forum-profile-hero{display:flex;align-items:flex-start;gap:11px;padding:18px 0 12px}.forum-profile-hero>.forum-avatar{width:52px;height:52px;font-size:17px}.forum-profile-hero>div{flex:1;min-width:0}.forum-profile-hero h2{margin:1px 0 4px;color:#555;font-size:15px;font-weight:400;overflow-wrap:anywhere}.forum-profile-hero small{color:#aaa;font-size:8px}.forum-profile-hero p{margin:7px 0 0;color:#888;font-size:9px;line-height:1.7;overflow-wrap:anywhere}.forum-profile-hero>button:not(.forum-avatar){flex:none;padding:7px 10px;border:1px solid #e5e5e5;border-radius:9px;color:#777;font-size:9px}.forum-profile-stats{display:flex;gap:18px;padding:10px 0;border-block:1px solid #eee;color:#888;font-size:8px}.forum-profile-form,.forum-compose-form,.forum-world-form{display:grid;gap:13px;padding:14px 0}.forum-profile-form>label,.forum-compose-form>label,.forum-world-form>label,.forum-member-add>label{display:grid;gap:6px;color:#888;font-size:9px}.forum-profile-form input,.forum-profile-form textarea,.forum-compose-form textarea,.forum-compose-form input,.forum-compose-form select,.forum-world-form input,.forum-world-form textarea,.forum-member-add select{width:100%;min-width:0;padding:10px;border:1px solid #e9e9e9;border-radius:10px;background:#fafafa;color:#555;font-size:10px;line-height:1.6}.forum-profile-form textarea,.forum-compose-form textarea,.forum-world-form textarea{resize:vertical}.forum-upload small{color:#aaa;font-size:8px}.forum-profile-preview{width:72px;height:72px;border-radius:12px;object-fit:cover}.forum-check{display:grid!important;grid-template-columns:16px auto 1fr;align-items:center;gap:7px!important}.forum-check input{width:14px;height:14px;margin:0;accent-color:#555}.forum-check small{color:#aaa;font-size:8px}.forum-compose-form [hidden]{display:none!important}
.forum-notice{display:flex;align-items:center;gap:10px;width:100%;padding:12px 1px;border-bottom:1px solid #eee;background:#fff;text-align:left}.forum-notice .forum-avatar{width:30px;height:30px}.forum-notice>span:last-child{display:grid;gap:4px;color:#888;font-size:9px}.forum-notice strong{color:#555;font-weight:500}.forum-notice small{color:#aaa;font-size:8px}.forum-notice.is-read{opacity:.58}
.forum-world-form{padding-bottom:18px;border-bottom:1px solid #eee}.forum-world-list{display:grid}.forum-world-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #eee}.forum-world-row>button:first-child{display:grid;flex:1;min-width:0;gap:4px;text-align:left}.forum-world-row strong{color:#555;font-size:10px;font-weight:500}.forum-world-row small{overflow:hidden;color:#aaa;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.forum-world-row>button:not(:first-child){padding:6px 0;color:#999;font-size:8px}.forum-world-row.is-current strong{color:#333}
.forum-default-badge{display:inline-block;margin-left:7px;padding:2px 6px;border:1px solid #e9e5e3;border-radius:10px;color:#9a8b84;font-size:7px;font-weight:400;vertical-align:1px}.forum-world-row>button.forum-reset-world{color:#aa7770}
.forum-member-add{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid #eee}.forum-member-add h3{margin:4px 0;color:#666;font-size:10px;font-weight:500}.forum-member-add form{display:flex;gap:8px}.forum-member-add form select{flex:1}.forum-member-add form button{padding:0 10px;border:1px solid #e7e7e7;border-radius:9px;color:#666;font-size:9px;white-space:nowrap}.forum-member-list{display:grid}.forum-member-card{display:flex;align-items:flex-start;gap:9px;padding:12px 0;border-bottom:1px solid #eee}.forum-member-card>.forum-avatar{width:32px;height:32px}.forum-member-details{display:grid;flex:1;min-width:0;gap:4px}.forum-member-details>strong{color:#555;font-size:10px;font-weight:500}.forum-member-details>small{color:#aaa;font-size:8px;overflow-wrap:anywhere}.forum-member-card>button:last-child{padding:5px 0;color:#999;font-size:8px}.forum-member-setting{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#888;font-size:8px}.forum-member-setting select{max-width:110px;padding:4px;border:1px solid #eee;border-radius:7px;background:#fff;color:#777;font-size:8px}.forum-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.forum-permissions label{display:flex;align-items:center;gap:5px;color:#999;font-size:8px}.forum-permissions input{width:12px;height:12px;margin:0;accent-color:#555}
.forum-member-card>button[data-forum-action="role-new-post"],.forum-role-reply>button{padding:6px 9px;border:1px solid #e6e6e6;border-radius:8px;background:#fafafa;color:#666;font-size:8px;white-space:nowrap}.forum-role-reply{display:flex;gap:7px;align-items:center;padding:3px 0 9px}.forum-role-select,.forum-comment-role-select{max-width:150px;padding:6px 8px;border:1px solid #e8e8e8;border-radius:8px;background:#fff;color:#777;font-size:8px}.forum-comment-role-select{max-width:110px;padding:3px 5px}
.forum-story-summary{display:grid;gap:5px;color:#999;font-size:8px}.forum-story-summary textarea{width:100%;min-width:0;padding:7px;border:1px solid #ececec;border-radius:8px;background:#fafafa;color:#777;font:inherit;line-height:1.6;resize:vertical}
.forum-world-switch select#forumPersonaSelect{flex:0 1 92px;max-width:92px;text-align:left}.forum-world-switch select#forumWorldSelect{min-width:60px}
.forum-post-menu-wrap{position:relative}.forum-post-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:5;display:grid;min-width:76px;padding:4px;border:1px solid #eee;border-radius:9px;background:#fff;box-shadow:0 5px 18px #00000012}.forum-post-menu button{padding:7px 9px;color:#777;font-size:9px;text-align:left}
@media(max-width:480px){.forum-tools{gap:5px}.forum-tools>button{font-size:8px}.forum-post{padding-inline:0}.forum-post-actions{gap:15px}.forum-compose-fab{right:28px;bottom:calc(82px + env(safe-area-inset-bottom))}.forum-comment.is-reply{margin-left:min(calc(var(--forum-depth)*9px),36px)}}
.iris-market{--market-ink:#292827;--market-muted:#9b9894;--market-line:#ece9e5;max-width:620px;min-height:100%;margin:0 auto;padding:3px 0 28px;color:var(--market-ink);font-family:inherit;font-size:12px;line-height:1.55}
.market-welcome{padding:13px 0 16px}.market-welcome>small,.market-section header small,.market-wallet>small{color:#aaa;font-family:Georgia,serif;font-size:8px;letter-spacing:1.7px}.market-welcome h1{margin:8px 0 6px;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:29px;font-weight:400;letter-spacing:1.2px;line-height:1.4}.market-welcome p{margin:0;color:#999;font-size:9px}.market-search{display:flex;align-items:center;gap:8px;height:40px;margin:5px 0 15px;padding:0 11px;border:1px solid #eae8e5;border-radius:5px;background:#fbfaf9}.market-search>span{color:#aaa;font-size:20px}.market-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#555;font:inherit;font-size:10px}.market-search button{padding:5px 0;background:transparent;color:#555;font-size:10px}.market-categories,.market-category-pills{display:flex;gap:8px;overflow-x:auto;padding:2px 0 13px;scrollbar-width:none}.market-categories::-webkit-scrollbar,.market-category-pills::-webkit-scrollbar{display:none}.market-categories button,.market-category-pills button{flex:none;padding:7px 10px;border:1px solid #eeece9;border-radius:20px;background:#fff;color:#777;font-size:9px;white-space:nowrap}.market-category-pills button.is-active{border-color:#777;color:#333}.market-section{margin:15px 0 20px}.market-section>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.market-section header small{font-size:7px;letter-spacing:1.2px}.market-section h2{margin:1px 0 0;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:17px;font-weight:400}.market-section header>button{padding:4px 0;background:transparent;color:#999;font-size:9px}.market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 11px}.market-product{display:flex;min-width:0;flex-direction:column;padding:0;background:#fff;color:inherit;text-align:left}.market-product-art{position:relative;display:grid;width:100%;aspect-ratio:1.17/1;place-items:center;overflow:hidden;background:linear-gradient(145deg,#efebe6,#e5e0da 58%,#f7f3ef);color:#fff}.market-product:nth-child(4n+2) .market-product-art{background:linear-gradient(145deg,#e8e3df,#d4c7bd 68%,#efe8e2)}.market-product:nth-child(4n+3) .market-product-art{background:linear-gradient(145deg,#edf0eb,#d9e0d8 66%,#f5f3ee)}.market-product:nth-child(4n) .market-product-art{background:linear-gradient(145deg,#eee9e2,#ded4c7 68%,#f6f2ed)}.market-product-art>span{font-family:"Songti SC",serif;font-size:25px;font-weight:300;letter-spacing:4px;text-shadow:0 1px 9px #766d6533}.market-product-art>i{position:absolute;right:8px;bottom:5px;color:#ffffffaa;font-family:Georgia,serif;font-size:8px;letter-spacing:1px}.market-product-art.is-large{aspect-ratio:1.07/1;margin:0 0 13px}.market-product-art.is-large>span{font-size:52px}.market-product-copy{display:grid;gap:2px;padding:6px 1px 0}.market-product-copy strong{overflow:hidden;font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.market-product-copy small{color:#aaa;font-size:8px}.market-product-copy b{margin-top:2px;color:#4b413b;font-family:Georgia,serif;font-size:12px;font-weight:500}.market-shops{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.market-shops button{display:grid;justify-items:center;gap:4px;min-width:0;padding:8px 2px;border:1px solid #f0eeeb;background:#fff;color:#555}.market-shops i{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:#f4f0ec;color:#93877c;font-family:serif;font-size:13px;font-style:normal}.market-shops strong{max-width:100%;overflow:hidden;font-size:8px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.market-shops small{color:#aaa;font-size:7px}.market-recent{display:flex;gap:7px;overflow-x:auto}.market-recent span{flex:none;padding:7px 9px;border-bottom:1px solid #eee;color:#777;font-size:9px}.market-nav{position:sticky;z-index:2;bottom:-28px;display:flex;justify-content:space-around;margin:20px -1px -28px;padding:10px 0 max(8px,env(safe-area-inset-bottom));border-top:1px solid #eee;background:#fff}.market-nav button{padding:4px 8px;background:transparent;color:#aaa;font-size:9px}.market-nav button.is-active{color:#333}.market-subhead{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;margin-bottom:9px;border-bottom:1px solid #efedeb}.market-subhead button{padding:8px 2px;background:transparent;color:#777;font-size:10px}.market-subhead h2{margin:0;font-family:"Songti SC",serif;font-size:16px;font-weight:400}.market-subhead small{color:#aaa;font-size:9px}.market-category-pills{margin:0 0 9px}.market-detail{padding:2px 1px 90px}.market-detail>small{color:#aaa;font-size:8px}.market-detail h1{margin:4px 0;font-family:"Songti SC",serif;font-size:21px;font-weight:400}.market-detail-price{display:block;margin:4px 0 12px;color:#55473f;font-family:Georgia,serif;font-size:20px;font-weight:400}.market-detail>p{color:#777;font-size:10px;line-height:1.8}.market-options{display:grid;gap:7px;margin:16px 0;padding:12px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.market-options>strong,.market-reviews h3{font-size:10px;font-weight:500}.market-options label{display:flex;align-items:center;gap:8px;color:#777;font-size:9px}.market-shipping-note{padding:7px 0;border-bottom:1px solid #eee}.market-favorite{margin:9px 0;padding:6px 0;background:transparent;color:#777;font-size:9px}.market-reviews{margin-top:10px}.market-reviews h3{margin-bottom:6px}.market-reviews p{padding:8px 0;border-bottom:1px solid #f0efed;color:#777;font-size:9px}.market-reviews p b{color:#9e8c7b}.market-reviews p small{display:block;margin-top:4px;color:#aaa}.market-buybar,.market-checkoutbar{position:sticky;z-index:2;bottom:0;display:flex;align-items:center;gap:7px;margin:0;padding:9px 0 max(9px,env(safe-area-inset-bottom));border-top:1px solid #eceae7;background:#fff}.market-buybar{margin-top:-75px}.market-buybar button,.market-checkoutbar button{flex:1;padding:10px 3px;border:1px solid #ddd9d5;background:#fff;color:#555;font-size:9px}.market-buybar .is-primary,.market-checkoutbar .is-primary{border-color:#383532;background:#383532;color:#fff}.market-cart-row{display:grid;grid-template-columns:18px 68px minmax(0,1fr);gap:8px;align-items:start;padding:12px 0;border-bottom:1px solid #eeece9}.market-cart-row>input{margin:24px 0 0}.market-cart-row>button{padding:0;background:transparent}.market-cart-row .market-product-art{aspect-ratio:1}.market-cart-row>div{display:grid;gap:3px;min-width:0}.market-cart-row strong{overflow:hidden;font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.market-cart-row small{color:#999;font-size:8px}.market-cart-row b{font-family:Georgia,serif;font-size:11px;font-weight:500}.market-quantity{display:flex;align-items:center;gap:10px;margin-top:3px;color:#777;font-size:9px}.market-quantity button{padding:2px 5px;border:1px solid #eee;background:#fff;color:#666}.market-quantity button:last-child{margin-left:auto;border:0;color:#aaa}.market-checkoutbar{justify-content:space-between;margin-top:15px}.market-checkoutbar>span{font-size:10px}.market-checkoutbar>span b{font-family:Georgia,serif;font-size:14px}.market-checkoutbar button{flex:0 0 42%}.market-checkout-items{padding:2px 0 10px}.market-checkout-items p,.market-receipt>p{display:flex;justify-content:space-between;gap:8px;color:#666;font-size:9px}.market-panel{display:grid;gap:8px;margin:12px 0;padding:12px 0;border-top:1px solid #eeece9}.market-panel h3{margin:0;font-size:10px;font-weight:500}.market-panel p,.market-panel small{margin:0;color:#999;font-size:9px;line-height:1.7}.market-panel select,.market-panel textarea,.market-address-form input,.market-review-form textarea{width:100%;min-width:0;padding:8px;border:1px solid #ece9e6;border-radius:3px;background:#fff;color:#555;font:inherit;font-size:10px}.market-panel textarea,.market-review-form textarea{min-height:66px;resize:vertical}.market-role-pay button{justify-self:start;padding:8px 12px;border:1px solid #dedad5;background:#fff;color:#555;font-size:9px}.market-primary-full,.market-secondary-full{width:100%;margin:13px 0;padding:11px;border:1px solid #363330;background:#363330;color:#fff;font-size:10px}.market-secondary-full{border-color:#ddd;background:#fff;color:#777}.market-order{margin:10px 0;padding:10px;border:1px solid #eeece9}.market-order header,.market-order footer{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#888;font-size:9px}.market-order header b{color:#72665c;font-weight:500}.market-order p{display:flex;justify-content:space-between;gap:6px;margin:9px 0;color:#555;font-size:9px}.market-order p b{flex:none;font-weight:400}.market-order footer{padding-top:8px;border-top:1px solid #f0efed;font-size:8px}.market-order footer button{padding:5px 0;background:transparent;color:#777;font-size:8px}.market-order-tabs{display:flex;justify-content:space-between;border-bottom:1px solid #eee}.market-order-tabs button{padding:8px 4px;background:transparent;color:#999;font-size:9px}.market-receipt{margin:16px 0;padding:16px 13px;border:1px dashed #d8d2cc;background:repeating-linear-gradient(0deg,#fff 0,#fff 27px,#faf9f8 27px,#faf9f8 28px);color:#635c56}.market-receipt>small{color:#aaa;font-family:Georgia,serif;font-size:7px;letter-spacing:1.5px}.market-receipt h2{margin:5px 0 12px;font-family:"Songti SC",serif;font-size:15px;font-weight:400}.market-receipt p{position:relative;display:block;line-height:1.7}.market-receipt p b{float:right;font-family:Georgia,serif;font-weight:500}.market-receipt p small{display:block;color:#aaa;font-size:8px}.market-receipt hr{border:0;border-top:1px dashed #ddd}.market-logistics{display:flex;align-items:flex-start;gap:9px;padding:5px 0}.market-logistics i{width:7px;height:7px;flex:none;margin-top:4px;border-radius:50%;background:#aaa}.market-logistics span{display:grid;gap:2px}.market-logistics small{color:#aaa}.market-role-decision{padding:12px;border-left:2px solid #b7a99b;background:#faf8f5}.market-review-form{display:grid;gap:8px;margin:16px 0;padding-top:12px;border-top:1px solid #eee}.market-review-form h3{margin:0;font-size:11px;font-weight:500}.market-review-form button,.market-address-form button{justify-self:end;padding:8px 13px;background:#363330;color:#fff;font-size:9px}.market-wallet{display:grid;gap:7px;padding:16px;border:1px solid #ebe7e3;background:linear-gradient(135deg,#faf8f5,#fff)}.market-wallet strong{font-family:Georgia,serif;font-size:26px;font-weight:400}.market-wallet button{justify-self:start;padding:5px 0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:9px}.market-wallet p{margin:0;color:#aaa;font-size:8px}.market-mine-links{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;margin:16px 0}.market-mine-links button{padding:13px 2px;border-bottom:1px solid #eee;background:transparent;color:#666;text-align:left;font-size:10px}.market-address{padding:12px 0;border-bottom:1px solid #eee}.market-address strong{font-size:10px;font-weight:500}.market-address p{color:#888;font-size:9px}.market-address button{margin-right:12px;padding:5px 0;background:transparent;color:#888;font-size:9px}.market-address-form,.market-review-form{display:grid;gap:9px}.market-address-form h3{font-size:11px;font-weight:500}.market-owned,.market-ledger{display:grid;grid-template-columns:1fr auto;gap:3px;padding:11px 0;border-bottom:1px solid #eee;font-size:9px}.market-owned small,.market-ledger small{grid-column:1/-1;color:#aaa;font-size:8px}.market-ledger b{font-family:Georgia,serif;font-weight:500}.market-ledger b.is-credit{color:#77856e}.market-empty{display:grid;justify-items:center;gap:12px;padding:35px 8px;color:#aaa;font-size:10px;text-align:center}.market-empty button{padding:8px 14px;border:1px solid #ddd;background:#fff;color:#777}.market-flash{position:sticky;z-index:4;top:0;margin:0;padding:8px;background:#f7f4f0;color:#766b61;font-size:9px;text-align:center}
@media(max-width:360px){.iris-market{font-size:11px}.market-welcome h1{font-size:25px}.market-grid{gap:11px 8px}.market-product-copy strong{font-size:9px}.market-shops{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.market-shops strong{font-size:7px}.market-buybar{gap:4px}.market-buybar button{font-size:8px}}
.market-role-wallet-wrap{margin:2px 0 7px;border-bottom:1px solid #eeece9}.market-role-wallet-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;color:#888;font-size:8px}.market-wallet-toggle{display:grid!important;width:27px;height:27px;place-items:center!important;padding:0!important;border:1px solid #e9e7e4!important;border-radius:50%;background:#fff!important;color:#68645f!important}.market-wallet-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.market-role-wallet{display:grid;grid-template-rows:0fr;gap:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .24s ease,opacity .2s ease,padding .24s ease; padding:0 0}.market-role-wallet.is-open{max-height:220px;gap:6px;padding:5px 0 11px;opacity:1}.market-role-wallet h4{margin:0;color:#555;font-size:9px;font-weight:500}.market-role-wallet>small{color:#aaa;font-size:8px}.market-role-wallet>strong{color:#494540;font-family:Georgia,serif;font-size:19px;font-weight:400}.market-role-wallet>p{display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:6px;align-items:center;margin:0;padding:5px 0;border-top:1px solid #f1efed;color:#777;font-size:8px}.market-role-wallet>p time{color:#aaa;font-size:7px}.market-role-wallet>p span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-role-wallet>p b{color:#777;font-family:Georgia,serif;font-size:9px;font-weight:400;white-space:nowrap}.market-role-wallet>p b.is-credit{color:#687661}.market-role-wallet>p.market-role-wallet-empty{display:block;color:#aaa}

/* Marketplace, tuned to Iris's quiet monochrome phone UI. */
.iris-market{--market-ink:#333;--market-muted:#999;--market-line:#ececec;--market-soft:#f5f5f5;--market-radius:12px;width:min(100%,520px);max-width:520px;min-height:100%;margin:0 auto;padding:2px 0 28px;color:var(--market-ink);font-family:inherit;font-size:12px;line-height:1.6}
.market-welcome{padding:8px 0 18px}
.market-welcome>small,.market-section header small,.market-wallet>small{color:#aaa;font-family:Georgia,serif;font-size:8px;letter-spacing:1.8px}
.market-welcome h1{display:block;margin:8px 0 7px;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:27px;font-weight:400;letter-spacing:.04em;line-height:1.45}
.market-welcome p{margin:0;color:#999;font-size:9px;letter-spacing:.2px}
.market-search{height:42px;margin:2px 0 13px;padding:0 14px;border:1px solid #e9e9e9;border-radius:24px;background:#f4f4f4}
.market-search>span{display:grid;width:19px;height:19px;place-items:center;color:#888;font-size:18px}
.market-search input{font-size:11px;color:#444}
.market-search input::placeholder{color:#aaa}
.market-search button{padding:5px 1px;color:#666;font-size:10px}
.market-categories,.market-category-pills{gap:7px;padding:1px 0 16px}
.market-categories button,.market-category-pills button{padding:6px 11px;border:1px solid #e9e9e9;border-radius:18px;background:#fff;color:#777;font-size:9px;transition:background .18s,color .18s,border-color .18s}
.market-categories button:active,.market-category-pills button:active,.market-category-pills button.is-active{border-color:#444;background:#444;color:#fff}
.market-section{margin:16px 0 23px}
.market-section>header{align-items:center;margin-bottom:11px}
.market-section header small{font-size:7px;letter-spacing:1.5px}
.market-section h2{margin:2px 0 0;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:17px;font-weight:400;letter-spacing:.04em}
.market-section header>button{color:#888;font-size:9px}
.market-grid{gap:17px 12px}
.market-product{gap:0;overflow:hidden;background:#fff;text-align:left}
.market-product-art{aspect-ratio:1/1;border-radius:8px;background:#f2f2f2;color:#555;isolation:isolate}
.market-product-art::after{position:absolute;inset:0;z-index:-1;background:linear-gradient(145deg,#f6f6f6,#ececec);content:""}
.market-product-art[data-market-category="鲜花"]::after,.market-product-art[data-market-category="食品"]::after{background:linear-gradient(145deg,#f5f5f5,#e9e9e9)}
.market-product-art[data-market-category="服装"]::after,.market-product-art[data-market-category="鞋包"]::after{background:linear-gradient(145deg,#f1f1f1,#e7e7e7)}
.market-product-art[data-market-category="数码"]::after,.market-product-art[data-market-category="家居"]::after{background:linear-gradient(145deg,#f6f6f6,#eaeaea)}
.market-product-art>span{display:grid;width:60%;height:60%;place-items:center;color:#757575;text-shadow:none}
.market-product-art>span svg{width:52%;height:52%;overflow:visible;stroke:#777;stroke-width:1.15}
.market-product-art>i{right:8px;bottom:7px;color:#999;font-family:inherit;font-size:7px;font-style:normal;letter-spacing:1px}
.market-product-art.is-large{aspect-ratio:1.14/1;margin:0 0 18px;border-radius:10px}
.market-product-art.is-large>span{width:64%;height:64%}
.market-product-copy{gap:2px;padding:7px 1px 9px}
.market-product-copy strong{font-size:11px;font-weight:400;color:#393939}
.market-product-copy small{color:#a0a0a0;font-size:8px}
.market-product-copy b{margin-top:3px;color:#333;font-family:Georgia,serif;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.market-shops{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid #eee;border-bottom:1px solid #eee}
.market-shops button{gap:5px;padding:11px 2px;border:0;border-right:1px solid #f0f0f0;background:#fff}
.market-shops button:last-child{border-right:0}
.market-shops i{width:31px;height:31px;border:1px solid #ededed;border-radius:50%;background:#f8f8f8;color:#777;font-size:12px}
.market-shops strong{font-size:8px;font-weight:400;color:#555}
.market-shops small{font-size:7px;color:#aaa}
.market-recent{gap:8px;padding-bottom:3px}
.market-recent span{padding:6px 0;border-bottom:1px solid #e8e8e8;color:#777;font-size:9px}
.market-nav{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));margin:20px 0 0;padding:5px;border:1px solid #e7e7e7;border-radius:30px;background:#fafafa;box-shadow:0 4px 18px #00000008}
.market-nav button{flex:1;min-width:0;padding:9px 3px;border-radius:22px;color:#999;font-size:9px;transition:background .18s,color .18s}
.market-nav button.is-active{background:#e9e9e9;color:#222}
.market-subhead{min-height:45px;margin:0 0 11px;border-color:#ededed}
.market-subhead button{min-width:32px;padding:8px 3px;color:#777;font-size:11px}
.market-subhead h2{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:17px;font-weight:400;letter-spacing:.04em}
.market-subhead small{color:#999;font-size:9px}
.market-category-pills{margin:0 0 9px;padding-bottom:13px}
.market-detail{padding:0 0 96px}
.market-detail>small{color:#999;font-size:9px;letter-spacing:.4px}
.market-detail h1{margin:6px 0 2px;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:21px;font-weight:400;letter-spacing:.04em}
.market-detail-price{margin:1px 0 12px;color:#303030;font-size:21px;font-variant-numeric:tabular-nums}
.market-detail>p{color:#777;font-size:11px;line-height:1.85}
.market-options{gap:9px;margin:14px 0;padding:13px 0;border-color:#eee}
.market-options>strong,.market-reviews h3{font-size:10px;font-weight:500;color:#555}
.market-options label{gap:9px;color:#666;font-size:10px}
.market-options input{accent-color:#444}
.market-shipping-note{color:#777}
.market-favorite{padding:7px 0;color:#666;font-size:10px}
.market-reviews{margin-top:17px}
.market-reviews h3{margin-bottom:4px}
.market-reviews p{margin:0;padding:10px 0;border-color:#eee;color:#666;font-size:10px;line-height:1.7}
.market-reviews p b{color:#666;font-size:10px}
.market-buybar,.market-checkoutbar{gap:8px;padding:10px 0 max(10px,env(safe-area-inset-bottom));border-color:#ededed;background:#fff}
.market-buybar button,.market-checkoutbar button{min-height:40px;padding:9px 7px;border:1px solid #e1e1e1;border-radius:22px;background:#fff;color:#555;font-size:10px}
.market-buybar .is-primary,.market-checkoutbar .is-primary{border-color:#555;background:#555;color:#fff}
.market-cart-row{grid-template-columns:18px 70px minmax(0,1fr);gap:9px;padding:13px 0;border-color:#eee}
.market-cart-row .market-product-art{border-radius:7px}
.market-cart-row>div{gap:4px}
.market-cart-row strong{font-size:11px;font-weight:400;color:#444}
.market-cart-row small{font-size:9px;color:#999}
.market-cart-row b{font-size:12px;font-variant-numeric:tabular-nums}
.market-cart-row>input{accent-color:#444}
.market-quantity{gap:8px;font-size:9px}
.market-quantity button{min-width:24px;min-height:24px;border:1px solid #e7e7e7;border-radius:50%;background:#fff;color:#555}
.market-quantity button:last-child{margin-left:0;border:0;border-radius:0;color:#999}
.market-checkoutbar{margin-top:14px}
.market-checkoutbar>span{color:#777;font-size:10px}
.market-checkoutbar>span b{color:#333;font-size:15px;font-variant-numeric:tabular-nums}
.market-panel{gap:9px;margin:13px 0;padding:13px 0;border-color:#ededed}
.market-panel h3{font-size:11px;font-weight:400;color:#555;letter-spacing:.2px}
.market-panel p,.market-panel small{font-size:9px;color:#999}
.market-panel select,.market-panel textarea,.market-address-form input,.market-review-form textarea{padding:10px 12px;border:1px solid #e9e9e9;border-radius:10px;background:#f8f8f8;color:#555;font-size:10px}
.market-panel textarea,.market-review-form textarea{min-height:72px}
.market-role-pay button{min-height:36px;padding:8px 14px;border-color:#e1e1e1;border-radius:20px;background:#fff;color:#555;font-size:9px}
.market-primary-full,.market-secondary-full{min-height:42px;margin:12px 0;border:1px solid #555;border-radius:24px;background:#555;color:#fff;font-size:10px}
.market-secondary-full{border-color:#e2e2e2;background:#fff;color:#666}
.market-order{margin:12px 0;padding:12px 0;border:0;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}
.market-order header,.market-order footer{font-size:9px;color:#999}
.market-order header b{color:#555;font-weight:400}
.market-order p{margin:10px 0;color:#555;font-size:10px}
.market-order footer{padding-top:9px;border-color:#eee;font-size:8px}
.market-order footer button{color:#666}
.market-order-tabs{justify-content:flex-start;gap:17px;border-color:#eee}
.market-order-tabs button{position:relative;padding:10px 1px;color:#999;font-size:9px}
.market-order-tabs button:focus,.market-order-tabs button:active{color:#333}
.market-receipt{margin:16px 0;padding:16px 14px;border:1px dashed #d5d5d5;border-radius:4px;background:repeating-linear-gradient(0deg,#fff 0,#fff 27px,#fafafa 27px,#fafafa 28px);color:#555}
.market-receipt>small{color:#aaa;font-size:7px;letter-spacing:1.8px}
.market-receipt h2{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:16px;color:#444}
.market-receipt p{color:#666;font-size:9px}
.market-receipt p b{color:#444;font-variant-numeric:tabular-nums}
.market-receipt hr{border-color:#ddd}
.market-logistics{gap:10px;padding:7px 0}
.market-logistics i{width:8px;height:8px;border:1px solid #aaa;background:#fff}
.market-logistics b{font-size:10px;font-weight:400;color:#555}
.market-logistics small{font-size:8px;color:#aaa}
.market-role-decision{padding:12px;border:1px solid #ededed;border-radius:10px;background:#fafafa}
.market-role-wallet-wrap{border-color:#ededed}
.market-wallet-toggle{border-color:#e5e5e5!important}
.market-wallet-toggle svg{stroke:#666}
.market-role-wallet>strong{font-size:20px;color:#333}
.market-role-wallet>p b.is-credit{color:#555}
.market-review-form{gap:9px;margin:15px 0;padding-top:13px;border-color:#eee}
.market-review-form h3{font-size:11px;font-weight:400;color:#555}
.market-review-form select{min-height:38px;padding:8px 10px;border:1px solid #e9e9e9;border-radius:9px;background:#f8f8f8;color:#555;font-size:10px}
.market-review-form button,.market-address-form button{min-height:36px;padding:8px 14px;border-radius:20px;background:#555;color:#fff;font-size:9px}
.market-wallet{gap:8px;padding:15px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #eee;background:#fff}
.market-wallet strong{font-size:24px;color:#333;font-variant-numeric:tabular-nums}
.market-wallet button{padding:5px 0;border-color:#ddd;color:#777}
.market-wallet p{font-size:8px;color:#aaa}
.market-mine-links{gap:0 16px;margin:12px 0}
.market-mine-links button{padding:13px 1px;border-color:#eee;color:#666;font-size:10px}
.market-address{padding:13px 0;border-color:#eee}
.market-address strong{font-size:11px;font-weight:400;color:#444}
.market-address p{font-size:9px;color:#888}
.market-address button{margin-right:15px;padding:7px 0;color:#777;font-size:9px}
.market-address-form{gap:10px;padding-top:15px;border-top:1px solid #eee}
.market-address-form h3{font-size:11px;font-weight:400;color:#555}
.market-address-form label{font-size:9px;color:#888}
.market-address-form input[type="checkbox"]{width:auto;margin-right:6px;accent-color:#555}
.market-address-page{padding-top:2px}
.market-address-list-heading{display:flex;align-items:center;gap:7px;margin:3px 0 10px;color:#555;font-size:11px}
.market-address-list-heading small{color:#aaa;font-size:9px;font-variant-numeric:tabular-nums}
.market-address-list{display:grid;gap:9px}
.market-address-card{padding:13px 13px 3px;border:1px solid #e9e9e9;border-radius:13px;background:#fff}
.market-address-card>header{display:flex;align-items:center;gap:10px;min-width:0}
.market-address-recipient{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 10px;min-width:0;flex:1}
.market-address-recipient>strong{color:#333;font-size:12px;font-weight:500;overflow-wrap:anywhere}
.market-address-recipient>span{color:#888;font-size:10px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.market-address-default-tag{flex:none;padding:3px 7px;border-radius:10px;background:#333;color:#fff;font-size:8px;line-height:1.2}
.market-address-destination{display:flex;align-items:flex-start;gap:8px;margin:11px 0 12px;color:#666;font-size:10px;line-height:1.7}
.market-address-destination svg{width:14px;height:14px;flex:none;margin-top:2px;fill:none;stroke:#999;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.market-address-destination span{min-width:0;overflow-wrap:anywhere}
.market-address-card>footer{display:flex;align-items:center;gap:15px;min-height:36px;padding:2px 0;border-top:1px solid #f0f0f0}
.market-address-card>footer button{padding:6px 0;background:transparent;color:#666;font-size:9px}
.market-address-card>footer button.is-muted{margin-left:auto;color:#aaa}
.market-address-empty{display:grid;justify-items:center;gap:7px;padding:22px 14px 20px;border:1px dashed #e6e6e6;border-radius:13px;color:#777;text-align:center}
.market-address-empty-icon,.market-address-form-icon{display:grid;width:32px;height:32px;place-items:center;border:1px solid #eee;border-radius:50%;color:#777}
.market-address-empty-icon svg,.market-address-form-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.market-address-empty>strong{font-size:11px;font-weight:400}
.market-address-empty>small{max-width:245px;color:#aaa;font-size:9px;line-height:1.6}
.market-address-page>.market-address-form{display:grid;gap:13px;margin-top:16px;padding:14px;border:1px solid #e9e9e9;border-radius:14px;background:#fff}
.market-address-form>header{display:flex;align-items:center;gap:9px;min-width:0}
.market-address-form>header>span:nth-child(2){display:grid;gap:3px;min-width:0;flex:1}
.market-address-form>header strong{color:#444;font-size:11px;font-weight:500}
.market-address-form>header small{color:#aaa;font-size:8px}
.market-address-form>.market-address-form-icon{flex:none}
.market-address-form .market-address-cancel{padding:5px 0;background:transparent;color:#999;font-size:9px}
.market-address-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 9px}
.market-address-fields label{display:grid;gap:6px;min-width:0;color:#777;font-size:9px}
.market-address-fields label.is-wide{grid-column:1/-1}
.market-address-fields input{height:38px;min-width:0;padding:0 10px!important;border:1px solid #e8e8e8!important;border-radius:8px!important;background:#fafafa!important;color:#444!important;font-size:10px!important}
.market-address-fields input::placeholder{color:#bbb}
.market-address-default-choice{display:flex;align-items:center;gap:9px;min-width:0;padding:10px 0;border-top:1px solid #f0f0f0}
.market-address-form .market-address-default-choice>input{width:16px;height:16px;flex:none;margin:0;accent-color:#333}
.market-address-default-choice>span{display:grid;gap:3px}
.market-address-default-choice strong{color:#555;font-size:9px;font-weight:400}
.market-address-default-choice small{color:#aaa;font-size:8px}
.market-address-page>.market-address-form>footer{display:block}
.market-address-page>.market-address-form>footer button{width:100%;min-height:38px;padding:9px 12px;border:0;border-radius:20px;background:#333;color:#fff;font-size:10px}
.market-address-page>.market-address-form>footer button:active{background:#111}
@media(max-width:360px){.market-address-card{padding-right:11px;padding-left:11px}.market-address-fields{grid-template-columns:1fr}.market-address-fields label.is-wide{grid-column:auto}}
.market-owned,.market-ledger{padding:12px 0;border-color:#eee;color:#555;font-size:10px}
.market-owned strong{font-weight:400}
.market-owned small,.market-ledger small{color:#aaa;font-size:8px}
.market-ledger b{font-size:11px;font-variant-numeric:tabular-nums}
.market-empty{min-height:150px;align-content:center;padding:25px 8px;color:#999;font-size:10px;line-height:1.8}
.market-empty button{padding:8px 15px;border:1px solid #ddd;border-radius:20px;color:#666}
.market-flash{border:1px solid #e8e8e8;border-radius:20px;background:#f7f7f7;color:#666;font-size:9px}
@media(max-width:380px){.iris-market{font-size:11px}.market-welcome h1{font-size:25px}.market-grid{gap:14px 9px}.market-product-copy strong{font-size:10px}.market-shops{gap:0}.market-shops strong{font-size:7px}.market-buybar{gap:5px}.market-buybar button{font-size:9px}.market-cart-row{grid-template-columns:16px 60px minmax(0,1fr);gap:7px}.market-nav button{font-size:8px}}
@media(prefers-reduced-motion:reduce){.market-categories button,.market-category-pills button,.market-nav button{transition:none}}
/* Reuse Iris's handwritten feature wordmark and fixed capsule dock. */
.market-welcome{display:none}
.market-feature-brand{gap:8px}
.market-feature-brand>small{font-family:inherit!important;color:#999!important;font-size:10px!important;font-style:normal!important;font-weight:400!important;letter-spacing:.5px!important}
.market-subhead{justify-content:flex-start;gap:8px;min-height:34px;margin:0 0 7px;padding:0;border:0}
.market-subhead h2{display:none}
.market-subhead>button:last-child:not(:first-child){margin-left:auto}
.market-section header small{display:none}
.market-nav{position:fixed;z-index:16;left:50%;bottom:max(10px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;width:min(calc(100vw - 96px),430px);height:58px;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transform:translateX(-50%);pointer-events:none}
.market-nav-capsule{display:flex;align-items:center;justify-content:space-around;flex:1;min-width:0;height:58px;padding:5px;border:1px solid #e5e5e5;border-radius:999px;background:#fafafa;pointer-events:auto}
.market-nav button.market-dock-tab{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;height:46px;gap:5px;padding:0 4px;border-radius:999px;flex-direction:row;background:transparent;color:#555;pointer-events:auto;transition:background .18s,color .18s}
.market-dock-tab>svg{width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.market-dock-tab>span{font-size:9px;font-weight:400;letter-spacing:.2px;white-space:nowrap}
.market-nav button.market-dock-tab.is-current{background:#e9e9e9;color:#171717}
.market-dock-tab:hover{filter:none}
.market-nav button.market-dock-my{display:grid;place-items:center;flex:none;width:58px;height:58px;padding:0;border:1px solid #e5e5e5;border-radius:50%;background:#fafafa;color:#171717;pointer-events:auto}
.market-dock-my>svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.market-nav button.market-dock-my.is-current{background:#e9e9e9}
.market-dock-my:hover{background:#ededed;filter:none}
.feature-page-content:has(.iris-market){padding-bottom:calc(86px + env(safe-area-inset-bottom))}
.market-order-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:0;margin:2px 0 12px}
.market-order-tabs button{width:100%;min-width:0;padding:10px 2px;text-align:center;white-space:nowrap}
@media(max-width:480px){.market-nav{width:calc(100vw - 50px)}}
@media(max-width:380px){.market-nav{gap:10px;width:calc(100vw - 50px);height:54px}.market-nav-capsule{height:54px;padding:5px}.market-nav button.market-dock-tab{height:42px;gap:3px;padding:0 2px}.market-dock-tab>svg{width:18px;height:18px}.market-dock-tab>span{font-size:8px}.market-nav button.market-dock-my{width:54px;height:54px}.market-dock-my>svg{width:23px;height:23px}.market-order-tabs button{font-size:8px}}
@media(hover:hover){.market-dock-tab:hover{background:#ededed}.market-dock-tab.is-current:hover{background:#e9e9e9}}
@media(hover:none),(pointer:coarse){.market-dock-tab:hover{background:transparent}.market-dock-tab.is-current:hover{background:#e9e9e9}.market-dock-tab:active{background:#e3e3e3;transition-duration:0s}}

/* Forum theme follows Iris's quiet editorial paper language. */
.forum-app{--fi:#45413d;--ft:#625e59;--fm:#9b9690;--fl:#eae6e2;min-height:100%;padding:2px 0 40px;color:var(--ft);font-size:12px;line-height:1.65}
.forum-app button{color:inherit;transition:color .16s,background-color .16s,border-color .16s,transform .16s}.forum-app button:disabled{cursor:default;opacity:.48;filter:none}
.forum-world-switch{gap:8px;min-height:34px;padding:0 0 9px;border-color:var(--fl);color:var(--fm);font-size:10px}.forum-world-switch label{font-size:9px;letter-spacing:.5px}.forum-world-switch select{padding:5px 15px 5px 3px;color:var(--fi);font-size:11px;text-align:left}.forum-world-switch select#forumPersonaSelect{flex:0 1 108px;max-width:108px}.forum-world-switch select#forumWorldSelect{min-width:72px}.forum-world-switch>button{padding:6px 0 6px 7px;border-left:1px solid var(--fl);color:#89837d;font-size:10px}
.forum-world-intro{align-items:flex-end;padding:21px 0 16px;border-bottom:1px solid var(--fl)}.forum-world-intro small{color:#aaa39d;font:8px Georgia,serif;letter-spacing:2.1px}.forum-world-intro h2{margin:5px 0 1px;color:var(--fi);font:400 23px/1.35 "Songti SC","Noto Serif CJK SC",serif;letter-spacing:.8px}.forum-world-intro p{margin:5px 0 0;color:var(--fm);font-size:10px}.forum-world-intro>span{max-width:42%;overflow:hidden;padding:4px 0 4px 9px;border-left:1px solid #ded9d4;border-radius:0;background:transparent;color:#8c857e;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.forum-tools{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:10px 0 4px;border-bottom:1px solid var(--fl)}.forum-tools>button,.forum-tools>button:first-child{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:35px;border:0;border-right:1px solid #f0eeeb;border-radius:0;background:transparent;color:#817b75;font-size:9px;white-space:nowrap}.forum-tools>button:last-child{border:0}.forum-tools>button i{top:1px;right:4px;min-width:13px;height:13px;border:1px solid #fff;background:#68625c;font-size:7px}
.forum-main-tabs{margin-top:8px;border-color:var(--fl)}.forum-main-tabs button{padding:11px 2px 12px;color:#a19b95;font-size:11px;letter-spacing:.4px}.forum-main-tabs button.is-active{color:var(--fi)}.forum-main-tabs button.is-active:after{right:29%;left:29%;background:#5d5751}
.forum-feed-heading{padding:20px 1px 9px;color:var(--fi);font:15px "Songti SC","Noto Serif CJK SC",serif}.forum-feed-heading button{padding:4px 0;border-bottom:1px solid #e0dcd7;color:#918981;font-size:9px}
.forum-post{padding:16px 1px 14px;border-color:var(--fl);background:transparent}.forum-post-author{gap:10px}.forum-avatar{width:36px;height:36px;border:2px solid #fff;background:#e9e6e2;color:#716b65;font:14px "Songti SC","Noto Serif CJK SC",serif;box-shadow:0 0 0 1px #eeeae6}.forum-avatar.is-anonymous{background:#f2f0ed;color:#8d8780;font-size:10px}.forum-author-meta{gap:2px}.forum-author-meta>button{color:var(--fi);font-size:11px;font-weight:500}.forum-author-meta small{color:#aaa39d;font-size:9px}.forum-post-more{width:30px;height:30px;border:1px solid var(--fl);border-radius:50%;color:#8e8881;font-size:14px}
.forum-post-open{padding:11px 0 4px}.forum-post-open>p,.forum-post-full>p{color:#514d49;font-size:13px;line-height:1.85;letter-spacing:.08px}.forum-post-images{gap:7px;margin-top:11px}.forum-post-image{max-height:260px;border-radius:4px}.forum-topics{gap:9px;margin-top:9px}.forum-topics button,.forum-topics span{color:#9b8f84;font-size:9px}.forum-post-actions{gap:21px;padding-top:11px}.forum-post-actions button,.forum-post-actions>span{color:#9b9690;font-size:9px}.forum-post-actions button.is-on{color:#6e6259}
.forum-poll{gap:7px;margin-top:12px}.forum-poll>button{min-height:38px;padding:8px 11px;border-color:#e8e4df;border-radius:3px;color:#635e58;font-size:10px}.forum-poll>button>i{background:#efede9}.forum-poll>small{color:#a09a94;font-size:9px}
.forum-compose-fab{right:max(28px,calc((100vw - 700px)/2));bottom:calc(90px + env(safe-area-inset-bottom));width:48px;height:48px;border:1px solid #e5e1dc;border-radius:50%;background:#f0eeeb;color:#514c47;font-size:25px;box-shadow:0 4px 18px #4a403510}.forum-compose-fab:active{transform:scale(.96)}.forum-load-more{margin:18px auto;padding:8px 15px;border-color:#e5e1dc;border-radius:20px;color:#89837d;font-size:10px}
.forum-empty{gap:9px;padding:39px 12px;color:#aaa39d}.forum-empty>span{display:grid;width:43px;height:43px;place-items:center;border:1px solid #ece8e4;border-radius:50%;background:#faf9f7;color:#a59d95;font:17px Georgia,serif}.forum-empty strong{color:#625d57;font:400 14px "Songti SC","Noto Serif CJK SC",serif}.forum-empty p{max-width:290px;color:#a19b95;font-size:10px;line-height:1.8}.forum-primary{min-height:38px;padding:8px 17px;border:1px solid #e6e2dd;border-radius:20px;background:#eeece9;color:#504b46;font-size:10px}.forum-primary:active{background:#e5e2de}.forum-flash{padding:9px 12px;border:1px solid #eee9e4;border-radius:3px;background:#faf8f5;color:#766e66;font-size:10px}.forum-muted,.forum-join-hint{color:#9c9690;font-size:10px;line-height:1.75}
.forum-subpage{padding-bottom:30px}.forum-subpage-head{min-height:47px;border-color:var(--fl)}.forum-subpage-head h2{color:var(--fi);font:400 17px "Songti SC","Noto Serif CJK SC",serif;letter-spacing:.4px}.forum-subpage-head>button{min-width:28px;color:#8c857e;font-size:11px}.forum-search-form{gap:9px;padding:16px 0}.forum-search-form input,.forum-comment-form input,.forum-reply-form input{min-height:40px;padding:9px 12px;border:1px solid #e8e4df;border-radius:3px;background:#fff;color:#514d49;font-size:11px}.forum-search-form button,.forum-comment-form button,.forum-reply-form button{min-width:58px;padding:8px 12px;border:1px solid #e7e3de;border-radius:20px;background:#efedea;color:#58524c;font-size:10px}
.forum-post-full{padding:17px 1px}.forum-post-full>p{margin:14px 0}.forum-detail-image{border-radius:4px}.forum-comments{padding-top:17px;border-top:1px solid var(--fl)}.forum-comments>header{font:15px "Songti SC","Noto Serif CJK SC",serif}.forum-comments>header small{font-size:10px}.forum-comment{gap:9px;padding:12px 0;border-color:#efedea}.forum-comment .forum-avatar{width:30px;height:30px}.forum-comment-body>header button{color:#5d5751;font-size:10px}.forum-comment-body>header time,.forum-reply-to{color:#aaa39d;font-size:9px}.forum-comment-body>p{color:#625d57;font-size:11px;line-height:1.75}.forum-comment-body>footer{gap:15px}.forum-comment-body>footer button{color:#99938d;font-size:9px}.forum-comment.is-reply{margin-left:min(calc(var(--forum-depth)*12px),48px)}
.forum-profile-hero{gap:14px;padding:22px 0 16px;border-bottom:1px solid var(--fl)}.forum-profile-hero>.forum-avatar{width:58px;height:58px}.forum-profile-hero h2{color:var(--fi);font:400 18px "Songti SC","Noto Serif CJK SC",serif}.forum-profile-hero small{color:#a49e98;font-size:9px}.forum-profile-hero p{color:#837d76;font-size:10px}.forum-profile-hero>button:not(.forum-avatar){padding:7px 11px;border-color:#e5e1dc;border-radius:20px}.forum-profile-stats{gap:22px;padding:13px 1px;border-color:var(--fl);color:#8f8983;font-size:9px}
.forum-profile-form,.forum-compose-form,.forum-world-form{gap:15px;padding:18px 0}.forum-profile-form>label,.forum-compose-form>label,.forum-world-form>label,.forum-member-add>label{color:#77716b;font-size:10px}.forum-profile-form input,.forum-profile-form textarea,.forum-compose-form textarea,.forum-compose-form input,.forum-compose-form select,.forum-world-form input,.forum-world-form textarea,.forum-member-add select{padding:10px 11px;border-color:#e9e5e1;border-radius:3px;background:#fff;color:#514d49;font-size:11px}.forum-profile-form textarea,.forum-compose-form textarea,.forum-world-form textarea{min-height:78px}.forum-check input,.forum-permissions input{accent-color:#625c56}.forum-check small,.forum-upload small{color:#a39d97;font-size:9px}.forum-profile-preview{width:78px;height:78px;border:3px solid #fff;border-radius:3px;box-shadow:0 0 0 1px #e9e5e1}
.forum-notice{gap:11px;padding:14px 2px;border-color:var(--fl);background:transparent}.forum-notice .forum-avatar{width:34px;height:34px}.forum-notice>span:last-child{color:#716b65;font-size:10px}.forum-notice strong{color:#514c47}.forum-notice small{color:#a49e98;font-size:9px}
.forum-world-form{margin-top:8px;border-bottom:1px solid var(--fl)}.forum-world-row{gap:10px;padding:14px 1px;border-color:var(--fl)}.forum-world-row strong{color:#504b46;font-size:11px}.forum-world-row small{color:#a29c96;font-size:9px}.forum-world-row>button:not(:first-child){color:#8e8881;font-size:9px}.forum-world-row.is-current{background:linear-gradient(90deg,#f8f6f3,transparent 80%)}.forum-default-badge{border-color:#e8e2dc;border-radius:12px;background:#f8f6f3;color:#91877d;font-size:8px}.forum-world-row>button.forum-reset-world{color:#958176}
.forum-member-add{gap:10px;padding:15px 0;border-color:var(--fl)}.forum-member-add h3{color:#605a54;font:400 13px "Songti SC","Noto Serif CJK SC",serif}.forum-member-add form{gap:8px}.forum-member-add form button{padding:7px 12px;border-color:#e7e2dd;border-radius:20px;background:#f2f0ed;color:#615b55;font-size:9px}.forum-member-card{gap:10px;padding:14px 0;border-color:var(--fl)}.forum-member-card>.forum-avatar{width:36px;height:36px}.forum-member-details>strong{color:#504b46;font-size:11px}.forum-member-details>small{color:#9d9791;font-size:9px;line-height:1.6}.forum-member-card>button:last-child{color:#9c958e;font-size:9px}.forum-member-setting{color:#7d766f;font-size:9px}.forum-member-setting select,.forum-role-select,.forum-comment-role-select{border-color:#e7e3de;border-radius:3px;background:#fff;color:#706a63;font-size:9px}.forum-permissions{gap:9px 12px;padding:7px 0}.forum-permissions label,.forum-story-summary{color:#89837d;font-size:9px}.forum-story-summary textarea{padding:9px 10px;border-color:#e9e5e1;border-radius:3px;background:#fff;font-size:10px}
.forum-post-menu{border-color:#e9e5e1;border-radius:4px;box-shadow:0 8px 22px #40383012}.forum-app :focus-visible{outline-color:#b9b0a6;outline-offset:2px}
.forum-page-subtitle{color:#888!important;font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi","楷体-简","楷体",serif;font-size:12px!important;font-style:normal!important;font-weight:400!important;font-synthesis:none;letter-spacing:.1px!important;line-height:1.15}
.forum-inline-action{display:block;margin:10px 0 4px auto;padding:5px 0;border-bottom:1px solid #ddd;color:#777;font-size:10px}
@media(max-width:480px){.forum-world-intro{padding-top:18px}.forum-tools>button,.forum-tools>button:first-child{font-size:8px}.forum-post-actions{gap:17px}.forum-compose-fab{right:27px;bottom:calc(82px + env(safe-area-inset-bottom))}.forum-comment.is-reply{margin-left:min(calc(var(--forum-depth)*10px),40px)}.forum-member-card{flex-wrap:wrap}}
@media(max-width:360px){.forum-world-switch{gap:6px}.forum-world-switch label{font-size:8px}.forum-world-switch select#forumPersonaSelect{flex-basis:88px;max-width:88px}.forum-tools>button,.forum-tools>button:first-child{font-size:7px}.forum-post-actions{gap:13px}}
@media(prefers-reduced-motion:reduce){.forum-app button{transition:none}}
/* Align the Forum masthead with Chat and give search one consistent pill shape. */
.forum-search-form{align-items:center;gap:10px;padding:14px 0}.forum-search-form input{height:43px;border:1px solid #e1e1e1;border-radius:24px;background:#f7f7f7;padding:0 16px}.forum-search-form button{flex:none;min-width:74px;height:43px;padding:0 18px;border:1px solid #333;border-radius:24px;background:#333;color:#fff;font-size:11px}
.forum-compose-fab{display:grid;place-items:center;border-color:#222;background:#222;color:#fff;font-size:27px;font-weight:300;line-height:1;box-shadow:0 4px 14px #00000018}.forum-compose-fab:hover{background:#111;color:#fff}
.feature-page-topbar:has(.forum-page-subtitle){min-height:89px;padding-top:24px;padding-bottom:12px}
@media(min-width:850px){.feature-page-topbar:has(.forum-page-subtitle){min-height:93px;padding-top:28px;padding-bottom:12px}}
@media(max-width:480px){.feature-page-topbar:has(.forum-page-subtitle){min-height:calc(var(--app-safe-top,env(safe-area-inset-top)) + 56px);padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}}
/* Final forum pass: pure white surfaces, grayscale details, tighter top controls. */
.forum-app{--fi:#333;--ft:#555;--fm:#999;--fl:#e5e5e5;background:#fff;color:#555}
.forum-world-switch>button{border-left:0}.forum-tools{padding:2px 0 1px;border-color:#e5e5e5}.forum-tools>button,.forum-tools>button:first-child{border-right:0;color:#666}.forum-tools>button i{background:#555}
.forum-main-tabs{margin-top:0;border-color:#e5e5e5}.forum-main-tabs button{padding-top:8px;padding-bottom:9px;color:#999}.forum-main-tabs button.is-active{color:#333}.forum-main-tabs button.is-active:after{background:#555}
.forum-main-tabs{position:sticky;top:0;z-index:8;background:#fff;box-shadow:0 -8px 0 8px #fff}
.forum-feed-heading{padding:11px 1px 6px;color:#333}.forum-feed-heading button{border-color:#ddd;color:#777}.forum-world-intro{border-color:#e5e5e5}.forum-post{border-color:#e5e5e5}.forum-post-open>p,.forum-post-full>p{color:#444}.forum-author-meta>button,.forum-comment-body>header button{color:#444}.forum-avatar{background:#eee;color:#666;box-shadow:0 0 0 1px #e5e5e5}.forum-avatar.is-anonymous{background:#f4f4f4;color:#777}
.forum-topics button,.forum-topics span,.forum-post-actions button.is-on,.forum-comment-body>footer button.is-on{color:#666}.forum-poll>button>i{background:#ededed}.forum-post-image,.forum-detail-image{background:#f5f5f5}.forum-compose-fab{border-color:#ddd;background:#eee;color:#333;box-shadow:0 3px 12px #0000000b}.forum-empty>span{border-color:#e5e5e5;background:#fff;color:#888}.forum-empty strong{color:#555}.forum-primary{border-color:#ddd;background:#eee;color:#333}.forum-primary:active{background:#e5e5e5}
.forum-flash{border-color:#e5e5e5;background:#f7f7f7;color:#666}.forum-search-form input,.forum-comment-form input,.forum-reply-form input,.forum-profile-form input,.forum-profile-form textarea,.forum-compose-form textarea,.forum-compose-form input,.forum-compose-form select,.forum-world-form input,.forum-world-form textarea,.forum-member-add select{border-color:#e5e5e5;background:#fff;color:#444}.forum-search-form button,.forum-comment-form button,.forum-reply-form button,.forum-member-add form button,.forum-role-reply>button,.forum-member-card>button[data-forum-action="role-new-post"]{border-color:#ddd;background:#eee;color:#444}
.forum-profile-hero,.forum-profile-stats,.forum-comments,.forum-world-form,.forum-member-add,.forum-post-menu{border-color:#e5e5e5}.forum-profile-hero h2,.forum-member-add h3,.forum-member-details>strong,.forum-world-row strong{color:#444}.forum-world-row{border-color:#e5e5e5}.forum-world-row.is-current{background:#f7f7f7}.forum-default-badge{border-color:#ddd;background:#f5f5f5;color:#666}.forum-world-row>button.forum-reset-world{color:#666}.forum-permissions label,.forum-member-setting,.forum-story-summary,.forum-member-details>small,.forum-muted,.forum-join-hint{color:#888}
/* Market page controls and persistent virtual account cards. */
.market-feature-brand>small{font-size:17.6px!important;letter-spacing:0!important}
@media(max-width:480px){.market-feature-brand>small{font-size:16px!important}}
.market-view-home .market-search{position:sticky;top:0;z-index:5;height:44px;margin-top:0;background:#f4f4f4;box-shadow:0 -12px 0 12px #fff}
.market-search>span{display:flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;line-height:1}
.market-search>span>svg{width:23px;height:23px;stroke-width:1.6}
.feature-page-content:has(.market-view-category),.feature-page-content:has(.market-view-orders){padding-top:6px}
.market-view-category .market-category-pills{gap:20px;padding:0;margin:0 0 16px;border-bottom:1px solid #eee}
.market-view-category .market-category-pills button{position:relative;padding:10px 2px 12px;border:0;border-radius:0;background:transparent;color:#999;font-size:11px}
.market-view-category .market-category-pills button.is-active{background:transparent;color:#333}
.market-view-category .market-category-pills button.is-active:after{position:absolute;right:0;bottom:0;left:0;height:2px;background:#999;content:""}
.market-checkoutbar{bottom:76px;gap:10px}
.market-checkoutbar>span{margin-right:auto}
.market-checkoutbar .market-cart-count{color:#999;font-size:10px;white-space:nowrap}
.market-checkoutbar button.is-primary{flex:0 0 auto;min-height:38px;width:auto;padding:7px 13px;border-color:#000;border-radius:20px;background:#000;color:#fff;font-size:15px;letter-spacing:1px}
.market-primary-full,.market-role-pay>button[data-m-role-pay]{border-color:#000;background:#000;color:#fff;font-size:12px}
.market-checkout-items>p{align-items:center;padding:12px 0;border-bottom:1px solid #eee;gap:14px}
.market-checkout-items>p>span{display:grid;gap:4px;min-width:0}
.market-checkout-items strong{font-size:14px;font-weight:500;color:#222}
.market-checkout-items small{color:#999;font-size:10px}
.market-checkout-items em{margin-left:5px;color:#333;font-family:Georgia,serif;font-size:16px;font-style:italic}
.market-checkout-items b,.market-checkoutbar>span b{flex:none;color:#111;font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:400;font-variant-numeric:lining-nums tabular-nums}
.market-role-picker{display:flex;gap:16px;overflow-x:auto;padding:6px 2px 12px;scrollbar-width:none}
.market-role-picker::-webkit-scrollbar{display:none}
.market-role-pay .market-role-picker>button{display:grid;justify-items:center;flex:0 0 64px;gap:8px;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:#777;font-size:10px}
.market-role-picker>button>span:last-child{max-width:72px;overflow-wrap:anywhere;text-align:center}
.market-role-avatar{display:grid;place-items:center;width:52px;height:52px;overflow:hidden;border:2px solid #fff;border-radius:50%;background:#f2f2f2;box-shadow:0 0 0 1px #eee}
.market-role-avatar img{width:100%;height:100%;object-fit:cover}
.market-role-avatar svg{width:24px;height:24px;stroke-width:1.4}
.market-role-picker>button.is-selected .market-role-avatar{box-shadow:0 0 0 1.5px #222}
.market-role-picker>button.is-selected>span:last-child{color:#111}
.market-role-pay .market-wallet-toggle{display:grid;place-items:center;width:34px;height:34px;padding:6px;border:0!important;background:transparent}
.market-wallet-toggle svg{width:23px;height:23px;stroke:#444;stroke-width:1.4}
.market-wallet-toggle .market-wallet-refresh-glyph{transform-box:fill-box;transform-origin:center}
.market-wallet-toggle.is-loading .market-wallet-refresh-glyph{animation:market-wallet-spin .8s linear infinite}
.market-role-wallet.is-open{max-height:540px}
.market-wallet{display:block;border:0;padding:0}
.market-bank-card{position:relative;overflow:hidden;width:100%;padding:18px 20px;border:1px solid #ddd;border-radius:14px;background:linear-gradient(125deg,#fafafa,#eaeaea);color:#333;text-align:left}
.market-bank-card:after{position:absolute;right:-35px;top:-40px;width:180px;height:180px;border:1px solid #fff8;border-radius:50%;box-shadow:0 0 0 28px #fff2,0 0 0 56px #fff1;content:"";pointer-events:none}
.market-bank-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px;color:#666;font-size:10px;letter-spacing:1px}
.market-bank-card header svg{width:24px;height:24px;stroke-width:1.2}
.market-bank-card>small{display:block;color:#888;font-size:9px}
.market-bank-card>strong{display:block;margin:4px 0 18px;color:#222;font-family:Georgia,serif;font-size:29px;font-weight:400;font-variant-numeric:tabular-nums}
.market-card-number{color:#777;font-family:Georgia,serif;font-size:14px;letter-spacing:2px;overflow-wrap:anywhere}
.market-bank-card footer{margin-top:10px;color:#999;font-size:9px}
.market-role-wallet .market-bank-card{margin:8px 0 14px}
.market-wallet>button{margin:12px 0 0;font-size:10px}
.market-nav button.market-dock-tab>svg{width:20px;height:20px;stroke-width:1.35}
@media(max-width:380px){.market-nav button.market-dock-tab>svg{width:18px;height:18px}.market-bank-card{padding:16px}.market-card-number{font-size:12px;letter-spacing:1.5px}}
.market-order-tabs button.is-active{color:#333}
.market-order-tabs button.is-active:after{position:absolute;right:25%;bottom:0;left:25%;height:2px;background:#999;content:""}
/* Match the chat name typography, pin categories, and show the full account. */
.market-feature-brand>small{font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi","楷体-简","楷体",serif!important;font-style:normal;font-weight:400;font-synthesis:none}
.market-view-category .market-category-pills{position:sticky;top:0;z-index:6;background:#fff;box-shadow:0 -8px 0 8px #fff}
.market-view-category .market-category-pills button,.market-order-tabs button{font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi",serif;font-size:13px;font-weight:400;letter-spacing:.4px}
.market-order-tabs button{padding:10px 2px 12px}
.market-role-pay>button[data-m-role-pay]{justify-self:end;min-width:0;padding:9px 18px}
.market-role-wallet{display:grid;grid-template-rows:0fr;max-height:none;gap:0;padding:0;overflow:hidden;transition:grid-template-rows .24s ease,opacity .2s ease}
.market-role-wallet.is-open{grid-template-rows:1fr;max-height:none;gap:0;padding:0;opacity:1}
.market-role-wallet-body{min-width:0;min-height:0;overflow:hidden}
.market-role-wallet-body>small{display:block;margin:0 0 5px;color:#999;font-size:10px}
.market-role-wallet-body>p{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;padding:9px 0;border-top:1px solid #eee;color:#666;font-size:10px}
.market-role-wallet-body>p time{color:#aaa;font-size:8px}
.market-role-wallet-body>p span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.market-role-wallet-body>p b{font-family:Georgia,serif;font-size:12px;font-weight:400;white-space:nowrap}
.market-role-wallet-body>p.market-role-wallet-empty{display:block;color:#999}
.market-bank-card{min-width:0;min-height:206px;padding:17px 20px;border:1px solid #d9d9d9;border-radius:13px;background:linear-gradient(125deg,#f4f4f4 0%,#e0e0e0 45%,#fafafa 100%);box-shadow:0 5px 12px #00000007}
.market-bank-card header{position:relative;z-index:1;gap:8px;margin-bottom:18px;line-height:1.2}
.market-bank-card header>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere;font-size:11px;letter-spacing:.8px}
.market-card-type{flex:none;color:#888;font-family:Georgia,serif;font-size:8px;letter-spacing:1.5px}
.market-bank-card .market-card-contactless{flex:none;width:20px;height:20px;stroke:#777;stroke-width:1.2}
.market-card-chip{position:absolute;top:58px;right:22px;z-index:1;width:35px;height:27px}
.market-card-chip svg{display:block;width:100%;height:100%;fill:#d4d4d4;stroke:#aaa;stroke-width:.9}
.market-bank-card>small{line-height:1.2}
.market-bank-card>strong{position:relative;z-index:1;max-width:calc(100% - 44px);margin:6px 0 18px;font-size:clamp(23px,7vw,29px);line-height:1.2;overflow-wrap:anywhere}
.market-card-number{position:relative;z-index:1;font-family:"SFMono-Regular",Menlo,Consolas,monospace;font-size:14px;letter-spacing:1.5px;line-height:1.4;text-shadow:0 1px 0 #fff}
.market-bank-card footer{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:14px;color:#777;font-size:10px;letter-spacing:.5px}
.market-bank-card footer>span:first-child{min-width:0;overflow-wrap:anywhere}
.market-card-expiry{display:flex;align-items:center;gap:7px;flex:none;font-family:Menlo,monospace;font-size:10px}
.market-card-expiry small{max-width:27px;color:#999;font-family:Arial,sans-serif;font-size:5px;line-height:1.3;letter-spacing:.5px}
.market-mine-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:20px 0 0;border-top:1px solid #eee;border-bottom:1px solid #eee}
.market-mine-links>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:84px;padding:15px 5px;border:0;border-right:1px solid #eee;border-radius:0;color:#666;font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi",serif;font-size:12px;letter-spacing:.3px;text-align:center}
.market-mine-links>button:nth-child(3n){border-right:0}
.market-mine-links>button:nth-child(-n+3){border-bottom:1px solid #eee}
.market-mine-links>button>svg{width:23px;height:23px;stroke:#777;stroke-width:1.3}
.market-mine-links>button:active{background:#fafafa}
@media(max-width:380px){.market-bank-card{padding:16px}.market-card-number{font-size:12px;letter-spacing:1px}.market-card-chip{right:18px}.market-mine-links>button{min-height:80px;font-size:11px}.market-view-category .market-category-pills button,.market-order-tabs button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.market-role-wallet{transition:none}}
/* Beautify studio: beginner friendly, with a page-scoped editor and live preview. */
.feature-page-topbar:has(.beautify-feature-brand){min-height:89px;padding-top:24px;padding-bottom:12px}
.feature-page-topbar:has(.beautify-feature-brand) .feature-page-brand{min-height:40px;align-items:flex-end;transform:translateY(3px)}
@media(min-width:850px){.feature-page-topbar:has(.beautify-feature-brand){min-height:93px;padding-top:28px;padding-bottom:12px}}
@media(max-width:480px){.feature-page-topbar:has(.beautify-feature-brand){min-height:calc(var(--app-safe-top,env(safe-area-inset-top)) + 56px);padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}}
.beautify-workspace{display:grid;gap:17px;padding-bottom:24px}
.beautify-workspace:has(.beautify-background-settings){gap:8px}
.beautify-workspace:has([data-beautify-tab="forum"].is-active){gap:8px}
.feature-page-topbar:has(.beautify-feature-brand) .feature-page-wordmark,.feature-page-topbar:has(.beautify-feature-brand) .feature-page-brand>small,.beautify-tabs button,.beautify-class-catalog>summary,.beautify-code-panel>span,.beautify-preview-panel>span{font-family:"Great Vibes","Noto Sans CJK SC","PingFang SC",sans-serif;font-style:normal}
.feature-page-topbar:has(.beautify-feature-brand) .feature-page-wordmark{line-height:1.15}
.beautify-tabs{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #eee;background:#fff}
.beautify-panel{display:grid;gap:17px;min-width:0}
.beautify-tabs button{position:relative;min-height:42px;color:#999;font-size:11px;letter-spacing:.3px}
.beautify-tabs button.is-active{color:#333}
.beautify-tabs button.is-active:after{position:absolute;right:22%;bottom:-1px;left:22%;height:2px;background:#777;content:""}
.beautify-tutorial h2{margin:7px 0 4px;color:#555;font-size:17px;font-weight:400}
.beautify-tutorial>p:not(.feature-page-kicker){margin:0;color:#999;font-size:9px;line-height:1.8}
.beautify-background-settings{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:4px 0 12px;border-bottom:1px solid #eee;background:transparent}
.beautify-background-copy{display:grid;gap:4px;min-width:0}
.beautify-background-copy strong{color:#666;font-size:10px;font-weight:500}
.beautify-background-copy small,.beautify-background-hint{color:#aaa;font-size:8px;line-height:1.6}
.beautify-background-actions{display:flex;gap:6px}
.beautify-background-actions button{min-height:25px;padding:3px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#777;font-size:8px;white-space:nowrap}
.beautify-background-actions button:disabled{opacity:.4;cursor:default}
.beautify-background-preview{grid-column:1/-1;display:grid;place-items:center;min-width:0;height:96px;overflow:hidden;border:1px solid #eee;border-radius:5px;background:#fafafa}
.beautify-background-preview.is-empty{background:repeating-linear-gradient(135deg,#fafafa 0,#fafafa 9px,#f6f6f6 9px,#f6f6f6 10px);color:#aaa}
.beautify-background-preview.is-empty>span{display:flex;align-items:center;gap:8px;font-size:9px}
.beautify-background-preview.is-empty i{display:grid;width:22px;height:22px;place-items:center;border:1px solid #ddd;border-radius:50%;font-size:14px;font-style:normal;font-weight:300}
.beautify-background-preview.has-image{height:116px;background:#f5f5f5}
.beautify-background-thumb{display:block;width:100%;height:100%;object-fit:cover}
.beautify-background-hint{grid-column:1/-1;margin-top:-4px}
.beautify-class-catalog{border-bottom:1px solid #eee;color:#777}
.beautify-class-catalog>summary{padding:10px 1px;font-size:9px;cursor:pointer;list-style:none}
.beautify-workspace:has([data-beautify-tab="forum"].is-active) .beautify-class-catalog>summary{padding-top:2px}
.beautify-class-catalog>summary::-webkit-details-marker{display:none}
.beautify-class-catalog>p{margin:0 0 8px;color:#aaa;font-size:8px;line-height:1.6}
.beautify-class-catalog>p code,.beautify-class-catalog button{font:8px ui-monospace,SFMono-Regular,Menlo,monospace}
.beautify-class-catalog>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:5px;max-height:260px;overflow:auto;padding:0 0 10px;-webkit-overflow-scrolling:touch}
.beautify-class-catalog button{display:grid;justify-items:start;gap:3px;min-width:0;padding:6px 7px;border:1px solid #eee;border-radius:8px;color:#777;text-align:left;overflow-wrap:anywhere}
.beautify-class-catalog button small{color:#999;font:8px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
.beautify-class-catalog button code{font:8px ui-monospace,SFMono-Regular,Menlo,monospace}
.beautify-class-catalog button:active{background:#f4f4f4}
.beautify-lab{display:grid;gap:12px}
.beautify-code-panel,.beautify-preview-panel{display:grid;gap:8px;min-width:0}
.beautify-code-panel>span,.beautify-preview-panel>span{color:#777;font-size:10px}
.beautify-code-panel textarea{width:100%;min-height:234px;margin:8px 0 0;padding:0 0 2px;resize:vertical;border:0;border-bottom:1px solid #eee;border-radius:0;outline:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font:11px/26px ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:2;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.beautify-code-panel textarea:focus{border-bottom-color:#bbb;box-shadow:none}
.beautify-code-panel textarea::placeholder{color:#bbb}
.beautify-preview-panel iframe{display:block;width:100%;height:640px;border:1px solid #eee;border-radius:10px;background:#fff}
.beautify-actions{display:flex;align-items:center;justify-content:flex-end;gap:22px;margin-top:-2px}
.beautify-actions button{min-height:26px;padding:4px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#999;font-size:9px}
.beautify-actions button.beautify-apply{border-bottom-color:#888;background:transparent;color:#555}
.beautify-actions button:active{background:transparent}
.beautify-load-example{min-height:36px;padding:0 14px;border:1px solid #e5e5e5;border-radius:20px;color:#777;font-size:10px}
.beautify-load-example{border-color:#333;background:#333;color:#fff}
.beautify-note{margin:-8px 0 0;color:#aaa;font-size:8px;line-height:1.7}
.beautify-tutorial{display:grid;gap:14px}
.beautify-tutorial>p:not(.feature-page-kicker){font-size:10px;line-height:1.9}
.beautify-lesson{padding:13px;border:1px solid #eee;border-radius:10px;background:#fff}
.beautify-lesson h3{margin:0 0 9px;color:#666;font-size:11px;font-weight:500}
.beautify-lesson p,.beautify-lesson li{color:#888;font-size:9px;line-height:1.85}
.beautify-lesson p{margin:8px 0 0}
.beautify-lesson ul{display:grid;gap:3px;margin:0;padding-left:16px}
.beautify-lesson ol{display:grid;gap:5px;margin:0;padding-left:17px}
.beautify-lesson code{color:#555;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}
.beautify-lesson pre{margin:0;padding:10px;border-radius:7px;background:#f7f7f7;overflow:auto;white-space:pre}
.beautify-lesson pre code{font-size:10px;line-height:1.7}
.beautify-copy-prompt{min-height:32px;margin-top:9px;padding:0 12px;border:1px solid #e5e5e5;border-radius:18px;color:#777;font-size:9px}
.beautify-load-example{justify-self:start}
@media(min-width:700px){.beautify-lab{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.beautify-code-panel textarea{height:240px}.beautify-preview-panel iframe{height:640px}}
/* Final Forum controls and masthead sizing. */
.forum-search-form input,.forum-search-form button{height:43px;border-radius:24px}.forum-search-form input{border:1px solid #e1e1e1;background:#f7f7f7;padding:0 16px}.forum-search-form button{flex:none;min-width:74px;padding:0 18px;border:1px solid #333;background:#333;color:#fff;font-size:11px}
.forum-app button.forum-compose-fab{display:grid;place-items:center;border:1px solid #222;border-radius:50%;background:#222;color:#fff;font-size:34px;font-weight:400;line-height:1;box-shadow:0 4px 14px #00000018}.forum-app button.forum-compose-fab:hover{background:#111;color:#fff}
.feature-page-topbar:has(.forum-page-subtitle){min-height:89px;padding-top:24px;padding-bottom:12px}
@media(min-width:850px){.feature-page-topbar:has(.forum-page-subtitle){min-height:93px;padding-top:28px;padding-bottom:12px}}
@media(max-width:480px){.feature-page-topbar:has(.forum-page-subtitle){min-height:calc(var(--app-safe-top,env(safe-area-inset-top)) + 56px);padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}}
/* Keep every Market page header the same height as the SMS header. */
.feature-page-topbar:has(.market-feature-brand){min-height:0;padding-top:24px;padding-bottom:12px}
.feature-page-topbar:has(.market-feature-brand) .feature-page-brand{min-height:40px;align-items:flex-end;transform:translateY(3px)}
.feature-page-topbar:has(.market-feature-brand) .market-feature-brand>small{transform:translateY(-3px)}
@media(min-width:850px){.feature-page-topbar:has(.market-feature-brand){padding-top:28px}}
@media(max-width:480px){.feature-page-topbar:has(.market-feature-brand){padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}}
.feature-page-content:has(.market-view-checkout){padding-top:3px}
.market-view-checkout{padding-top:0}
.market-view-checkout .market-checkout-items{padding:0}
.market-view-checkout .market-checkout-items>p{margin:0;padding:9px 0;border:0}
.market-view-checkout .market-address-panel{gap:7px;margin:6px 0 10px;padding:0;border:0}
.market-view-checkout .market-panel{margin-top:10px;padding-top:10px}
.market-view-checkout .market-address-panel{margin-top:6px;padding-top:0}
.market-view-checkout .market-note-panel{border:0;padding-top:0}
.market-view-checkout .experience-content-label>span{color:#555;font-size:11px}
.market-view-checkout #marketNote{display:block;width:100%;height:78px;min-height:78px;max-height:none;margin:12px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:26px;resize:vertical;scrollbar-width:thin}
.market-view-checkout #marketNote::placeholder{color:#bbb;font-size:11px}


/* Forum navigation stays reachable while browsing any forum page. */
.forum-app{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
.forum-dock{position:fixed;z-index:20;left:50%;bottom:calc(var(--app-viewport-bottom,0px) + var(--app-dock-bottom,max(10px,env(safe-area-inset-bottom,0px))));display:flex;align-items:center;gap:10px;width:min(420px,calc(100vw - 28px));height:58px;transform:translateX(-50%);pointer-events:none}
.forum-dock-group{display:flex;flex:1;align-items:center;min-width:0;height:100%;padding:5px;border:1px solid #e2e2e2;border-radius:32px;background:#fafafa;box-shadow:0 2px 8px #00000008;pointer-events:auto}
.forum-dock-group>button{position:relative;display:flex;flex:1;align-items:center;justify-content:center;gap:5px;min-width:0;height:100%;padding:0 5px;border:0;border-radius:26px;background:transparent;color:#777;font-size:9px;white-space:nowrap}
.forum-dock-group>button svg,.forum-dock-profile svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.forum-dock-group>button.is-active{background:#e9e9e9;color:#333}
.forum-dock-group>button i{position:absolute;top:0;right:3px;display:grid;min-width:14px;height:14px;place-items:center;border:1px solid #fafafa;border-radius:50%;background:#555;color:#fff;font-size:7px;font-style:normal;line-height:1}
.forum-dock button.forum-dock-profile{display:grid;flex:none;width:58px;height:58px;place-items:center;border:1px solid #e2e2e2;border-radius:50%;background:#fafafa;color:#666;box-shadow:0 2px 8px #00000008;pointer-events:auto}
.forum-dock button.forum-dock-profile.is-active{background:#e9e9e9;color:#333}
@media(max-width:380px){.forum-dock{gap:7px;width:calc(100vw - 22px);height:54px}.forum-dock-group{padding:4px}.forum-dock-group>button{gap:3px;padding-inline:3px;font-size:8px}.forum-dock-group>button svg{width:17px;height:17px}.forum-dock button.forum-dock-profile{width:54px;height:54px}.forum-app{padding-bottom:calc(105px + env(safe-area-inset-bottom))}}
.forum-feed-tools{display:flex;align-items:center;gap:13px;flex:none}.forum-feed-tools .forum-search-entry{display:inline-flex;align-items:center;gap:4px;padding:4px 0;border-bottom:1px solid #e0dcd7;color:#777;font-size:9px}.forum-search-entry svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.forum-profile-settings{display:grid;gap:9px;margin:5px 0 15px;padding:9px 0 11px;border-top:0;border-bottom:1px solid var(--fl)}.forum-profile-settings h3{margin:0;color:var(--fi);font-size:11px;font-weight:500}
@media(max-width:360px){.forum-feed-tools{gap:8px}.forum-feed-tools .forum-search-entry,.forum-feed-heading>div>button{font-size:8px}.forum-profile-settings select{max-width:64%}}
.forum-feed-heading{justify-content:flex-end}
.forum-profile-manager-tabs{display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--fl)}.forum-app .forum-profile-manager-tabs>button{position:relative;padding:5px 0 8px;border:0;background:transparent;color:#999;font-size:10px}.forum-app .forum-profile-manager-tabs>button.is-active{color:#333}.forum-app .forum-profile-manager-tabs>button.is-active::after{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:#444;content:""}
.forum-world-rail{display:flex;align-items:center;gap:10px;min-width:0}.forum-app button.forum-world-add{display:grid;flex:none;width:38px;height:38px;place-items:center;border:0;border-radius:50%;background:#171717;color:#fff;font-size:24px;font-weight:300;line-height:1}.forum-world-scroller{display:flex;flex:1;gap:7px;min-width:0;overflow-x:auto;padding:1px 1px 7px;overscroll-behavior-inline:contain;scrollbar-width:none}.forum-world-scroller::-webkit-scrollbar,.forum-persona-rail::-webkit-scrollbar{display:none}.forum-app button.forum-world-choice{display:grid;flex:none;min-width:86px;max-width:140px;gap:2px;padding:6px 9px;border:1px solid #e8e8e8;border-radius:9px;background:#fff;color:#666;text-align:left}.forum-app button.forum-world-choice.is-active{border-color:#555;background:#f4f4f4;color:#333}.forum-world-choice strong{overflow:hidden;font-size:9px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.forum-world-choice small{color:#999;font-size:7px;white-space:nowrap}.forum-app button.forum-world-manage-link{justify-self:start;padding:2px 0;border:0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:8px}
.forum-persona-rail{display:flex;gap:16px;min-width:0;overflow-x:auto;padding:2px 1px 5px;overscroll-behavior-inline:contain;scrollbar-width:none}.forum-app button.forum-persona-choice{display:grid;flex:none;justify-items:center;gap:5px;width:57px;padding:0;border:0;background:transparent;color:#777}.forum-persona-avatar{position:relative;display:grid;width:44px;height:44px;place-items:center;border:1px solid #e4e4e4;border-radius:50%;background:#f1f1f1;color:#777;font-size:14px}.forum-persona-avatar>img{width:100%;height:100%;border-radius:50%;object-fit:cover}.forum-persona-avatar>i{position:absolute;top:-3px;right:-5px;display:grid;width:18px;height:18px;place-items:center;border:1px solid #fff;border-radius:50%;background:#111;color:#fff;font-style:normal}.forum-persona-avatar>i svg{width:11px;height:11px;fill:#fff;stroke:#fff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.forum-persona-name{display:block;width:100%;overflow:hidden;color:#777;font-size:8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.forum-app button.forum-persona-choice.is-active .forum-persona-name{color:#222;font-weight:500}
@media(max-width:360px){.forum-persona-rail{gap:12px}.forum-app button.forum-world-choice{min-width:78px}}
.forum-members-page{padding-top:0}.forum-members-page .forum-member-add{gap:11px;padding:3px 0 13px;border-bottom:1px solid var(--fl)}.forum-member-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.forum-member-section-head h3{margin:0;color:#514c47;font:400 13px "Songti SC","Noto Serif CJK SC",serif}.forum-member-section-head>button,.forum-member-section-head>div>button{padding:3px 0;border:0;border-bottom:1px solid #ddd;background:transparent;color:#777;font-size:9px}.forum-member-section-head>div{display:flex;align-items:center;gap:12px}.forum-add-scroller{display:flex;gap:14px;min-width:0;overflow-x:auto;padding:3px 2px 7px;overscroll-behavior-inline:contain;scrollbar-width:none}.forum-add-scroller::-webkit-scrollbar,.forum-role-owner-scroller::-webkit-scrollbar,.forum-role-choice-scroller::-webkit-scrollbar{display:none}.forum-app button.forum-add-choice{display:grid;flex:none;justify-items:center;gap:5px;width:60px;padding:0;border:0;background:transparent;color:#777;font-size:8px}.forum-add-avatar{position:relative;display:grid;width:46px;height:46px;place-items:center;border:1px solid #e4e4e4;border-radius:50%;background:#f0f0f0;color:#777;font-size:14px}.forum-add-avatar>img,.forum-role-owner-avatar>img{width:100%;height:100%;border-radius:50%;object-fit:cover}.forum-add-choice>span:last-child,.forum-role-owner>span:last-child{display:block;width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.forum-selection-heart{position:absolute;top:-3px;right:-5px;display:grid;width:18px;height:18px;place-items:center;border:1px solid #fff;border-radius:50%;background:#111}.forum-selection-heart svg{width:11px;height:11px;fill:#fff;stroke:#fff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.forum-picker-empty{align-self:center;margin:4px 0;color:#999;font-size:9px}.forum-app button.forum-add-selected{justify-self:start;padding:7px 13px;border:1px solid #222;border-radius:18px;background:#222;color:#fff;font-size:9px}
.forum-role-section-head{margin-top:4px}.forum-role-picker{display:flex;align-items:center;gap:10px;min-width:0;min-height:76px}.forum-role-owner-scroller{display:flex;flex:none;gap:7px;width:min(34%,132px);overflow-x:auto;padding:2px 1px 5px;overscroll-behavior-inline:contain;scrollbar-width:none}.forum-app button.forum-role-owner{display:grid;flex:none;justify-items:center;gap:4px;width:48px;padding:0;border:0;background:transparent;color:#888;font-size:7px}.forum-role-owner-avatar{position:relative;display:grid;width:36px;height:36px;place-items:center;overflow:hidden;border:1px solid #e4e4e4;border-radius:50%;background:#f0f0f0;color:#777;font-size:12px}.forum-app button.forum-role-owner.is-active .forum-role-owner-avatar{border:2px solid #444}.forum-app button.forum-role-owner.is-active>span:last-child{color:#333}.forum-role-divider{align-self:stretch;width:1px;background:#e8e8e8}.forum-role-choice-scroller{display:flex;flex:1;align-items:center;gap:11px;min-width:0;overflow-x:auto;padding:3px 2px 7px;overscroll-behavior-inline:contain;scrollbar-width:none}.forum-app button.forum-role-choice{width:55px}.forum-app button.forum-role-choice .forum-add-avatar{width:42px;height:42px}.forum-role-section-head .forum-member-section-head>button{white-space:nowrap}
.forum-member-list{padding-top:2px}
@media(max-width:360px){.forum-member-section-head h3{font-size:12px}.forum-add-scroller{gap:11px}.forum-app button.forum-add-choice{width:54px}.forum-role-picker{gap:7px}.forum-role-owner-scroller{width:30%}.forum-role-choice-scroller{gap:8px}}
.forum-role-picker{position:relative;z-index:2}.forum-role-owner-scroller{position:relative;flex:0 0 62px;width:62px;overflow:visible;padding:2px 0 5px}.forum-role-owner-picker{position:relative;width:62px}.forum-app button.forum-role-owner-current{display:grid;position:relative;width:62px;justify-items:center;gap:4px;padding:0 2px;border:0;background:transparent;color:#777;font-size:8px}.forum-role-owner-current .forum-role-owner-avatar{width:42px;height:42px}.forum-role-owner-name{display:block;width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.forum-role-owner-chevron{position:absolute;right:1px;top:25px;display:grid;width:15px;height:15px;place-items:center;border:1px solid #fff;border-radius:50%;background:#eee;color:#555;font-size:11px;line-height:1}.forum-role-owner-menu{position:absolute;top:calc(100% + 5px);left:0;z-index:20;display:grid;gap:2px;width:min(190px,58vw);max-height:190px;overflow-y:auto;padding:5px;border:1px solid #e4e4e4;border-radius:12px;background:#fff;box-shadow:0 8px 24px #0000001a}.forum-app button.forum-role-owner-option{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px;border:0;border-radius:8px;background:#fff;color:#555;text-align:left;font-size:10px}.forum-app button.forum-role-owner-option.is-active{background:#f3f3f3;color:#111}.forum-role-owner-option-avatar{display:grid;flex:none;width:30px;height:30px;place-items:center;overflow:hidden;border:1px solid #e4e4e4;border-radius:50%;background:#f0f0f0;color:#777;font-size:10px}.forum-role-owner-option-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.forum-role-owner-option>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-world-rail-actions{display:flex;flex:none;gap:6px}.forum-app button.forum-world-add,.forum-app button.forum-world-manage{width:auto;height:32px;min-width:42px;padding:0 10px;border:1px solid #222;border-radius:18px;background:#171717;color:#fff;font-size:9px;font-weight:400;line-height:1}.forum-app button.forum-world-manage{border-color:#ddd;background:#fff;color:#555}

/* Compact cart settlement beneath the final item. */
.market-view-cart .market-cart-row:last-of-type{padding-bottom:8px;border-bottom:0}
.market-view-cart .market-checkoutbar{margin-top:0;padding:4px 0 6px;border:0}
/* One cart divider and one unified product action row. */
.market-view-cart .market-checkoutbar{border-top:1px solid #eee;padding-top:8px}
.market-view-detail .market-detail{padding-bottom:12px}
.market-view-detail .market-reviews p:last-child{border-bottom:0}
.market-view-detail .market-buybar{bottom:76px;gap:6px;margin-top:0;padding:10px 0;border-top:1px solid #eee}
.market-view-detail .market-buybar>button{min-width:0;margin:0;padding:8px 6px;font-size:10px;white-space:nowrap}
.market-view-detail .market-buybar>.market-favorite{display:flex;align-items:center;justify-content:center;gap:4px;flex:0 0 66px;border:1px solid #e1e1e1;border-radius:22px}
.market-buybar .market-favorite>svg{width:18px;height:18px;flex:none;stroke-width:1.3}
.market-view-detail .market-buybar>.is-primary{border-color:#000;background:#000;color:#fff}
.market-bank-card>.market-cny-reference{margin:-10px 0 13px;font-size:10px;line-height:1.5;color:#777}
.market-mask-switch{position:relative;margin:2px 0 14px;border-bottom:1px solid #ededed}
.market-mask-current{display:flex;align-items:center;gap:11px;width:100%;min-height:64px;padding:8px 2px;border:0;background:transparent;color:#333;text-align:left}
.market-mask-avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;overflow:hidden;border:1px solid #e5e5e5;border-radius:50%;background:#f4f4f4;color:#666;font-family:"Songti SC",serif;font-size:18px}
.market-mask-avatar img{width:100%;height:100%;object-fit:cover}
.market-mask-avatar.is-empty{background:#f5f5f5}
.market-mask-copy{display:grid;gap:4px;flex:1;min-width:0}
.market-mask-copy strong{overflow:hidden;color:#292929;font-size:14px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.market-mask-copy small{color:#999;font-size:10px}
.market-mask-current>svg{width:18px;height:18px;flex:none;fill:none;stroke:#777;stroke-width:1.5}
.market-mask-current[aria-expanded="true"]>svg{transform:rotate(180deg)}
.market-mask-options{display:flex;gap:16px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:none}
.market-mask-options::-webkit-scrollbar{display:none}
.market-mask-options>button{position:relative;display:grid;justify-items:center;gap:5px;flex:none;min-width:58px;padding:2px 4px;border:0;background:transparent;color:#888;font-size:10px}
.market-mask-options .market-mask-avatar{width:42px;height:42px}
.market-mask-options>button.is-current{color:#222}
.market-mask-options>button.is-current .market-mask-avatar{border-color:#333;box-shadow:0 0 0 1px #333}
.market-mask-options>button>i{position:absolute;top:0;right:2px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#222;color:#fff;font-size:9px;font-style:normal}
.market-view-orders .market-order{cursor:pointer;outline:none}
.market-view-orders .market-order:active{background:#fafafa}
.market-view-orders .market-order:focus-visible{outline:1px solid #bbb;outline-offset:3px}
.market-view-orders .market-order>footer{align-items:flex-end;padding-top:10px;border-top:1px solid #eee}
.market-view-orders .market-order-total{display:inline-flex;align-items:baseline;gap:5px;color:#777;font-size:10px}
.market-view-orders .market-order-total>b{color:#222;font-family:Georgia,"Times New Roman",serif;font-size:15px;font-variant-numeric:lining-nums tabular-nums;font-weight:500;letter-spacing:.2px}
@media(max-width:380px){.market-view-detail .market-buybar{gap:4px}.market-view-detail .market-buybar>button{padding-inline:4px;font-size:9px}.market-view-detail .market-buybar>.market-favorite{flex-basis:56px}}
.message .chat-user-wallet-avatar{padding:0;cursor:pointer}
.message .chat-user-wallet-avatar:focus-visible{outline:2px solid #888;outline-offset:3px}
.chat-user-bank-card{margin:0;min-height:178px;padding:14px 16px}
.chat-user-bank-card header{margin-bottom:10px}
.chat-user-bank-card .market-card-chip{top:48px;right:18px;width:32px;height:24px}
.chat-user-bank-card>strong{margin:4px 0 10px;font-size:clamp(22px,6.5vw,27px)}
.chat-user-bank-card footer{margin-top:8px}
.chat-user-bank-card header>span:first-child{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:17px;font-style:italic;font-weight:400;letter-spacing:0}
.chat-bank-sheet-title{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive!important;font-size:30px!important;font-style:italic;font-weight:400!important;letter-spacing:-.3px}
@media(max-width:380px){.chat-user-bank-card{min-height:170px;padding:13px 14px}.chat-user-bank-card>strong{font-size:clamp(21px,7vw,27px)}}
.chat-pat-row{display:flex;width:100%;justify-content:center;margin:8px 0;pointer-events:none}
.chat-pat-card{display:block;max-width:calc(100% - 24px);padding:7px 12px;border:1px solid #eee;border-radius:4px;background:#fff;color:#888;font-size:10px;line-height:1.45;text-align:center;overflow-wrap:anywhere}

/* Search and homepage categories stay pinned together. */
.market-home-controls{position:sticky;top:0;z-index:6;background:#fff;box-shadow:0 -8px 0 8px #fff}
.market-view-home .market-home-controls .market-search{position:static;box-shadow:none;margin-bottom:10px}
.market-home-controls .market-categories{padding-bottom:10px}
.forum-world-edit-heading{padding:14px 0 5px;border-bottom:1px solid var(--fl)}.forum-world-edit-heading h2{margin:5px 0;color:#444;font:400 17px "Songti SC","Noto Serif CJK SC",serif}.forum-world-edit-heading p{margin:0;color:#999;font-size:9px;line-height:1.6}.forum-world-edit-page .forum-world-form{margin-top:0}
.forum-world-danger-zone{display:flex;justify-content:flex-end;padding:14px 0;border-top:1px solid var(--fl)}.forum-app button.forum-delete-world,.forum-app button.forum-reset-world{padding:7px 11px;border:1px solid #ddd;border-radius:16px;background:#fff;color:#777;font-size:9px}
.feature-page-topbar:has(.forum-page-subtitle) .feature-page-brand{align-items:baseline;transform:translateY(2px)}
.feature-page-topbar:has(.forum-page-subtitle) .forum-page-subtitle{align-self:auto}
#featurePageContent:has(.forum-world-edit-page){padding-top:2px}
.forum-world-edit-heading{padding:2px 0 4px}.forum-world-edit-heading h2{margin:0 0 3px}.forum-world-edit-heading p{margin:0}
.forum-world-edit-page .forum-world-form,.forum-world-add-page .forum-world-form{gap:12px;padding-top:8px}
.forum-world-edit-page .forum-world-form input,.forum-world-edit-page .forum-world-form textarea,.forum-world-edit-page .forum-world-form select,.forum-world-edit-page .forum-primary,.forum-world-edit-page .forum-delete-world,.forum-world-edit-page .forum-reset-world,.forum-world-add-page .forum-world-form input,.forum-world-add-page .forum-world-form textarea,.forum-world-add-page .forum-world-form select,.forum-world-add-page .forum-primary{border-radius:0}
.forum-world-note{display:block!important;padding:12px 14px 10px;border:1px solid #e9e9e9;background:#fff;color:#777;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:11px!important;letter-spacing:.4px}
.forum-world-note textarea{display:block;height:130px;min-height:130px;margin:9px 0 0;padding:0 1px;border:0!important;border-radius:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px)!important;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px!important;line-height:26px;resize:vertical;outline:none!important;box-shadow:none!important}
.forum-world-note textarea::placeholder{color:#bbb;font-size:11px}
.forum-world-edit-page .forum-world-form,.forum-world-add-page .forum-world-form{padding-bottom:0;border-bottom:0}
.forum-world-form-actions{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:2px;padding:8px 0 0;border:0}
.forum-world-form-actions button{width:auto;min-height:0;margin:0;padding:5px 0;border:0!important;border-bottom:1px solid #aaa!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#888!important;font-size:10px;font-weight:400}
.forum-world-form-actions .forum-primary{justify-self:auto}
.forum-world-add-page .forum-world-form-actions{justify-content:flex-end}
.market-view-category{display:flex;flex-direction:column}
.market-view-category .market-product{display:flex;min-width:0;flex-direction:column;align-items:stretch}
.market-view-category .market-product-art{display:grid;flex:0 0 auto;width:100%;height:clamp(124px,38vw,230px);min-height:124px;aspect-ratio:1 / 1;place-items:center}
.market-view-category .market-product-copy{display:grid;flex:none;min-width:0}
.market-view-category .market-product-copy>b{display:block}
.market-view-category .market-grid:has(>.market-empty){flex:1;align-content:center}
.market-grid>.market-empty{grid-column:1/-1;width:100%;justify-items:center;text-align:center}
.feature-page-content:has(.market-view-category){padding-top:0}
.market-view-category .market-category-pills{position:sticky;top:0;z-index:6;flex:none;background:#fff;box-shadow:0 -8px 0 8px #fff}
.market-search-results{margin-top:12px}
.market-search-results .market-search-error{margin:0;padding:8px 0;border-bottom:1px solid #eee;color:#999;font-size:10px;line-height:1.6}

/* Forum forms and controls follow Iris's ruled-paper, underline-first interface. */
.forum-app button.forum-compose-fab{box-sizing:border-box;display:grid;width:48px!important;min-width:48px;height:48px!important;min-height:48px;padding:0;aspect-ratio:1/1;flex:0 0 48px;border-radius:50%!important;line-height:1}
.forum-app .forum-avatar{box-sizing:border-box;overflow:hidden;padding:0;border-radius:50%;aspect-ratio:1/1}
.forum-app .forum-avatar>img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;border-radius:50%}
.forum-member-card>.forum-avatar{flex-basis:36px;width:36px;height:36px}
.forum-member-card{align-items:center;flex-wrap:nowrap!important;gap:7px}
.forum-member-details{flex:1 1 auto;min-width:0}
.forum-member-participation{position:relative;flex:0 0 auto;align-self:center;color:#777;font-size:9px}
.forum-member-participation>summary{list-style:none;cursor:pointer;white-space:nowrap;color:#777}
.forum-member-participation>summary::-webkit-details-marker{display:none}
.forum-member-participation>summary::before{content:"＋";display:inline-block;width:14px;color:#555;font-size:12px;text-align:left}
.forum-member-participation[open]>summary::before{content:"−"}
.forum-member-participation-body{position:absolute;top:calc(100% + 8px);right:0;z-index:30;display:grid;gap:8px;width:min(320px,82vw);max-height:min(65vh,500px);overflow:auto;padding:13px;background:#fff;border:1px solid #ddd;box-shadow:0 8px 24px #00000012}
.forum-member-participation-body .forum-member-setting{font-size:10px}
.forum-member-participation-body .forum-member-setting select{border:0;border-bottom:1px solid #ddd;border-radius:0;padding:5px;background:transparent}
.forum-member-participation-body .forum-permissions{display:grid;grid-template-columns:1fr;gap:0;padding:0}
.forum-member-participation-body .forum-permissions{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}
.forum-member-participation-body .forum-permissions label{min-height:30px;border-bottom:1px solid #eee;font-size:10px}
.forum-member-participation-body .forum-permissions input{width:14px;height:14px}
.forum-member-participation-body .forum-story-summary{gap:9px;font-size:10px}
.forum-member-participation-body .forum-story-summary textarea{height:150px;min-height:150px;margin:8px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px);font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:12px;line-height:26px;resize:vertical}
.forum-member-participation-body [hidden]{display:none!important}
.forum-app .forum-member-card>button.forum-member-post-link[data-forum-action="role-new-post"]{flex:none;align-self:center;margin:0;padding:4px 0;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#777;font-size:9px;white-space:nowrap}
.forum-member-post-link:disabled{opacity:.38}
.forum-member-name-row{display:flex;align-items:baseline;gap:7px;min-width:0}.forum-member-name-row>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forum-member-post-status{flex:none;color:#888;font-size:8px;font-weight:400;white-space:nowrap}.forum-member-post-status.is-success{color:#666}.forum-member-post-status.is-failure{color:#999}.forum-post-wave{display:inline-flex;margin-left:2px;vertical-align:baseline}.forum-post-wave i{font-style:normal;animation:forum-post-wave 900ms ease-in-out infinite}.forum-post-wave i:nth-child(2){animation-delay:120ms}.forum-post-wave i:nth-child(3){animation-delay:240ms}@keyframes forum-post-wave{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-3px)}}
.forum-profile-edit-page{padding-top:2px}
.forum-profile-form{gap:0!important;padding:4px 0 12px!important}
.forum-profile-avatar-picker{display:grid!important;justify-items:center;gap:7px;width:max-content;margin:2px auto 14px;cursor:pointer;color:#999;font-size:9px}
.forum-profile-avatar-picker>input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.forum-profile-avatar-preview{display:grid;width:88px;height:88px;place-items:center;overflow:hidden;border:1px solid #e3e3e3;border-radius:50%;background:#f2f2f2;color:#777;font:24px "Songti SC",serif}
.forum-profile-avatar-preview img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.forum-profile-nickname{display:block!important;width:max-content;max-width:100%;margin:0 auto 18px!important}
.forum-profile-nickname input{display:block;max-width:88vw;padding:9px 2px!important;border:0!important;border-bottom:1px solid #bbb!important;border-radius:0!important;background:#fff!important;text-align:center;font:15px "Songti SC","Noto Serif CJK SC",serif!important}
.forum-profile-bio{display:block!important;padding:14px 16px 11px;border:1px solid #e9e9e9;background:#fff}
.forum-profile-bio>span,.forum-compose-content>span{color:#777;font:11px "Songti SC","Noto Serif CJK SC",serif;letter-spacing:.5px}
.forum-profile-bio textarea,.forum-compose-content textarea{display:block;width:100%;min-height:150px;margin:12px 0 0;padding:0 1px!important;border:0!important;border-radius:0!important;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px)!important;color:#555;font:12px/26px "Songti SC","Noto Serif CJK SC",serif!important;resize:vertical;outline:none!important;box-shadow:none!important}
.forum-profile-form>.forum-primary,.forum-compose-form>.forum-primary{justify-self:end;min-height:0;margin-top:13px;padding:5px 0!important;border:0!important;border-bottom:1px solid #888!important;border-radius:0!important;background:transparent!important;color:#777!important;font-size:10px;box-shadow:none!important}
.forum-compose-page{padding-top:0}
.forum-compose-form{gap:14px;padding:0 0 12px!important}
.forum-compose-form>.forum-compose-content{display:block!important;padding:14px 16px 11px;border:1px solid #e9e9e9;background:#fff}
.forum-compose-form>.forum-compose-content textarea{min-height:208px}
.forum-post-type{min-width:0;margin:0;padding:0;border:0}
.forum-post-type legend{margin-bottom:8px;color:#777;font-size:10px}
.forum-post-type>div{display:flex;align-items:center;gap:20px;overflow-x:auto;border-bottom:1px solid #ddd}
.forum-post-type label{position:relative;display:block;flex:none;margin:0;padding:7px 1px 9px;color:#888;font-size:10px;cursor:pointer}
.forum-post-type input{position:absolute;width:1px;height:1px;opacity:0}
.forum-post-type label:has(input:checked){color:#222}
.forum-post-type label:has(input:checked)::after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:#222;content:""}
.forum-compose-form>label:not(.forum-compose-content){gap:7px}
.forum-compose-form>label:not(.forum-compose-content) input{border:0!important;border-bottom:1px solid #ddd!important;border-radius:0!important;background:#fff!important}
.forum-compose-form .forum-upload{border-bottom:1px solid #eee;padding:8px 0}
.forum-compose-form>.forum-compose-image-upload{position:relative;display:flex;justify-content:flex-end;min-height:32px;padding:5px 0;border:0!important;background:transparent!important;color:#777;font-size:10px;cursor:pointer}
.forum-compose-image-upload input[type="file"]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.forum-compose-image-upload>span{padding:4px 0;border:0;border-bottom:1px solid #aaa;color:#777}
.forum-compose-form .forum-check{padding:6px 0}
.forum-world-rail{align-items:stretch;gap:12px}
.forum-world-rail-actions{align-self:stretch;align-items:center;gap:12px}
.forum-app button.forum-world-add,.forum-app button.forum-world-manage{width:auto;height:auto;min-width:0;padding:5px 0;align-self:center;border:0;border-bottom:1px solid #aaa;border-radius:0;background:transparent;color:#777;font-size:9px;line-height:1}
.forum-app button.forum-world-add{background:transparent;color:#777}
.forum-profile-settings{border-bottom:0}
.forum-world-scroller{align-items:stretch;gap:18px;padding:0 1px;border-bottom:1px solid #d6d6d6}
.forum-app button.forum-world-choice{position:relative;display:flex;align-items:center;justify-content:center;min-width:62px;max-width:140px;padding:6px 1px 8px;border:0;border-radius:0;background:transparent;color:#888;text-align:center}
.forum-app button.forum-world-choice.is-active{border:0;background:transparent;color:#222}
.forum-app button.forum-world-choice.is-active::after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:#222;content:""}
.forum-world-choice strong{font-size:9px;font-weight:400}
.forum-world-choice small{display:none}
.forum-app button.forum-npc-toggle{flex:0 0 auto;align-self:center;width:auto;min-width:2.5em;padding:4px 0;border:0;border-bottom:1px solid #aaa;border-radius:0;background:transparent;color:#777;font-size:9px;line-height:1.2;text-align:center;white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb}
@media(max-width:480px){.forum-app button.forum-compose-fab{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;flex-basis:48px!important}.forum-member-participation-body{right:-65px}.forum-world-rail{gap:10px}.forum-world-rail-actions{gap:9px}.forum-world-scroller{gap:14px}}
@media(max-width:360px){.forum-member-card{gap:5px}.forum-member-card>.forum-avatar{flex-basis:32px;width:32px;height:32px;min-width:32px}.forum-member-post-link{font-size:8px}.forum-member-participation{font-size:8px}}
.forum-member-card .forum-member-participation>summary,.forum-member-card>.forum-member-post-link,.forum-member-card>button[data-forum-action="remove-member"]{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;align-self:center;height:30px;min-height:30px;padding:0 6px;line-height:1;white-space:nowrap}
.forum-feed-tools .forum-collections-entry{display:inline-flex;align-items:center;padding:4px 0;border-bottom:1px solid var(--fl);background:transparent;color:var(--fi);font-size:9px}
.forum-collection-create{margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid var(--fl)}
.forum-post-collection-select,.forum-new-collection-field{display:grid;gap:6px;color:#777;font-size:10px}
.forum-post-collection-select select,.forum-new-collection-field input{width:100%;min-width:0;padding:9px 10px;border:1px solid #e7e7e7;border-radius:7px;background:#fff;color:#555;font-size:10px}
.forum-new-collection-field small{color:#999;font-size:8px}
.forum-new-collection-field[hidden]{display:none!important}
.forum-collection-list{display:grid;gap:0;border-top:1px solid #eee}
.forum-collection-card{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:13px 2px;border-bottom:1px solid #eee;background:transparent;color:#555;text-align:left}
.forum-collection-card strong{font-size:11px;font-weight:500}
.forum-collection-card small{color:#999;font-size:9px}
.forum-collection-card>span{grid-column:1/-1;color:#999;font-size:9px;line-height:1.5}
.forum-collection-heading{display:grid;gap:4px;margin-bottom:14px;padding:4px 0 12px;border-bottom:1px solid #eee}
.forum-collection-heading h2{margin:0;font:400 17px "Songti SC","Noto Serif CJK SC",serif}
.forum-collection-heading p{margin:0;color:#888;font-size:10px;line-height:1.6}
.forum-collection-heading small{color:#aaa;font-size:9px}
.forum-post-collection-tag{display:inline-flex;max-width:100%;margin:0 0 7px;padding:4px 9px;border:1px solid #e8e8e8;border-radius:14px;background:#fafafa;color:#777;font-size:8px;line-height:1.2}
.forum-post-open .forum-post-collection-tag{margin:7px 0 0;padding:2px 7px;border-radius:999px;background:#fff;color:#777;font-size:7px;line-height:1.2}
.forum-post-actions button[data-forum-action="view"]{margin-left:auto}
.forum-post-actions button[data-forum-action="interact"]{padding:4px 0 4px 4px;color:#555}
.forum-post-actions button[data-forum-action="interact"].is-loading{color:#888;cursor:wait}
.forum-post-actions button[data-forum-action="interact"].is-success{color:#444}
.forum-post-actions button[data-forum-action="interact"].is-failure{color:#999}
.forum-interact-dots{display:inline-flex;align-items:center;gap:2px;margin-left:3px;vertical-align:middle}
.forum-interact-dots i{width:3px;height:3px;border-radius:50%;background:currentColor;animation:forumInteractWave .8s ease-in-out infinite alternate}
.forum-interact-dots i:nth-child(2){animation-delay:.14s}.forum-interact-dots i:nth-child(3){animation-delay:.28s}
@keyframes forumInteractWave{from{transform:translateY(1px);opacity:.4}to{transform:translateY(-2px);opacity:1}}
.forum-role-reply{display:flex;align-items:center;gap:8px;margin:0 0 11px;padding:10px 0;border-top:1px solid #efefef;border-bottom:1px solid #efefef}
.forum-role-reply>label{flex:none;color:#888;font-size:9px}
.forum-role-reply .forum-role-select{flex:1;min-width:0;max-width:none;height:34px;padding:0 10px;border:1px solid #e6e6e6;border-radius:3px;background:#fff;color:#555;font-size:10px}
.forum-role-reply>button{height:34px;padding:0 13px;border:0;border-radius:3px;background:#222;color:#fff;font-size:9px}
.forum-comment-form{align-items:center;gap:8px;padding:2px 0 13px}
.forum-comment-form input{height:39px;min-height:39px;padding:0 13px;border:1px solid #e7e7e7;border-radius:20px;background:#fff;font-size:10px}
.forum-comment-form input:focus{border-color:#bbb;outline:0}
.forum-comment-form button{height:35px;min-width:58px;padding:0 14px;border:0;border-radius:19px;background:#222;color:#fff;font-size:10px}
.forum-comment-form button:active,.forum-role-reply>button:active{background:#444}
.forum-comment-role-select{height:26px;padding:0 6px;border-radius:3px}
@media(max-width:360px){.forum-post-actions{gap:10px}.forum-post-actions button[data-forum-action="interact"]{padding-left:0}.forum-role-reply{gap:5px}.forum-role-reply>button{padding-inline:9px}}
@media(prefers-reduced-motion:reduce){.forum-interact-dots i{animation:none}}
.forum-role-reply{align-items:center;gap:9px;margin:0 0 10px;padding:7px 0;border:0}
.forum-role-avatar-rail{display:flex;flex:1;min-width:0;align-items:flex-start;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.forum-role-avatar-rail::-webkit-scrollbar{display:none}
.forum-role-avatar-option{display:grid;flex:none;justify-items:center;gap:4px;min-width:40px;padding:0;border:0;background:transparent;color:#777}
.forum-role-avatar-option:disabled{opacity:.65}
.forum-role-avatar{position:relative;display:grid;width:34px;height:34px;place-items:center;overflow:visible;border-radius:50%;background:#eee;color:#777;font-size:12px}
.forum-role-avatar>img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.forum-role-avatar-option>small{display:block;max-width:56px;overflow:hidden;color:#777;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.forum-role-avatar-option.is-selected .forum-role-avatar{outline:1px solid #222;outline-offset:1px}
.forum-role-avatar-heart{position:absolute;top:-3px;right:-4px;display:grid;width:16px;height:16px;place-items:center;border:1.5px solid #fff;border-radius:50%;background:#111}
.forum-role-avatar-heart svg{width:9px;height:9px;fill:#fff}
.forum-role-reply>.forum-role-invite-action{flex:none;align-self:center;margin-left:auto;padding:8px 0 8px 6px;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#222!important;font-size:10px;white-space:nowrap}
.forum-role-reply>.forum-role-invite-action:disabled{color:#222!important;opacity:1}
.forum-role-reply>.forum-role-invite-action.is-loading{color:#555!important}
.backup-category-group{margin:8px 0 0;padding:0 0 1px;border-bottom:1px solid #eee}
.backup-category-group>summary{display:flex;align-items:center;gap:9px;min-height:34px;cursor:pointer;list-style:none;color:#777;font-family:Georgia,"Songti SC",serif;font-size:10px;font-weight:400;letter-spacing:.1em}
.backup-category-group>summary::-webkit-details-marker{display:none}
.backup-category-group>summary::after{content:"＋";margin-left:auto;color:#aaa;font-family:Arial,sans-serif;font-size:12px;letter-spacing:0;transition:transform .15s}
.backup-category-group[open]>summary::after{content:"−"}
.backup-category-group[open]{padding-bottom:5px}
.backup-category-group>.backup-category{min-height:38px;padding:5px 2px}
.backup-category-group{margin-top:7px}
.backup-category-group>summary:focus-visible{outline:1px solid #ccc;outline-offset:2px}
/* Product cards stay visually neutral after activation; detail actions follow delivery info in flow. */
.market-product:hover,.market-product:active,.market-product:focus{filter:none;transform:none;box-shadow:none;background:#fff}
.market-product:focus-visible{outline:0}
.market-view-detail .market-buybar{position:static;bottom:auto;z-index:auto;margin:0;padding:10px 0 14px;border-top:1px solid #eee;box-shadow:none;background:#fff}
.market-view-detail .market-buybar>.market-favorite{border:1px solid #e1e1e1;border-radius:22px;background:#fff}
.market-home-controls{position:sticky;top:0;z-index:6}
.backup-format-picker{display:flex;align-items:center;gap:15px;margin:2px 0 10px;color:#999;font-size:9px}.backup-format-picker>span{margin-right:auto}.backup-format-picker button{position:relative;padding:6px 1px 7px;background:transparent;color:#aaa;font-size:9px}.backup-format-picker button.is-active{color:#444}.backup-format-picker button:after{position:absolute;right:0;bottom:2px;left:0;height:1px;background:#555;content:"";opacity:0}.backup-format-picker button.is-active:after{opacity:1}.backup-format-picker button:focus-visible{outline:1px solid #ddd;outline-offset:2px}
.backup-category-group{margin-top:16px}.backup-category-group h4{display:flex;align-items:center;gap:9px;margin:0 0 5px;color:#999;font-family:Georgia,"Songti SC",serif;font-size:10px;font-weight:400;letter-spacing:.13em}.backup-category-group h4:after{height:1px;flex:1;background:#eee;content:""}.backup-category{position:relative;display:flex;align-items:center;gap:10px;min-height:42px;padding:6px 2px;border-bottom:1px solid #f0f0f0;cursor:pointer}.backup-category input{position:absolute;width:1px;height:1px;opacity:0}.backup-category>span{display:grid;gap:3px;min-width:0}.backup-category strong{color:#666;font-size:10px;font-weight:400}.backup-category small{color:#aaa;font-size:8px;line-height:1.45}.backup-category>i{position:relative;flex:none;width:13px;height:13px;margin-left:auto;border:1px solid #d8d8d8;border-radius:50%;transition:background .15s,border-color .15s}.backup-category>i:after{position:absolute;inset:3px;border-radius:50%;background:#fff;content:"";opacity:0}.backup-category input:checked+span+ i{border-color:#555;background:#555}.backup-category input:checked+span+i:after{opacity:1}.backup-category input:focus-visible+span+i{outline:2px solid #bbb;outline-offset:2px}.backup-category input:checked+span strong{color:#444}
.backup-category-group{margin-top:7px}
.backup-category-group>summary:focus-visible{outline:1px solid #ccc;outline-offset:2px}

/* Forum collection labels and role avatars: improve legibility and keep selection marks inside the scroll viewport. */
.forum-post-collection-tag{font-size:11px;line-height:1.3}
.forum-post-open .forum-post-collection-tag{padding:3px 8px;font-size:11px;line-height:1.3}
.forum-role-avatar-rail{padding:5px 4px 3px;margin:-5px -4px -3px}
.forum-role-avatar{flex:none;width:36px;height:36px}
.forum-role-avatar>img{display:block;width:100%;height:100%;object-position:center center}

.forum-profile-collection-tabs{display:flex;align-items:center;gap:18px;min-width:0;margin:0 0 10px;padding:0 1px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;border-bottom:1px solid #e8e8e8;white-space:nowrap}
.forum-profile-collection-tabs::-webkit-scrollbar{display:none}
.forum-profile-collection-tabs>button{position:relative;flex:none;min-height:37px;padding:0 1px;color:#999;font-size:10px;line-height:1.2}
.forum-profile-collection-tabs>button.is-active{color:#333}
.forum-profile-collection-tabs>button.is-active::after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:#333;content:""}
.forum-profile-collection-tabs>.forum-profile-new-collection{margin-left:3px;color:#777}
.forum-profile-collection-form{display:flex;gap:8px;margin:0 0 12px;padding:0 1px}
.forum-profile-collection-form input{flex:1;min-width:0;height:34px;padding:0 11px;border:1px solid #e5e5e5;border-radius:17px;background:#fff;color:#555;font-size:10px}
.forum-profile-collection-form button{flex:none;padding:0 13px;border-radius:17px;background:#222;color:#fff;font-size:10px}

/* Comment replies use the same quiet avatar selection language as post interactions. */
.forum-comment-role-picker[hidden]{display:none!important}
.forum-comment-role-picker{display:grid;gap:7px;margin:5px 0 8px;padding:8px 0 7px;border-top:1px solid #efedea}
.forum-comment-role-rail{display:flex;min-width:0;align-items:flex-start;gap:13px;padding:5px 4px 3px;margin:-5px -4px -3px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.forum-comment-role-rail::-webkit-scrollbar{display:none}
.forum-comment-role-choice{display:grid;flex:none;justify-items:center;gap:4px;min-width:39px;padding:0;border:0;background:transparent;color:#777}
.forum-comment-role-choice:disabled{opacity:.6}
.forum-comment-role-avatar{position:relative;display:grid;width:34px;height:34px;place-items:center;overflow:visible;border-radius:50%;background:#eee;color:#777;font-size:11px}
.forum-comment-role-avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.forum-comment-role-choice.is-selected .forum-comment-role-avatar{outline:1px solid #222;outline-offset:1px}
.forum-comment-role-choice small{display:block;max-width:58px;overflow:hidden;color:#8d8781;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.forum-comment-role-controls{display:flex;align-items:center;gap:12px;min-height:28px}
.forum-comment-role-send{min-width:62px;padding:6px 13px;border:0;border-radius:18px;background:#222;color:#fff!important;font-size:9px!important;line-height:1.2}
.forum-comment-role-send:disabled{background:#aaa;color:#fff!important;opacity:.72}
.forum-comment-role-cancel{padding:5px 2px;color:#999!important;font-size:9px!important}
.forum-comment-role-open{margin-left:auto}
.forum-comment-role-open.is-open{color:#555!important}
.forum-profile-settings{margin-bottom:7px}
.forum-profile-stats + .forum-profile-settings{margin-top:5px}
.forum-profile-posts-heading{padding-top:7px!important;padding-bottom:5px!important}

/* Chat bank card: a read-only reverse side of the shared mask account. */
.chat-bank-flipper{position:relative;perspective:1500px;perspective-origin:50% 42%;min-width:0;isolation:isolate}
.chat-bank-rotor{display:grid;position:relative;transform-style:preserve-3d;transform:rotateY(0deg)}
.chat-bank-face{grid-area:1/1;align-self:start;position:relative;min-width:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.5px);border-radius:13px}
.chat-bank-front{cursor:pointer}
.chat-bank-front .chat-user-bank-card{flex:none;box-shadow:0 2px 3px #00000004,0 12px 28px -18px #00000030}
.chat-bank-front:focus-visible{outline:1px solid #777;outline-offset:4px}
.chat-bank-flip-hint{display:block;text-align:center;color:#999;font-size:10px;margin-top:10px;letter-spacing:1px}
.chat-bank-back{transform:rotateY(180deg) translateZ(.5px);border:1px solid #ddd;border-radius:13px;background:linear-gradient(125deg,#fff 45%,#fafafa);padding:16px;min-height:240px;box-shadow:0 2px 3px #00000004,0 12px 28px -18px #00000030}
.chat-bank-flipper.is-flipped .chat-bank-rotor{transform:rotateY(-180deg)}
.chat-bank-flipper.is-turning .chat-bank-rotor{animation:chat-bank-turn .8s cubic-bezier(.22,.68,.2,1) both;will-change:transform}
.chat-bank-flipper.is-turning-back .chat-bank-rotor{animation-name:chat-bank-turn-back}
.chat-bank-flipper::before{content:"";position:absolute;inset:18% 8% 7%;z-index:-1;border-radius:28px;background:#000;opacity:0;filter:blur(18px);pointer-events:none}
.chat-bank-flipper.is-turning::before{animation:chat-bank-shadow .8s ease both}
.chat-bank-face::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(112deg,transparent 18%,#ffffff08 32%,#ffffffb3 48%,#ffffff16 58%,transparent 76%);background-size:250% 100%;background-position:120% 0;transform:translateZ(1px)}
.chat-bank-flipper.is-turning .chat-bank-face::after{animation:chat-bank-sheen .8s ease both}
@keyframes chat-bank-turn{0%{transform:rotateY(0) translateZ(0)}35%{transform:translateY(-7px) translateZ(65px) rotateX(4deg) rotateY(-55deg) rotateZ(-1deg)}72%{transform:translateY(-3px) translateZ(30px) rotateX(-2deg) rotateY(-163deg)}100%{transform:rotateY(-180deg)}}
@keyframes chat-bank-turn-back{0%{transform:rotateY(-180deg)}35%{transform:translateY(-7px) translateZ(65px) rotateX(4deg) rotateY(-125deg) rotateZ(1deg)}72%{transform:translateY(-3px) translateZ(30px) rotateX(-2deg) rotateY(-17deg)}100%{transform:rotateY(0)}}
@keyframes chat-bank-shadow{0%,100%{opacity:0;transform:translateY(0) scale(.94)}45%{opacity:.13;transform:translateY(15px) scale(.88)}}
@keyframes chat-bank-sheen{0%{opacity:0;background-position:120% 0}30%{opacity:.55}65%{opacity:.35}100%{opacity:0;background-position:-20% 0}}
.chat-bank-back header,.chat-bank-period{display:flex;justify-content:space-between;align-items:center;gap:8px}
.chat-bank-back header strong{font-size:14px;font-weight:500;letter-spacing:2px}
.chat-bank-back button{border:0;background:transparent;color:#888;font:inherit;font-size:11px;padding:6px;cursor:pointer}
.chat-bank-back nav{display:flex;gap:22px;border-bottom:1px solid #eee;margin:14px 0 10px}
.chat-bank-back nav button{border-bottom:1px solid transparent;border-radius:0;padding:7px 0;font-size:12px}
.chat-bank-back nav button.is-active{color:#111;border-bottom-color:#111}
.chat-bank-period{font-size:10px;color:#888}
.chat-bank-period select{font:inherit;color:#555;background:#fff;border:0;max-width:110px;padding:4px}
.chat-bank-ledger{max-height:220px;overflow-y:auto;overscroll-behavior:contain;margin-top:8px}
.chat-bank-ledger article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f0f0f0}
.chat-bank-ledger article div{min-width:0;flex:1}
.chat-bank-ledger strong{display:block;font-size:11px;font-weight:400;overflow-wrap:anywhere;color:#333}
.chat-bank-ledger time{display:block;font-size:9px;color:#999;margin-top:5px}
.chat-bank-ledger b{font-family:Georgia,serif;font-size:13px;font-weight:400;white-space:nowrap;color:#111}
.chat-bank-empty{text-align:center;font-size:11px;color:#999;padding:28px 0}
@media(prefers-reduced-motion:reduce){.chat-bank-flipper.is-turning .chat-bank-rotor,.chat-bank-flipper.is-turning::before,.chat-bank-flipper.is-turning .chat-bank-face::after{animation:none}}
.summary-expandable{appearance:none;display:block;width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;cursor:pointer}.summary-expandable.is-summary-collapsed{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.memory-entry-content{color:#888;font:inherit;font-size:9px;line-height:1.75}.memory-summary-expandable{margin-top:9px;color:#777;font-size:9px;line-height:1.8}.call-summary-summary{margin:8px 0 0;padding:11px 0 13px;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555;font-size:12px;line-height:1.85}.memory-summary-card>button.memory-summary-expandable{white-space:pre-wrap}
.market-role-wallet-progress{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:#888;font-size:9px;line-height:1.5}.market-role-wallet-progress>i{width:11px;height:11px;flex:none;border:1px solid #d7d7d7;border-top-color:#555;border-radius:50%;animation:market-wallet-spin .8s linear infinite}.market-role-wallet-progress>b{overflow:hidden;width:12px;color:#555;font-size:12px;letter-spacing:1px;animation:market-wallet-dots 1s steps(4,end) infinite}.market-role-wallet-progress.is-success{color:#777}.market-role-wallet-progress.is-error{color:#916b68}.market-role-wallet-progress>button{flex:none;padding:0 0 1px;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;font-size:9px}.market-role-wallet-body>p.market-role-wallet-empty{color:#aaa;font-size:9px}@keyframes market-wallet-spin{to{transform:rotate(360deg)}}@keyframes market-wallet-dots{0%{width:0}100%{width:12px}}@media(prefers-reduced-motion:reduce){.market-role-wallet-progress>i,.market-role-wallet-progress>b{animation:none}}
.forum-market-share-select{display:grid;gap:6px;padding:9px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#777;font-size:9px}
.forum-market-share-select select{width:100%;min-height:35px;padding:0 9px;border:1px solid #e5e5e5;border-radius:7px;background:#fff;color:#555;font-size:10px}
.forum-market-share-select>small{color:#aaa;font-size:8px}
.forum-market-share-card{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-top:8px;padding:7px 9px;border-left:2px solid #aaa;background:#fafafa;color:#777;font-size:9px;line-height:1.5}
.forum-market-share-card>span{color:#aaa;font-size:8px}
.forum-market-share-card>strong{color:#555;font-size:10px;font-weight:500}
.forum-market-share-card>small{color:#999;font-size:8px}

.chat-gift-row{display:flex;justify-content:center;width:100%;margin:14px 0;flex:none}
.chat-gift-box{display:flex;flex-direction:column;align-items:center;width:min(100%,250px);padding:0 10px 12px;border:0;background:transparent;color:#42444a;cursor:pointer;font:inherit;overflow:visible;-webkit-tap-highlight-color:transparent}
.chat-gift-box:disabled{opacity:1;cursor:default}
.chat-gift-box:focus-visible{outline:1px solid #a4a7ae;outline-offset:5px;border-radius:8px}
.chat-gift-image{display:block;width:220px;max-width:100%;height:206px;object-fit:contain;object-position:center;margin:0 auto 2px}
.chat-gift-caption{display:block;margin-top:-2px;font-size:11px;line-height:1.6;overflow-wrap:anywhere;letter-spacing:.3px}
.chat-gift-box>small{display:block;margin-top:4px;font-size:9px;line-height:1.5;color:#989ba2;overflow-wrap:anywhere}
.chat-gift-unavailable{color:#aaa;font-size:10px}
.chat-gift-items{margin:13px 0;padding:9px 0;border-block:1px solid #eee}
.chat-gift-items p{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:7px 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.chat-gift-item-copy{display:block;flex:1;min-width:0;overflow-wrap:anywhere}
.chat-gift-item-copy strong{display:block;font-weight:500;color:inherit;line-height:1.55;overflow-wrap:anywhere}
.chat-gift-item-copy small{display:block;margin-top:2px;color:#999;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.chat-gift-line>b{flex:none;white-space:nowrap;font-size:11px;font-weight:500;color:#777}
.chat-gift-detail blockquote{margin:10px 0;padding:0 0 0 9px;border-left:2px solid #ddd;color:#888;font-size:11px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-gift-detail{max-height:60dvh;overflow:auto;color:#666;font-size:12px;line-height:1.7}
.chat-gift-detail ol{padding-left:17px}.chat-gift-detail li{padding:7px 0;color:#aaa}.chat-gift-detail li.is-done{color:#555}.chat-gift-detail time{display:block;color:#aaa;font-size:10px}.chat-gift-detail>small{font-size:9px;overflow-wrap:anywhere}

/* The white bridge moves with the sticky tabs, so scrolling cannot expose the gap above them. */
#featureScreen .feature-page-topbar:has(.beautify-feature-brand){position:relative;z-index:12;background:#fff}
#featureScreen .feature-page-content:has(.beautify-workspace){--beautify-header-gap:12px;isolation:isolate;background:#fff}
#featureScreen .beautify-workspace,#featureScreen .beautify-tabs{background:#fff}
#featureScreen .beautify-tabs{z-index:12}
#featureScreen .beautify-tabs::before{position:absolute;right:0;bottom:calc(100% - 1px);left:0;height:calc(var(--beautify-header-gap,12px) + 2px);background:#fff;content:"";pointer-events:none}
@media(max-width:480px){#featureScreen .feature-page-content:has(.beautify-workspace){--beautify-header-gap:10px}}

/* Keep long API errors readable above the chat controls on narrow screens. */
.toast{left:50%;bottom:max(112px,calc(96px + env(safe-area-inset-bottom)));width:min(calc(100% - 32px),620px);max-height:min(38dvh,300px);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;text-align:left;border-radius:16px}
.toast:not(.is-error){width:fit-content;max-width:calc(100% - 32px);text-align:center}
.toast.is-error{padding:13px 16px;box-shadow:0 8px 30px #0003}

.backup-preview .backup-mode-fieldset{display:block}
.backup-preview .backup-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.backup-preview .backup-mode-options label{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;margin:0;padding:10px;border:1px solid #eee;border-radius:10px;background:#fff}
.backup-preview .backup-mode-options label>span{display:flex;align-items:center;gap:6px;color:#555;font-size:9px}
.backup-preview .backup-mode-options label small{margin:0;color:#999;font-size:8px;line-height:1.55}

/* Private perfume archive: the same quiet paper, thin rules and capsule controls as Iris. */
.feature-page-topbar:has(.business-feature-brand){padding-top:24px;padding-bottom:12px}
.feature-page-topbar:has(.business-feature-brand){justify-content:space-between;gap:14px}
.feature-page-topbar:has(.business-feature-brand) #featurePageTitle{flex:1 1 auto;min-width:0}
.business-feature-brand{max-width:100%;transform:translateY(3px)}
.business-feature-brand .feature-page-wordmark{line-height:1.15}
.business-feature-brand .business-page-subtitle{margin-left:1px;color:#aaa;font-family:"LXGW WenKai","Iris Kai","Kaiti SC",serif;font-size:11px;font-style:normal;font-weight:400;letter-spacing:.4px;white-space:nowrap}
.perfumery-topbar-user{position:relative;top:4px;z-index:15;flex:none}
.perfumery-current-avatar,.perfumery-mask-avatar{display:grid;width:36px;height:36px;flex:none;place-items:center;overflow:hidden;border:1px solid #e8e8e5;border-radius:50%;background:#f7f7f5;color:#777;font-family:Georgia,"Songti SC",serif;font-size:13px}
.perfumery-current-avatar{padding:0;cursor:pointer}
.perfumery-current-avatar img,.perfumery-mask-avatar img{width:100%;height:100%;object-fit:cover}
.perfumery-mask-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;min-width:190px;gap:2px;padding:6px;border:1px solid #ececea;border-radius:12px;background:#fff;box-shadow:0 8px 28px #00000012}
.perfumery-mask-menu>button{display:flex;align-items:center;gap:9px;min-width:0;padding:7px;border:0;border-radius:8px;background:transparent;color:#666;text-align:left;font-size:10px;cursor:pointer}
.perfumery-mask-menu>button:hover,.perfumery-mask-menu>button.is-current{background:#f7f7f5}
.perfumery-mask-menu .perfumery-mask-avatar{width:29px;height:29px;font-size:11px}
.perfumery-mask-menu>button>span:nth-child(2){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.perfumery-mask-menu>button>i{color:#777;font-size:11px;font-style:normal}
.feature-page-content:has(.iris-perfumery){padding-top:4px;padding-bottom:0}
.toast{z-index:20}
.iris-perfumery{display:flex;flex-direction:column;color:#555;font-size:12px;min-height:100%;padding-bottom:12px;--perfume-line:#ececea;--perfume-muted:#999}
.iris-perfumery *{box-sizing:border-box}
.iris-perfumery button,.iris-perfumery input,.iris-perfumery select,.iris-perfumery textarea{font:inherit;color:inherit}
.iris-perfumery button:disabled{opacity:.45;cursor:default}
.iris-perfumery button:focus-visible,.iris-perfumery input:focus-visible,.iris-perfumery select:focus-visible{outline:1px solid #999;outline-offset:3px}
.perfumery-heading{padding:2px 0 0}
.perfumery-heading>small{color:#a3a39e;font-family:Georgia,serif;font-size:8px;letter-spacing:2px}
.perfumery-heading h2{font-family:"LXGW WenKai","Iris Kai","Kaiti SC",serif;font-size:27px;font-weight:400;letter-spacing:1px;margin:10px 0}
.perfumery-heading p,.perfumery-muted{font-size:10px;color:#999;line-height:1.9;margin:8px 0 14px}
.perfumery-heading>p{margin:1px 0 0;line-height:1.35}
.perfumery-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-block:1px solid var(--perfume-line);padding:15px 0}
.perfumery-stats>div{display:flex;flex-direction:column;gap:8px;min-width:0}
.perfumery-stats small{font-size:9px;color:#999}
.perfumery-stats strong{font-family:Georgia,"PingFang SC",serif;font-size:18px;font-weight:400;overflow-wrap:anywhere}
.perfumery-stats em{font-size:10px;font-style:normal;color:#999}
.perfumery-editorial{position:relative;min-height:250px;padding:8px 42% 20px 3px;border-bottom:1px solid var(--perfume-line);overflow:hidden}
.perfumery-editorial>span{font-size:8px;letter-spacing:1.6px;color:#aaa}
.perfumery-editorial h3{font-family:"LXGW WenKai","Iris Kai",serif;font-size:25px;font-weight:400;line-height:1.7;margin:17px 0 9px}
.perfumery-editorial p{font-size:10px;line-height:2;color:#999}
.perfumery-editorial>button{display:flex;justify-content:space-between;gap:20px;padding:10px 0;margin-top:14px;border-bottom:1px solid #ccc;font-size:11px}
.perfumery-editorial>div{position:absolute;right:0;top:22px;width:40%;pointer-events:none}
.perfumery-editorial .perfumery-bottle.is-large svg{height:195px}
.perfumery-bottle{display:grid;place-items:center;min-width:0;background:linear-gradient(145deg,#f7f7f5,#fcfcfb);overflow:hidden}
.perfumery-bottle svg{display:block;width:100%;height:170px;stroke-width:1;max-width:180px}
.perfumery-bottle.is-large{background:transparent}
.perfumery-bottle.is-large svg{height:230px;max-width:210px}
.perfumery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;margin:20px 0 28px}
.perfumery-item-card{display:flex;flex-direction:column;gap:7px;padding:0;text-align:left;min-width:0}
.perfumery-item{min-width:0;display:flex;flex-direction:column}
.perfumery-item>.perfumery-item-card{width:100%;flex:1}
.perfumery-card-action{font-size:9px;color:#777;line-height:1.6}
.perfumery-card-sale{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;margin-top:10px;padding:8px 0;border-bottom:1px solid #d8d8d4;font-size:10px!important;text-align:left}
.perfumery-sale-panel{padding:16px 0;border-block:1px solid var(--perfume-line)}
.perfumery-sale-panel>.perfumery-primary{margin-top:12px}
.perfumery-editorial>button+button{margin-top:4px}
.perfumery-item-card .perfumery-bottle{width:100%;margin-bottom:5px;border-radius:3px}
.perfumery-item-brand{color:#999;font-family:Georgia,serif;font-size:8px;letter-spacing:.6px;overflow-wrap:anywhere}
.perfumery-item-card>strong{font-size:12px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}
.perfumery-item-card>small{color:#aaa;font-size:9px}
.perfumery-card-foot{display:flex;justify-content:space-between;gap:6px;width:100%;font-size:8px;border-top:1px solid var(--perfume-line);padding-top:9px;color:#999}
.perfumery-card-foot b{color:#666;font-family:Georgia,serif;font-size:11px;font-weight:400;white-space:nowrap}
.perfumery-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:23px 0 14px}
.perfumery-section-title h3,.perfumery-section>h3{font-size:12px;font-weight:400;margin:0}
.perfumery-section-title>button,.perfumery-section-title>span{font-size:9px;color:#999}
.perfumery-empty{display:flex;align-items:center;flex-direction:column;gap:10px;padding:34px 15px;text-align:center}
.perfumery-empty>span{font-size:25px;color:#c1c1bb;font-weight:300}
.perfumery-empty strong{font-size:12px;font-weight:400}
.perfumery-empty p{font-size:10px;line-height:1.9;color:#aaa;max-width:300px;margin:0}
.perfumery-workshop-link{display:flex;align-items:center;justify-content:space-between;width:100%;padding:20px 0;border-block:1px solid var(--perfume-line);text-align:left;margin:10px 0 24px}
.perfumery-workshop-link span{display:grid;gap:10px}.perfumery-workshop-link small{font-size:8px;letter-spacing:1px;color:#aaa}.perfumery-workshop-link strong{font-weight:400;font-family:"LXGW WenKai","Iris Kai",serif;font-size:17px}.perfumery-workshop-link b{font-weight:400;color:#aaa}
.perfumery-dock{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));z-index:16;display:flex;align-items:center;gap:14px;width:min(calc(100vw - 96px),430px);height:58px;margin:0;padding:0;background:transparent;transform:translateX(-50%);pointer-events:none}
.iris-perfumery:has(.perfumery-dock){padding-bottom:calc(86px + env(safe-area-inset-bottom))}
.perfumery-dock-capsule,.perfumery-dock-add{pointer-events:auto}
.perfumery-dock-capsule{display:flex;align-items:center;flex:1;min-width:0;height:58px;padding:5px;border:1px solid #e5e5e5;border-radius:999px;background:#fafafa}
.perfumery-dock-tab{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;height:46px;padding:0 3px;border-radius:999px;background:transparent;color:#666;transition:background .18s,color .18s}
.perfumery-dock-tab.is-active{background:#e9e9e9;color:#171717}
.perfumery-dock-tab>svg{width:19px;height:19px;flex:none;stroke-width:1.4}
.perfumery-dock-tab>span{font-size:9px;letter-spacing:.1px;white-space:nowrap}
.perfumery-dock-add{display:grid;place-items:center;flex:none;width:58px;height:58px;padding:0;border:1px solid #e5e5e5;border-radius:50%;background:#fafafa;color:#171717}
.perfumery-dock-add.is-active{background:#e9e9e9}
.perfumery-dock-add>svg{width:26px;height:26px;stroke-width:1.5}
.perfumery-dock-tab:hover,.perfumery-dock-add:hover{filter:none}
@media(hover:hover){.perfumery-dock-tab:hover{background:#ededed}.perfumery-dock-tab.is-active:hover{background:#e9e9e9}.perfumery-dock-add:hover{background:#ededed}}
@media(hover:none),(pointer:coarse){.perfumery-dock-tab:active,.perfumery-dock-add:active{background:#e3e3e3;transition-duration:0s}}
@media(max-width:480px){.perfumery-dock{width:calc(100vw - 50px)}}
@media(max-width:380px){.perfumery-dock{gap:9px;height:54px}.perfumery-dock-capsule{height:54px;padding:4px}.perfumery-dock-tab{height:44px;gap:3px;padding:0 1px}.perfumery-dock-tab>svg{width:17px;height:17px}.perfumery-dock-tab>span{font-size:8px}.perfumery-dock-add{width:54px;height:54px}}
.perfumery-form{display:grid;gap:17px;margin:15px 0 22px;min-width:0}
.perfumery-form label{display:block;min-width:0;font-size:10px;color:#888;line-height:1.6}
.iris-perfumery input,.iris-perfumery select,.iris-perfumery textarea{display:block;width:100%;min-width:0;border:0;border-bottom:1px solid #e5e5e2;border-radius:0;background:transparent;padding:11px 1px;font-size:12px;line-height:1.7;outline:none}
.iris-perfumery input::placeholder,.iris-perfumery textarea::placeholder{color:#b5b5af;font-size:10px}
.iris-perfumery input[type=number]{appearance:textfield}
.iris-perfumery input[type=radio]{width:auto;display:inline-block;padding:0}
.iris-perfumery textarea{resize:vertical;max-height:180px;min-height:74px}
.perfumery-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.perfumery-two>button{border:1px solid #e6e6e3;border-radius:18px;padding:10px 8px;font-size:10px}
.iris-perfumery .perfumery-primary{display:flex;align-items:center;justify-content:center;gap:6px;align-self:end;justify-self:end;margin-left:auto;padding:9px 1px;width:max-content;max-width:100%;border:0;border-bottom:1px solid #777;background:transparent;border-radius:0;color:#333;font-size:11px;text-align:left}
.perfumery-intro-art{display:flex;align-items:center;justify-content:center;gap:10px;padding:5px 0 20px;border-block:1px solid var(--perfume-line)}
.perfumery-intro-art>span{font-family:Georgia,serif;color:#b3b3aa;font-size:13px;line-height:1.8;letter-spacing:1px}
.perfumery-intro-art .perfumery-bottle{width:45%}
.perfumery-notice,.perfumery-loading{font-size:10px;line-height:1.8;padding:10px 13px;background:#f5f5f2;margin-top:10px;border-radius:8px;color:#777;overflow-wrap:anywhere}
.perfumery-loading{background:transparent;border-bottom:1px solid var(--perfume-line);border-radius:0;color:#999}
.perfumery-back{font-size:9px;padding:17px 0 4px;color:#999!important}
.perfumery-detail-hero{display:grid;grid-template-columns:48% minmax(0,1fr);align-items:center;gap:15px;padding:15px 0}
.perfumery-detail-hero>div:last-child{min-width:0}
.perfumery-detail-hero small{font-size:8px;color:#999;letter-spacing:.5px}
.perfumery-detail-hero h2{font-family:"LXGW WenKai","Iris Kai",serif;font-size:25px;line-height:1.5;font-weight:400;margin:12px 0;overflow-wrap:anywhere}
.perfumery-detail-hero p{font-size:10px;color:#999;line-height:1.9}
.perfumery-detail-hero span{display:block;font-size:9px;color:#aaa;margin:16px 0 7px}
.perfumery-detail-hero strong{font-size:21px;font-family:Georgia,serif;font-weight:400}
.perfumery-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-block:1px solid var(--perfume-line);padding:15px 0;margin:0}
.perfumery-notes dt{color:#aaa;font-size:9px;margin-bottom:7px}.perfumery-notes dd{margin:0;font-size:10px;line-height:1.8}
.perfumery-section{padding:20px 0;border-bottom:1px solid var(--perfume-line)}
.perfumery-section>.perfumery-section-title{margin-top:0}.perfumery-section>p{font-size:11px;line-height:1.9;color:#888}.perfumery-section>small{font-size:9px;color:#aaa}
.perfumery-dialogue{background:#f8f8f5;border-radius:3px;padding:15px 16px;margin:15px 0}
.perfumery-dialogue small{display:block;color:#999;font-size:9px;line-height:1.7}
.perfumery-dialogue p{font-family:"LXGW WenKai","Iris Kai",serif;white-space:pre-wrap;font-size:13px;line-height:2;margin:9px 0 0;color:#666}
.perfumery-dialogue>span{display:block;color:#999;font-size:10px;line-height:1.8;margin-top:10px;border-top:1px solid #e8e8e3;padding-top:9px}
.perfumery-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.perfumery-check-grid button{display:flex;align-items:center;justify-content:space-between;gap:5px;border:1px solid #e9e9e5;padding:12px 9px;border-radius:3px;text-align:left;font-size:10px}
.perfumery-check-grid small{font-size:9px;color:#aaa}
.perfumery-clue{border-left:1px solid #cecec5;padding:3px 0 3px 13px;margin:15px 0}.perfumery-clue small{font-size:8px;color:#aaa}.perfumery-clue p{font-size:11px;line-height:1.85;margin:6px 0}
.perfumery-inline-form{display:flex;align-items:center;gap:10px;margin:14px 0}
.perfumery-inline-form>select,.perfumery-inline-form>input{flex:1;min-width:0}.perfumery-inline-form>button{flex:none;padding:9px 1px;border:0;border-bottom:1px solid #777;border-radius:0;background:transparent;font-size:10px;white-space:nowrap}
.perfumery-certificate{border:1px solid #dcdcd3;padding:19px 17px;margin:20px 0;background:#fafaf6}
.perfumery-certificate small{font-size:8px;color:#999;letter-spacing:1px}.perfumery-certificate h3{font-family:"LXGW WenKai","Iris Kai",serif;font-size:21px;font-weight:400;margin:13px 0}.perfumery-certificate p{font-size:11px;line-height:1.9}.perfumery-certificate>span{font-size:9px;color:#aaa}
.perfumery-offers article,.perfumery-sale{border-bottom:1px solid var(--perfume-line);padding:15px 0}.perfumery-offers article:last-child{border:0}
.perfumery-offers small,.perfumery-sale small{font-size:9px;color:#999;line-height:1.7}
.perfumery-offers h4,.perfumery-sale h4{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:400;margin:10px 0;line-height:1.8}.perfumery-offers b,.perfumery-sale b{font-family:Georgia,serif;font-weight:400;white-space:nowrap}.perfumery-offers p{font-size:11px;line-height:1.9;color:#888}.perfumery-offers button{font-size:10px;padding:9px 1px;border:0;border-bottom:1px solid #777;border-radius:0;background:transparent}
.perfumery-sale dl{display:grid;gap:8px;margin:12px 0 0}.perfumery-sale dl>div{display:flex;justify-content:space-between;gap:10px;font-size:10px}.perfumery-sale dt{color:#999}.perfumery-sale dd{margin:0}
.perfumery-payout,.perfumery-ledger-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--perfume-line);font-size:11px;line-height:1.6}
.perfumery-partner-settings{display:flex;align-items:center;gap:15px;margin:0 0 16px;padding:7px 0;border-bottom:1px solid var(--perfume-line)}
.perfumery-partner-settings>label{display:flex;align-items:center;flex:1;gap:10px;color:#999;font-size:9px}
.perfumery-partner-settings .perfumery-select-wrap{position:relative;flex:1;max-width:190px;margin-left:auto}
.perfumery-partner-settings .perfumery-select-wrap::after{position:absolute;top:50%;right:2px;color:#aaa;content:"⌄";font-size:12px;transform:translateY(-55%);pointer-events:none}
.perfumery-partner-settings select{width:100%;min-width:0;appearance:none;padding:8px 20px 8px 2px;border:0;border-bottom:1px solid #deded9;border-radius:0;background:transparent;color:#666;font-size:10px}
.perfumery-partner-settings>button{display:flex;align-items:center;gap:13px;flex:none;padding:8px 1px 7px;border:0;border-bottom:1px solid #cecec8;border-radius:0;background:transparent;color:#666;font-size:9px}
.perfumery-payout small,.perfumery-ledger-line small{display:block;font-size:8px;color:#aaa;margin-top:5px}.perfumery-payout button{font-size:10px;border:1px solid #e5e5df;border-radius:15px;padding:7px 12px}.perfumery-ledger-line b{font-family:Georgia,serif;font-weight:400;white-space:nowrap}
.perfumery-atelier-scene{position:relative;padding:12px 0 10px;background:transparent;border:0}

.perfumery-scene-caption{font-family:Georgia,serif;font-size:7px;color:#aaa;letter-spacing:1.8px}
.perfumery-workbench{position:relative;height:205px;margin-top:0;background:transparent;border:0;box-shadow:none}
.perfumery-workbench .perfumery-bottle{width:100%;height:205px;background:transparent}.perfumery-workbench .perfumery-bottle svg{height:205px}


.perfumery-companion{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:4px;font-size:10px;color:#999}.perfumery-companion img,.perfumery-companion>span:first-child{width:27px;height:27px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#e9e9e3;color:#aaa}
.perfumery-note-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.perfumery-text-button{font-size:9px!important;color:#999!important;padding:8px 2px;text-align:left}
@media(max-width:480px){.feature-page-topbar:has(.business-feature-brand){padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:10px}.perfumery-stats strong{font-size:17px}.perfumery-editorial h3{font-size:22px}.perfumery-editorial{min-height:240px}.perfumery-bottle svg{height:155px}}
@media(max-width:360px){.perfumery-detail-hero{gap:8px}.perfumery-detail-hero h2{font-size:21px}.perfumery-stats strong{font-size:15px}.perfumery-check-grid button{font-size:9px}.perfumery-grid{gap:18px 10px}}

.iris-perfumery .perfumery-source-action{display:flex;align-items:center;justify-content:space-between;align-self:flex-start;gap:22px;min-width:138px;min-height:40px;margin:8px 0 0;padding:9px 1px 8px;border:0;border-bottom:1px solid #cecec8;border-radius:0;background:transparent;color:#555;font-size:10px;letter-spacing:.3px}
.perfumery-source-action>svg{width:15px;height:15px;stroke-width:1.35}
.perfumery-form[data-p-form="invite"]>.perfumery-primary{display:flex;align-items:center;justify-content:space-between;gap:20px;width:max-content;min-width:154px;min-height:42px;padding:9px 1px 8px;border:0;border-bottom:1px solid #cecec8;border-radius:0;background:transparent;color:#555;font-size:10px;letter-spacing:.3px}
.iris-perfumery .perfumery-source-action,.iris-perfumery .perfumery-form[data-p-form="invite"]>.perfumery-primary{justify-content:center;align-self:flex-end;justify-self:end;gap:6px;min-width:0;width:max-content;max-width:100%;margin-left:auto;padding:9px 1px;border:0;border-bottom:1px solid #777;border-radius:0;background:transparent;font-size:10px}
.perfumery-source-action>svg,.perfumery-form[data-p-form="invite"]>.perfumery-primary>svg{width:14px;height:14px;flex:none;stroke-width:1.3}
.iris-perfumery .perfumery-partner-settings{gap:9px;padding:9px 0;margin-bottom:8px}
.iris-perfumery .perfumery-partner-settings>label{min-width:0;gap:12px}
.iris-perfumery .perfumery-partner-settings>label>span:first-child{white-space:nowrap;flex:none}
.iris-perfumery .perfumery-partner-settings .perfumery-select-wrap{max-width:180px;min-width:0}
.iris-perfumery .perfumery-partner-settings select{height:34px;max-width:100%;padding:5px 25px 5px 10px;border:1px solid #e9e9e9;border-radius:6px;background:#fafafa;font-size:10px;line-height:1.5;text-overflow:ellipsis}
.iris-perfumery .perfumery-partner-settings .perfumery-select-wrap::after{right:10px}
.iris-perfumery .perfumery-partner-settings>button{height:34px;display:flex;gap:4px;justify-content:center;padding:0 10px;border:1px solid #dedede;border-radius:6px;background:#fff;font-size:9px}
.perfumery-partner-settings>button>svg{width:13px;height:13px;stroke-width:1.4}
.perfumery-contract-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 0;border-block:1px solid #e8e8e6;text-align:left}
.perfumery-contract-entry>span:first-child{display:grid;gap:5px}.perfumery-contract-entry small{font:7px Georgia,serif;letter-spacing:1.6px;color:#aaa}.perfumery-contract-entry strong{font-size:11px;font-weight:400}.perfumery-contract-entry>span:last-child{font-size:9px;color:#999}
.perfumery-contract{margin:18px 0;padding:26px 22px 18px;border:1px solid #e8e7e1;background:#fdfdfb;color:#62625c;font-family:"LXGW WenKai","Iris Kai",serif}
.perfumery-contract>header{text-align:center;padding-bottom:18px;border-bottom:1px solid #dcdcd6}.perfumery-contract>header small{font:7px Georgia,serif;letter-spacing:2px;color:#aaa}.perfumery-contract h2{margin:16px 0 8px;font-size:21px;font-weight:400;letter-spacing:3px}.perfumery-contract>header p{margin:0;font-size:10px;color:#999}
.perfumery-contract dl{display:grid;gap:9px;padding:16px 0;margin:0;border-bottom:1px solid #e8e8e1}.perfumery-contract dl>div{display:flex;justify-content:space-between;gap:12px;font-size:11px}.perfumery-contract dt{color:#999}.perfumery-contract dd{margin:0;overflow-wrap:anywhere}
.perfumery-contract section h3{font-size:12px;font-weight:400;margin:20px 0 8px}.perfumery-contract section p{font-size:11px;line-height:2;margin:0;overflow-wrap:anywhere}
.perfumery-contract footer{margin-top:28px;text-align:right}.perfumery-contract footer>small{font-size:9px;color:#aaa}.perfumery-contract footer button{display:flex;align-items:center;justify-content:flex-end;gap:9px;width:100%;min-height:65px;border-bottom:1px solid #babab0;margin-top:8px;padding:8px 3px;font-family:"LXGW WenKai","Iris Kai",serif!important;font-size:22px!important}.perfumery-contract footer svg{width:17px;height:17px;color:#999}.perfumery-contract footer p{font-size:9px;color:#999;margin:9px 0}
.perfumery-contract-signature{display:block;min-height:65px;margin-top:8px;padding:5px 7px 8px;border:0;color:#51445b;font-family:"Ma Shan Zheng",cursive;font-size:38px;line-height:1.35;transform:rotate(-2deg)}
.perfumery-contract-close{display:block;margin:22px auto 0;padding:7px 2px;border:0;border-radius:0;background:transparent!important;color:#292929!important;font-size:10px!important;letter-spacing:.5px;text-decoration:underline;text-decoration-color:#292929;text-underline-offset:4px}
.perfumery-editorial .perfumery-bottle.is-large svg{height:210px}.perfumery-editorial>div{width:43%;right:-2px;top:12px}

#featureScreen:has(.perfumery-source-toolbar) .feature-page-topbar{padding-bottom:0}
#featurePageContent:has(.perfumery-source-toolbar){padding-top:0;background:#fff}
#featurePageContent>.iris-perfumery:has(>.perfumery-source-toolbar){margin-top:0;padding-top:0;gap:0}
.perfumery-source-toolbar{position:sticky;top:0;z-index:3;display:flex;align-self:stretch;justify-content:flex-end;flex-shrink:0;margin:0;padding:0 0 12px;background:#fff;box-shadow:0 -12px 0 #fff}
.iris-perfumery .perfumery-source-toolbar>.perfumery-source-action{min-height:28px;margin-top:0;padding-top:0;padding-bottom:5px}
.iris-perfumery .experience-content-label{display:block;color:#777;font-size:11px}
.iris-perfumery .experience-content-label>span{font-family:"Songti SC",serif;letter-spacing:1px}
.iris-perfumery .experience-content-label textarea.perfumery-experience-input{display:block;width:100%;height:234px;min-height:234px;max-height:none;margin:20px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:26px;resize:vertical;scrollbar-width:thin}
.iris-perfumery .experience-content-label textarea.perfumery-experience-input::placeholder{color:#bbb;font-size:11px}

.perfumery-tools{display:block;width:100%;height:205px;fill:none;stroke-width:.8}
.perfumery-workbench-preview{position:absolute;right:0;bottom:0;width:30%;height:205px}
.perfumery-workbench:has(.perfumery-workbench-preview .perfumery-bottle)>.perfumery-tools{width:70%}
.perfumery-bottle-picker{min-width:0;margin:0;padding:15px 0;border:0;border-block:1px solid #ececea}
.perfumery-bottle-picker legend{padding:0 8px 0 0;color:#777;font-size:10px}
.perfumery-bottle-picker>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px}
.perfumery-form .perfumery-bottle-option{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:7px 2px 9px;border:1px solid transparent;cursor:pointer;text-align:center;font-size:9px}
.iris-perfumery .perfumery-bottle-option>input{position:absolute;width:1px;height:1px;padding:0;opacity:0}
.perfumery-bottle-option:has(input:checked){border-color:#b5b6ad;background:#fafaf7}
.perfumery-bottle-option:has(input:focus-visible){outline:1px solid #777;outline-offset:2px}
.perfumery-bottle-option .perfumery-bottle{width:100%;background:transparent}
.perfumery-bottle-option .perfumery-bottle svg{height:112px}
.perfumery-bottle-option>span{line-height:1.5;color:#777}
.iris-perfumery .perfumery-offer-form{display:flex;align-items:center;gap:12px}
.iris-perfumery .perfumery-offer-form>input{height:38px;min-height:0;margin:0;padding:8px 1px;border:0;border-bottom:1px solid #cecec8;border-radius:0;background:#fff;box-shadow:none}
.iris-perfumery .perfumery-offer-form>input::placeholder{color:#aaa}

/* Shared white writing-paper treatment for perfume correspondence and records. */
.iris-perfumery .perfumery-dialogue,.iris-perfumery .perfumery-certificate,.iris-perfumery .perfumery-clue{padding:22px 20px 18px;border:1px solid #e9e9e9;border-radius:0;background:#fff;box-shadow:none}
.iris-perfumery .perfumery-dialogue p,.iris-perfumery .perfumery-certificate p,.iris-perfumery .perfumery-clue p{margin:15px 0 0;padding:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#555;font:12px/26px "Songti SC",serif;background:repeating-linear-gradient(to bottom,#fff 0,#fff 25px,#f0f0f0 25px,#f0f0f0 26px)}
.iris-perfumery .perfumery-experience-input{background-color:#fff!important}
.perfumery-companion>span:first-child{width:auto;height:auto;border-radius:0;background:transparent}
@media(max-width:380px){.iris-perfumery .perfumery-dialogue,.iris-perfumery .perfumery-certificate,.iris-perfumery .perfumery-clue{padding-right:14px;padding-left:14px}}
.perfumery-daily-status{display:grid;gap:5px;margin:8px 0 13px;padding:10px 0;border-block:1px solid #efefec;color:#777}
.perfumery-daily-status>span{color:#aaa;font:7px Georgia,serif;letter-spacing:1.4px}
.perfumery-daily-status>strong{color:#555;font-size:11px;font-weight:400}
.perfumery-daily-status>p{margin:0;color:#888;font-size:9px;line-height:1.65}
.perfumery-daily-status>small{color:#aaa;font-size:8px}
.perfumery-daily-status.is-loading>strong{color:#888}
.perfumery-daily-status.is-error>strong{color:#916b68}
.perfumery-daily-status.is-error>p{color:#a28c89}
/* Reading: the same quiet typography, ruled paper and underlined actions as Iris. */
.feature-page-topbar:has(.reading-feature-brand){padding-top:24px;padding-bottom:12px}
.reading-feature-brand{min-width:0;align-items:baseline;gap:8px;transform:translateY(3px);max-width:100%}
.reading-feature-brand .feature-page-wordmark{line-height:1.3}
.reading-feature-brand .reading-page-subtitle{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aaa;font-family:"LXGW WenKai","Iris Kai",serif;font-size:11px;font-style:normal;font-weight:400}
.feature-page-content:has(.iris-reading){width:calc(100% + 96px);margin-left:-48px;margin-right:-48px;padding:0 48px 30px;scroll-behavior:auto}
.iris-reading{color:#555;padding:0 0 28px;font-family:"LXGW WenKai","Iris Kai","Songti SC",serif}
.iris-reading button,.iris-reading input,.iris-reading select,.iris-reading textarea{font:inherit}
.iris-reading button{color:inherit;background:transparent;border:0;border-radius:0;cursor:pointer}
.iris-reading button:disabled{opacity:.4;cursor:default}
.iris-reading button:focus-visible,.iris-reading select:focus-visible,.iris-reading input:focus-visible,.iris-reading mark:focus-visible{outline:1px solid #777;outline-offset:5px}
.iris-reading .reading-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 0 4px;border-bottom:1px solid currentColor;background:transparent;border-radius:0;font-size:11px;line-height:1.5;white-space:normal}
.reading-shelf-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 20px}
.reading-avatar{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid #e7e7e7;border-radius:50%;overflow:hidden;background:#f5f5f5;font-size:11px;color:#888}
.reading-avatar img{width:100%;height:100%;object-fit:cover}
.iris-reading select{min-width:0;max-width:100%;border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background:transparent;color:#555;padding:5px 18px 5px 0;font-size:11px;outline:none}
.reading-shelf-index{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eee;padding:21px 0 10px;margin-bottom:22px}
.reading-shelf-index nav{display:flex;gap:17px;flex-shrink:0}
.reading-shelf-index nav button{white-space:nowrap;padding:5px 0;color:#aaa;font-size:11px}
.reading-shelf-index nav button[aria-current=true]{color:#333;border-bottom:1px solid #555}
.reading-shelf-index form{display:flex;flex:1 1 130px;align-items:center;width:0;min-width:0;max-width:130px;border-bottom:1px solid #e8e8e8}
.reading-shelf-index input{min-width:0;width:100%;border:0;border-radius:0;background:transparent;font-size:10px;color:#666;outline:none}
.reading-shelf-index form button{flex:none;display:grid;place-items:center;padding:3px 2px 4px;color:#999}.reading-shelf-index form button svg{width:16px;height:16px;stroke-width:1.4}
.reading-discovery-controls{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;margin:-6px 0 23px;min-width:0}
.reading-fulltext-filter{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:10px;color:#888;white-space:nowrap}.reading-fulltext-filter input{width:14px;height:14px;margin:0;accent-color:#777}
.reading-discovery-controls>nav{display:flex;align-items:center;gap:18px;flex:none}
.reading-discovery-controls>nav>button{font-size:11px;padding:7px 0;color:#aaa;border-bottom:1px solid transparent}
.reading-discovery-controls>nav>button[aria-current=true]{color:#555;border-bottom-color:#888}
.iris-reading .reading-discovery-controls>select{width:auto;max-width:145px;font-size:10px;color:#888}
.reading-online-status{min-height:23px;margin:0 0 12px;color:#999;font-size:10px;line-height:1.9;overflow-wrap:anywhere}
.reading-online-book{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;padding:22px 0;border-bottom:1px solid #eee}
.reading-online-cover{position:relative;width:64px;height:94px;display:grid;place-items:center;background:#f4f3f0;color:#aaa;font-family:Georgia,serif;font-size:9px;letter-spacing:1px}
.reading-online-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reading-online-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:8px}
.reading-online-copy h3{margin:0;font-size:15px;font-weight:400;line-height:1.7;overflow-wrap:anywhere}
.reading-online-copy p{margin:0;color:#888;font-size:11px;line-height:1.9;overflow-wrap:anywhere}
.reading-online-copy small{color:#aaa;font-size:9px;overflow-wrap:anywhere}
.reading-online-copy .reading-online-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#999;font-size:10px}
.reading-online-actions{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 20px;width:100%;padding-top:5px}
.reading-online-actions .reading-link,.reading-catalog-details .reading-link{font-size:10px;color:#777;text-decoration:none}
.reading-online-pages{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:26px 0}
.reading-online-pages small{font-size:9px;color:#aaa}
.reading-catalog-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;justify-items:start;gap:14px 8px;padding:0 0 24px;border-bottom:1px solid #eee;font-size:11px;color:#888;line-height:1.9;overflow-wrap:anywhere}
.reading-manage .reading-catalog-actions{display:flex;flex-direction:row;flex-wrap:nowrap;grid-column:1/-1;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0}.reading-catalog-actions .reading-link{flex:0 1 auto;min-width:0;white-space:nowrap;letter-spacing:0}@media(max-width:380px){.reading-catalog-actions{gap:5px}.reading-catalog-actions .reading-link{font-size:9px}}
.reading-catalog-details>p,.reading-catalog-details>small{grid-column:1/-1}.reading-catalog-details>.reading-link{white-space:nowrap;letter-spacing:0}.reading-catalog-details p{margin:0}.reading-catalog-details small{font-size:10px;color:#aaa}
@media(max-width:600px){.reading-shelf-index{gap:8px}.reading-shelf-index nav{flex-shrink:0;flex-wrap:nowrap}.reading-online-book{gap:14px}.reading-online-actions .reading-link{font-size:9px}.reading-discovery-controls{gap:10px}.reading-discovery-controls>nav{gap:13px}}
.reading-books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}
.reading-book{position:relative;display:flex;flex-direction:column;min-width:0}
.reading-book-open{display:flex;flex-direction:column;width:100%;padding:0;text-align:left;min-width:0}
.reading-cover{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:3/4;width:100%;padding:21px 16px;background:#f1efe9;border:1px solid #e3e0d8;box-shadow:inset 5px 0 6px #fff8,inset 8px 0 0 #00000004,3px 5px 10px #00000005;overflow:hidden;color:#646154;text-align:center}
.reading-cover::before{position:absolute;inset:12px 10px 12px 15px;border:1px solid currentColor;opacity:.14;content:"";pointer-events:none}
.reading-cover.tone-1{background:#e9eceb;color:#626a67;border-color:#dde2df}.reading-cover.tone-2{background:#ede7e4;color:#786a66;border-color:#e2d8d2}.reading-cover.tone-3{background:#ebeaf0;color:#696577;border-color:#dfdde7}
.reading-cover img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.reading-cover>small{font-family:serif;font-size:8px;letter-spacing:2px;opacity:.5}
.reading-cover>strong{display:-webkit-box;overflow:hidden;-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:17px 0;font-size:19px;font-weight:400;line-height:1.6;letter-spacing:1px;overflow-wrap:anywhere}
.reading-cover>i{font-size:9px;font-style:normal;opacity:.65}
.reading-book-open>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:12px 0 4px;font-size:12px;font-weight:400}
.reading-book-open>small{font-size:10px;color:#aaa}
.reading-progress-label{padding-top:6px;font-size:9px;color:#999}
.reading-book-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.reading-book-footer>.reading-progress-label{flex:1;min-width:0;padding-top:0}
.reading-book-more{position:static;flex:none;min-width:36px;min-height:32px;margin:0;padding:6px 0;letter-spacing:1px}
.reading-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:290px;padding:35px 20px;text-align:center}
.reading-empty-book{position:relative;width:47px;height:59px;border:1px solid #d4d1ca;box-shadow:inset 4px 0 #eae8e1;margin-bottom:24px;transform:rotate(-5deg)}
.reading-empty-book::after{position:absolute;inset:10px 9px 28px 12px;border-top:1px solid #d4d1ca;border-bottom:1px solid #d4d1ca;content:""}
.reading-empty strong{font-size:15px;font-weight:400;letter-spacing:1px}
.reading-empty p{max-width:290px;margin:12px 0 0;color:#aaa;font-size:11px;line-height:2}
.reading-small,.reading-import-status{color:#999;font-size:10px;line-height:1.9}
.reading-import-status{padding:10px 0;border-bottom:1px solid #eee}
.reading-reader{--reading-size:17px;--reading-leading:2;background:#fff;width:calc(100% + 96px);margin:0 -48px;padding:0 32px calc(100px + env(safe-area-inset-bottom));min-height:70dvh;color:#555}
.reading-reader{background:#fff;color:#4d4d4d}
.reading-chapter-heading{position:sticky;top:0;z-index:8;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e8e6e0;min-height:24px;padding:0;margin:0 0 8px}
.iris-reading .reading-chapter-heading select{max-width:65%;margin:0;padding:0 18px 0 0;border:0;font-size:12px;line-height:1.4;color:inherit}
.reading-chapter-heading small{flex:none;margin:0;font-size:9px;line-height:1.4;color:#aaa}
.reading-prose{touch-action:pan-y pinch-zoom;width:100%;margin-inline:auto;font-family:var(--reading-font,"LXGW WenKai","Iris Kai","Songti SC",serif);font-size:var(--reading-size);line-height:var(--reading-leading);letter-spacing:.3px;overflow-wrap:anywhere}
.reading-paragraph{position:relative;width:100%;margin-inline:0;padding-inline:0}
.reading-paragraph p{margin:0 0 1.2em;padding-inline:0;text-align:justify;text-align-last:start;text-justify:inter-character;white-space:pre-wrap;user-select:text;-webkit-user-select:text}
.reading-mark{color:inherit;background:#d7d0b33b;text-decoration:underline;text-decoration-color:#b1a58c;text-underline-offset:4px;cursor:pointer}
.reading-mark.by-role{background:transparent;text-decoration-style:wavy;text-decoration-color:#a7a0b8}
.reading-margin-pin{position:absolute;right:-15px;top:3px;display:flex;flex-direction:column;align-items:center;padding:3px;min-width:23px;color:#9c93aa!important;font-family:serif!important}
.reading-margin-pin span{font-size:25px;line-height:15px}.reading-margin-pin small{font-size:8px;line-height:12px}
.reading-selection{position:sticky;top:0;z-index:3;display:grid;gap:8px;padding:12px;background:#fffffff5;border:1px solid #eee;box-shadow:0 6px 15px #00000006;margin-bottom:18px;color:#666;font-size:10px}
.reading-selection>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.8}
.reading-selection>div{display:flex;justify-content:space-between;align-items:center;gap:10px}
.reading-selection .reading-link{font-size:10px}
.reading-page-turn{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0 27px;margin-top:15px;border-top:1px solid #e8e6e0}
.reading-page-turn .reading-link{font-size:10px}
.reading-reader-dock{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:13px max(24px,calc((100vw - 780px)/2 + 32px)) calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid #e9e7e2;background:#fffffff7;z-index:16;font-size:10px}
.reading-reader-dock>.reading-link{max-width:36%;overflow:hidden;font-size:9px;line-height:1.8;text-overflow:ellipsis;white-space:nowrap}
.reading-reader-dock>button{padding:5px 0 0;flex:none}.reading-reader-dock small{font-size:8px;color:#aaa}
.reading-reader-dock>.reading-layout-trigger{font-family:Georgia,serif;font-size:14px;letter-spacing:-1px}
.reading-reader-dock{background:#fffffff7}
.reading-manage{display:grid;gap:26px;padding:20px 0}.reading-manage label{display:grid;gap:10px;font-size:11px;color:#999}.reading-manage input{width:100%;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:none;padding:7px 0;color:#555;outline:none}
.reading-manage-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:14px}.reading-delete{margin:0;color:#999!important}
.reading-eyebrow{display:block;font-family:serif;font-size:8px;letter-spacing:1.4px;color:#aaa}
.reading-overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;color:#555}
.reading-overlay-shade{position:absolute;inset:0;width:100%;height:100%;background:transparent!important}
.reading-drawer{position:relative;display:flex;flex-direction:column;width:100%;max-width:600px;max-height:min(84dvh,900px);padding:0 26px;background:#fff;border-top:1px solid #e8e8e8;box-shadow:0 -10px 40px #00000008;animation:slide .2s ease;overscroll-behavior:contain}
.reading-drawer>header{display:flex;align-items:baseline;justify-content:space-between;gap:15px;flex:none;padding:21px 0 17px;border-bottom:1px solid #eee}
.reading-drawer h2{font-family:"LXGW WenKai","Iris Kai",serif;font-size:17px;font-weight:400;margin:0;letter-spacing:1px}.reading-drawer>header button{font-family:serif;font-size:24px;color:#999;padding:0 3px}
.reading-drawer-body{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:22px 0 max(25px,env(safe-area-inset-bottom));font-size:12px}
.reading-drawer blockquote{margin:17px 0;padding:3px 0 3px 13px;border-left:1px solid #d4cec0;color:#888;font-size:12px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}
.reading-note-text{margin:18px 0 25px;line-height:2.1;white-space:pre-wrap;overflow-wrap:anywhere}
.reading-note-siblings{margin:0 0 20px;display:flex;gap:16px;flex-wrap:wrap}
.reading-note-thread{border-top:1px solid #eee;padding-top:6px;margin-bottom:24px}
.reading-note-reply{padding:16px 0;border-bottom:1px solid #f1f1f1}.reading-note-reply small{color:#999;font-size:9px}.reading-note-reply p{margin:8px 0 0;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}.reading-note-reply.mine{padding-left:15px}
.iris-reading .reading-paper-label{display:block;font-size:10px;color:#999}
.iris-reading textarea.reading-paper-input{display:block;width:100%;height:182px;min-height:130px;max-height:none;margin:18px 0 14px;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:26px;resize:vertical;outline:none;scrollbar-width:thin}
.reading-paper-input::placeholder{font-size:11px;color:#bbb}
.reading-form-actions,.reading-note-bottom{display:flex;align-items:center;justify-content:flex-end;gap:20px}.reading-note-bottom{justify-content:space-between;margin-top:32px}
.reading-note-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px;width:100%;padding:18px 0!important;border-bottom:1px solid #eee!important;text-align:left;line-height:1.9;overflow-wrap:anywhere}
.reading-note-card small{font-size:9px;color:#aaa}.reading-note-card q{font-size:12px;quotes:none;color:#666}.reading-note-card span{font-size:11px;color:#999}
.reading-preferences{display:grid;gap:22px;padding:8px 0}.reading-type-preview{margin:0}.reading-type-preview>span{font-size:11px;color:#777;letter-spacing:1px}.reading-type-preview textarea.reading-type-preview-input{height:112px;min-height:112px;max-height:112px;margin:14px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--reading-preview-step) - 1px),#f0f0f0 calc(var(--reading-preview-step) - 1px),#f0f0f0 var(--reading-preview-step));color:#555;resize:none;scrollbar-width:none}.reading-type-preview textarea.reading-type-preview-input:focus{outline:none}.reading-type-control{display:grid;gap:10px;font-size:12px}.reading-type-control>span{display:flex;justify-content:space-between;align-items:center}.reading-type-control output{color:#999;font-size:10px}.reading-type-control input[type=range]{width:100%;height:32px;margin:0;accent-color:#777}.reading-font-control{display:grid;gap:15px;padding:16px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;font-size:11px}.reading-font-control>header{display:flex;align-items:center;justify-content:space-between;gap:14px}.reading-font-control>header>small{color:#999}.reading-font-control>header>button{flex:none;font-size:11px}.reading-font-control>select{width:100%;font-size:12px}.reading-setting-hint{font-size:9px;color:#aaa}
.reading-predictions>article{padding:24px 0;border-bottom:1px solid #eee}.reading-predictions>article>small{color:#aaa;font-size:9px}.reading-predictions strong{display:block;font-size:13px;font-weight:400;margin:12px 0}.reading-predictions p{line-height:2;overflow-wrap:anywhere;white-space:pre-wrap}.reading-sealed{letter-spacing:1px;color:#aaa;font-size:11px;padding:20px 0}.reading-user-guess{color:#888;font-size:11px}.reading-reveal{border-left:1px solid #d6d0df;padding-left:12px;margin:20px 0}.reading-reveal>small{color:#a49ab3}
.reading-map-summary{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:25px;color:#999;font-size:10px}.reading-map-summary>strong{color:#555;font-family:serif;font-size:42px;font-weight:400}.reading-map-summary>strong small{font-size:13px}
.reading-chapter-map{margin:18px 0 28px}.reading-chapter-map>button{display:grid;grid-template-columns:minmax(0,1fr) 70px;align-items:center;gap:10px;width:100%;text-align:left;padding:13px 0;border-bottom:1px solid #eee;font-size:11px}.reading-chapter-map>button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reading-chapter-map i{display:flex;gap:2px;height:5px;overflow:hidden}.reading-chapter-map b{flex:1;min-width:1px;background:#eeece8}.reading-chapter-map b.is-read{background:#b1a59b}.reading-chapter-map small{font-size:9px;color:#aaa}
.reading-all-notes{margin:20px 0 30px}.reading-all-notes>summary{cursor:pointer;color:#888;font-size:11px}.reading-letter{border-top:1px solid #eee;margin-top:25px;padding-top:25px}.reading-letter>p{font-family:"LXGW WenKai","Iris Kai",serif;font-size:13px;line-height:2.3;white-space:pre-wrap}.reading-letter h3{font-size:13px;font-weight:400;margin-top:28px}.reading-letter blockquote small{display:block;margin-top:8px;font-size:10px;color:#aaa}.reading-letter details{margin:15px 0}.reading-letter details p{font-size:11px;line-height:2}.reading-letter summary{cursor:pointer;font-size:12px}.reading-letter>.reading-link{margin-top:20px}
@media(max-width:480px){.feature-page-content:has(.iris-reading){width:calc(100% + 96px);margin-left:-48px;margin-right:-48px;padding-right:48px;padding-left:48px}.reading-reader{width:calc(100% + 96px);margin-right:-48px;margin-left:-48px;padding-right:24px;padding-left:24px}.reading-reader-dock{padding-right:24px;padding-left:24px}}
@media(max-width:380px){.reading-books{gap:25px 18px}.reading-cover>strong{font-size:16px}.reading-reader-dock{gap:6px}.reading-reader-dock>.reading-link{font-size:8px}.reading-chapter-heading small{font-size:8px}.reading-drawer{padding-right:20px;padding-left:20px}.reading-form-actions{gap:15px}}
@media(max-width:480px){.feature-page-topbar:has(.reading-feature-brand){padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:12px}.reading-feature-brand .reading-page-subtitle{max-width:145px}}
.reading-companions{display:flex;align-items:center;gap:8px;flex:none}
.reading-topbar-actions{position:relative;z-index:25}
.reading-companions{position:relative}
.reading-avatar-trigger{position:relative;z-index:3;display:grid;place-items:center;width:36px;height:36px;padding:2px!important;border-radius:50%!important;background:transparent!important}
.reading-avatar-trigger .reading-avatar{width:32px;height:32px;transition:transform .18s ease,box-shadow .18s ease}
.reading-avatar-trigger:hover .reading-avatar,.reading-avatar-trigger[aria-expanded=true] .reading-avatar{transform:scale(1.04);box-shadow:0 0 0 2px #fff,0 0 0 3px #dedbd6}
.reading-avatar-trigger:focus-visible{outline:1px solid #8a8177!important;outline-offset:3px}
.reading-picker-scrim{position:fixed;z-index:1;inset:0;width:100vw;height:100dvh;padding:0!important;background:transparent!important;cursor:default!important}
.reading-identity-panel{position:absolute;z-index:2;top:calc(100% + 11px);right:0;width:min(300px,calc(100vw - 36px));max-height:min(56vh,360px);overflow:auto;padding:10px 12px 12px;border:1px solid #e8e5e0;border-radius:11px;background:rgba(255,255,255,.98);box-shadow:0 13px 38px rgba(45,39,31,.13);color:#555;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.reading-identity-panel>small{display:block;padding:5px 7px 10px;border-bottom:1px solid #f0eeeb;color:#aaa;font-size:9px;letter-spacing:1.4px}
.reading-identity-panel>button{position:relative;z-index:3;display:flex;align-items:center;gap:10px;width:100%;padding:9px 7px!important;border-bottom:1px solid #f3f1ee!important;text-align:left;transition:background .16s ease}
.reading-identity-panel>button:last-child{border-bottom:0!important}
.reading-identity-panel>button:hover,.reading-identity-panel>button[aria-selected=true]{background:#f8f7f5!important}
.reading-identity-panel>button>span:nth-child(2){display:grid;gap:3px;min-width:0;flex:1}
.reading-identity-panel>button strong{overflow:hidden;color:#555;font-size:11px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.reading-identity-panel>button small{color:#aaa;font-size:9px}
.reading-identity-panel>button>i{color:#8b8292;font-size:12px;font-style:normal}
.reading-identity-empty{margin:0;padding:15px 7px;color:#aaa;font-size:10px}
.reading-avatar-empty{color:#aaa;background:#f3f2f0;font-size:18px}
.feature-page-topbar:has(.reading-feature-brand){justify-content:space-between;gap:12px}
.feature-page-topbar:has(.reading-feature-brand) #featurePageTitle{flex:1 1 auto;min-width:0}
.reading-topbar-actions{display:flex;align-items:center;flex:none}
.reading-shelf-index{padding-top:8px;margin-top:0}
.reading-shelf-index nav{align-items:center;gap:12px}
.reading-shelf-index nav [data-r-import]{font-size:10px;white-space:nowrap}
@media(max-width:380px){.feature-page-topbar:has(.reading-feature-brand){gap:7px}.reading-avatar-trigger{width:33px;height:33px}.reading-avatar-trigger .reading-avatar{width:30px;height:30px}.reading-companions{gap:5px}.reading-identity-panel{width:min(280px,calc(100vw - 28px));right:0}.reading-shelf-index nav{gap:9px}}

.reading-prose-paged{column-width:auto;column-count:1;column-gap:24px;column-fill:auto;overflow:hidden;overscroll-behavior-x:contain;scroll-behavior:auto}.reading-prose-paged .reading-paragraph{width:auto}.reading-reader:has(.reading-prose-paged){min-height:0;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.reading-reader:has(.reading-prose-paged) .reading-page-turn{margin-top:12px}

/* Fixed horizontal chapter pages, moved one column per swipe. */
#featureScreen .feature-page-topbar:has(.reading-feature-brand){padding-bottom:0}
#featureScreen .feature-page-content:has(.reading-reader){padding-top:0}
#featureScreen .feature-page-content:has(.reading-paged-viewport){overflow:hidden;padding-bottom:0;overscroll-behavior:none}
.reading-reader:has(.reading-paged-viewport){padding-top:0;padding-bottom:0;min-height:0}
.reading-chapter-heading{padding-top:0;margin-top:0}
.reading-paged-viewport{width:100%;min-width:0;overflow:hidden;touch-action:none;overscroll-behavior:none}
.reading-paged-viewport .reading-prose-paged{width:100%;height:100%;column-count:auto;transition:transform .22s ease;column-gap:24px;column-fill:auto;overflow:visible;touch-action:none}
.reading-reader:has(.reading-paged-viewport) .reading-page-turn{justify-content:flex-end;border:0;padding:6px 0 0;margin:0;min-height:30px}
.reading-reader:has(.reading-paged-viewport) .reading-page-turn [data-r-read]{font-size:10px}
.reading-page-turn [hidden]{display:none!important}

.reading-paged-viewport .reading-paragraph,.reading-paged-viewport .reading-prose-text{break-inside:auto;-webkit-column-break-inside:auto;orphans:1;widows:1}.reading-paged-viewport.is-swiping,.reading-paged-viewport.is-swiping *{user-select:none!important;-webkit-user-select:none!important}.reading-selection{touch-action:manipulation}

.reading-reader{position:relative}.reading-reader>.reading-selection{position:absolute;top:48px;left:32px;right:32px;z-index:18;margin:0}@media(max-width:480px){.reading-reader>.reading-selection{left:24px;right:24px}}

#featureScreen:has(.reading-reader) .feature-page-topbar{margin-bottom:0;padding-bottom:0}#featureScreen .feature-page-content:has(.reading-reader){margin-top:0;padding-top:0}.reading-reader .reading-chapter-heading>select{margin-top:0;padding-top:0}

#featureScreen:has(.reading-reader)>.feature-page-topbar{position:relative;z-index:19;background:#fff}#featureScreen .feature-page-content:has(.reading-reader){isolation:isolate}.reading-reader>.reading-chapter-heading{box-shadow:0 -1px 0 #fff}

.reading-shelf-sticky{position:sticky;top:0;z-index:14;background:#fff}
.reading-shelf-sticky .reading-shelf-index{margin-bottom:4px;background:#fff}
.reading-shelf-sticky .reading-discovery-controls{margin:0;padding:5px 0 9px;background:#fff}
.reading-copyright-notice{margin:0 0 13px;padding:0 0 10px;border-bottom:1px solid #f0efed;color:#999;font-size:10px;line-height:1.8}
.reading-copyright-notice>summary{width:max-content;max-width:100%;cursor:pointer;color:#888;font-size:10px;list-style:none}
.reading-copyright-notice>summary::-webkit-details-marker{display:none}
.reading-copyright-notice>summary::after{content:"＋";margin-left:7px;color:#aaa;font-size:9px}
.reading-copyright-notice[open]>summary::after{content:"－"}
.reading-copyright-notice>p{margin:8px 0 0;color:#999;font-size:9px;line-height:1.9}
.reading-copyright-welcome{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:24px;background:rgba(255,255,255,.94)}
.reading-copyright-welcome-card{width:min(100%,420px);padding:30px 26px 24px;background:#fff;border:1px solid #e9e7e3;box-shadow:0 18px 60px rgba(34,30,26,.12);color:#555}
.reading-copyright-welcome-card>small{color:#aaa;font:10px/1.4 Georgia,serif;letter-spacing:.16em}
.reading-copyright-welcome-card h2{margin:18px 0 14px;color:#333;font-size:18px;font-weight:500;letter-spacing:.04em}
.reading-copyright-welcome-card p{margin:0 0 12px;color:#777;font-size:12px;line-height:1.9}
.reading-copyright-welcome-card button{display:block;margin:22px 0 0 auto;padding:8px 0;border:0;border-bottom:1px solid #555;background:none;color:#444;font:inherit;font-size:12px;cursor:pointer}
.reading-copyright-welcome-card button:disabled{border-bottom-color:#ccc;color:#aaa;cursor:wait}
.author-notice-dialog{width:min(480px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:hidden;border:1px solid #dedede;border-radius:3px;background:#fff;color:#252525;box-shadow:0 28px 90px #00000020}
.author-notice-dialog::backdrop{background:#00000055;backdrop-filter:blur(8px)}
.author-notice-card{display:flex;height:min(650px,calc(100dvh - 34px));flex-direction:column;padding:34px 38px 30px;background:#fff}
.author-notice-top{display:flex;align-items:center;justify-content:space-between;flex:none;padding-bottom:19px;border-bottom:1px solid #e7e7e7}
.author-notice-brand{display:flex;align-items:center;gap:17px;color:#161616;font:52px/1 "Great Vibes",cursive;font-weight:400;letter-spacing:.2px}.author-notice-brand>span{padding-left:16px;border-left:1px solid #d8d8d8;color:#777;font:9px/1.4 "PingFang SC",sans-serif;letter-spacing:2.4px}
.author-notice-pagination{color:#333;font:13px Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:1px}.author-notice-pagination i{color:#aaa;font-size:10px;font-style:normal}
.author-notice-steps{display:flex;gap:5px;margin-top:15px;flex:none}.author-notice-steps>span{height:1px;flex:1;background:#e6e6e6}.author-notice-steps>span.is-read{background:#252525}
.author-notice-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:42px 1px 28px;scrollbar-width:thin}
.author-notice-heading{display:flex;align-items:center;margin-bottom:31px}.author-notice-heading h2{margin:0;color:#202020;font:500 27px/1.45 "Songti SC","Noto Serif CJK SC",serif;letter-spacing:1.2px}.author-notice-heading h2:focus{outline:none}
.author-notice-copy{color:#666;font-size:14px;line-height:2;letter-spacing:.15px;overflow-wrap:anywhere}.author-notice-copy p{margin:0 0 24px}.author-notice-copy strong{color:#191919;font-weight:600}.author-notice-copy .author-notice-lead{display:block;color:#292929;font-size:19px;line-height:1.95;letter-spacing:.25px}.author-notice-copy .author-notice-lead strong{font-weight:600}.author-notice-copy .author-notice-refund{margin:22px 0;padding:9px 0 9px 15px;border-left:1px solid #777;color:#666;font-size:13px}.author-notice-rule{padding-bottom:20px;border-bottom:1px solid #e7e7e7}.author-notice-copy small{display:block;margin-top:21px;padding-top:13px;border-top:1px solid #e7e7e7;color:#888;font-size:10px;line-height:1.9;letter-spacing:.2px}.author-notice-detail{display:block;margin-top:9px;color:#858585;font-size:12px;letter-spacing:0}
.author-notice-confirm{display:flex;gap:15px;align-items:flex-start;padding:22px 18px;border:1px solid #dedede;background:#fff;border-radius:2px;cursor:pointer}.author-notice-confirm input{width:16px;height:16px;flex:none;margin:9px 0 0;accent-color:#222}.author-notice-qualification{display:block;margin-top:14px;color:#777;font-size:13px;line-height:2.1;letter-spacing:.2px}
.author-notice-footer{flex:none;padding-top:17px;border-top:1px solid #e4e4e4}.author-notice-actions{display:flex;align-items:center;justify-content:space-between;min-height:24px;margin-bottom:13px;color:#888;font-size:10px;letter-spacing:.4px}.author-notice-actions button{padding:4px 0;color:#555;font-size:11px;letter-spacing:.3px}.author-notice-actions button[hidden]{display:block;visibility:hidden}
.author-notice-next{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:13px 17px;overflow:hidden;border:1px solid #1d1d1d;border-radius:2px;background:#1d1d1d;color:#fff;font-size:12px;letter-spacing:.65px}.author-notice-next>span{position:relative;z-index:1}.author-notice-next>span:last-child{font-size:17px}.author-notice-next:disabled{border-color:#e1e1e1;background:#f7f7f7;color:#777;cursor:default}.author-notice-next:disabled:before{position:absolute;inset:0 auto 0 0;width:var(--notice-progress,0%);background:#e5e5e5;content:"";transition:width .1s linear}
.author-notice-dialog:focus{outline:none}
.author-notice-sharing{margin-bottom:27px;padding-bottom:25px;border-bottom:1px solid #dedede;color:#333;font-size:20px;line-height:1.95;letter-spacing:.15px}.author-notice-copy .author-notice-sharing p{margin:0}.author-notice-copy .author-notice-sharing p+p{margin-top:19px;color:#171717}.author-notice-sharing strong{font-weight:600}
.author-notice-copy .author-notice-sharing+p.author-notice-lead{font-size:18px}
@media(max-width:390px){.author-notice-card{padding:27px 25px 23px}.author-notice-brand{font-size:47px}.author-notice-content{padding-top:34px}.author-notice-heading h2{font-size:24px}.author-notice-copy{font-size:13px}.author-notice-copy .author-notice-lead{font-size:17px}.author-notice-sharing{font-size:18px}}
@media(max-height:620px){.author-notice-card{padding-top:20px;padding-bottom:17px}.author-notice-top{padding-bottom:12px}.author-notice-brand{font-size:42px}.author-notice-steps{margin-top:11px}.author-notice-content{padding-top:24px;padding-bottom:17px}.author-notice-heading{margin-bottom:20px}.author-notice-footer{padding-top:12px}.author-notice-sharing{margin-bottom:18px;padding-bottom:16px}}
@media(prefers-reduced-motion:reduce){.author-notice-next:disabled:before{transition:none}}
.author-notice-confirm .author-notice-lead{display:inline;font-size:14px;line-height:inherit;letter-spacing:0}
.author-notice-confirm .author-notice-qualification{display:inline-block;margin:0;white-space:nowrap;font-size:12px;line-height:inherit}
@media(max-width:390px){.author-notice-confirm{gap:9px;padding-right:10px;padding-left:10px}.author-notice-confirm .author-notice-lead{font-size:13px}.author-notice-confirm .author-notice-qualification{font-size:10.5px}}
.author-notice-copy .author-notice-refund{margin:22px 0;padding:16px 17px;border:1px solid #d2d2d2;border-left:3px solid #222;background:#f5f5f5;color:#222;font-size:clamp(9px,2.9vw,15px);line-height:1.75;letter-spacing:.15px;white-space:nowrap}
.author-notice-copy .author-notice-refund strong{font-weight:600}
@media(max-width:390px){.author-notice-copy .author-notice-refund{padding:13px 8px}}
.iris-welcome-message{box-sizing:border-box;flex:none;width:min(360px,100%);margin:20px auto 14px;padding:15px;border:1px solid #e8e8e8;border-radius:3px;background:linear-gradient(145deg,#fff,#fafafa);box-shadow:0 8px 22px #00000006;animation:iris-welcome-appear .5s ease both}
.iris-welcome-identity{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #ededed}
.iris-welcome-identity img{width:34px;height:34px;border:1px solid #eee;border-radius:50%;object-fit:cover}
.iris-welcome-identity>span{display:grid;gap:4px}.iris-welcome-identity strong{color:#444;font-size:11px;font-weight:500;letter-spacing:.5px}.iris-welcome-identity small{color:#aaa;font-family:Georgia,serif;font-size:7px;letter-spacing:1.5px}
.iris-welcome-paper>p{margin:13px 0 15px;color:#555;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:15px;line-height:1.9;letter-spacing:.2px}
.iris-welcome-actions{display:flex;justify-content:flex-end;gap:9px}.iris-welcome-actions button{min-width:82px;padding:8px 12px;border:1px solid #e3e3e3;border-radius:2px;background:#fff;color:#777;font-size:10px;letter-spacing:.3px;transition:background .18s,color .18s,border-color .18s}.iris-welcome-actions button:first-child{border-color:#333;background:#333;color:#fff}.iris-welcome-actions button:hover{border-color:#999;background:#f4f4f4;color:#444}.iris-welcome-actions button:first-child:hover{border-color:#555;background:#555;color:#fff}
@keyframes iris-welcome-appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:390px){.iris-welcome-message{padding:13px}.iris-welcome-paper>p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.iris-welcome-message{animation:none}}
.iris-guide-widget[hidden],.iris-guide-widget [hidden]{display:none!important}
.iris-guide-fab{position:fixed;z-index:9001;right:max(18px,calc((100vw - 780px)/2 + 24px));bottom:max(112px,calc(env(safe-area-inset-bottom) + 96px));display:grid;width:54px;height:54px;place-items:center;padding:0;overflow:hidden;border:1px solid #e7e2ef;border-radius:50%;background:#fff;box-shadow:0 5px 22px #30204426;transition:transform .2s,box-shadow .2s}.iris-guide-fab:hover{transform:translateY(-2px);box-shadow:0 8px 25px #30204435}.iris-guide-fab img{width:100%;height:100%;object-fit:cover}
.iris-guide-reminder{position:fixed;z-index:9000;right:max(80px,calc((100vw - 780px)/2 + 86px));bottom:max(121px,calc(env(safe-area-inset-bottom) + 105px));display:flex;align-items:center;gap:9px;width:min(265px,calc(100vw - 108px));padding:11px 25px 11px 11px;border:1px solid #e8e5ec;border-radius:3px;background:#fff;color:#555;box-shadow:0 8px 28px #00000014;animation:iris-welcome-appear .25s ease both}.iris-guide-reminder::after{position:absolute;right:-6px;bottom:17px;width:10px;height:10px;transform:rotate(45deg);border-top:1px solid #e8e5ec;border-right:1px solid #e8e5ec;background:#fff;content:""}.iris-guide-reminder>img,.iris-guide-panel header img{width:32px;height:32px;flex:none;border:1px solid #eee;border-radius:50%;object-fit:cover}.iris-guide-reminder>span,.iris-guide-panel header>span{display:grid;gap:4px;min-width:0}.iris-guide-reminder strong,.iris-guide-panel header strong{color:#444;font-size:10px;font-weight:500;letter-spacing:.4px}.iris-guide-reminder small,.iris-guide-panel header small{color:#999;font-size:9px;line-height:1.55}.iris-guide-reminder-close{position:absolute;top:3px;right:5px;padding:2px 4px;color:#aaa;font-size:14px;line-height:1}
.iris-guide-panel{position:fixed;z-index:9002;right:max(18px,calc((100vw - 780px)/2 + 24px));bottom:max(235px,calc(env(safe-area-inset-bottom) + 215px));display:grid;gap:8px;width:min(250px,calc(100vw - 36px));padding:14px;border:1px solid #e7e7e7;border-radius:4px;background:#fff;box-shadow:0 12px 36px #00000018;animation:iris-welcome-appear .2s ease both}.iris-guide-panel header{display:flex;align-items:center;gap:9px;padding:0 0 11px;border-bottom:1px solid #eee}.iris-guide-panel>button{display:flex;align-items:center;justify-content:space-between;min-height:38px;padding:9px 10px;border:1px solid #e8e8e8;border-radius:2px;background:#fff;color:#666;font-size:10px;text-align:left}.iris-guide-panel>button[data-guide-action="view-functions"]{border-color:#333;background:#333;color:#fff}.iris-guide-panel>button.iris-guide-hide{justify-content:center;border-color:transparent;color:#999}
.iris-guide-tour{position:fixed;z-index:12000;inset:0}.iris-guide-dimmer{position:fixed;background:#1119}.iris-guide-dimmer-top{top:0;left:0;right:0}.iris-guide-dimmer-left,.iris-guide-dimmer-right{pointer-events:auto}.iris-guide-dimmer-right{bottom:0}.iris-guide-dimmer-bottom{right:0;bottom:0;left:0}.iris-guide-spotlight{position:fixed;z-index:1;border:2px solid #fff;border-radius:7px;box-shadow:0 0 0 2px #ffffff55;pointer-events:auto}.iris-guide-tour-card{position:fixed;z-index:2;right:16px;bottom:20px;left:16px;width:min(390px,calc(100vw - 32px));margin:0 auto;padding:17px 18px 15px;border:1px solid #dedede;border-radius:3px;background:#fff;color:#555;box-shadow:0 14px 50px #0003}.iris-guide-tour-card>header{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid #eee;color:#999;font:8px Georgia,serif;letter-spacing:1.4px}.iris-guide-tour-card>header button{padding:0 2px;color:#888;font-size:17px}.iris-guide-tour-card>small{display:block;margin:12px 0 6px;color:#aaa;font-size:8px;letter-spacing:.6px}.iris-guide-tour-card>strong{display:block;color:#333;font-size:14px;font-weight:500}.iris-guide-tour-card>p{margin:6px 0 14px;color:#777;font-size:11px;line-height:1.7}.iris-guide-tour-card>footer{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid #eee}.iris-guide-tour-card>footer button{padding:7px 10px;border:1px solid #e3e3e3;border-radius:2px;color:#777;font-size:9px}.iris-guide-tour-card>footer button:last-child{border-color:#222;background:#222;color:#fff}.iris-guide-tour-card>footer button:disabled{opacity:.38}
@media(max-width:390px){.iris-guide-fab{width:48px;height:48px;right:14px;bottom:max(103px,calc(env(safe-area-inset-bottom) + 88px))}.iris-guide-reminder{right:70px;bottom:max(110px,calc(env(safe-area-inset-bottom) + 95px));width:min(245px,calc(100vw - 88px))}.iris-guide-panel{right:14px;bottom:max(220px,calc(env(safe-area-inset-bottom) + 202px))}}
@media(prefers-reduced-motion:reduce){.iris-guide-fab,.iris-guide-panel,.iris-guide-reminder{animation:none;transition:none}}

/* One continuous shade avoids overlapping strips and dark seams. */
.iris-guide-tour .iris-guide-dimmer{display:none!important}
.iris-guide-tour .iris-guide-spotlight{box-shadow:0 0 0 150vmax #1119;border:2px solid #fff}
.iris-guide-tour-card{overflow-y:auto;overscroll-behavior:contain}

.iris-guide-fab{touch-action:none;user-select:none;cursor:grab}.iris-guide-fab:active{cursor:grabbing}.iris-guide-fab img{pointer-events:none;-webkit-user-drag:none}.iris-guide-fab:hover{transform:none}.iris-guide-reminder::after{display:none}.iris-guide-enter-category{width:100%;margin:0 0 12px;padding:9px 12px;border:1px solid #ddd;border-radius:2px;color:#444;font-size:11px;background:#f7f7f7}
.iris-guide-widget{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-style:normal;text-align:left;letter-spacing:normal}
.iris-guide-tour-card>p{font-size:12px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}
.iris-guide-tour-card>.iris-guide-operation-note{margin:0 0 12px;color:#999;font-size:9px;line-height:1.6;letter-spacing:0}
.iris-guide-enter-category:disabled{opacity:.5;cursor:default}
.iris-guide-facts{display:grid;gap:9px;margin:0 0 14px;padding:11px 12px;border-left:2px solid #555;background:#f6f6f6}.iris-guide-facts:has(p[hidden]+p[hidden]){display:none}.iris-guide-facts p{margin:0;color:#555;font-size:11px;line-height:1.85;overflow-wrap:anywhere}.iris-guide-facts [data-guide-api]{color:#222;font-weight:500}
.iris-guide-practice{position:fixed;z-index:12001;top:max(12px,env(safe-area-inset-top));right:12px;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:10px 12px;border:1px solid #dedede;border-radius:4px;background:#fff;box-shadow:0 5px 22px #0002;color:#777;font-size:10px}
.iris-guide-practice>button{padding:6px 8px;border:1px solid #ddd;border-radius:2px;background:#fafafa;color:#333;font-size:10px}.iris-guide-practice>button:last-child{padding:2px 5px;border:0;background:none;color:#999;font-size:16px}
@media(max-width:390px){.iris-guide-practice{gap:7px;padding:8px}.iris-guide-practice>span{max-width:85px;line-height:1.5}}

.offline-redaction-form{display:grid;gap:16px}.offline-redaction-form fieldset{margin:0;padding:13px;border:1px solid #e8e8e8;border-radius:12px}.offline-redaction-form legend{padding:0 5px;color:#777;font-size:11px}.offline-redaction-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.offline-redaction-options label{display:flex;align-items:center;justify-content:center;gap:7px;margin:0;padding:10px 5px;border:1px solid #eee;border-radius:9px;color:#555}.sheet .offline-redaction-options input{width:14px;height:14px;margin:0;padding:0;accent-color:#333}.offline-redaction-style,.offline-redaction-custom{display:grid;gap:7px;color:#777;font-size:11px}.sheet .offline-redaction-form select,.sheet .offline-redaction-form input[name=custom]{width:100%;height:42px;margin:0;padding:0 12px;border:1px solid #e7e7e7;border-radius:9px;background:#fff;color:#444;font:inherit}.offline-redaction-form footer{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.offline-redaction-form footer button{min-width:94px;padding:10px 14px;border:1px solid #ddd;border-radius:9px;background:#fff;color:#555;font-size:11px}.offline-redaction-form footer .offline-redaction-apply{border-color:#292929;background:#292929;color:#fff}.offline-redaction-form footer [hidden],.offline-redaction-custom[hidden]{display:none}

.sheet.is-centered-panel h2,.sheet.is-message-edit .sheet-head h2,.chat-bank-sheet-title,.reflection-script-title,.chat-user-bank-card header>span:first-child{font-family:"Great Vibes",cursive!important;font-style:normal!important;letter-spacing:0!important}

.incoming-video-extra[hidden]{display:none}.incoming-video-extra{margin-top:7px;padding-top:4px;border-top:1px solid #f0f0f0}.incoming-video-ringtone-row{display:grid!important;gap:10px}.incoming-video-ringtone-row>span:first-child{display:block}.incoming-video-ringtone-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.incoming-video-ringtone-actions button{padding:7px 11px;border:1px solid #e5e5e5;border-radius:7px;background:#fff;color:#666;font-size:9px}.incoming-video-ringtone-actions button:hover{border-color:#bbb}.incoming-video-ringtone-actions [hidden]{display:none}

.gift-reaction-dialog{width:min(400px,calc(100vw - 36px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #e5e5e5;border-radius:19px;background:#fff;color:#333;overflow:auto;box-shadow:0 24px 90px #0002}.gift-reaction-dialog::backdrop{background:#0005;backdrop-filter:blur(5px)}.gift-reaction-card{padding:24px 26px}.gift-reaction-card>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid #eee}.gift-reaction-card>header>span{font:38px/1.2 "Great Vibes",cursive}.gift-reaction-card>header>button{padding:2px 4px;color:#999;font-size:23px}.gift-reaction-person{display:flex;align-items:center;gap:16px;margin:24px 0}.gift-reaction-person .avatar{width:58px;height:58px;flex:none;overflow:hidden;border:1px solid #eee}.gift-reaction-person .avatar img{width:100%;height:100%;object-fit:cover}.gift-reaction-person small{font-size:9px;letter-spacing:2px;color:#aaa}.gift-reaction-person h2{margin:7px 0 0;font:400 13px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;overflow-wrap:anywhere}.gift-reaction-person h2 strong{font-size:21px;font-weight:500}.gift-reaction-items{display:flex;align-items:center;gap:13px;padding:13px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.gift-reaction-items img{object-fit:contain;flex:none}.gift-reaction-items p{margin:0;color:#777;font-size:11px;line-height:1.9}.gift-reaction-items p span{color:#aaa}.gift-reaction-card blockquote{margin:24px 0;padding:0 0 0 15px;border-left:2px solid #ddd;color:#444;font-size:14px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere}.gift-reaction-refund{margin:0 0 19px;color:#999;font-size:10px}.gift-reaction-confirm{width:100%;min-height:41px;padding:10px 18px;border:1px solid #252525;border-radius:9px;background:#252525;color:#fff;font-size:11px;letter-spacing:1px}

/* Memory connections and quiet, persistent follow-ups. */
.api-connection-switch{display:flex;align-items:center;gap:20px;min-width:0}
.api-connection-switch button{border:0;background:none;color:#999;font-family:"LXGW WenKai","Iris Kai",serif;font-weight:400;font-size:13px;line-height:1.6;padding:6px 0;white-space:nowrap;border-bottom:1px solid transparent}
.api-connection-switch button.active{color:#222;border-bottom-color:#222}
.vector-config-panel .settings-note{line-height:1.8}
.life-followups{margin:20px 0;border:1px solid #e7e7e7;border-radius:12px;background:#fff;padding:18px;color:#333}
.life-followups .settings-switch-row{padding:0 0 16px}
.life-followups summary{cursor:pointer;font-size:13px;line-height:1.8;padding:8px 0}
.life-followups summary span{color:#999;margin-left:8px}
.life-followup-list article{padding:16px 0;border-top:1px solid #eee}
.life-followup-list header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.life-followup-list strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}
.life-followup-list small{font-size:11px;color:#888;line-height:1.8}
.life-followup-list p{font-size:12px;color:#777;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.life-followup-list form{display:grid;gap:12px;margin:8px 0}
.life-followup-list label{display:grid;gap:6px;font-size:12px}
.life-followup-list input{width:100%;box-sizing:border-box;min-width:0;padding:10px;border:1px solid #ddd;border-radius:5px;background:white;color:#333}
.life-followup-list button{border:1px solid #ddd;background:#fff;color:#555;border-radius:5px;font-size:12px;padding:7px 12px;margin-top:8px}
@media(max-width:380px){.api-connection-switch{gap:12px}.api-connection-switch button{font-size:12px}.api-add-config{padding:6px!important;font-size:11px!important}}

/* Together listening: the shared player and library. */
#featureScreen .feature-page-topbar:has(.music-feature-brand){overflow:visible}
.music-feature-brand{overflow:visible}
.music-feature-brand .feature-page-wordmark{display:block;padding:0 5px;font-family:"Great Vibes",cursive;font-style:normal;font-weight:400;line-height:1;transform:translateY(3px);overflow:visible}
.music-feature-brand .music-page-subtitle{font-family:"LXGW WenKai","Iris Kai",serif;font-size:12px;font-style:normal;letter-spacing:1px;color:#999}
#featurePageContent:has(.music-page){padding-bottom:26px}
.music-page{max-width:540px;margin:0 auto;color:#333;font-size:13px}
.music-tabs{display:flex;align-items:center;gap:24px;border-bottom:1px solid #eee;margin-bottom:24px}
.music-tabs button{padding:12px 0;color:#999;font-size:12px;border-bottom:1px solid transparent}
.music-tabs button.active{border-bottom-color:#333;color:#222}
.music-tabs button:last-child{margin-left:auto;font-size:11px}.music-tabs small{font-size:10px;margin-left:4px}
.music-companions{display:flex;justify-content:center;align-items:center;gap:24px;margin:24px 0}
.music-companions>span{display:grid;justify-items:center;gap:7px}.music-companions .avatar{width:36px;height:36px;border:1px solid #eee;font-size:13px}.music-companions .avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.music-companions small{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#888}
.music-companions>i{font-family:"Great Vibes",cursive;font-size:22px;color:#bbb;font-style:normal}
.music-artwork{width:clamp(150px,48vw,220px);aspect-ratio:1;margin:22px auto;box-shadow:0 12px 32px #0000000b;border:1px solid #e9e9e9;border-radius:4px;overflow:hidden}
.music-artwork>img,.music-artwork>span{width:100%;height:100%;object-fit:cover;display:grid;place-items:center;background:#f5f5f5}
.music-cover-placeholder{display:grid;place-items:center;background:#f5f5f5;color:#aaa}.music-cover-placeholder svg{width:65%;height:65%;stroke-width:.55}
.music-song-title{text-align:center}.music-song-title h2{font-size:19px;font-weight:500;line-height:1.5;overflow-wrap:anywhere;margin:18px 0 4px}.music-song-title p{font-size:11px;color:#888;margin:0}.music-song-title button{font-size:10px;color:#aaa;padding:8px}
.music-timeline{margin:16px auto 0;max-width:360px}.music-timeline>input{display:block;width:100%;accent-color:#444;height:16px}.music-timeline>div{display:flex;justify-content:space-between;font-size:10px;color:#aaa;font-variant-numeric:tabular-nums}
.music-player-controls{display:flex;align-items:center;justify-content:center;gap:36px;margin:15px 0}.music-player-controls button{font-size:20px;min-width:44px;min-height:44px;color:#555;font-family:Arial,sans-serif}.music-player-controls [data-music-play]{border:1px solid #e4e4e4;border-radius:50%;width:54px;height:54px;font-size:24px}
.music-player-options{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px auto 20px;max-width:360px;color:#888;font-size:10px}.music-player-options select{max-width:120px;background:#fff;border:0;color:#777;font:inherit;padding:8px 0}.music-player-options label{display:flex;align-items:center;gap:7px}.music-player-options input{max-width:70px;width:16vw;accent-color:#777}
.music-lyrics{position:relative;max-height:145px;overflow:auto;scrollbar-width:thin;text-align:center;margin:20px 0;padding:8px}.music-lyrics button{display:block;width:100%;font-size:12px;line-height:2.2;padding:3px;color:#aaa;transition:color .2s}.music-lyrics button.active{color:#222}.music-lyrics p{white-space:pre-wrap;color:#777;line-height:2;font-size:12px}
.music-invite-row{text-align:center;margin:22px 0}.music-invite-row button{border:1px solid #ddd;border-radius:3px;padding:10px 20px;font-size:11px;color:#555}
.music-discussion{border-top:1px solid #eee;margin-top:28px;padding-top:18px}.music-discussion>header{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#888}.music-discussion>header button{font-size:11px;color:#555;border-bottom:1px solid #ddd;padding:5px 0}
.music-messages{max-height:280px;overflow:auto;scrollbar-width:thin;margin:14px 0}.music-messages article{padding:12px 14px;margin:8px 0;background:#f7f7f7;border-radius:5px;max-width:92%;width:fit-content}.music-messages article.mine{margin-left:auto;background:#f0f0f0}.music-messages small{font-size:9px;color:#aaa}.music-messages p{font-size:12px;color:#555;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}
.music-discussion form{display:flex;align-items:center;gap:12px}.music-discussion textarea{font-size:12px;background:#f7f7f7;border-radius:5px;padding:9px 12px;min-height:58px;line-height:1.8}.music-discussion form button{font-size:11px;flex:none;color:#555;padding:10px 4px}
.music-page button:disabled,.music-dialog button:disabled{opacity:.35;cursor:default}
.music-library-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.music-library-actions button{font-size:11px;padding:9px 12px;border:1px solid #ddd;border-radius:3px}
.music-track-list>article{display:flex;align-items:center;border-bottom:1px solid #eee;padding:12px 0;gap:6px}.music-track-list>article.active{background:#fafafa}.music-track-list [data-music-select]{display:flex;align-items:center;flex:1;min-width:0;text-align:left;gap:12px;padding:0}.music-track-list [data-music-select]>img,.music-track-list [data-music-select]>.music-cover-placeholder{width:42px;height:42px;border-radius:3px;object-fit:cover;flex:none}.music-track-list [data-music-select]>span:not(.music-cover-placeholder){display:grid;gap:6px;flex:1;min-width:0}.music-track-list strong{font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-track-list small{font-size:9px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-track-list [data-music-edit]{padding:12px 4px;font-size:18px;color:#888}
.music-empty{text-align:center;padding:60px 14px;color:#aaa}.music-empty strong{font-size:15px;font-family:"LXGW WenKai","Iris Kai",serif;font-weight:400;color:#777}.music-empty p{font-size:11px;line-height:2}.music-empty button{padding:9px;border-bottom:1px solid #ddd;color:#777;font-size:12px}
.music-dialog{width:min(440px,calc(100vw - 32px));max-height:80dvh;overflow:auto;border:1px solid #ddd;border-radius:10px;padding:24px;background:#fff;color:#444;box-shadow:0 20px 80px #00000015}.music-dialog::backdrop{background:#0004;backdrop-filter:blur(3px)}
.music-dialog>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:14px}.music-dialog h2{font-family:"Great Vibes",cursive;font-style:normal;font-weight:400;font-size:30px;margin:0}.music-dialog header button{font-size:22px;color:#999;padding:5px}.music-dialog form{display:grid;gap:17px}.music-dialog label{display:grid;gap:8px;font-size:11px;color:#888}.music-dialog input:not([type=file]),.music-dialog textarea{border:1px solid #e4e4e4;padding:10px;background:#fff;font:inherit;color:#444;width:100%;box-sizing:border-box;min-width:0;border-radius:3px}.music-dialog textarea{min-height:140px;max-height:none;line-height:1.8;resize:vertical}.music-dialog input[type=file]{max-width:100%;font-size:10px}.music-dialog form>button,.music-dialog>button{padding:10px 13px;border:1px solid #ddd;border-radius:3px;font-size:11px;color:#666}.music-dialog>button{display:block;width:100%;margin:10px 0}.music-dialog p{font-size:11px;line-height:1.9;overflow-wrap:anywhere;white-space:pre-wrap}.music-dialog p small{display:block;color:#aaa;font-size:10px}.music-history>article{padding:12px 0 18px;border-bottom:1px solid #eee}.music-history h3{font-size:14px;font-weight:400}.music-history small{font-size:10px;color:#aaa}.music-history summary{font-size:11px;color:#777;cursor:pointer;margin:12px 0}.music-history button{font-size:10px;color:#777;padding:6px 0;border-bottom:1px solid #ddd}.music-suggestion{border-top:1px solid #e7e7e7;margin-top:12px;padding-top:8px;font-size:10px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#888}.music-suggestion button{font-size:10px;padding:4px 0;color:#555;border-bottom:1px solid #ccc}
.music-mini-player{flex:none;display:flex;align-items:center;gap:12px;margin:4px 0;padding:8px 12px;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa;min-height:54px}.music-mini-player>button:first-child{display:flex;align-items:center;gap:10px;flex:1;min-width:0;text-align:left;padding:0}.music-mini-player img,.music-mini-player .music-cover-placeholder{width:34px;height:34px;object-fit:cover;flex:none;border-radius:3px}.music-mini-player button>span:not(.music-cover-placeholder){display:grid;gap:5px;min-width:0}.music-mini-player strong{font-size:11px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-mini-player small{font-size:9px;color:#999}.music-mini-player>button:last-child{min-width:36px;min-height:36px;font-size:21px;font-family:Arial,sans-serif;color:#555}
.phone:has(#featureScreen:not([hidden]))>.music-mini-player,.phone:has(#settingsScreen:not([hidden]))>.music-mini-player{display:none}
.phone:has(#dock:not([hidden]) #dockFeatureMenu:not([hidden]),#composer:not([hidden]) #quickFeatures:not([hidden]))>.music-mini-player{display:none}
@media(max-width:380px){.music-tabs{gap:16px}.music-artwork{width:150px}.music-dialog{padding:20px}.music-player-controls{gap:28px}}
@media(prefers-reduced-motion:reduce){.music-lyrics button{transition:none}}

/* Music controls share the app's quiet monochrome treatment. */
.music-page input[type="range"]{display:block;appearance:none;-webkit-appearance:none;height:24px;min-height:24px;padding:0;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;cursor:pointer;--music-progress:0%}
.music-page input[type="range"]::-webkit-slider-runnable-track{height:2px;border:0;border-radius:2px;background:linear-gradient(to right,#666 0%,#666 var(--music-progress),#e7e7e7 var(--music-progress),#e7e7e7 100%)}
.music-page input[type="range"]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:8px;height:8px;margin-top:-3px;border:1px solid #666;border-radius:50%;background:#fff;box-shadow:none}
.music-page input[type="range"]::-moz-range-track{height:2px;border:0;border-radius:2px;background:#e7e7e7}
.music-page input[type="range"]::-moz-range-progress{height:2px;border-radius:2px;background:#666}
.music-page input[type="range"]::-moz-range-thumb{width:6px;height:6px;border:1px solid #666;border-radius:50%;background:#fff;box-shadow:none}
.music-page input[type="range"]:focus-visible{outline:1px solid #aaa;outline-offset:3px}
.music-timeline>div{margin-top:1px;font-size:9px;letter-spacing:.5px;color:#aaa}
.music-player-options{font-size:10px;color:#999}.music-player-options label{gap:10px}.music-player-options input[type="range"]{width:74px;max-width:20vw}
.music-player-options select{appearance:none;-webkit-appearance:none;border-bottom:1px solid #e8e8e8;border-radius:0;padding:7px 17px 7px 0;background:linear-gradient(45deg,transparent 50%,#999 50%) calc(100% - 5px) 50%/4px 4px no-repeat,linear-gradient(135deg,#999 50%,transparent 50%) calc(100% - 1px) 50%/4px 4px no-repeat;font-size:10px;letter-spacing:.4px}
.music-invite-row{display:flex;align-items:center;justify-content:center;gap:18px;margin:26px 0}
.music-invite-row::before,.music-invite-row::after{content:"";height:1px;flex:1;max-width:56px;background:#eee}
.music-invite-row button{display:inline-flex;align-items:center;justify-content:center;gap:16px;max-width:100%;padding:10px 17px;border:1px solid #e5e5e5;border-radius:999px;background:#fff;color:#555;font-size:11px;font-weight:400;line-height:1.6;letter-spacing:.5px;transition:border-color .18s,background .18s}
.music-invite-row button>span{min-width:0;overflow-wrap:anywhere}.music-invite-row svg,.music-end-options svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.music-invite-row button:hover{border-color:#bbb;background:#fafafa}
.music-dialog{padding:25px 26px;border-color:#e6e6e6;border-radius:8px;box-shadow:0 16px 70px #00000012}
.music-dialog>header{margin-bottom:23px;padding-bottom:16px}.music-dialog form{gap:22px}.music-dialog label,.music-file-heading{font-size:10px;letter-spacing:.6px;color:#999}
.music-dialog input:not([type="file"]),.music-dialog textarea{border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background:transparent;padding:10px 0;font-size:12px;line-height:1.8;letter-spacing:.2px;color:#555}
.music-dialog input:not([type="file"]):focus,.music-dialog textarea:focus{border-bottom-color:#999}
.music-dialog textarea{padding:11px 12px;border:1px solid #ededed;border-radius:4px;background:#fcfcfc;min-height:152px;font-size:11px;line-height:1.9}
.music-file-field{display:grid;gap:10px;min-width:0}.music-file-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.music-file-heading button{padding:3px 0;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:transparent;color:#aaa;font-size:9px;letter-spacing:.4px}
.music-dialog .music-file-picker{position:relative;display:flex;align-items:center;gap:13px;min-height:64px;padding:13px 14px;border:1px solid #eaeaea;border-radius:5px;background:#fafafa;cursor:pointer;overflow:hidden}
.music-dialog .music-file-picker input[type="file"]{position:absolute;inset:0;z-index:1;width:100%;max-width:none;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;font-size:16px}
.music-file-picker>svg{width:21px;height:21px;flex:none;stroke:#999;stroke-width:1;fill:none}
.music-file-picker>span{display:grid;gap:5px;flex:1;min-width:0}.music-file-picker strong{font-size:11px;font-weight:400;color:#666;letter-spacing:.4px}
.music-file-picker small{font-size:9px;color:#aaa;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5}
.music-file-picker>.music-file-plus{width:13px;height:13px;color:#aaa}
.music-file-picker:focus-within{outline:1px solid #aaa;outline-offset:3px}.music-file-picker:hover{border-color:#ccc}
.music-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:2px;padding-top:19px;border-top:1px solid #eee}
.music-dialog .music-action-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:38px;padding:10px 19px;border:1px solid #373737;border-radius:3px;background:#373737;color:#fff;font-size:10px;font-weight:400;letter-spacing:.8px;line-height:1.6}
.music-dialog-actions>.music-action-primary{flex:1}
.music-dialog .music-action-delete{flex:none;min-height:34px;padding:7px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#999;font-size:10px;letter-spacing:.5px}
.music-dialog .music-action-delete:hover{color:#444;border-bottom-color:#777}
.music-dialog .music-end-caption{margin:0 0 20px;color:#999;font-size:11px;letter-spacing:.5px}
.music-end-options{display:grid;gap:10px}
.music-end-options>button{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:43px;padding:12px 16px;border:1px solid #e7e7e7;border-radius:3px;background:#fff;color:#666;font-size:11px;letter-spacing:.5px;text-align:left}
.music-end-options>.music-action-primary{justify-content:space-between;font-size:11px}
@media(max-width:380px){.music-dialog{padding:22px 20px}.music-dialog-actions{gap:16px}.music-invite-row{gap:12px}.music-invite-row button{padding:9px 14px;gap:12px}}
@media(prefers-reduced-motion:reduce){.music-invite-row button{transition:none}}
.music-library-actions{gap:10px}.music-library-actions button{min-height:34px;padding:8px 13px;border-color:#e6e6e6;border-radius:3px;font-size:10px;letter-spacing:.5px;background:#fff;color:#777}.music-library-actions [data-music-import]{border-color:#444;background:#444;color:#fff}

/* Keep the music tabs attached to the header while only their content scrolls. */
#featureScreen #featurePageContent:has(.music-page){display:flex;flex-direction:column;min-height:0;padding-top:0;padding-bottom:0;margin-top:0;overflow:hidden}
.music-page{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;height:100%;overflow:hidden}
.music-tabs{flex:none;margin:0;background:#fff;position:relative;z-index:1}
.music-page-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:18px 0 26px}
.music-lyrics-source{display:block;margin:10px 0;text-align:center;color:#aaa;font-size:9px;letter-spacing:.3px}
.music-lyrics-source a{color:#999;text-decoration:none;border-bottom:1px solid #e7e7e7}
.music-song-title [data-music-find-lyrics]{font-size:10px;color:#888;margin-left:8px}

/* Modal titles stay in place; only the contents below them scroll. */
.music-dialog{padding:0;overflow:hidden}
.music-dialog[open]{display:flex;flex-direction:column;max-height:80dvh}
.music-dialog>header{flex:none;gap:18px;margin:0;padding:20px 26px 16px;background:#fff;border-bottom:1px solid #eee}
.music-dialog>header h2{line-height:1.3;min-width:0}
.music-dialog-body{flex:1;min-height:0;max-height:calc(80dvh - 78px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:22px 26px 25px}
.music-mini-player{gap:8px}
.music-mini-player>[data-music-mini-play]{min-width:32px;min-height:34px;font-family:Arial,sans-serif;font-size:21px;color:#555}
.music-mini-player>[data-music-mini-close]{display:grid;place-items:center;flex:none;min-width:28px;min-height:32px;padding:5px;border:0;background:transparent;color:#aaa}
.music-mini-player>[data-music-mini-close] svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round}
.music-mini-player>[data-music-mini-close]:hover{color:#444}
@media(max-width:380px){.music-dialog{padding:0}.music-dialog>header{padding:18px 20px 14px}.music-dialog-body{padding:20px}}

/* NetEase account, role listening history, and chat song invitations. */
.music-tabs{gap:clamp(11px,3vw,22px);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.music-tabs::-webkit-scrollbar{display:none}
.music-tabs button{flex:0 0 auto;white-space:nowrap;font-size:11px;letter-spacing:.15px}
.music-tabs button:last-child{margin-left:auto}
.music-net-page{max-width:540px;margin:0 auto;color:#333}
.music-net-profile,.music-role-heading{display:flex;align-items:center;gap:14px;padding:18px 8px 20px;border-bottom:1px solid #eee}
.music-net-profile>img,.music-net-avatar,.music-role-heading>.avatar{width:48px;height:48px;flex:0 0 48px;border-radius:50%;object-fit:cover}
.music-net-avatar{display:grid;place-items:center;background:#f1f1f1;color:#555;font-size:21px}
.music-net-profile>div,.music-role-heading>div{display:grid;gap:5px;min-width:0;flex:1}
.music-net-profile strong,.music-role-heading strong{font-size:14px;font-weight:500;color:#333}
.music-net-profile small,.music-role-heading small,.music-net-sync-time{font-size:10px;color:#999;letter-spacing:.3px}
.music-net-profile button,.music-role-heading>button,.music-net-library-heading button,.music-cloud-playlist-actions button{font-size:10px;color:#777;padding:8px 12px;border:1px solid #e5e5e5;border-radius:2px;background:#fff}
.music-net-library-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 8px 12px}
.music-net-library-heading strong{font-size:12px;font-weight:500;letter-spacing:.4px}
.music-net-sync-time{display:block;padding:0 8px 9px}
.music-net-playlists{display:grid}
.music-net-playlists>button,.music-net-playlists article>button:first-child,.music-net-song-list article>button:first-child{display:flex;align-items:center;gap:12px;width:100%;min-width:0;padding:11px 8px;border-bottom:1px solid #f0f0f0;text-align:left}
.music-net-playlists>button>img,.music-net-playlists article img,.music-cloud-playlist-head img,.music-net-song-list img{width:44px;height:44px;flex:0 0 44px;object-fit:cover;border-radius:3px}
.music-net-playlists>button>span,.music-net-playlists article>button:first-child>span,.music-net-song-list article>button:first-child>span{display:grid;gap:5px;min-width:0;flex:1}
.music-net-playlists strong,.music-net-song-list strong{overflow:hidden;color:#444;font-size:12px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.music-net-playlists small,.music-net-song-list small{overflow:hidden;color:#aaa;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.music-net-playlists i,.music-net-song-list i{color:#aaa;font-size:17px;font-style:normal}
.music-net-playlists article,.music-net-song-list article{display:flex;align-items:center;gap:8px;border-bottom:1px solid #f0f0f0}
.music-net-playlists article>button:first-child,.music-net-song-list article>button:first-child{border:0}
.music-net-playlists article>button:last-child,.music-net-song-list article>button:last-child{flex:0 0 auto;padding:8px;color:#888;font-size:10px}
.music-net-empty{display:grid;justify-items:center;gap:9px;padding:48px 18px;text-align:center}
.music-net-empty strong{font-family:"LXGW WenKai","Iris Kai",serif;font-size:14px;font-weight:400;color:#555}
.music-net-empty p{margin:0;color:#999;font-size:11px;line-height:1.9}
.music-net-empty .music-action-primary{margin-top:8px}
.music-net-login{display:grid;justify-items:center;gap:15px;min-height:200px;text-align:center}
.music-net-intro,.music-net-state{margin:0;color:#777;font-size:11px}
.music-net-qr{display:grid;place-items:center;width:190px;height:190px;border:1px solid #eee;background:#fff}
.music-net-qr img{width:176px;height:176px;object-fit:contain}
.music-net-qr a{color:#444;font-size:11px}
.music-net-login>small{max-width:270px;color:#aaa;font-size:9px;line-height:1.8}
.music-net-success{color:#444;font-size:12px}
.music-login-dialog[open]{position:fixed;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;display:block!important;width:min(360px,calc(100vw - 36px));height:auto;min-height:0;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);box-sizing:border-box;padding:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.music-login-dialog>header{gap:12px;padding:10px 18px 9px}
.music-login-dialog>header h2{font-size:25px;line-height:1.15}
.music-login-dialog [data-music-dialog-close]{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;outline:none;box-shadow:none;background:transparent;border-radius:0;line-height:1}
.music-login-dialog [data-music-dialog-close]:focus-visible{color:#222}
.music-login-dialog .music-dialog-body{display:block;flex:none;min-height:0;max-height:none;overflow:visible;padding:10px 18px 12px}
.music-login-dialog .music-net-login{min-height:0;gap:6px}
.music-login-dialog .music-net-qr{width:min(176px,52vw);height:auto;aspect-ratio:1;box-sizing:border-box;padding:5px;overflow:visible}
.music-login-dialog .music-net-qr img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.music-login-dialog .music-action-primary{min-height:30px;padding:5px 15px}
.music-login-dialog .music-net-login>small{line-height:1.5}
@media(max-width:380px){.music-login-dialog[open]{width:calc(100vw - 36px)}.music-login-dialog>header{padding:9px 16px 8px}.music-login-dialog .music-dialog-body{padding:9px 16px 10px}.music-login-dialog .music-net-qr{width:min(168px,52vw)}}
.music-cloud-playlist-head{display:flex;align-items:center;gap:14px}
.music-cloud-playlist-head img{width:62px;height:62px;flex-basis:62px}
.music-cloud-playlist-head>div{display:grid;gap:8px}
.music-cloud-playlist-head strong{font-size:13px;font-weight:500}
.music-cloud-playlist-head small,.music-cloud-playlist-actions{font-size:10px;color:#999}
.music-cloud-playlist-actions{display:flex;justify-content:flex-end;padding:14px 0;border-bottom:1px solid #eee}
.music-net-song-list{display:grid;margin-top:6px}
.music-chat-invite{width:min(310px,100%);overflow:hidden;border:1px solid #e5e5e5;border-radius:6px;background:#fff;color:#444}
.music-chat-invite-head{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;border-bottom:1px solid #eee;font-size:11px;letter-spacing:.4px}
.music-chat-invite-head small{color:#999;font-size:9px}
.music-chat-invite-song{display:flex;align-items:center;gap:11px;padding:13px}
.music-chat-invite-song img,.music-chat-cover-placeholder{width:46px;height:46px;flex:0 0 46px;object-fit:cover;border-radius:3px}
.music-chat-cover-placeholder{display:grid;place-items:center;background:#f1f1f1;color:#888}
.music-chat-invite-song>div{display:grid;gap:5px;min-width:0}
.music-chat-invite-song strong{overflow:hidden;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.music-chat-invite-song small{overflow:hidden;color:#999;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.music-chat-invite>p{margin:0;padding:0 13px 12px;color:#777;font-size:11px;line-height:1.7}
.music-chat-invite-actions{display:flex;gap:8px;padding:10px 13px;border-top:1px solid #eee}
.music-chat-invite-actions button{flex:1;padding:9px 8px;border:1px solid #e3e3e3;border-radius:2px;color:#666;font-size:10px}
.music-chat-invite-actions button:first-child{border-color:#3c3c3c;background:#3c3c3c;color:#fff}
.music-chat-invite-note{display:block;padding:10px 13px;border-top:1px solid #eee;color:#999;font-size:9px}
.music-lyric-results{margin-top:24px}.music-lyric-results>article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-top:1px solid #eee}.music-lyric-results>article>div{display:grid;gap:7px;min-width:0}.music-lyric-results strong{font-size:12px;color:#555;font-weight:400;overflow-wrap:anywhere}.music-lyric-results small{font-size:10px;color:#999;line-height:1.6}.music-lyric-results button{flex:none;padding:6px 0;font-size:10px;letter-spacing:.4px;color:#666;border-bottom:1px solid #ddd}.music-lyric-results p{font-size:11px;color:#999;line-height:1.9}

/* Music discovery and personal collections. */
.music-discover{padding:7px 0 22px;min-width:0}
.music-search-form{display:flex;align-items:center;gap:11px;min-height:46px;padding:0 12px;border:1px solid #e6e6e6;border-radius:5px;background:#fafafa}
.music-search-form svg{width:16px;height:16px;flex:none;fill:none;stroke:#999;stroke-width:1.3}
.music-search-form input{width:0;min-width:0;flex:1;padding:12px 0;border:0;outline:0;background:transparent;color:#444;font-family:inherit;font-size:12px}
.music-search-form:focus-within{border-color:#aaa}
.music-search-form input::placeholder{color:#aaa}
.music-search-form>button{flex:none;padding:8px 0 8px 12px;border-left:1px solid #e3e3e3;color:#555;font-size:11px}
.music-search-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:25px 0 22px}
.music-search-suggestions>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-bottom:7px}
.music-search-suggestions>div small{color:#888;font-size:10px}
.music-search-suggestions>div>span{color:#bbb;font:8px Georgia,serif;letter-spacing:1.5px}
.music-search-suggestions>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;align-items:center;min-width:0;min-height:60px;padding:11px 1px;border-bottom:1px solid #efefef;text-align:left}
.music-search-suggestions strong{overflow:hidden;color:#555;font-size:12px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.music-search-suggestions button>small{grid-column:1;overflow:hidden;color:#aaa;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.music-search-suggestions i{grid-column:2;grid-row:1/3;color:#aaa;font-size:13px;font-style:normal}
.music-search-status{margin:0;padding:26px 6px;color:#999;font-size:11px;line-height:1.9;text-align:center}
.music-search-results>[data-song-retry]{display:block;margin:0 auto;padding:8px 12px;border-bottom:1px solid #ddd;color:#666;font-size:11px}
.music-search-results .music-net-library-heading small{color:#aaa;font-size:10px}
.music-local-section{padding:2px 0 24px;margin-bottom:8px;border-bottom:1px solid #eee}
.music-playlist-empty{padding:14px 0 4px}
.music-playlist-empty p{margin:0 0 12px;color:#aaa;font-size:11px;line-height:1.9}
.music-playlist-empty button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 14px;border:1px dashed #ddd;border-radius:4px;color:#888;font-size:11px;text-align:left}
.music-playlist-empty button>span{font-size:16px;color:#aaa}
.music-picker-caption{margin:0 0 8px;color:#999}
.music-playlist-picker{display:grid}
.music-playlist-picker>button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:61px;padding:12px 0;border-bottom:1px solid #eee;background:transparent;text-align:left}
.music-playlist-picker>button>span{display:grid;gap:6px;min-width:0;overflow-wrap:anywhere;color:#555;font-size:12px}
.music-playlist-picker small{color:#aaa;font-size:10px}
.music-playlist-picker i{flex:none;color:#999;font-size:11px;font-style:normal}
.music-dialog .music-create-inline{display:block;width:100%;margin:14px 0 0;padding:12px;border:1px solid #e5e5e5;border-radius:4px;background:#fafafa;color:#777;font-size:11px;text-align:center}
.music-local-playlist-title{padding:3px 0 20px;text-align:center}
.music-local-playlist-title>small{color:#aaa;font:8px Georgia,serif;letter-spacing:2px}
.music-local-playlist-title h3{margin:13px 0 8px;color:#444;font-family:"Songti SC",serif;font-size:20px;font-weight:400;overflow-wrap:anywhere}
.music-local-playlist-title>span{color:#aaa;font-size:10px}
.music-local-tools{display:flex;justify-content:center;gap:18px;padding:0 0 17px;border-bottom:1px solid #eee}
.music-local-tools>button{padding:6px 0;color:#888;font-size:10px}
.music-local-tools>button:first-child{color:#444}
.music-local-tools>button[data-confirm=yes]{color:#444;border-bottom:1px solid #999}
.music-track-list [data-track-playlist]{flex:none;min-width:30px;min-height:38px;color:#888;font-size:17px}
.music-playlist-picker button:disabled,.music-local-playlist button:disabled{opacity:.5;cursor:default}
@media(max-width:380px){.music-search-suggestions{column-gap:13px}.music-tabs{gap:14px}}

.music-net-song-list .music-search-artwork{display:block;flex:0 0 42px;width:42px;height:42px;overflow:hidden;border-radius:3px}
.music-search-artwork>img,.music-search-artwork>.music-cover-placeholder{display:block;width:100%;height:100%;object-fit:cover}

/* Album artwork keeps a square footprint in every music list and player. */
.music-net-song-list .music-search-artwork{flex:0 0 44px;width:44px;height:44px;min-width:44px;max-width:44px;aspect-ratio:1;align-self:center}
.music-net-song-list .music-search-artwork>img,.music-net-song-list .music-search-artwork>.music-cover-placeholder{display:block;box-sizing:border-box;width:44px;height:44px;min-width:44px;max-width:44px;max-height:44px;aspect-ratio:1;object-fit:cover;margin:0;padding:0}
.music-net-playlists>button>img,.music-net-playlists article img,.music-cloud-playlist-head img,.music-net-song-list img{aspect-ratio:1;min-width:44px;max-width:44px;max-height:44px;object-fit:cover}
.music-artwork{aspect-ratio:1;height:auto;flex-shrink:0}
.music-artwork>img,.music-artwork>.music-cover-placeholder{width:100%;height:100%;aspect-ratio:1;object-fit:cover}
.music-role-generate{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 0 20px;border-bottom:1px solid #eee}
.music-role-generate>span{display:grid;gap:6px;color:#777;font-size:11px}
.music-role-generate small{color:#aaa;font-size:9px}
.music-role-generate>button{flex:none;min-height:36px;padding:9px 13px;border:1px solid #dedede;border-radius:4px;background:#fafafa;color:#555;font-size:11px}
.music-role-generate>button:disabled{opacity:.5;cursor:default}

/* One library for saved songs, personal playlists and NetEase collections. */
.music-library-page{max-width:540px;margin:0 auto;min-width:0;color:#444}
.music-page-body:has(.music-library-page.is-songs-view){display:flex;flex-direction:column;overflow:hidden}
.music-library-page.is-songs-view{display:flex;flex:1;flex-direction:column;width:100%;min-height:0}
.music-library-page.is-songs-view .music-track-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.music-library-account{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0 20px;border-bottom:1px solid #eee}
.music-library-account>div{display:flex;align-items:center;gap:11px;min-width:0;flex:1}
.music-library-account img{width:34px;height:34px;flex:none;border-radius:50%;object-fit:cover}
.music-library-account span{display:grid;gap:7px;min-width:0}
.music-library-account strong{overflow:hidden;color:#444;font-size:13px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.music-library-account small{color:#aaa;font-size:10px;letter-spacing:.3px}
.music-library-account>button,.music-library-connect>button{flex:none;min-height:34px;padding:8px 12px;border:1px solid #e3e3e3;border-radius:4px;background:#fff;color:#777;font-size:10px}
.music-library-sections{display:flex;align-items:center;gap:25px;border-bottom:1px solid #eee}
.music-library-sections>button{display:flex;align-items:center;gap:7px;min-height:46px;padding:12px 0;border-bottom:1px solid transparent;color:#999;font-size:12px}
.music-library-sections>button[aria-pressed=true]{border-bottom-color:#444;color:#444}
.music-library-sections small{font-size:9px;color:#aaa}
.music-library-actions.music-library-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch;padding:18px 0 9px;margin:0}
.music-library-toolbar>button{min-width:0;min-height:38px;padding:9px 5px;border:1px solid #e5e5e5;border-radius:4px;background:#fff;color:#777;font-size:10px;white-space:nowrap}
.music-library-toolbar>button[data-music-tab]{display:flex;align-items:center;justify-content:center;gap:7px;background:#fafafa}
.music-library-toolbar>button>span{color:#aaa;font-size:12px}
.music-collections .music-net-library-heading{padding-left:0;padding-right:0}
.music-collections .music-local-section{padding-top:0}
.music-sync-empty-text{margin:0;padding:3px 0 20px;color:#aaa;font-size:11px;line-height:1.9}
@media(max-width:360px){.music-library-actions.music-library-toolbar{gap:6px}.music-library-toolbar>button{font-size:9px;padding-right:3px;padding-left:3px}}

/* Compact turntable player with a separate lyric page. */
.music-companions{margin:8px 0 12px;gap:20px}
.music-companions .avatar{width:30px;height:30px}
.music-companions>span{gap:4px}
.music-turntable.music-artwork{position:relative;display:block;width:clamp(180px,43vw,214px);height:auto;aspect-ratio:1;margin:7px auto 10px;padding:0;border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none;cursor:pointer}
.music-turntable.music-artwork>.music-vinyl{position:absolute;left:4.5%;bottom:0;display:block;width:91%;height:91%;border-radius:50%;background:repeating-radial-gradient(circle at center,transparent 0 2px,#ffffff09 2.5px 3px,transparent 3.5px 5px),conic-gradient(from 25deg,#111 0deg,#383838 43deg,#171717 78deg,#0c0c0c 150deg,#303030 215deg,#101010 270deg,#111 360deg);box-shadow:inset 0 0 0 1px #373737,0 8px 18px #00000014;animation:iris-vinyl-spin 18s linear infinite;animation-play-state:paused}
.music-turntable.is-playing>.music-vinyl{animation-play-state:running}
.music-vinyl-label{position:absolute;inset:30%;display:block;overflow:hidden;border:4px solid #424242;border-radius:50%;background:#e9e9e9}
.music-vinyl-label>img,.music-vinyl-label>.music-cover-placeholder{display:block;width:100%;height:100%;max-width:none;max-height:none;border-radius:50%;object-fit:cover}
.music-vinyl-label>.music-cover-placeholder{display:grid;place-items:center;background:#e9e9e9}
.music-vinyl-spindle{position:absolute;left:calc(50% - 3px);top:calc(50% - 3px);width:6px;height:6px;border:1px solid #fff;border-radius:50%;background:#555;box-shadow:0 0 0 2px #ffffff70}
.music-turntable.music-artwork>.music-tonearm{position:absolute;top:-4px;right:-5px;display:block;width:95px;height:160px;transform-origin:64px 17px;transform:rotate(-24deg);transition:transform .65s cubic-bezier(.2,.7,.3,1);background:transparent;pointer-events:none}
.music-turntable.is-playing>.music-tonearm{transform:rotate(5deg)}
.music-tonearm svg{display:block;width:100%;height:100%;overflow:visible;fill:none}
.music-arm-mount{fill:#e7e7e7;stroke:#c4c4c4;stroke-width:1}
.music-arm-pivot{fill:#888;stroke:#f7f7f7;stroke-width:2}
.music-arm-shadow{stroke:#00000018;stroke-width:8;transform:translate(2px,2px)}
.music-arm-metal{stroke:#aaa;stroke-width:5;stroke-linecap:round}
.music-arm-head{fill:#454545;stroke:#333;stroke-width:1}
@keyframes iris-vinyl-spin{to{transform:rotate(360deg)}}
.music-song-title h2{margin:10px 0 4px;font-size:17px}
.music-song-title>button{padding:6px;font-size:9px}
.music-timeline{margin-top:10px}
.music-player-controls{display:grid;grid-template-columns:42px 44px 54px 44px 42px;justify-content:center;align-items:center;gap:clamp(5px,2vw,18px);margin:8px 0}
.music-player-controls>button{min-width:0;min-height:42px;padding:0}
.music-player-controls [data-music-mode],.music-player-controls [data-music-queue]{display:flex;align-items:center;justify-content:center;height:42px;gap:0;color:#777}
.music-player-controls svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.music-player-controls small{color:#999;font-family:inherit;font-size:8px;white-space:nowrap}
.music-invite-row{margin:13px 0}
.music-discussion{margin-top:20px}
.music-page-body:has(.music-lyric-page){display:flex;flex-direction:column;overflow:hidden;padding-top:14px;padding-bottom:18px}
.music-lyric-page{display:flex;flex-direction:column;flex:1;min-height:0}
.music-lyric-page>header{display:flex;align-items:center;gap:18px;flex:none;padding:0 0 15px;border-bottom:1px solid #eee}
.music-lyric-page>header>button{flex:none;padding:8px 0;color:#888;font-size:11px}
.music-lyric-page>header>div{display:grid;gap:6px;min-width:0}
.music-lyric-page>header strong{overflow:hidden;color:#444;font-size:12px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.music-lyric-page>header small{color:#aaa;font-size:10px}
.music-lyric-surface{flex:1;min-height:0;overflow:hidden;cursor:pointer}
.music-lyric-page .music-lyrics{height:100%;max-height:none;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:100px 16px;scroll-behavior:smooth;scrollbar-width:none}
.music-lyric-page .music-lyrics::-webkit-scrollbar{display:none}
.music-lyric-page .music-lyrics p{margin:0;padding:12px 0;color:#aaa;font-size:14px;line-height:1.9;white-space:pre-wrap;transition:color .25s,transform .25s}
.music-lyric-page .music-lyrics p.active{color:#333;transform:scale(1.06)}
.music-lyric-page .music-lyrics .music-plain-lyrics{line-height:2.5;color:#777}
.music-lyric-tools{display:flex;flex:none;justify-content:center;gap:18px;padding-top:10px;border-top:1px solid #eee}
.music-lyric-tools button{padding:8px 0;color:#888;font-size:10px}
.music-lyric-page .music-lyrics-source{flex:none;margin:8px 0 12px}
.music-queue-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 0 15px;border-bottom:1px solid #eee}
.music-queue-heading strong{font-size:12px;font-weight:400;color:#555}
.music-queue-heading small{font-size:10px;color:#aaa}
.music-play-queue .is-current{background:#fafafa}
.music-play-queue .is-current strong{color:#111}
.music-play-queue i{font-size:10px}
@media(prefers-reduced-motion:reduce){.music-turntable .music-vinyl{animation:none}.music-turntable .music-tonearm,.music-lyric-page .music-lyrics p{transition:none}.music-lyric-page .music-lyrics{scroll-behavior:auto}}
.music-role-heading{gap:11px;padding:3px 0 10px}
.music-role-heading>.avatar{width:36px;height:36px;flex:0 0 36px}
.music-role-heading strong{font-size:12px;font-weight:400}
.music-role-heading small{font-size:9px}
.music-role-heading>button{padding:7px 9px;font-size:9px}
.music-role-generate{justify-content:flex-end;padding:10px 0 13px}
.music-role-generate>button{min-height:33px;padding:8px 14px;font-size:10px}
.music-song-title .music-current-lyric{display:block;min-height:22px;margin:7px auto 0;padding:0 12px;max-width:340px;overflow:hidden;color:#888;font-size:11px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}

/* Stationary player above an independently scrolling listening conversation. */
.music-page-body:has(.music-player-view){display:flex;flex-direction:column;overflow:hidden;padding:6px 0 0}
.music-player-view{display:flex;flex-direction:column;flex:1;min-height:0;container-type:size}
.music-player-top{flex:none}
.music-player-top .music-companions{margin:0 0 4px;gap:18px}
.music-player-top .music-companions .avatar{width:24px;height:24px}
.music-player-top .music-companions small{font-size:9px}
.music-player-top .music-companions>span{gap:2px}
.music-player-top .music-turntable{width:155px;margin:3px auto 5px}
.music-player-top .music-song-title h2{margin:5px 0 3px;font-size:15px}
.music-player-top .music-song-title>p{font-size:10px}
.music-player-top .music-current-lyric{min-height:19px;line-height:19px;margin-top:4px}
.music-player-top .music-timeline{margin-top:5px;max-width:340px}
.music-player-top .music-player-controls{margin:5px 0;grid-template-columns:42px 40px 48px 40px 42px;gap:12px}
.music-player-top .music-player-controls [data-music-play]{width:46px;height:46px;font-size:21px}
.music-player-top .music-invite-row{margin:7px 0 9px}
.music-player-top .music-invite-row button{padding:7px 16px;font-size:10px}
.music-player-view>.music-discussion{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;padding:10px 0 var(--app-bottom-gap,calc(20px + env(safe-area-inset-bottom,0px)));overflow:hidden}
.music-discussion>header{flex:none;min-height:25px;gap:12px}
.music-discussion>header [data-music-chat-expand]{padding:4px 0;color:#888;font-size:10px;border-bottom:0}
.music-player-view .music-messages{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;margin:7px 0 9px;padding:0 2px;scrollbar-width:thin}
.music-player-view .music-messages article{padding:9px 12px;margin:6px 0;border:1px solid #eee;border-radius:10px;background:#fafafa}
.music-player-view .music-messages article.mine{border-color:#e7e7e7;background:#f3f3f3}
.music-player-view .music-messages p{font-size:11px;line-height:1.85}
.music-discussion .music-chat-composer{display:grid;grid-template-columns:minmax(0,1fr);gap:0;flex:none;margin:0;padding:0;border:1px solid #e3e3e3;border-radius:12px;background:#fafafa;overflow:hidden;transition:border-color .2s}
.music-chat-composer:focus-within{border-color:#b9b9b9}
.music-discussion .music-chat-composer textarea{display:block;width:100%;box-sizing:border-box;min-height:43px;height:43px;max-height:80px;margin:0;padding:11px 13px 4px;border:0;border-radius:0;outline:0;background:transparent;color:#555;font-family:inherit;font-size:11px;line-height:1.8;resize:none}
.music-chat-composer textarea::placeholder{color:#aaa}
.music-chat-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:5px 9px 8px}
.music-discussion .music-chat-actions button{display:flex;align-items:center;justify-content:center;min-width:51px;min-height:29px;padding:6px 12px;border:1px solid #e2e2e2;border-radius:999px;background:#fff;color:#777;font-size:10px;line-height:1.4}
.music-discussion .music-chat-actions [data-music-reply]{border-color:#444;background:#444;color:#fff}
.music-discussion>.music-retry{flex:none;align-self:flex-end;padding:5px;font-size:10px;color:#888}
.music-page:has(.is-chat-expanded)>.music-tabs{display:none}
.music-player-view.is-chat-expanded>.music-player-top{display:none}
.music-player-view.is-chat-expanded>.music-discussion{padding-top:6px;padding-bottom:var(--app-bottom-gap,calc(20px + env(safe-area-inset-bottom,0px)));border-top:0}
.music-player-view.is-chat-expanded .music-discussion>header{padding:7px 0 12px;border-bottom:1px solid #eee}
.music-player-view.is-chat-expanded .music-messages{margin-top:12px}
.music-vinyl-label{inset:18%;border:3px solid #494949;box-shadow:0 0 0 2px #111}
.music-arm-base{fill:#f1f1f1;stroke:#d2d2d2;stroke-width:1}
.music-arm-mount{fill:url(#iris-arm-metal);stroke:#aaa;stroke-width:.7}
.music-arm-weight{fill:#6b6b6b;stroke:#bbb;stroke-width:.6}
.music-arm-metal{stroke:url(#iris-arm-metal);stroke-width:4;stroke-linejoin:round;stroke-linecap:round}
.music-arm-shadow{stroke:#00000012;stroke-width:5;transform:translate(2px,2px)}
.music-arm-highlight{fill:none;stroke:#ffffffb0;stroke-width:.8;stroke-linejoin:round}
.music-arm-head{fill:#404040;stroke:#777;stroke-width:.6}
.music-arm-needle{fill:none;stroke:#999;stroke-width:1}
.music-arm-pivot{fill:#6c6c6c;stroke:#eee;stroke-width:1}
.music-turntable.music-artwork>.music-tonearm{width:86px;height:145px;top:-4px;right:-7px;transform-origin:58px 17px;transform:rotate(-22deg)}
.music-turntable.is-playing>.music-tonearm{transform:rotate(3deg)}
@container(max-height:520px){.music-player-top .music-turntable{width:119px;margin-top:0;margin-bottom:2px}.music-player-top .music-companions{margin-bottom:0}.music-player-top .music-companions .avatar{width:20px;height:20px}.music-player-top .music-song-title h2{margin-top:2px;font-size:13px}.music-player-top .music-invite-row{margin-top:3px;margin-bottom:5px}.music-player-top .music-player-controls{margin:2px 0}}
@container(max-height:430px){.music-player-top .music-turntable{width:90px}.music-player-top .music-companions{display:none}.music-player-top .music-song-title>p:not(.music-current-lyric){display:none}.music-player-top .music-invite-row button{padding:5px 13px}.music-player-top .music-current-lyric{min-height:16px;line-height:16px}.music-player-top .music-player-controls [data-music-play]{width:40px;height:40px}.music-player-top .music-player-controls{grid-template-columns:42px 36px 40px 36px 42px}}
/* Land the stylus on the outer grooves, clear of the central cover art. */
.music-turntable.music-artwork>.music-tonearm{width:54%;height:91%;top:-3%;right:-10%;transform-origin:67.37% 11.87%}
.music-turntable.is-playing>.music-tonearm{transform:rotate(-5deg)}
@container(max-height:430px){.music-player-top .music-companions{display:flex;gap:12px}.music-player-top .music-companions .avatar{width:17px;height:17px}.music-player-top .music-companions small{font-size:8px}}

/* Music's URL-loaded Great Vibes wordmark doubles as contextual back navigation. */
.music-feature-brand{display:flex;align-items:baseline;gap:12px;min-width:0;max-width:100%}
.music-feature-brand .feature-page-wordmark{flex:none;font-family:"Great Vibes",cursive;font-weight:400}
.music-feature-brand .music-page-subtitle{min-width:0;max-width:min(55vw,290px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;letter-spacing:.4px}
.music-lyric-page{padding-top:0}
.music-discussion .music-chat-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-top:auto;column-gap:8px;padding:0;border:0;border-radius:0;background:transparent;overflow:visible}
.music-chat-composer:focus-within{border:0}
.music-discussion .music-chat-composer textarea{width:100%;height:34px;min-height:34px;max-height:34px;box-sizing:border-box;padding:6px 13px;border:1px solid #e4e4e4;border-radius:999px;background:#fafafa;color:#555;font-size:11px;line-height:20px;overflow-y:auto;scrollbar-width:none;resize:none}
.music-discussion .music-chat-composer textarea:focus{border-color:#aaa;outline:0}
.music-discussion .music-chat-actions{display:flex;align-items:end;gap:6px;padding:0;background:transparent}
.music-discussion .music-chat-actions button{min-width:42px;min-height:32px;height:32px;padding:6px 9px;box-sizing:border-box;border-radius:999px;font-size:10px;white-space:nowrap}
.music-discussion .music-chat-actions [data-music-reply]{min-width:58px}
.music-player-top{position:relative}
.music-player-top .music-companions{position:absolute;top:5px;left:0;right:0;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:0;margin:0;padding:0 8px;pointer-events:none}
.music-player-top .music-companions>span{gap:5px;max-width:64px}
.music-player-top .music-companions .avatar{width:36px;height:36px;flex:none}
.music-player-top .music-companions small{max-width:64px;font-size:10px}
.music-player-top .music-companions>i{display:none}
.music-player-top .music-turntable{width:clamp(190px,37cqh,240px);margin:2px auto 8px}
@container(max-height:520px){.music-player-top .music-turntable{width:180px;margin-bottom:5px}.music-player-top .music-companions .avatar{width:33px;height:33px}.music-player-top .music-companions small{font-size:9px}}
@container(max-height:430px){.music-player-top .music-turntable{width:155px}.music-player-top .music-companions .avatar{width:30px;height:30px}.music-player-top .music-companions small{font-size:9px}.music-player-top .music-companions{display:flex;gap:0}}

/* Keep the listening companions together above the record. */
.music-player-top .music-companions{position:static;display:flex;align-items:center;justify-content:center;gap:15px;margin:0 0 7px;padding:0;pointer-events:auto}
.music-player-top .music-companions>i{display:block;color:#aaa;font-family:"Great Vibes",cursive;font-size:21px;line-height:1}
.music-player-top .music-companions>span{max-width:84px;gap:4px}
.music-player-top .music-companions small{max-width:84px}
.music-discussion .music-chat-actions [data-music-chat-expand]{display:grid;place-items:center;flex:none;min-width:24px;width:24px;height:30px;padding:3px;border:0;border-radius:0;background:transparent;color:#999}
.music-chat-actions [data-music-chat-expand] svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.music-player-view .music-messages{margin-top:0}
@container(max-height:430px){.music-player-top .music-companions{gap:13px;margin-bottom:4px}}

/* The record page and listening chat occupy separate views. */
.music-player-view:not(.is-chat-expanded){overflow:hidden}
.music-player-view:not(.is-chat-expanded)>.music-player-top{padding:12px 0 var(--app-bottom-gap,calc(20px + env(safe-area-inset-bottom,0px)))}
.music-player-top .music-companions{gap:24px;margin-bottom:24px}
.music-player-top .music-companions .avatar{width:56px;height:56px;font-size:20px}
.music-player-top .music-companions>i{font-size:32px}
.music-player-top .music-turntable{width:clamp(220px,43cqh,300px);max-width:86%;margin:18px auto 22px}
.music-player-top .music-song-title h2{margin-top:10px}
.music-player-top .music-current-lyric{margin-top:10px}
.music-player-top .music-timeline{width:100%;margin-top:22px}
.music-player-top .music-player-controls{margin:18px 0}
.music-player-top .music-invite-row{margin-top:26px;margin-bottom:0}
.music-player-view.is-chat-expanded>.music-discussion>header{margin-bottom:12px}
.music-page-body:has(.music-player-view.is-chat-expanded){display:flex;overflow:hidden}
.music-player-view.is-chat-expanded{flex:1;min-height:0;overflow:hidden}
#featureScreen:has(.music-player-view.is-chat-expanded)>.feature-page-topbar{display:none}
@container(max-height:430px){.music-player-top .music-companions{gap:20px;margin-bottom:18px}.music-player-top .music-companions .avatar{width:48px;height:48px}.music-player-top .music-companions>i{font-size:28px}}

/* A quiet record sleeve for invitations sent in chat. */
.music-chat-invite{width:min(294px,100%);box-sizing:border-box;border:1px solid #e5e5e5;border-radius:9px;background:linear-gradient(145deg,#fff,#fcfcfc);box-shadow:0 5px 17px #00000005;color:#444}
.music-chat-invite-head{gap:10px;margin:0 15px;padding:9px 0 3px;border-bottom:0;letter-spacing:0}
.music-chat-invite-head .music-invite-wordmark{font-family:"Great Vibes",cursive;font-size:23px;font-weight:400;line-height:1.2;color:#555}
.music-chat-invite-head>small{flex:none;font-size:9px;color:#aaa;letter-spacing:.5px}
.music-chat-invite-song{gap:12px;padding:8px 15px 10px;min-width:0}
.music-chat-invite-song>.music-invite-artwork{position:relative;display:block;width:66px;height:54px;flex:0 0 66px;min-width:0}
.music-invite-artwork>.music-invite-record{position:absolute;right:0;top:2px;width:50px;height:50px;border-radius:50%;background:repeating-radial-gradient(circle,#252525 0 2px,#414141 2.5px 3px,#202020 3.5px 5px);box-shadow:inset 0 0 0 1px #333}
.music-chat-invite-song .music-invite-artwork>img,.music-invite-artwork>.music-chat-cover-placeholder{position:relative;z-index:1;display:block;width:54px;height:54px;min-width:54px;max-width:54px;aspect-ratio:1;border:1px solid #00000008;border-radius:4px;object-fit:cover;box-shadow:0 3px 9px #0000000a;box-sizing:border-box}
.music-invite-artwork>.music-chat-cover-placeholder{display:grid;place-items:center;background:#f0f0f0}
.music-chat-cover-placeholder svg{width:32px;height:32px;fill:none;stroke:#aaa;stroke-width:.7}
.music-chat-invite-song>.music-invite-song-copy{display:grid;gap:4px;min-width:0;flex:1}
.music-invite-song-copy>strong{color:#3d3d3d;font-size:13px;font-weight:500;line-height:1.45}
.music-invite-song-copy>small{color:#888;font-size:10px}
.music-invite-song-copy>span{overflow:hidden;color:#b0b0b0;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.music-chat-invite>.music-invite-reason{position:relative;margin:0 15px 8px;padding:0 0 0 9px;border-left:1px solid #dedede;color:#777;font-size:10px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.music-chat-invite-actions{align-items:center;justify-content:flex-end;gap:10px;margin:0 15px;padding:7px 0 9px;border-top:1px solid #ededed}
.music-chat-invite-actions button[data-music-invite-action=decline]{flex:none;width:auto;min-width:42px;padding:6px;border:0;border-radius:0;background:transparent;color:#aaa;font-size:10px}
.music-chat-invite-actions button[data-music-invite-action=accept]{display:flex;align-items:center;justify-content:space-between;flex:0 1 112px;gap:14px;padding:6px 11px;border:1px solid #414141;border-radius:6px;background:#414141;color:#fff;font-size:11px;line-height:1.6;letter-spacing:.5px}
.music-chat-invite-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.music-chat-invite-note{margin:0 15px;padding:7px 0 9px;border-top:1px solid #eee;color:#aaa;font-size:9px;letter-spacing:.3px}
.music-chat-invite.is-declined{box-shadow:none}
@media(max-width:360px){.music-chat-invite-head{margin-right:14px;margin-left:14px}.music-chat-invite-song{gap:11px;padding-right:14px;padding-left:14px}.music-chat-invite-head .music-invite-wordmark{font-size:22px}.music-chat-invite-actions{margin-right:14px;margin-left:14px}}
.music-chat-invite button.music-chat-invite-song{display:flex;align-items:center;width:100%;box-sizing:border-box;border:0;border-radius:0;background:transparent;text-align:left;font-family:inherit;cursor:pointer}
.music-chat-invite button.music-chat-invite-song:disabled{opacity:1;cursor:default}
.music-chat-invite button.music-chat-invite-song:focus-visible{outline:1px solid #aaa;outline-offset:-4px;border-radius:6px}
.music-dialog:not(.music-login-dialog)[open]{position:fixed;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;display:block!important;width:min(440px,calc(100vw - 32px));height:auto;min-height:0;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);box-sizing:border-box;padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.music-dialog:not(.music-login-dialog)>header{position:sticky;top:0;z-index:1;gap:18px;margin:0;padding:18px 24px 14px;background:#fff;border-bottom:1px solid #eee}
.music-dialog:not(.music-login-dialog)>.music-dialog-body{display:block;flex:none;min-height:0;max-height:none;overflow:visible;padding:20px 24px 24px}
.music-dialog:not(.music-login-dialog) [data-music-dialog-close]{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;outline:none;box-shadow:none;background:transparent;border-radius:0;line-height:1}
.music-dialog:not(.music-login-dialog) [data-music-dialog-close]:focus-visible{outline:none;color:#222}
@media(max-width:380px){.music-dialog:not(.music-login-dialog)[open]{width:calc(100vw - 28px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.music-dialog:not(.music-login-dialog)>header{padding:14px 18px 11px}.music-dialog:not(.music-login-dialog)>.music-dialog-body{padding:16px 18px 20px}}
/* Keep the app inside the visible viewport when Safari pans for the keyboard. */
/* Safe-area padding belongs inside the viewport, never in its height or insets. */
html,body{height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none}
body{top:0;bottom:0;height:auto}
.phone{top:var(--app-viewport-top,0px);bottom:var(--app-viewport-bottom,0px)}
/* Installed iOS uses the measured full viewport, not WebKit's inset-based
   fixed bottom. Keep the safe-area padding inside this explicit shell height. */
html[data-ios-standalone]{height:var(--app-wallpaper-height,100vh)}
html[data-ios-standalone] body{position:static;bottom:auto;height:var(--app-wallpaper-height,100vh);background:transparent}
html[data-ios-standalone] .phone{bottom:auto;height:var(--app-viewport-height,100vh)}
html body .phone:has(#settingsScreen:not([hidden]))::before,html body .phone:has(#featureScreen:not([hidden]))::before{display:none!important}
dialog[open]::backdrop{box-shadow:0 var(--app-safe-bottom,env(safe-area-inset-bottom,0px)) 0 var(--app-safe-bottom,env(safe-area-inset-bottom,0px)) rgb(0 0 0 / .32)}
body:has(.music-dialog[open]) .iris-guide-widget{visibility:hidden!important;pointer-events:none!important}

/* Compact playlist panel: the header stays visible while the contents scroll. */
.music-dialog.music-playlist-dialog[open]{display:flex!important;flex-direction:column;width:min(400px,calc(100vw - 32px));height:auto;max-height:min(380px,calc(var(--app-viewport-height,100dvh) * .52),calc(var(--app-viewport-height,100dvh) - 32px));top:calc(var(--app-viewport-top,0px) + var(--app-viewport-height,100dvh) / 2);overflow:hidden}
.music-dialog.music-playlist-dialog>header{position:relative;flex:none;padding:13px 18px 10px}
.music-dialog.music-playlist-dialog>header h2{margin:0;font-size:30px;line-height:1.2}
.music-dialog.music-playlist-dialog>.music-dialog-body{flex:0 1 auto;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;padding:12px 18px 16px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.music-playlist-dialog .music-cloud-playlist-head{gap:12px;min-width:0}
.music-playlist-dialog .music-cloud-playlist-head>div{min-width:0;gap:5px}
.music-playlist-dialog .music-cloud-playlist-head strong{overflow-wrap:anywhere;line-height:1.6}
.music-playlist-dialog .music-cloud-playlist-head img{width:52px;height:52px;min-width:52px;max-width:52px;max-height:52px;flex-basis:52px;aspect-ratio:1}
.music-playlist-dialog .music-cloud-playlist-actions{padding:10px 0}
.music-playlist-dialog .music-net-song-list article>button:first-child{padding:9px 0}
.music-net-song-list .music-song-favorited{display:block;flex:0 0 46px;width:46px;box-sizing:border-box;overflow:hidden;color:#999;font-size:9px;line-height:1.3;text-align:center;white-space:nowrap}
.music-dialog.music-queue-dialog[open]{max-height:min(56dvh,calc(var(--app-viewport-height,100dvh) - 40px))}
.music-dialog.music-queue-dialog>.music-dialog-body{max-height:min(48dvh,calc(var(--app-viewport-height,100dvh) - 112px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* Dedicated full-page listening conversation. */
#featureScreen:has(.music-chat-fullscreen)>.feature-page-topbar{display:none}
#featurePageContent:has(.music-chat-fullscreen){display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden}
#featurePageContent:has(.music-chat-fullscreen)>.music-chat-fullscreen{width:100%;margin-inline:0}
.music-chat-fullscreen{display:flex;flex:1;flex-direction:column;width:100%;max-width:none;min-height:0;margin:0;overflow:hidden}
.music-chat-page-header{display:flex;flex:none;align-items:center;justify-content:flex-start;min-height:44px;padding:24px var(--app-page-gutter) 9px;border-bottom:1px solid #eee;color:#555;font-size:13px}
.music-chat-brand{appearance:none;display:flex;align-items:baseline;gap:12px;width:auto;height:38px;min-width:0;margin:0;padding:0;color:#555;text-align:left}
@media(max-width:480px){.music-chat-page-header{padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:7px}}
.music-chat-page-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:0 var(--app-page-gutter);overflow:hidden}
.music-chat-page-body>.music-discussion{display:flex;flex:1;flex-direction:column;min-height:0;margin:0;padding:12px 0 max(10px,env(safe-area-inset-bottom,0px));overflow:hidden;border:0}
.music-chat-page-body .music-messages{flex:1;min-height:0;max-height:none;margin:0 0 12px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.music-chat-page-body .music-chat-composer{flex:none}
.music-dialog.music-edit-dialog[open]{max-height:min(70dvh,calc(var(--app-viewport-height,100dvh) - 40px))}
.music-dialog.music-edit-dialog>.music-dialog-body{max-height:min(62dvh,calc(var(--app-viewport-height,100dvh) - 110px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px 20px 18px}
.music-edit-dialog textarea[name="lyrics"]{height:92px;min-height:92px;max-height:120px}

/* Let page backgrounds and scroll surfaces reach the shell edges. Keep the
   original content gutters inside those surfaces instead of clipping at them. */
.phone{--app-shell-gutter:48px}
.settings-screen,.feature-screen{--app-page-gutter:48px}
@media(min-width:850px){.phone{--app-shell-gutter:65px}}
@media(max-width:480px){.phone{--app-shell-gutter:25px}.settings-screen,.feature-screen{--app-page-gutter:25px}}
.conversation{margin-inline:calc(0px - var(--app-shell-gutter));padding-inline:calc(var(--app-shell-gutter) - 12px)}
.conversation.is-offline-story{padding-inline:calc(var(--app-shell-gutter) - 12px + clamp(20px,5.5vw,52px))}
@media(max-width:480px){.conversation.is-offline-story{padding-inline:calc(var(--app-shell-gutter) + 8px)}}
.settings-content,.feature-page-content{width:calc(100% + 2 * var(--app-page-gutter));margin-inline:calc(0px - var(--app-page-gutter));padding-inline:var(--app-page-gutter);align-self:center}
.settings-content{max-width:calc(540px + 2 * var(--app-page-gutter))}
/* Settings with their own scroller keep the tabs fixed and share the same edge. */
.settings-content.is-online-settings>.online-settings-panel,
.settings-content.is-system-settings>.api-config-panel,
.settings-content.is-system-settings>.settings-page-body{margin-inline:calc(0px - var(--app-page-gutter));padding-inline:var(--app-page-gutter)}
.feature-page-content:has(.iris-reading){width:calc(100% + 2 * var(--app-page-gutter));margin-inline:calc(0px - var(--app-page-gutter));padding-inline:var(--app-page-gutter)}
.reading-reader{width:calc(100% + 2 * var(--app-page-gutter));margin-inline:calc(0px - var(--app-page-gutter))}
/* Music has its own page/body/player boundaries; give each scroll owner the
   full surface so the tonearm and other artwork can paint into the gutter. */
.music-page{width:calc(100% + 2 * var(--app-page-gutter));max-width:none;margin-inline:calc(0px - var(--app-page-gutter))}
.music-tabs{padding-inline:var(--app-page-gutter)}
.music-page-body{padding-inline:var(--app-page-gutter)}
.music-page-body:has(.music-player-view){padding-inline:var(--app-page-gutter)}
.music-player-view{width:calc(100% + 2 * var(--app-page-gutter));margin-inline:calc(0px - var(--app-page-gutter));padding-inline:var(--app-page-gutter)}

.settings-content.is-memory-settings{max-width:calc(100% + 2 * var(--app-page-gutter))}
.settings-content.is-memory-settings #onlineSettingsPanel{width:calc(100% + 2 * var(--app-page-gutter));max-width:none;margin-inline:calc(0px - var(--app-page-gutter));padding-inline:var(--app-page-gutter)}
.settings-content.is-system-settings>.api-config-panel{max-width:none}
.settings-content.is-offline-settings>.offline-general-settings{margin-inline:calc(0px - var(--app-page-gutter));padding-inline:calc(var(--app-page-gutter) + 1px)}
.settings-content.is-offline-settings>.offline-records-list{margin-inline:calc(0px - var(--app-page-gutter));padding-inline:calc(var(--app-page-gutter) + 2px)}
@media(max-width:480px){.settings-content.is-offline-settings>.offline-records-list{padding-inline:calc(var(--app-page-gutter) + 1px)}}

/* Chat previews show the full shell; only their conversation scrolls. */
.beautify-preview-panel iframe{width:min(100%,390px);height:640px;max-height:none;margin-inline:auto}
.beautify-preview-mode{display:flex;align-items:center;gap:8px;color:#777;font-size:12px}
.beautify-preview-segments{display:inline-flex;gap:3px;padding:3px;border:1px solid #e9e9e9;border-radius:999px;background:#f4f4f4}
.beautify-preview-segments label{position:relative;cursor:pointer}
.beautify-preview-segments input{position:absolute;width:1px;height:1px;opacity:0}
.beautify-preview-segments label>span{display:block;padding:7px 13px;border-radius:999px;color:#999;font-size:11px;line-height:1.3;white-space:nowrap}
.beautify-preview-segments input:checked+span{background:#fff;color:#444;box-shadow:0 1px 4px #0000000d}
.beautify-preview-segments input:focus-visible+span{outline:2px solid #979797;outline-offset:2px}
.api-profile-feature-list{display:grid;gap:13px}
.api-feature-group h4{margin:0 0 7px;color:#999;font-size:10px;font-weight:400;letter-spacing:.4px}
.api-feature-group>div{display:grid;gap:6px}

/* Image input edits the API configuration used by online chat. */
.chat-image-input-preference .settings-switch-row{gap:16px}
.chat-image-input-preference .settings-switch-row>span{min-width:0;flex:1}
.chat-image-input-preference .settings-switch-row>i{flex:0 0 34px}
.chat-image-input-preference .chat-image-input-scope{margin:0;padding:0 0 12px;color:#999;font-size:9px;line-height:1.7}
.chat-image-input-preference input:focus-visible+i{outline:2px solid #888;outline-offset:4px}
.chat-image-input-preference input:disabled+i{opacity:.45}
.chat-avatar-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 2px;border-top:1px solid #eee}
.chat-avatar-setting>span{flex:1;min-width:0}.chat-avatar-setting strong{display:block;font-size:12px;font-weight:500;color:#555}.chat-avatar-setting small{display:block;margin-top:5px;font-size:9px;line-height:1.7;color:#999}
.chat-avatar-setting select{flex:none;max-width:46%;padding:8px 2px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;font:inherit;font-size:11px;color:#666}

/* Real photos have no bubble; timestamps never take width away from the image. */
.message-type-image:not(.message-image-description)>.message-content{flex:0 0 auto;width:min(62vw,240px);max-width:calc(100% - 42px)}
.message-type-image:not(.message-image-description) .message-bubble-line>.message-image{flex:0 0 100%;width:100%;padding:0;border:0;background:transparent;box-shadow:none;border-radius:4px}
.message-type-image:not(.message-image-description) .message-bubble-line>.message-time{position:absolute;bottom:0;left:calc(100% + 7px);width:max-content;margin:0;white-space:nowrap}
.message-type-image.mine:not(.message-image-description) .message-bubble-line>.message-time{right:calc(100% + 7px);left:auto}
.message-image:focus-visible{outline:2px solid #888;outline-offset:3px}

/* Follow-up preferences share the quiet rows in Online / More. */
.is-online-settings .life-followups{color:#666}
.life-followups .settings-switch-row{gap:16px}
.life-followups .settings-switch-row>span{flex:1;min-width:0}
.life-followups .settings-switch-row small{line-height:1.8}
.life-followups .settings-switch-row>i{flex:0 0 34px}
.life-followups .settings-switch-row input:focus-visible+i{outline:2px solid #888;outline-offset:4px}
.life-followups .life-followup-disclosure{border-top:1px solid #f0f0f0}
.life-followups .life-followup-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 0;list-style:none;font-size:10px;line-height:1.6}
.life-followups .life-followup-disclosure>summary::-webkit-details-marker{display:none}
.life-followups .life-followup-disclosure>summary span{margin:0;color:#777}
.life-followups .life-followup-summary-end{display:flex;align-items:center;gap:10px;flex:none}
.life-followups .life-followup-summary-end small{font-size:9px;color:#aaa}
.life-followups .life-followup-summary-end i{font-size:13px;font-style:normal;color:#aaa;transition:transform .18s}
.life-followup-disclosure[open]>summary .life-followup-summary-end i{transform:rotate(45deg)}
.life-followups .life-followup-list{margin-top:12px}
.life-followups .life-followup-list article{padding:12px 0}
.life-followups .life-followup-list header strong{font-size:11px;line-height:1.7;color:#555}
.life-followups .life-followup-list header small{flex:none;font-size:8px;padding:2px 6px;border-radius:4px;background:#f4f4f4;color:#999}
.life-followups .life-followup-list p{margin:8px 0;font-size:10px;line-height:1.8}
.life-followups .life-followup-list small{font-size:9px}
.life-followups .life-followup-list summary{font-size:10px}
.life-followups .life-followup-note{margin:12px 0 0;font-size:8px;line-height:1.7;color:#aaa}

/* A quiet editorial timeline: one node and one card per release. */
.release-notice-dialog{width:min(420px,calc(100vw - 32px));max-height:min(86dvh,780px);margin:auto;padding:0;overflow:hidden;border:1px solid #e5e5e5;border-radius:22px;background:#fdfdfd;color:#555;box-shadow:0 24px 90px #00000018,0 3px 12px #00000005;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.release-notice-dialog::backdrop{background:#16161630;backdrop-filter:blur(7px)}
.release-notice-card{display:flex;flex-direction:column;max-height:inherit;padding:25px 27px 0;background:linear-gradient(135deg,#fff,#fcfcfc);box-sizing:border-box}
.release-notice-card>header,.release-notice-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.release-notice-brand{font:34px/1.1 "Great Vibes","Snell Roundhand",cursive;color:#555;letter-spacing:-.5px}
#irisReleaseNotice .release-notice-close{appearance:none;-webkit-appearance:none;box-sizing:border-box;display:grid;place-items:center;flex:0 0 40px;width:40px;min-width:40px;max-width:40px;height:40px;min-height:40px;max-height:40px;margin:-5px;padding:5px;border:0;border-radius:50%;background:transparent;color:#999;line-height:0;box-shadow:none;transform:none}
#irisReleaseNotice .release-notice-close>svg{display:block;flex:none;width:30px;height:30px;max-width:none;max-height:none;overflow:visible}
#irisReleaseNotice .release-notice-close path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
#irisReleaseNotice .release-notice-close:hover{color:#555}
#irisReleaseNotice .release-notice-close:focus,#irisReleaseNotice .release-notice-close:focus-visible{outline:none}
#irisReleaseNotice .release-notice-close:focus-visible{outline:1px solid #888;outline-offset:2px;border-radius:4px}
.release-notice-heading{flex-shrink:0;padding:25px 0 26px}
.release-notice-eyebrow{display:flex;align-items:center;gap:10px}
.release-notice-eyebrow>span{width:18px;height:1px;background:#bdbdbd}
.release-notice-eyebrow>small{font:400 8px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:2.2px;color:#999}
.release-notice-heading h2{margin:12px 0 0;font-family:"Noto Serif SC","Songti SC","STSong",serif;font-size:25px;font-weight:400;line-height:1.4;letter-spacing:4px;color:#4d4d4d}
.release-timeline{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 -5px 0 -6px;padding:4px 5px 20px 6px;list-style:none;scrollbar-width:thin;scrollbar-color:#ddd transparent}
.release-timeline-entry{position:relative;padding:0 0 20px 23px}
.release-timeline-entry:last-child{padding-bottom:0}
.release-timeline-entry:not(:last-child)::before{position:absolute;top:26px;bottom:-26px;left:4px;width:1px;background:#e3e3e3;content:""}
.release-timeline-node{position:absolute;top:23px;left:0;width:9px;height:9px;box-sizing:border-box;border:1px solid #c7c7c7;border-radius:50%;background:#fdfdfd;box-shadow:0 0 0 4px #fdfdfd}
.release-timeline-entry.is-current>.release-timeline-node{border:3px solid #666;background:#fff;box-shadow:0 0 0 4px #fdfdfd,0 0 0 5px #ededed}
.release-timeline-entry>details{overflow:hidden;border:1px solid #e8e8e8;border-radius:12px;background:#fff;box-shadow:0 3px 10px #00000002}
.release-timeline-entry.is-current>details{border-color:#e1e1e1;box-shadow:0 4px 15px #00000003}
.release-timeline-entry>details>summary{padding:17px 17px 15px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.release-timeline-entry>details>summary::-webkit-details-marker{display:none}
.release-version-line{display:flex;align-items:center;gap:10px;min-height:22px}
.release-version-line strong{display:flex;align-items:baseline;gap:3px;font:22px/1.1 Georgia,"Times New Roman",serif;font-variant-numeric:lining-nums;letter-spacing:-.4px;color:#555}
.release-version-line strong>span{font:italic 12px/1 Georgia,serif;color:#999}
.release-version-line small{display:flex;align-items:center;gap:4px;margin-top:2px;font-size:8px;color:#999;white-space:nowrap}
.release-version-line small>span{width:3px;height:3px;border-radius:50%;background:#aaa}
.release-version-line i{flex:none;width:5px;height:5px;margin:0 2px 0 auto;border-right:1px solid #aaa;border-bottom:1px solid #aaa;transform:rotate(45deg);transition:transform .18s}
.release-timeline-entry>details[open]>summary .release-version-line i{transform:rotate(225deg)}
.release-timeline-entry time{display:block;margin-top:9px;font-size:8px;font-variant-numeric:tabular-nums;letter-spacing:1.2px;color:#aaa}
.release-version-content{margin:0 17px;padding:16px 0 19px;border-top:1px solid #efefef}
.release-version-content ul{display:grid;gap:13px;margin:0;padding:0;list-style:none}
.release-version-content li{position:relative;padding-left:11px;font-size:11px;line-height:1.9;overflow-wrap:anywhere;color:#777}
.release-version-content li::before{position:absolute;left:0;top:10px;width:3px;height:3px;border-radius:50%;background:#c5c5c5;content:""}
.release-author-note{margin-top:19px;padding-top:15px;border-top:1px solid #eee}.release-author-note h3{margin:0 0 9px;color:#555;font-size:11px;font-weight:500;letter-spacing:1px}.release-author-note p{margin:8px 0 0;color:#777;font-size:11px;line-height:1.95;overflow-wrap:anywhere}.release-author-note strong{color:#b13e38;font-weight:600}
.release-notice-card>footer{margin:0 -27px;padding:17px 27px 20px;border-top:1px solid #ededed;background:#fdfdfd}
.release-notice-card>footer small{font-size:8px;line-height:1.7;color:#aaa;letter-spacing:.2px}
.release-notice-card>footer button{display:flex;align-items:center;justify-content:space-between;gap:22px;flex:none;min-width:103px;padding:11px 15px;border:1px solid #ddd;border-radius:8px;background:#fff;color:#666;font-size:10px;box-shadow:0 2px 3px #00000002;transition:border-color .18s,background .18s}
.release-notice-card>footer button:hover{border-color:#bbb;background:#f7f7f7}
.release-notice-card>footer button span{font-size:13px;color:#999}
.release-notice-card button:focus-visible,.release-timeline-entry summary:focus-visible{outline:2px solid #888;outline-offset:-3px}
@media(max-width:360px){.release-notice-card{padding:22px 20px 0}.release-notice-heading{padding:20px 0}.release-timeline-entry{padding-left:20px}.release-timeline-entry>details>summary{padding:15px 14px}.release-version-content{margin-inline:14px}.release-notice-card>footer{margin-inline:-20px;padding-inline:20px}.release-version-line strong{font-size:20px}}

/* Chinese experience categories use the URL-loaded fonts in assets/fonts/fonts.css. */
.experiences-page,.experiences-feature-brand>small{font-family:"LXGW WenKai","Iris Kai","Songti SC",serif;font-style:normal;font-weight:400}
.experiences-page{min-width:0;padding:0 0 30px;color:#555}
.experiences-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:0;width:100%;min-width:0;border-bottom:1px solid #ededed}
.experiences-tabs::-webkit-scrollbar{display:none}
.experiences-tab{position:relative;min-width:0;width:100%;margin:0;padding:11px 1px 13px;border:0;background:transparent;color:#aaa;font:inherit;font-size:clamp(9px,2.5vw,11px);line-height:1.8;letter-spacing:0;white-space:nowrap;text-align:center}
.experiences-tab[aria-selected="true"]{color:#444}
.experiences-tab[aria-selected="true"]::after{position:absolute;right:0;bottom:0;left:0;height:1px;background:#555;content:""}
.experiences-tab:focus-visible{outline:2px solid #999;outline-offset:-2px}
.experiences-category-content{padding:28px 0;color:#aaa;font-size:13px;line-height:1.8}
.experiences-category-content>p{margin:0}

/* Experiences shares the compact feature header and safe-area spacing of Reading. */
.feature-page-topbar:has(.experiences-feature-brand){justify-content:space-between;gap:12px;padding-top:24px;padding-bottom:12px;min-height:84px}
.feature-page-topbar:has(.experiences-feature-brand) #featurePageTitle{flex:1 1 auto;min-width:0}
.experiences-feature-brand{min-width:0;max-width:100%;align-items:baseline;gap:8px;transform:translateY(3px)}
.experiences-feature-brand .feature-page-wordmark{flex:none;font-family:"Great Vibes","Snell Roundhand",cursive;font-style:normal;line-height:1.3}
.experiences-feature-brand .experiences-page-subtitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"LXGW WenKai","Iris Kai",serif;font-size:11px;font-style:normal;color:#999;letter-spacing:0}
.timeline-role-switch{position:relative;display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;margin:0;align-self:center;cursor:pointer}
.timeline-role-avatar{display:grid;place-items:center;box-sizing:border-box;width:34px;height:34px;overflow:hidden;border:1px solid #eee;border-radius:50%;background:#f3f3f3;color:#aaa}
.timeline-role-avatar>img{display:block;width:100%;height:100%;object-fit:cover}
.timeline-role-avatar>svg{width:19px;height:19px;stroke-width:1.3}
.timeline-role-switch select{position:absolute;inset:0;appearance:none;-webkit-appearance:none;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;font-size:16px;opacity:0;cursor:pointer}
.timeline-role-switch:focus-within .timeline-role-avatar{outline:1px solid #999;outline-offset:3px}
.feature-page-content:has(.experiences-page){padding-top:8px}
.experience-future-panel{padding:40px 0;color:#aaa;font-size:13px;line-height:1.9}
.life-timeline{min-width:0;padding:9px 0 24px;font-family:"LXGW WenKai","Iris Kai","Songti SC",serif;color:#555}
.life-timeline button{font-family:inherit}
.life-timeline button:disabled{opacity:.45;cursor:default}
.timeline-filterbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin-bottom:22px;border-bottom:1px solid #eee}
.timeline-filters{display:flex;align-items:center;gap:clamp(6px,1.5vw,16px);min-width:0}
.timeline-filters>button{display:inline-flex;align-items:baseline;gap:4px;flex:none;min-height:44px;padding:10px 0;border:0;border-bottom:1px solid transparent;color:#aaa;font-size:12px;white-space:nowrap;line-height:1.6}
.timeline-filters>button[aria-pressed="true"]{border-bottom-color:#666;color:#444}
.timeline-filters [data-timeline-count]{font-family:Georgia,serif;font-size:.9em;color:#b7b1aa}
.timeline-filters>button[aria-pressed="true"] [data-timeline-count]{color:#777}
.timeline-actions{display:flex;align-items:center;gap:14px;flex:none;min-width:0}
.timeline-sort-control{position:relative;display:inline-flex;align-items:center;flex:none;min-height:44px;padding-right:11px;color:#999;font-size:11px;white-space:nowrap;cursor:pointer}
.timeline-sort-control::after{position:absolute;right:1px;top:calc(50% - 3px);width:4px;height:4px;border-right:1px solid #aaa;border-bottom:1px solid #aaa;transform:rotate(45deg);content:"";pointer-events:none}
.timeline-sort-control select{position:absolute;inset:0;appearance:none;-webkit-appearance:none;width:100%;height:100%;padding:0;border:0;font-size:16px;opacity:0;cursor:pointer}
.timeline-sort-control:focus-within{color:#555;outline:none}
.timeline-sort-control select:focus,.timeline-sort-control select:focus-visible{outline:none}
.timeline-sort-control:focus-within>span{box-shadow:0 1px 0 #bbb}
.timeline-analyze{display:inline-flex;align-items:center;justify-content:center;flex:none;min-height:30px;margin:0;padding:4px 7px;border:1px solid #555;border-radius:3px;background:#555;color:#fff;font-size:11px;white-space:nowrap;line-height:1.6}
.timeline-analyze:hover{background:#444;border-color:#444;color:#fff;filter:none}
.timeline-feedback{margin:0 0 20px;color:#999;font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.timeline-feedback:empty{display:none}
.timeline-feedback.is-error{color:#a25750}
.timeline-sort-note{margin:0 0 20px;color:#aaa;font-size:11px;line-height:1.9}
.timeline-list{min-width:0}
.timeline-entry{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;margin-left:4px;padding:0 0 16px 18px;border-left:1px solid #e8e8e8;overflow-wrap:anywhere}
.timeline-entry::before{position:absolute;top:8px;left:-4px;width:7px;height:7px;border:1px solid #aaa;border-radius:50%;background:#aaa;content:""}
.timeline-entry.is-pending::before{background:#fff;border-color:#b6a68f}
.timeline-entry:last-child{padding-bottom:8px}
.timeline-entry-main{display:block;grid-column:1/-1;width:100%;min-width:0;padding:0;border:0;background:none;color:inherit;text-align:left;overflow-wrap:anywhere}
.timeline-entry-main:hover{filter:none}
.timeline-entry-main:focus-visible{outline:1px solid #aaa;outline-offset:5px;border-radius:3px}
.timeline-entry-meta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;color:#aaa;font-size:11px;line-height:1.8}
.timeline-entry-meta>span:first-child{min-width:0}
.timeline-status{flex:none;color:#aaa;font-size:10px;white-space:nowrap}
.is-pending .timeline-status{color:#a18b6e}
.timeline-entry-title{display:block;margin:5px 0 4px;color:#505050;font-size:16px;line-height:1.5;font-weight:400;letter-spacing:.5px}
.timeline-entry-tags{display:flex;flex-wrap:nowrap;gap:5px 10px;margin-bottom:4px;min-width:0;color:#aaa;font-size:10px;line-height:1.6}
.timeline-entry-tags>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-entry-tags>span:first-child{flex:none}
.timeline-entry-preview{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin:0;color:#888;font-size:12px;line-height:1.7;white-space:pre-wrap}
.timeline-detail{grid-column:1;grid-row:2;min-width:0;margin-top:3px;font-size:11px;color:#aaa}
.timeline-detail>summary{width:fit-content;min-height:32px;padding:6px 0;cursor:pointer}
.timeline-detail>div{padding:8px 0 3px}
.timeline-entry-description{margin:0 0 16px;color:#666;font-size:13px;line-height:2;white-space:pre-wrap}
.timeline-detail dl{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px 10px;margin:0;line-height:1.8}
.timeline-detail dt{color:#aaa}
.timeline-detail dd{margin:0;color:#777;white-space:pre-wrap}
.timeline-entry-actions{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin-top:3px;padding:0}
.timeline-entry:has(.timeline-detail[open]) .timeline-detail{grid-column:1/-1}
.timeline-entry:has(.timeline-detail[open]) .timeline-entry-actions{grid-row:3;grid-column:1/-1;justify-content:flex-end}
.timeline-entry-actions button{min-height:32px;padding:4px 0;color:#999;font-size:11px}
.timeline-entry-actions .timeline-delete{margin-left:auto;color:#b2a49d}
.timeline-empty{padding:42px 8px 55px;text-align:center}
.timeline-empty strong{font-size:16px;font-weight:400;color:#999;letter-spacing:1px}
.timeline-empty p{max-width:265px;margin:12px auto 0;color:#bbb;font-size:12px;line-height:2}
.life-timeline .timeline-primary{flex:none;min-height:40px;padding:9px 14px;border:1px solid #555;border-radius:4px;background:#555;color:#fff;font-size:12px;white-space:nowrap;line-height:1.6}
.timeline-editor{display:grid;gap:10px;margin:3px 0 18px;padding:14px;border:1px solid #e7e7e7;border-radius:10px;background:#fcfcfc}
.timeline-editor-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;min-width:0;margin-bottom:2px}
.timeline-editor-heading h3{flex:none;margin:0;font-size:17px;font-weight:400;color:#555}
.timeline-editor-heading>span{min-width:0;color:#aaa;font-size:11px;overflow-wrap:anywhere}
.timeline-field{display:flex;flex-wrap:wrap;align-content:start;gap:5px;min-width:0;font-size:12px;color:#888;line-height:1.6}
.timeline-required{color:#aaa;font-size:10px}
.timeline-editor input,.timeline-editor select,.timeline-editor textarea{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:7px 8px;border:1px solid #e7e7e7;border-radius:4px;background:#fff;color:#555;font-family:inherit;font-size:14px;line-height:1.7}
.timeline-editor input,.timeline-editor select{min-height:36px}
.timeline-editor input::placeholder,.timeline-editor textarea::placeholder{color:#bbb}
.timeline-editor textarea{min-height:78px;max-height:140px;overflow-y:auto;resize:vertical}
.timeline-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.timeline-editor-more{min-width:0;color:#999;font-size:11px}
.timeline-editor-more>summary{padding:4px 0;cursor:pointer}
.timeline-editor-more[open]>.timeline-field{margin-top:7px}
.timeline-form-note{margin:0;color:#aaa;font-size:11px;line-height:1.9}
.timeline-editor-actions{display:flex;justify-content:flex-end;align-items:center;gap:20px;padding-top:2px}
.timeline-editor-actions>button{min-height:42px;padding:8px 5px;color:#999;font-size:12px}
@media(max-width:480px){
 .feature-page-topbar:has(.experiences-feature-brand){min-height:calc(var(--app-safe-top,env(safe-area-inset-top)) + 56px);gap:8px;padding-top:var(--app-safe-top,env(safe-area-inset-top));padding-bottom:12px}
 .experiences-feature-brand{gap:6px}
 .experiences-feature-brand .feature-page-wordmark{font-size:32px}
 .experiences-feature-brand .experiences-page-subtitle{font-size:10px}
 .timeline-role-switch{flex-basis:38px}
 .timeline-filterbar{gap:8px}
 .timeline-filters{gap:8px}
 .timeline-filters>button{gap:3px;font-size:11px}
 .timeline-entry-actions button{min-height:32px}
 .timeline-actions{gap:10px}
 .timeline-sort-control{font-size:10px}
 .timeline-analyze{font-size:11px}
 .timeline-editor{padding:12px}
 .timeline-editor input,.timeline-editor textarea,.timeline-editor select{font-size:16px}
 .timeline-field-grid{gap:9px 10px}
 .timeline-entry{padding-left:18px}
 .timeline-entry-meta{font-size:10px}
}
@media(max-width:340px){
 .experiences-feature-brand .feature-page-wordmark{font-size:30px}
 .timeline-filterbar{gap:6px}
 .timeline-filters{gap:6px}
 .timeline-filters>button{gap:2px;font-size:10px}
 .timeline-actions{gap:8px}
 .timeline-analyze{font-size:10px}
 .timeline-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .timeline-detail dl{grid-template-columns:65px minmax(0,1fr);gap:7px}
}
.backup-counts{flex-wrap:wrap}

.timeline-field-grid>.timeline-field:last-child{grid-column:1/-1}
.timeline-editor-actions{gap:8px}
.timeline-editor-actions>[data-timeline-cancel]{margin-right:auto}
.timeline-editor-actions>.timeline-confirm{min-height:40px;padding:8px 12px;border:1px solid #777;border-radius:4px;background:#fff;color:#555;font-size:12px;white-space:nowrap}
.timeline-editor-actions>.timeline-confirm:disabled{border-color:#ddd;background:#f6f6f6;color:#999;opacity:1}

.timeline-bulk-actions{display:flex;justify-content:flex-end;margin:0 0 12px}
.timeline-bulk-actions[hidden]{display:none}
.timeline-bulk-confirm{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:6px 12px;border:1px solid #ccc;border-radius:3px;background:transparent;color:#666;font:inherit;font-size:11px;cursor:pointer}
.timeline-bulk-confirm:hover:not(:disabled){border-color:#777;color:#333;background:rgba(0,0,0,.025)}
.timeline-bulk-confirm:focus-visible{outline:1px solid #888;outline-offset:3px}
.timeline-bulk-confirm:disabled{opacity:.4;cursor:default}

/* Keep experience navigation outside the scrolling timeline body. */
.feature-page-content:has(.experiences-page){display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.experiences-page{display:flex;flex:1;flex-direction:column;min-height:0;padding-bottom:0;overflow:hidden}
.experiences-tabs{flex:none}
.life-timeline{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:0}
.life-timeline[hidden]{display:none}
.timeline-filterbar{flex:none;margin-bottom:0}
.timeline-scroll-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-top:18px;padding-bottom:calc(24px + env(safe-area-inset-bottom));scrollbar-width:thin}
.experience-future-panel{flex:1;min-height:0;overflow-y:auto}
.experience-future-panel[hidden]{display:none}

/* Growth archive: camera viewfinder and age focus dial. */
.growth-panel{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:12px 3px calc(28px + env(safe-area-inset-bottom));scrollbar-width:thin}
.growth-panel[hidden]{display:none}
.growth-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px;font-size:11px}
.growth-tools button,.growth-tools summary,.growth-form button,.growth-upload,.growth-empty button,.growth-suggestions button{border:1px solid #d9d6d1;border-radius:3px;background:transparent;color:#68645e;padding:8px 10px;font:inherit;font-size:11px;cursor:pointer;line-height:1.6;min-height:36px}
.growth-tools details{flex-basis:100%;font-size:11px;color:#999}
.growth-tools summary{display:inline-block;border:0;padding-left:0;min-height:32px}
.growth-tools details>label{display:flex;align-items:center;gap:8px;margin:8px 0}
.growth-tools select{max-width:160px;color:#777;background:transparent;border:1px solid #ddd;padding:5px;font:inherit}
.growth-empty{text-align:center;padding:38px 12px;color:#aaa;font-size:12px;line-height:1.9}
.growth-empty>span{font-size:60px;color:#c2b4a6}
.growth-empty h3{font-weight:400;font-size:17px;color:#817568}
.growth-form{display:flex;flex-direction:column;gap:12px;max-width:480px;margin:auto;font-size:12px;color:#777;line-height:1.8}
.growth-form h3{font-size:17px;font-weight:400;margin:6px 0;color:#666}
.growth-form label{display:flex;flex-direction:column;gap:5px;min-width:0}
.growth-form input:not([type=checkbox]):not([type=file]),.growth-form textarea{box-sizing:border-box;min-width:0;width:100%;border:1px solid #e6e2dc;background:#fffefa66;border-radius:3px;padding:9px 10px;font:inherit;font-size:13px;color:#555}
.growth-form textarea{resize:vertical;min-height:65px}
.growth-age-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.growth-detail-top{display:flex;align-items:center;justify-content:space-between;color:#aaa;font-size:10px}
.growth-detail-top button,.growth-form>[data-growth-back]{align-self:flex-start;border:0;padding-left:0}
.growth-photo-edit{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:14px;background:#f7f5f0}
.growth-photo-edit>img{display:block;width:100%;height:210px;object-fit:contain}
.growth-photo-edit>span{width:100%;text-align:center;padding:28px 0;color:#aaa}
.growth-upload{display:inline-flex!important;justify-content:center}
.growth-form .growth-upload input[hidden]{display:none}
.growth-links label,.growth-form fieldset label{flex-direction:row;align-items:flex-start;gap:8px;padding:5px 0}
.growth-form input[type=checkbox]{flex:none;accent-color:#8b8176;margin-top:4px}
.growth-form fieldset{border:1px solid #e5e0d8;border-radius:3px;padding:12px}
.growth-note,.growth-base p,.growth-links p{margin:0;color:#aaa;font-size:11px;white-space:pre-wrap}
.growth-base,.growth-links{padding:10px 0;border-bottom:1px solid #eee}
.growth-form summary{cursor:pointer}
.growth-form-actions,.growth-order{display:flex;gap:8px;flex-wrap:wrap}
.growth-form-actions .growth-save,.growth-form>.growth-save{margin-left:auto;background:#68645e;border-color:#68645e;color:#fff}
.growth-order{font-size:10px;justify-content:space-between}
.growth-evidence,.growth-suggestions{font-size:11px;line-height:1.9;padding:12px;background:#f8f6f1;overflow-wrap:anywhere}
.growth-evidence strong{font-weight:400;color:#8b7860}
.growth-form blockquote{margin:8px 0;padding:6px 10px;border-left:1px solid #d7cbbb;color:#999;white-space:pre-wrap}
.growth-form blockquote p{margin:4px 0}
.growth-suggestions{margin-top:18px}
.growth-suggestions h3,.growth-suggestions h4{font-weight:400;color:#776b60}
.growth-suggestions article{padding:10px 0;border-top:1px solid #e9e4db}
.growth-panel button:disabled{opacity:.45;cursor:default}
/* A single frame stays centered as the age ruler moves beneath it. */
.growth-camera-label{margin-right:auto;font-size:11px;letter-spacing:2px;color:#9a948c}
.growth-camera{width:100%;max-width:420px;margin:4px auto 0;min-width:0;text-align:center;color:#777168}
.growth-viewfinder-top{display:flex;justify-content:space-between;align-items:center;margin:0 5% 10px;color:#b0a99f;font-family:Georgia,serif;font-size:9px;letter-spacing:2px}
.growth-viewfinder{position:relative;display:block;width:90%;max-width:340px;aspect-ratio:4/5;max-height:42dvh;margin:0 auto;padding:0;overflow:hidden;border:1px solid #e4dfd7;border-radius:3px;background:#f4f1eb;cursor:pointer;isolation:isolate}
.growth-frame-image{position:absolute;inset:0;display:block}
.growth-frame-image>img{display:block;width:100%;height:100%;object-fit:cover}
.growth-avatar-placeholder{display:flex;width:100%;height:100%;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:#b9b9b9}
.growth-default-avatar{width:98px;height:116px;fill:#fff;stroke:none}
.growth-avatar-placeholder>small{font:inherit;font-size:10px;letter-spacing:3px;color:#f5f5f5}
.growth-focus-mark{position:absolute;left:50%;top:46%;width:44px;height:44px;transform:translate(-50%,-50%);border:1px solid #b2a79766;border-radius:2px;pointer-events:none}
.growth-frame-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);padding:5px 10px;background:#fffdf8b8;border-radius:2px;color:#8f8577;font:inherit;font-size:10px;letter-spacing:1px;white-space:nowrap}
.growth-frame-caption{display:flex;flex-direction:column;gap:5px;padding:17px 8px 9px}
.growth-frame-caption strong{font-size:19px;letter-spacing:3px;font-weight:400;color:#6b645c;overflow-wrap:anywhere}
.growth-frame-caption>span{font-size:10px;letter-spacing:1px;color:#aaa294}
.growth-focus-controls{display:flex;align-items:center;justify-content:space-between;padding:0 8px;color:#b2aa9f;font-size:10px;letter-spacing:1px}
.growth-focus-controls>button{width:44px;min-height:44px;padding:0;border:0;background:transparent;font:inherit;font-family:Georgia,serif;font-size:24px;color:#928778;cursor:pointer}
.growth-focus-ruler{position:relative;height:80px;width:100%;overflow:hidden;touch-action:pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none;outline:none;mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent)}
.growth-focus-ruler:focus-visible{box-shadow:inset 0 -1px #b0a491}
.growth-ruler-track{position:absolute;left:calc(50% - 40px);top:15px;display:flex;align-items:flex-start;transition:transform .18s ease-out;pointer-events:none;will-change:transform}
.growth-ruler-stop{position:relative;flex:0 0 80px;width:80px;height:54px;background:repeating-linear-gradient(to right,transparent 0,transparent 9px,#d5cec3 9px,#d5cec3 10px) top center/100% 9px no-repeat}
.growth-ruler-stop>i{position:absolute;top:0;left:calc(50% - .5px);height:21px;width:1px;background:#a79b89}
.growth-ruler-stop>small{display:block;margin-top:29px;padding:0 3px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#999084}
.growth-ruler-pointer{position:absolute;z-index:1;top:4px;left:calc(50% - 1px);width:2px;height:30px;background:#756657;pointer-events:none}
.growth-ruler-pointer::before{position:absolute;left:-2px;top:-3px;width:6px;height:6px;background:#756657;border-radius:50%;content:''}
.growth-focus-ruler.is-dragging .growth-ruler-track,.growth-camera.is-still .growth-ruler-track{transition:none}
.growth-camera-note{display:block;margin:1px 0 18px;font-size:9px;color:#c0b7a9;letter-spacing:2px}
.growth-detail-avatar{padding:16px 0!important;background:#b9b9b9;border-radius:2px}
.growth-detail-avatar .growth-default-avatar{height:105px}
.growth-stage-ai{padding:12px;border:1px solid #e2dcd3;border-radius:3px;background:#faf8f4}
.growth-stage-ai>summary{list-style:none;color:#75695b;font-size:12px;min-height:24px}
.growth-stage-ai>summary::-webkit-details-marker{display:none}
.growth-stage-ai[open]>summary{margin-bottom:10px}
.growth-stage-sources{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0}
.growth-stage-sources>label{flex-direction:row;align-items:center;gap:5px;font-size:11px}
.growth-form [data-growth-stage-generate]{background:#6c645b;border-color:#6c645b;color:#fff}
.growth-stage-review{padding-top:14px;font-size:11px}
.growth-stage-review>strong{font-weight:400;color:#8b7860}
.growth-suggest-field{padding:10px 0;border-bottom:1px solid #e9e3d9}
.growth-suggest-field>span{display:flex;gap:6px;align-items:center}
.growth-suggest-field>p{margin:3px 0;white-space:pre-wrap}
.growth-suggest-field>small{color:#aaa093;overflow-wrap:anywhere;font-size:10px;white-space:pre-wrap}
.growth-stage-review>button{margin-top:12px;margin-right:6px}
[data-growth-stage-result]{margin-top:10px;font-size:11px;white-space:normal;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.growth-ruler-track{transition:none!important}}
@media(max-width:360px){.growth-viewfinder{max-height:36dvh}.growth-default-avatar{width:80px;height:95px}.growth-frame-caption strong{font-size:17px}.growth-tools{gap:6px}.growth-tools button{font-size:10px}}

.growth-viewfinder-top{min-height:44px;margin-bottom:8px}
.growth-camera-options{display:flex;align-items:center;gap:4px}
.growth-camera-options>button{display:grid;place-items:center;width:38px;height:40px;padding:8px;border:0;border-radius:3px;background:transparent;color:#9b958b;cursor:pointer}
.growth-camera-options svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.growth-camera-options>button[aria-pressed="true"]{color:#665d50;background:#efebe4}
.growth-camera-format{padding:3px 6px;border:1px solid #d9d3ca;border-radius:2px;font-size:9px;letter-spacing:0}
.growth-composition-grid{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(to right,transparent calc(33.333% - .5px),#ffffff70 33.333%,transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),#ffffff70 66.666%,transparent calc(66.666% + .5px)),linear-gradient(to bottom,transparent calc(33.333% - .5px),#ffffff70 33.333%,transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),#ffffff70 66.666%,transparent calc(66.666% + .5px))}
.growth-camera.has-grid .growth-composition-grid{opacity:1}
.growth-camera.is-flash-preview .growth-frame-image{filter:brightness(1.12)}
.growth-shutter-row{display:flex;align-items:center;flex-direction:column;gap:8px;padding:4px 0 15px}
.growth-shutter{display:grid;place-items:center;width:68px;height:68px;padding:4px;border:1.5px solid #8d877e;border-radius:50%;background:transparent;cursor:pointer}
.growth-shutter>span{display:block;width:100%;height:100%;box-sizing:border-box;border:1px solid #dfdbd5;border-radius:50%;background:#fff;box-shadow:0 2px 5px #5c554515;transition:transform .15s}
.growth-shutter:active>span{transform:scale(.92);background:#f0eeea}
.growth-shutter-row>small{font-size:9px;color:#a59c90;letter-spacing:2px}
.growth-shutter:focus-visible,.growth-camera-options>button:focus-visible{outline:1px solid #968b7b;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.growth-shutter>span{transition:none}}
@media(max-height:740px){.growth-viewfinder{max-height:34dvh}.growth-frame-caption{padding-top:12px}.growth-focus-ruler{height:70px}.growth-shutter{width:60px;height:60px}}
/* Camera frame is split: controls at the top, shutter panel at the bottom. */
.feature-page-content:has(.growth-panel:not([hidden])>.growth-camera){padding-inline:0}
.experiences-page:has(.growth-panel:not([hidden])>.growth-camera)>.experiences-tabs{padding-inline:var(--app-page-gutter)}
.growth-panel:has(>.growth-camera){display:flex;flex-direction:column;overflow:hidden;padding:4px 0 0}
.growth-panel:has(>.growth-camera)>[data-growth-feedback]{flex:none;padding-inline:12px}
.growth-panel:has(>.growth-camera)>[data-growth-suggestions]:empty{display:none}
.growth-camera{position:relative;display:flex;flex:1;flex-direction:column;width:100%;height:100%;min-height:0;max-width:none;aspect-ratio:auto;margin:0;border:0;border-radius:0;overflow:hidden;background:#fff;color:#fff;font-family:"LXGW WenKai","Iris Kai",serif;container-type:inline-size}
.growth-camera .growth-viewfinder-top{position:relative;inset:auto;flex:none;width:100%;aspect-ratio:1240/145;min-height:0;margin:0;background:#080808 url('assets/growth-camera-top.svg') center/100% 100% no-repeat;pointer-events:none;z-index:3}
.growth-camera-options{display:contents}
.growth-camera .growth-camera-options>button{position:absolute;left:13.8%;top:34.5%;width:7.1%;height:60.7%;padding:0;border-radius:50%;background:transparent;pointer-events:auto}
.growth-camera .growth-camera-options>button:nth-child(2){left:25.8%}
.growth-camera-options>button svg{opacity:0}
.growth-camera .growth-camera-options>button[aria-pressed="true"]{background:#ffdc0020;box-shadow:0 0 0 1px #ffdc00}
.growth-camera-format,.growth-camera [data-growth-frame-count]{display:none}
.growth-camera-scene{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;background:#fff}
.growth-camera .growth-viewfinder{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:auto;margin:0;border:0;border-radius:0;background:#fff}
.growth-camera .growth-frame-image{inset:0}
.growth-camera .growth-avatar-placeholder{background:#b9b9b9;border-radius:0;gap:0}
.growth-camera .growth-avatar-placeholder>small,.growth-camera .growth-frame-hint{display:none}
.growth-camera .growth-default-avatar{width:100%;height:100%;max-height:none;align-self:center}
.growth-camera .growth-frame-caption{position:absolute;top:auto;bottom:calc(10cqw + 8px);left:0;right:0;padding:0;gap:2px;pointer-events:none;text-shadow:0 1px 3px #0008}
.growth-camera .growth-frame-caption strong{font-size:12px;color:#fff;letter-spacing:2px}
.growth-camera .growth-frame-caption>span{font-size:9px;color:#eee}
.growth-camera-bottom{position:relative;flex:none;width:100%;aspect-ratio:1240/600;margin-top:-10%;z-index:2;pointer-events:none;background:transparent url('assets/growth-camera-bottom.svg') center top/100% calc(100% + 1px) no-repeat;border-bottom:var(--app-safe-bottom,env(safe-area-inset-bottom,0px)) solid transparent;box-sizing:content-box}
.growth-camera .growth-focus-controls{position:absolute;left:38.2%;top:.67%;width:23.6%;height:16%;padding:0;z-index:2}
.growth-camera .growth-focus-controls>span{display:none}
.growth-camera .growth-focus-controls>button{width:33.33%;height:100%;min-height:0;font-size:0;background:transparent;color:transparent}
.growth-camera .growth-focus-ruler{pointer-events:auto;position:absolute;top:28%;height:12%;min-height:26px}
.growth-camera .growth-ruler-track{top:0}
.growth-camera .growth-ruler-stop{height:100%;background:none}
.growth-camera .growth-ruler-stop>i,.growth-camera .growth-ruler-pointer{display:none}
.growth-camera .growth-ruler-stop>small{margin-top:4px;font-size:12px;color:#eee}
.growth-camera .growth-ruler-stop.is-selected>small{color:#ffdc00}
.growth-camera .growth-shutter-row{position:absolute;inset:0;padding:0;display:block;pointer-events:none}
.growth-camera .growth-shutter{position:absolute;left:42.7%;top:39.67%;width:14.6%;height:auto;aspect-ratio:1;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;pointer-events:auto}
.growth-camera .growth-shutter>span{border:0;background:transparent;box-shadow:none}
.growth-camera .growth-shutter:active>span{background:#0002}
.growth-camera .growth-shutter-row>small,.growth-camera .growth-camera-note{display:none}
.growth-camera-thumbnail,.growth-camera-cycle{position:absolute;top:45.17%;left:13.8%;width:10.2%;aspect-ratio:1;padding:0;min-height:0;border:0;border-radius:10%;background:transparent;pointer-events:auto;cursor:pointer;overflow:hidden}
.growth-camera-cycle{left:76.3%;top:44.83%;width:10.5%;border-radius:50%}
.growth-camera-thumbnail>img{display:block;width:100%;height:100%;object-fit:cover}
.growth-camera-thumbnail:focus-visible,.growth-camera-cycle:focus-visible{outline:1px solid #ffdc00;outline-offset:3px}
.growth-detail-top{justify-content:flex-end}

/* Stage names belong to the lower selector, leaving the portrait clear. */
.growth-camera .growth-frame-caption{display:none}
/* Stage detail follows Iris's monochrome forms and fine horizontal rules. */
.growth-panel:has(>.growth-detail-actions){display:flex;flex-direction:column;overflow:hidden;padding:0;background:#fff;color:#666}
.growth-detail-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;flex:none;gap:0;width:100%;border-bottom:1px solid #eee;background:#fff}
.growth-detail-actions>button{min-width:0;min-height:42px;margin:0;padding:9px 1px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:#999;font:inherit;font-size:clamp(9px,2.5vw,11px);line-height:1.7;white-space:nowrap;letter-spacing:0}
.growth-detail-actions>[data-growth-save]{color:#444;border-bottom-color:#777}
.growth-detail-actions>[data-growth-api]{color:#555}
.growth-detail-actions>button:focus-visible{outline:1px solid #aaa;outline-offset:-3px}
.growth-detail-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:24px 0 calc(28px + env(safe-area-inset-bottom));background:#fff}
.growth-detail-scroll .growth-form{width:100%;max-width:520px;gap:24px;color:#777}
.growth-stage-header{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);align-items:center;gap:22px;margin-bottom:4px}
.growth-stage-header .growth-photo-edit{display:flex;align-content:start;gap:0;margin:0;padding:7px 7px 4px;border:1px solid #e5e5e5;border-radius:0;background:#fff;box-shadow:none}
.growth-stage-header .growth-photo-edit>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:#eee}
.growth-stage-header .growth-photo-edit>.growth-detail-avatar{display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0!important;border-radius:0;background:#b9b9b9}
.growth-stage-header .growth-detail-avatar .growth-default-avatar{display:block;width:100%;height:100%;fill:#fff;stroke:none}
.growth-stage-header .growth-upload,.growth-stage-header [data-growth-photo-remove]{flex:1;min-height:32px;padding:7px 0;border:0;border-radius:0;background:transparent;color:#999;font-size:9px;line-height:1.7;white-space:nowrap;text-align:center;letter-spacing:0}
.growth-stage-header .growth-upload{color:#555}
.growth-stage-meta{display:flex;flex-direction:column;gap:14px;min-width:0}
.growth-stage-meta>small{font-size:9px;letter-spacing:1px;color:#aaa}
.growth-stage-meta label{gap:7px;font-size:10px;color:#999}
.growth-stage-meta input:not([type=checkbox]):not([type=file]){padding:5px 0 7px;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#555;font-size:13px}
.growth-stage-meta input[name="name"]{font-size:18px;line-height:1.5;letter-spacing:1px}
.growth-stage-meta .growth-age-grid{gap:12px}
.growth-detail-scroll .experience-content-label{gap:0;font-size:11px;color:#777;letter-spacing:.5px}
.growth-form textarea,.growth-form .experience-content-label textarea{display:block;box-sizing:border-box;width:100%;height:104px;min-height:104px;max-height:none;margin:12px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:26px;resize:vertical;scrollbar-width:thin;letter-spacing:0}
.growth-form textarea::placeholder{color:#bbb;font-size:11px}
.growth-form textarea[name="source"]{height:78px;min-height:78px}
.growth-detail-scroll .growth-note{color:#aaa;font-size:10px;line-height:1.9}
.growth-detail-scroll .growth-form button{border-color:#ddd;color:#666;background:transparent;border-radius:1px}
.growth-detail-scroll .growth-stage-ai{margin:0;padding:14px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #eee;border-radius:0;background:#fff;color:#888}
.growth-detail-scroll .growth-stage-ai>summary{color:#666;font-size:11px;letter-spacing:.5px}
.growth-detail-scroll .growth-form input[type=checkbox]{accent-color:#666}
.growth-detail-scroll .growth-form [data-growth-stage-generate]{padding:7px 12px;border:1px solid #555;background:#555;color:#fff;font-size:10px}
.growth-detail-scroll .growth-stage-review{color:#777}
.growth-detail-scroll .growth-stage-review>strong,.growth-detail-scroll .growth-evidence strong{color:#555}
.growth-detail-scroll .growth-suggest-field{border-bottom-color:#eee}
.growth-detail-scroll .growth-suggest-field>small{color:#999}
.growth-detail-scroll .growth-evidence{padding:12px;background:#fafafa}
.growth-detail-scroll .growth-form blockquote{border-left-color:#ddd;color:#999}
.growth-detail-scroll .growth-form :is(input,textarea,button):focus-visible{outline:1px solid #aaa;outline-offset:3px}
.growth-detail-scroll [data-growth-stage-result]{scroll-margin-top:12px}
@media(max-width:360px){.growth-detail-scroll{padding-top:18px}.growth-stage-header{gap:15px;grid-template-columns:minmax(0,39%) minmax(0,1fr)}.growth-stage-header .growth-photo-edit{padding:5px 5px 2px}.growth-stage-meta{gap:11px}.growth-stage-meta label{font-size:9px}.growth-stage-meta input[name="name"]{font-size:16px}.growth-stage-meta .growth-age-grid{gap:8px}.growth-stage-meta input:not([type=checkbox]):not([type=file]){font-size:12px}.growth-stage-meta input[name="name"]{font-size:16px}.growth-detail-actions>button{font-size:9px}}

.growth-detail-scroll .timeline-feedback.is-error{color:#555}

/* Compact stage editor: photo controls stay on the image, secondary fields fold in place. */
.growth-detail-scroll{padding-top:16px}
.growth-detail-scroll .growth-form{gap:14px}
.growth-stage-header{grid-template-columns:minmax(0,116px) minmax(0,1fr);gap:18px;margin-bottom:0}
.growth-stage-header .growth-photo-edit{position:relative;display:block;padding:5px 5px 18px;border:1px solid #e8e8e8;background:#fff;box-shadow:0 2px 5px #00000006}
.growth-stage-header .growth-upload{position:absolute;left:5px;right:5px;bottom:18px;display:flex;align-items:center;min-height:30px;padding:0;background:#0007;color:#fff;font-size:10px;cursor:pointer}
.growth-stage-header .growth-photo-edit>[data-growth-photo-remove]{position:absolute;top:9px;right:9px;width:26px;height:26px;min-height:26px;padding:0;border:0;border-radius:50%;background:#0007;color:#fff;font:18px/26px sans-serif}
.growth-stage-header .growth-photo-edit>[data-growth-photo-remove][hidden]{display:none}
.growth-stage-meta{gap:8px}
.growth-stage-meta label{gap:3px}
.growth-stage-meta input[name="name"]{font-size:16px}
.growth-detail-scroll .growth-form .experience-content-label textarea{height:52px;min-height:52px;margin-top:5px}
.growth-detail-scroll .growth-form .experience-content-label textarea:focus{height:104px}
.growth-field-section{border-bottom:1px solid #eee;padding:0 0 10px}
.growth-field-section>summary{min-height:30px;align-content:center;color:#666;font-size:11px}
.growth-field-section>summary small{float:right;color:#aaa;font-size:9px;font-weight:400}
.growth-field-section>div{display:flex;flex-direction:column;gap:14px;padding:10px 0 2px}
.growth-detail-scroll .growth-stage-ai{padding:9px 0}
.growth-detail-scroll .growth-links{padding:0 0 10px}
@media(max-width:360px){.growth-stage-header{grid-template-columns:100px minmax(0,1fr);gap:14px}.growth-stage-header .growth-photo-edit{padding:5px 5px 18px}}

/* A restrained instant-photo border, with controls anchored to the print. */
.growth-stage-header .growth-photo-edit{padding:6px 6px 25px;border-color:#e4e4e4;box-shadow:0 3px 8px #0000000a,0 1px 2px #00000006;transform:rotate(-1.5deg)}
.growth-stage-header .growth-upload{left:6px;right:6px;bottom:0;min-height:25px;background:transparent;color:#777;font-size:9px;letter-spacing:1px}
.growth-stage-header .growth-photo-edit>img,.growth-stage-header .growth-photo-edit>.growth-detail-avatar{outline:1px solid #00000006;outline-offset:-1px}
.growth-detail-scroll .growth-stage-ai[hidden]{display:none}
.experiences-page textarea,.experiences-page input{scroll-margin-block:20px;touch-action:pan-y}

.growth-detail-scroll .growth-stage-sources{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}
.growth-detail-scroll .growth-stage-sources>label{flex-direction:row;gap:3px;white-space:nowrap;font-size:10px}
.growth-detail-scroll .growth-stage-sources>[data-growth-stage-generate]{flex:none;margin-left:auto;min-height:28px;padding:3px 10px;font-size:10px;white-space:nowrap}

.growth-stage-review>p,.growth-evidence>p{white-space:pre-line}

/* Keep the tilted print inside the scrolling viewport. */
.growth-detail-scroll .growth-stage-header{padding:5px 5px 7px;box-sizing:border-box}

/* Experiences / Earth: scoped to this category. */
.earth-panel{overflow:auto;min-height:0;padding:18px 18px 80px;color:#343c40;overscroll-behavior:contain}
.earth-panel[hidden]{display:none!important}.earth-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:flex-end;min-height:36px;padding:4px 0 8px;background:var(--feature-page-bg,#fff)}.earth-note,.earth-credit{font-size:10px;line-height:1.65;color:#788087}.earth-panel button:not(:where(.iris-guide-widget *)),.earth-panel select:not(:where(.iris-guide-widget *)){font:inherit;border:1px solid #d8dfe0;border-radius:8px;background:#fff;color:#34464d;padding:8px 11px;cursor:pointer}.earth-panel button:not(:where(.iris-guide-widget *)):disabled{opacity:.5;cursor:wait}.earth-panel button:not(:where(.iris-guide-widget *)):focus-visible,.earth-panel canvas:focus-visible{outline:2px solid #5e8998;outline-offset:3px}.earth-stage{position:relative;background:transparent;border-radius:16px;overflow:hidden;isolation:isolate}.earth-stage canvas{display:block;width:100%;aspect-ratio:1;object-fit:contain;touch-action:none;cursor:grab}.earth-stage canvas:active{cursor:grabbing}.earth-load{position:absolute;inset:35% 12% auto;text-align:center;color:#53636c;padding:16px;background:#f3f5f7f2;border-radius:10px}.earth-load[hidden]{display:none}.earth-stage>[data-earth-retry]{position:absolute;top:65%;left:40%}.earth-view-controls{position:absolute;left:8px;top:12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.earth-panel .earth-toolbar>button,.earth-panel .earth-view-controls button{font-size:11px;font-weight:400;line-height:1.2;padding:6px 9px;border-radius:999px;background:#ffffffed;color:#64757d;border-color:#dce3e5;white-space:nowrap}.earth-panel .earth-view-controls button{min-width:36px;min-height:30px}.earth-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;margin:12px 0;color:#58717b}.earth-player{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.earth-player label{font-size:12px}.earth-player input{flex:1;min-width:120px;accent-color:#5d8593}.earth-player output{font-size:12px}.earth-route,.earth-detail{border:1px solid #dce3e5;border-radius:12px;margin:12px 0;padding:14px;background:#fff}.earth-route.is-confirmed{border-left:3px solid #a78b5e}.earth-route.is-playing{box-shadow:0 0 0 2px #91b1bc}.earth-route>[data-route-show]{display:grid;gap:5px;text-align:left;width:100%;border:0;padding:0;background:transparent}.earth-route span{font-size:12px;color:#74828a}.earth-route p,.earth-detail p{white-space:pre-wrap;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.earth-route>div{display:flex;flex-wrap:wrap;gap:7px}.earth-route>div button{font-size:12px}.earth-editor{display:grid;gap:12px;border:1px solid #ccd9de;border-radius:12px;padding:16px;margin:16px 0}.earth-editor label{display:grid;gap:6px;font-size:13px}.earth-editor input,.earth-editor textarea,.earth-editor select{font:inherit;box-sizing:border-box;width:100%;min-width:0;border:1px solid #d3dcdf;border-radius:7px;background:#fff;color:#34464d;padding:10px}.earth-editor textarea{min-height:90px;resize:vertical}.earth-editor p{font-size:12px;line-height:1.7}.earth-panel .is-error,[data-edit-error]{color:#a54435}.earth-credit a{color:inherit}.earth-empty{padding:18px 6px;font-size:10px;line-height:1.65;color:#79878e}@media(max-width:480px){.earth-panel{padding:14px 12px 60px}.earth-player button{font-size:12px}}
/* Earth subcategories form a straight, horizontal row below Experiences tabs. */
.earth-toolbar{justify-content:flex-start;gap:0;border-bottom:1px solid #e2e6e8;padding:0;min-height:36px;background:var(--feature-page-bg,#fff)}
.earth-view-controls{position:static;display:flex;flex-direction:row;gap:0;align-items:center}
.earth-panel .earth-toolbar>button,.earth-panel .earth-view-controls button{border:0;border-radius:0;background:transparent;padding:11px 12px;min-width:0;min-height:36px;font-size:11px;line-height:1.2;color:#526670}
.earth-panel .earth-toolbar>button{margin-left:auto;color:#354f60;border-bottom:2px solid #748e9b}
.earth-panel .earth-toolbar button:hover{background:#eef3f5}
.earth-legend-confirmed{color:#d92d20;font-weight:500}
.earth-route.is-confirmed{border-left-color:#ff4b38}.earth-route:not(.is-confirmed){border-left:3px solid #ff4b38}

.earth-panel{padding-top:0;flex:1}.earth-panel .earth-toolbar{margin-bottom:8px}
/* Travel entries follow the quiet, ruled typography of Experiences. */
.earth-route,.earth-detail{background:transparent;border:0;border-radius:0;box-shadow:none;padding:15px 0;margin:0;border-bottom:1px solid #e8e8e8;color:#555}
.earth-route.is-confirmed,.earth-route:not(.is-confirmed){border-left:0}
.earth-route.is-playing{box-shadow:none;border-bottom-color:#aaa}
.earth-route.is-ignored{opacity:.48}
.earth-route>[data-route-show]{position:relative;gap:6px;padding-left:12px;border-radius:0;color:inherit}
.earth-route>[data-route-show]::before{content:"";position:absolute;left:0;top:5px;width:4px;height:4px;border-radius:50%;background:#999}
.earth-route.is-playing>[data-route-show]::before{background:#ff4b38}
.earth-route .earth-route-time{font-size:10px;letter-spacing:.04em;color:#999}
.earth-route .earth-route-path{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.earth-route .earth-route-path>span{font-size:15px;color:#444;line-height:1.6}
.earth-route-path i{font-size:12px;font-style:normal;font-family:serif;color:#aaa}
.earth-route .earth-route-status{font-size:9px;color:#999}
.earth-route .earth-route-purpose{font-size:11px;line-height:1.8;color:#888;margin:8px 0 4px 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.earth-route .earth-route-actions{justify-content:flex-end;gap:14px}
.earth-panel .earth-route-actions button{font-size:10px;padding:4px 0;border:0;border-radius:0;background:transparent;color:#999}
.earth-panel .earth-route-actions button:hover{color:#444}
.earth-detail strong{font-size:15px;font-weight:400}.earth-detail p{font-size:11px;color:#777}
.earth-panel .earth-toolbar>[data-earth-generate]{color:#111;border-bottom-color:#111}
.earth-snake{display:block;width:100%;height:auto;overflow:visible;margin:15px 0 24px}
.earth-snake-line{fill:none;stroke:#aaa;stroke-width:1;stroke-dasharray:3 3}
.earth-snake-segment.is-confirmed .earth-snake-line{stroke:#777;stroke-dasharray:none}
.earth-snake-segment.is-playing .earth-snake-line{stroke:#e34a3d;stroke-width:1.8}
.earth-snake-hit{fill:none;stroke:transparent;stroke-width:24;pointer-events:stroke}
.earth-snake-segment,.earth-snake-city{cursor:pointer;outline:none}
.earth-snake-segment:focus .earth-snake-line,.earth-snake-segment:hover .earth-snake-line{stroke:#111;stroke-width:2}
.earth-snake-city circle{fill:#777;stroke:#fff;stroke-width:1.5;pointer-events:none}
.earth-snake-city text{font-family:inherit;font-size:11px;fill:#555;pointer-events:none}
.earth-snake-city .earth-snake-time{font-size:8px;fill:#aaa}
.earth-snake-city:focus circle{stroke:#333;stroke-width:2}
.earth-hidden-routes{font-size:10px;color:#999}.earth-hidden-routes button{display:block;border:0;border-radius:0;font-size:11px;color:#777}
.earth-trip-dialog{position:fixed;inset:0;width:min(360px,calc(100vw - 40px));max-height:75dvh;margin:auto;padding:0;border:1px solid #e5e5e5;border-radius:0;background:#fff;color:#555;box-shadow:0 12px 60px #00000012;z-index:10;overflow:auto;font-family:inherit}
.earth-trip-dialog::backdrop{background:#0003}
.earth-trip-sheet{position:relative;padding:26px 22px 18px}.earth-trip-sheet>small{font-size:8px;letter-spacing:.15em;color:#aaa}
.earth-panel .earth-trip-close{position:absolute;right:9px;top:7px;border:0;border-radius:0;padding:5px;background:transparent;color:#999;font-size:19px;line-height:1}
.earth-trip-sheet h3{font-size:17px;font-weight:400;line-height:1.8;margin:10px 0 6px}.earth-trip-sheet h3 span{font-size:13px;color:#aaa;padding:0 8px}
.earth-trip-time{font-size:9px;color:#999;line-height:1.7}.earth-trip-sheet dl{margin:20px 0}.earth-trip-sheet dt{font-size:9px;color:#aaa;margin:15px 0 6px}.earth-trip-sheet dd{margin:0;font-size:12px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.earth-trip-sheet details{font-size:10px;color:#999;line-height:1.8}.earth-trip-sheet details p{white-space:pre-wrap;overflow-wrap:anywhere}
.earth-trip-sheet .earth-route-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:22px}.earth-panel .earth-trip-sheet .earth-route-actions button{border:0;border-radius:0;padding:5px 0;font-size:10px;color:#888;background:transparent}
/* Earth playback: small ink controls and a hairline timeline. */
.earth-panel .earth-view-controls button{color:#111}
.earth-player{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;align-items:center;column-gap:16px;row-gap:0;margin:3px 0 4px;padding:4px 0 0;border-top:1px solid #ececec}
.earth-panel .earth-player>button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 0;border:0;border-radius:0;background:transparent;color:#222;font-family:inherit;font-size:11px;font-weight:400;line-height:1.5}
.earth-player [data-earth-play]::before{content:'▷';font:11px/1 serif;width:10px;text-align:center}
.earth-player [data-earth-play][aria-pressed=true]::before{content:'Ⅱ';font-size:10px}
.earth-player [data-earth-replay]::before{content:'↺';font:13px/1 serif}
.earth-player>label{grid-column:4/6;justify-self:end;display:flex;align-items:center;gap:7px;color:#999;font-size:10px;position:relative}
.earth-player>label::after{content:'⌄';font:11px/1 serif;color:#666;pointer-events:none;position:absolute;right:0;top:9px}
.earth-panel .earth-player select{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:11px;line-height:1.5;color:#333;background:transparent;border:0;border-bottom:1px solid #ddd;border-radius:0;box-shadow:none;padding:6px 14px 5px 3px;min-height:30px;cursor:pointer}
.earth-player [data-earth-seek]{grid-column:1/5;grid-row:2;display:block;appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;min-width:0;height:30px;margin:0;padding:0;border:0;border-radius:0;outline:0;background:transparent;cursor:pointer;accent-color:#333}
.earth-player [data-earth-seek]::-webkit-slider-runnable-track{height:1px;border:0;border-radius:0;background:linear-gradient(to right,#444 0 var(--earth-progress,0%),#ddd var(--earth-progress,0%) 100%)}
.earth-player [data-earth-seek]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:6px;height:6px;margin-top:-2.5px;border:0;border-radius:50%;background:#333;box-shadow:none}
.earth-player [data-earth-seek]::-moz-range-track{height:1px;border:0;background:#ddd}
.earth-player [data-earth-seek]::-moz-range-progress{height:1px;background:#444}
.earth-player [data-earth-seek]::-moz-range-thumb{width:6px;height:6px;border:0;border-radius:50%;background:#333;box-shadow:none}
.earth-player [data-earth-time]{grid-column:5;grid-row:2;min-width:30px;font-size:9px;color:#aaa;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.earth-panel .earth-player button:focus-visible,.earth-panel .earth-player select:focus-visible,.earth-player [data-earth-seek]:focus-visible{outline:1px solid #777;outline-offset:3px}
.earth-panel .earth-player button:hover{color:#000}

/* Final Earth palette: quiet dividers, light city labels, red routes only. */
.earth-panel .earth-toolbar{border-bottom:1px solid #e8e8e8}
.earth-panel .earth-toolbar>[data-earth-generate]{border-bottom:0}
.earth-snake-city text{font-family:inherit;font-size:11px;font-weight:400;font-style:normal;fill:#777}
.earth-snake-city .earth-snake-time{font-family:inherit;font-size:8px;font-weight:400;font-style:normal;fill:#999}
.earth-snake-line,.earth-snake-segment.is-confirmed .earth-snake-line,.earth-snake-segment.is-playing .earth-snake-line{stroke:#aaa;stroke-width:1;stroke-dasharray:3 4}
.earth-snake-segment:focus .earth-snake-line,.earth-snake-segment:hover .earth-snake-line{stroke:#777;stroke-width:1;stroke-dasharray:3 4}

.earth-panel [data-earth-playing]:empty,.earth-panel [data-earth-feedback]:empty{display:none}
.earth-panel .earth-snake{margin-top:6px}
/* Attach Earth subnavigation directly to the Experiences category row. */
.experiences-page:has(.earth-panel:not([hidden])){row-gap:0}
.experiences-page>.earth-panel{margin-top:0;padding-top:0}
.experiences-page>.earth-panel>.earth-toolbar{top:0;margin-top:0;margin-inline:-18px;padding-top:0;padding-inline:6px;border-radius:0;box-sizing:border-box}
@media(max-width:480px){.experiences-page>.earth-panel>.earth-toolbar{margin-inline:-12px;padding-inline:0}}
/* Keep both navigation rows touching, with a compact Earth action row. */
.experiences-page:has(>.earth-panel:not([hidden]))>.experiences-tabs{margin-bottom:0;padding-bottom:0}
.experiences-page>.earth-panel{border-top:0}
.experiences-page>.earth-panel>.earth-toolbar{margin-top:0;min-height:28px;padding-block:0}
.experiences-page>.earth-panel>.earth-toolbar>.earth-view-controls{margin:0;padding:0;min-height:28px}
.experiences-page>.earth-panel>.earth-toolbar>button,.experiences-page>.earth-panel>.earth-toolbar .earth-view-controls>button{box-sizing:border-box;min-height:28px;margin-block:0;padding-block:6px;line-height:1.2}
/* SVG route text must not inherit the global icon stroke. */
.earth-panel .earth-snake{stroke:none;stroke-width:0}
.earth-panel .earth-snake .earth-snake-city text{stroke:none;stroke-width:0;paint-order:normal;font-weight:400;text-shadow:none;filter:none}
/* User-supplied boarding pass artwork, with live route fields overlaid. */
.earth-ticket-dialog{width:min(760px,calc(100vw - 24px));border:0;background:transparent;box-shadow:none}
.earth-ticket-dialog::backdrop{background:rgb(0 0 0 / 28%)}
.earth-ticket-dialog .earth-trip-sheet{padding:26px 0 0;background:transparent}
.earth-panel .earth-ticket-dialog .earth-trip-close{top:0;right:4px;width:28px;height:28px;padding:0;font:300 22px/28px serif;color:#333}
.earth-panel .earth-ticket{display:block;position:relative;container-type:inline-size;width:100%;aspect-ratio:1875/839;box-sizing:border-box;padding:0;border:0;border-radius:0;background:transparent;color:#222;text-align:center;font:inherit;font-weight:400;overflow:visible;cursor:pointer;box-shadow:none}
.earth-panel .earth-ticket:focus-visible{outline:1px solid #555;outline-offset:3px}
.earth-ticket-art{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.earth-ticket-value{position:absolute;display:block;transform:translateY(-50%);font-size:clamp(10px,2.3cqw,18px);font-weight:400;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;color:#222}
.ticket-flight{left:7%;top:54%;width:12%}
.ticket-from,.ticket-to{font-size:clamp(16px,4.4cqw,34px)}
.ticket-from{left:22%;top:52%;width:17%}.ticket-to{left:56%;top:52%;width:16%}
.ticket-gate{left:7%;top:78%;width:12%}.ticket-seat{left:24%;top:78%;width:13%}
.ticket-time{left:42%;top:73%;width:27%;font-size:clamp(9px,1.8cqw,14px);color:#555}
.ticket-time small{display:block;margin-top:.5em;font-size:.85em}
.ticket-stub-flight,.ticket-stub-from,.ticket-stub-to,.ticket-stub-gate,.ticket-stub-seat{left:78%;width:10.3%;font-size:clamp(8px,1.6cqw,12px)}
.ticket-stub-from,.ticket-stub-to{font-size:clamp(7px,1.3cqw,10px)}
.ticket-stub-flight{top:44%}.ticket-stub-from{top:54%}.ticket-stub-to{top:62%}.ticket-stub-gate{top:72%}.ticket-stub-seat{top:84%}
.earth-ticket-info[hidden]{display:none}
.earth-ticket-info{width:min(520px,94%);box-sizing:border-box;margin:0 auto;padding:0;background:#fff;border:1px solid #d4d4d4;box-shadow:0 8px 24px #0000000a}
.earth-ticket-info>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 20px;background:#262626;color:#eee}
.earth-ticket-info>header>span:first-child{font:9px/1.5 Georgia,serif;letter-spacing:.18em}
.earth-ticket-info>header>span:last-child{font-size:9px;letter-spacing:.12em;color:#bbb}
.earth-trip-sheet .earth-ticket-info dl{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:baseline;column-gap:22px;row-gap:0;margin:0;padding:8px 22px 12px}
.earth-trip-sheet .earth-ticket-info dt{align-self:stretch;display:flex;align-items:center;margin:0;padding:19px 0;font-size:10px;line-height:1.9;letter-spacing:.06em;color:#999;font-weight:400}
.earth-trip-sheet .earth-ticket-info dd{margin:0;padding:19px 0;font-size:12px;line-height:1.9;font-weight:400;color:#444;white-space:pre-wrap;overflow-wrap:anywhere}
.earth-trip-sheet .earth-ticket-info dt:first-of-type+dd{font-size:24px;line-height:1.4;color:#222;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.earth-trip-sheet .earth-ticket-info dt:nth-of-type(n+2),.earth-trip-sheet .earth-ticket-info dd:nth-of-type(n+2){border-top:1px solid #e9e9e9}
.earth-ticket-dialog .earth-trip-sheet .earth-route-actions{margin:8px 3% 0;gap:20px;padding-top:0}
.earth-panel .earth-ticket-dialog .earth-route-actions button{font-size:10px;color:#444;min-height:32px;background:#fff;padding:6px 12px;border-radius:8px}
.earth-panel .earth-ticket-dialog .earth-route-actions button:hover{color:#000}

/* Earth navigation sits outside the padded, scrolling globe content. */
.experiences-page>.earth-panel{display:flex;flex-direction:column;gap:0;margin:0;padding:0;overflow:hidden}
.experiences-page>.earth-panel>.earth-toolbar{position:relative;inset:auto;flex:none;align-self:stretch;margin:0;padding:0 6px;min-height:28px;border-top:0;border-radius:0}
.earth-scroll-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 18px 80px}
@media(max-width:480px){.experiences-page>.earth-panel>.earth-toolbar{padding-inline:0}.earth-scroll-body{padding:0 12px 60px}}

.earth-snake-connector{fill:none;stroke:#aaa;stroke-width:1;stroke-dasharray:3 4;pointer-events:none}

.earth-location-status{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;font-size:9px;line-height:1.8;color:#999;margin:5px 0}
.earth-location-status:empty{display:none}.earth-location-status details{font-size:9px}.earth-location-status summary{cursor:pointer;color:#777}
.earth-panel .earth-location-status button{display:block;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent;padding:7px 0;font:inherit;color:#777;text-align:left}
.earth-snake-segment.is-selected .earth-snake-line{stroke:#555;stroke-width:1;stroke-dasharray:3 4}

.earth-player [data-earth-review]::before{content:'✓';font:11px/1 serif}
.earth-review-result[hidden]{display:none}.earth-review-result{margin:10px 0 14px;padding:12px 14px;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#fafafa;color:#666;font-size:11px;line-height:1.8}
.earth-review-result>header{display:flex;align-items:center;justify-content:space-between;font-weight:400;color:#333}.earth-review-result>p{margin:8px 0}.earth-review-result small{display:block;font-size:9px;color:#999}
.earth-review-result ul{list-style:none;margin:10px 0;padding:0}.earth-review-result li{padding:9px 0;border-top:1px solid #e8e8e8}
.earth-panel .earth-review-result button{padding:4px 0;border:0;border-radius:0;background:transparent;font:inherit;font-size:10px;color:#555}.earth-review-result li button{text-decoration:underline;text-underline-offset:3px}

/* Route editing is a centered modal; only its field area scrolls. */
.earth-editor-dialog{position:fixed;inset:0;width:min(400px,calc(100vw - 32px));height:min(640px,78dvh);max-height:calc(100dvh - 32px);box-sizing:border-box;margin:auto;padding:0;border:1px solid #ddd;border-radius:0;background:#fff;color:#555;box-shadow:0 18px 70px #0002;font-family:inherit;overflow:hidden}
.earth-editor-dialog[open]{display:flex;flex-direction:column}.earth-editor-dialog::backdrop{background:#0005}
.earth-editor-dialog>header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid #e9e9e9}
.earth-editor-dialog>header h3{margin:0;font-size:14px;font-weight:400;letter-spacing:.04em}
.earth-panel .earth-editor-dialog [data-edit-close]{border:0;border-radius:0;padding:0 4px;background:transparent;color:#888;font:20px/1.3 serif}
.earth-panel .earth-editor-dialog .earth-editor{display:flex;flex:1;flex-direction:column;gap:0;min-height:0;overflow:hidden;border:0;border-radius:0;margin:0;padding:0}
.earth-editor-body{display:grid;gap:14px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px;scrollbar-width:thin}
.earth-editor-dialog .earth-editor label{gap:7px;font-size:11px;color:#888}
.earth-editor-dialog .earth-editor input,.earth-editor-dialog .earth-editor textarea,.earth-editor-dialog .earth-editor select{border-color:#e1e1e1;border-radius:0;color:#444;font-size:12px;padding:9px 10px}
.earth-editor-dialog .earth-editor p{margin:0;font-size:10px;line-height:1.8;color:#999}
.earth-editor-dialog .earth-editor [data-edit-error]{color:#a54435}
.earth-editor-dialog .earth-editor [data-edit-error]:empty{display:none}
.earth-editor-dialog .earth-editor>footer{display:flex;justify-content:flex-end;align-items:center;gap:20px;flex:none;padding:12px 20px;border-top:1px solid #e9e9e9;background:#fff}
.earth-panel .earth-editor-dialog footer button{padding:8px 12px;border:1px solid #ddd;border-radius:0;background:#fff;font:inherit;font-size:11px;color:#777}
.earth-panel .earth-editor-dialog footer button[type=submit]{border-color:#333;background:#333;color:#fff}

.earth-panel .earth-location-status [data-earth-geocode]{padding:2px 0;border:0;border-bottom:1px solid #ccc;color:#555;font-size:9px;white-space:nowrap}
/* People and achievements: quiet ink, paper collections and compact subnavigation. */
.people-panel[hidden]{display:none!important}.people-panel{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;color:#555}
.people-panel button:not(:where(.iris-guide-widget *)){font:inherit;font-size:11px;font-weight:400;cursor:pointer;color:#555;border:0;border-radius:0;background:transparent}
.people-panel button:disabled:not(:where(.iris-guide-widget *)){opacity:.4;cursor:wait}.people-panel button:focus-visible:not(:where(.iris-guide-widget *)),.people-panel select:focus-visible{outline:1px solid #777;outline-offset:3px}
.people-subtabs{display:flex;align-items:stretch;flex:none;gap:0;margin:0;border-bottom:1px solid #e8e8e8;min-height:34px}
.people-panel .people-subtabs button{position:relative;padding:9px 18px;color:#999;min-height:34px;font-size:11px;line-height:1.4}
.people-panel .people-subtabs button[aria-pressed=true]{color:#222}.people-subtabs button[aria-pressed=true]::after{content:"";position:absolute;inset:auto 18px -1px;height:1px;background:#666}
.people-feedback{flex:none;margin:0;padding:8px 14px;font-size:10px;line-height:1.8;color:#999}.people-feedback:empty{display:none}.people-panel .is-error,.people-form-error{color:#a54438}
.people-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 16px 50px;scrollbar-width:thin}
.people-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 0;border-bottom:1px solid #eee}.people-tools>label{display:flex;align-items:center;gap:6px;font-size:9px;color:#999}
.people-panel select{font:inherit;font-size:10px;font-weight:400;color:#666;border:0;border-bottom:1px solid #ddd;border-radius:0;padding:5px 2px;background:#fff;max-width:100%}
.people-panel .people-tools>button{margin-left:auto;padding:7px 0;font-size:10px;color:#333;min-height:32px}
.people-section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:19px 0 12px;font-size:12px}.people-section-heading small{margin-left:8px;font:10px Georgia,serif;color:#aaa}.people-panel .people-section-heading button{padding:7px 0;font-size:10px;min-height:32px}
.people-npc-list{display:grid;gap:0}.people-panel .people-npc{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 0;text-align:left;border-bottom:1px solid #eee;min-height:72px}
.people-initial{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e3e3e3;border-radius:50%;color:#888;font-size:14px}.people-npc strong{display:block;font-size:14px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}.people-npc small{display:block;margin-top:4px;color:#aaa;font-size:10px;line-height:1.6}.people-count{color:#aaa;font-size:9px;white-space:nowrap}.people-count i{margin-left:7px;font:15px Georgia,serif;color:#888}
.people-empty{padding:40px 16px;text-align:center;color:#aaa;font-size:11px;line-height:1.9}.people-panel .people-empty button{padding:8px 2px;margin-top:12px;border-bottom:1px solid #bbb;color:#555;min-height:34px}
.people-person-head{padding:16px 0 20px;border-bottom:1px solid #e7e7e7}.people-panel [data-people-back]{padding:7px 0;color:#999;font-size:10px;min-height:30px}.people-person-head h3{margin:9px 0 5px;color:#333;font-size:21px;font-weight:400}.people-person-head p{margin:0;font-size:11px;line-height:1.9;color:#888}.people-person-head>small{display:block;margin-top:6px;font-size:10px;color:#aaa}
.people-inline-actions{display:flex;flex-wrap:wrap;gap:5px 18px;margin-top:12px}.people-panel .people-inline-actions button{min-height:32px;padding:6px 0;font-size:10px;color:#999}.people-panel .people-inline-actions button:hover{color:#333}
.people-review{padding:23px 0 16px;border-bottom:1px solid #eee}.people-review>header{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#777}.people-review>header small{font-size:9px;color:#aaa}.people-review-body{margin:14px 0;font-size:14px;font-weight:400;line-height:2;color:#555;white-space:pre-wrap;overflow-wrap:anywhere}.people-review-links{margin-top:12px}
.people-event{font-size:10px;line-height:1.9;margin:6px 0;color:#888}.people-event summary{cursor:pointer;color:#777}.people-event p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 12px}.people-missing,.people-muted{display:block;font-size:9px;line-height:1.9;color:#aaa}.people-source{font-size:9px;line-height:1.9;color:#aaa;margin-top:10px}.people-source summary{cursor:pointer}.people-source p{white-space:pre-wrap}.people-panel blockquote{margin:12px 0;padding:0 0 0 12px;border-left:1px solid #ddd;font-size:11px;line-height:1.9;color:#999;white-space:pre-wrap;overflow-wrap:anywhere}
.people-award-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.people-panel .people-award{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;min-height:220px;padding:22px 13px 18px;border:1px solid #ddd;outline-offset:3px;background:linear-gradient(150deg,#fff,#fafafa);text-align:center;position:relative}
.people-award::before{content:"";position:absolute;inset:5px;border:1px solid #eee;pointer-events:none}.people-panel .people-award.is-fun{border-style:dashed;background:#fdfdfd}.people-award.is-fun::before{border:0;border-top:1px dashed #e5e5e5;inset:8px 12px auto}
.people-seal{display:grid;place-items:center;flex:none;width:40px;height:40px;box-sizing:border-box;margin:0 auto 7px;border:1px solid #999;outline:1px solid #ddd;outline-offset:3px;border-radius:50%;font:24px/1 Georgia,serif;color:#666}.is-fun .people-seal{border-style:dashed;border-color:#bbb;outline:0;color:#999}
.people-award>small{font-size:8px;line-height:1.8;color:#aaa}.people-award>strong{font-size:14px;font-weight:400;line-height:1.8;color:#444;overflow-wrap:anywhere}.people-award>span:not(.people-seal){font-size:10px;color:#999}.people-award>i{font-size:9px;font-style:normal;line-height:1.6;color:#aaa;margin-top:auto;overflow-wrap:anywhere}
.people-dialog{position:fixed;inset:0;width:min(420px,calc(100vw - 32px));max-height:80dvh;margin:auto;padding:0;border:1px solid #ddd;border-radius:0;background:#fff;color:#555;font-family:inherit;box-shadow:0 18px 60px #0002;overflow:hidden}.people-dialog[open]{display:flex;flex-direction:column}.people-dialog::backdrop{background:#0005}
.people-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex:none;padding:16px 20px;border-bottom:1px solid #e8e8e8}.people-dialog h3{margin:0;font-size:14px;line-height:1.7;font-weight:400;overflow-wrap:anywhere}.people-panel .people-dialog [data-people-close]{font:22px/1 serif;color:#999;padding:4px}
.people-form{display:flex;flex-direction:column;min-height:0;overflow:hidden}.people-dialog-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px;scrollbar-width:thin}.people-form .people-dialog-scroll{display:grid;gap:15px}.people-form label{display:grid;gap:7px;color:#999;font-size:10px;line-height:1.7}.people-form input,.people-form textarea,.people-form select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;border:1px solid #ddd;border-radius:0;background:#fff;color:#555;padding:9px;font:inherit;font-size:12px;font-weight:400;line-height:1.7}.people-form textarea{resize:vertical;min-height:90px}.people-form select[multiple]{min-height:86px}.people-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.people-form-error{font-size:10px;line-height:1.8;margin:0}.people-form-error:empty{display:none}
.people-dialog footer{display:flex;justify-content:flex-end;align-items:center;gap:20px;flex:none;padding:12px 20px;border-top:1px solid #e8e8e8;background:#fff}.people-panel .people-dialog footer button{padding:8px 12px;border:1px solid #ddd;font-size:11px}.people-panel .people-dialog footer button[type=submit]{border-color:#333;background:#333;color:#fff}
.people-award-detail>.people-seal{margin-top:8px;margin-bottom:22px}.people-detail-kicker{font-size:10px;color:#999;text-align:center}.people-award-detail>p{font-size:12px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}.people-award-detail h4{font-size:10px;font-weight:400;color:#999;margin:22px 0 8px}.people-award-detail dl{margin:18px 0}.people-award-detail dt{font-size:9px;color:#aaa}.people-award-detail dd{margin:5px 0 0;font-size:12px;line-height:1.9}.people-modal-feedback{font-size:10px!important}
@media(max-width:380px){.people-scroll{padding-inline:12px}.people-tools{gap:8px 10px}.people-panel .people-tools>button{font-size:9px}.people-award-grid{gap:9px}.people-panel .people-award{padding-inline:10px;min-height:210px}.people-count{font-size:8px}.people-npc small{font-size:9px}}

/* Decorative camera controls and brief shutter flash. */
.growth-camera-thumbnail,.growth-camera-cycle{pointer-events:none;cursor:default}
.growth-camera.is-shutter-flashing::after{content:"";position:absolute;inset:0;z-index:10;background:#fff;pointer-events:none;animation:growth-shutter-flash 180ms ease-out both}
@keyframes growth-shutter-flash{0%,25%{opacity:1}100%{opacity:0}}

/* Keep people filters and generation in the category header. */
.people-header-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;min-width:0;padding:0 8px}
.people-header-tools label{display:flex;align-items:center;gap:4px;font-size:10px;color:#888;white-space:nowrap}
.people-header-tools select{min-width:0;max-width:100px;border:0;background:transparent;color:#555;font-size:10px}
.people-panel .people-subtabs>[data-people-tab]{padding-inline:10px;flex-shrink:0}
.people-panel .people-header-tools [data-people-generate]{padding:8px 0;font-size:10px;color:#555;white-space:nowrap}
@media(max-width:420px){.people-header-tools{gap:5px;padding-inline:5px}.people-header-tools label{font-size:0;gap:0}.people-header-tools select{max-width:70px}.people-panel .people-subtabs>[data-people-tab]{padding-inline:7px;font-size:10px}}

/* Award sheets use a full certificate layout, shared by shelf and detail. */
.people-award-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:3px 2px 12px}
.people-panel .people-award.is-formal,.people-panel .people-award.is-fun{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;text-align:initial;box-shadow:none;overflow:visible}
.people-award::before,.people-award::after{display:none}
.people-panel .people-award:hover{filter:none}
.award-paper{display:grid;position:relative;isolation:isolate;aspect-ratio:2/3;width:100%;overflow:hidden;box-sizing:border-box;color:#292929;box-shadow:0 2px 4px #0000000a,0 8px 22px #00000012;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;container-type:inline-size}
.award-paper-background{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill}
.award-paper-content{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;padding:43.5% 13% 22%;box-sizing:border-box;text-align:center;overflow-wrap:anywhere}
.award-paper-recipient{display:block;font-size:clamp(8px,3.2cqw,16px);line-height:1.5;letter-spacing:.5px}
.award-paper-recipient strong{font-weight:500}
.award-paper-title{display:block;margin:5% 0;font-size:clamp(13px,6.3cqw,28px);line-height:1.4;font-weight:600;letter-spacing:.5px}
.award-paper-reason{display:block;font-size:clamp(7.5px,2.4cqw,11px);line-height:1.7;white-space:pre-wrap}
.award-paper-issuer{display:block;margin-top:auto;padding-top:5%;font-size:clamp(7px,2.2cqw,10px);line-height:1.5;color:#555}
.award-paper-formal .award-paper-title{color:#000}
.award-paper-fun{color:#41596a;font-family:"LXGW WenKai","Kaiti SC","KaiTi",cursive}
.award-paper-fun .award-paper-title{color:#386b91}
.people-dialog.is-award-dialog{width:min(560px,calc(100vw - 24px));border:0;border-radius:0;background:#f7f7f7;box-shadow:0 20px 80px #0003}
.people-dialog.is-award-dialog>header{padding:12px 18px;background:#fff;border-color:#e5e5e5}
.people-dialog.is-award-dialog>header h3{font-size:11px;color:#777}
.people-award-detail.is-formal,.people-award-detail.is-fun{padding:16px;background:#f4f4f4;color:#555;border:0}
.award-paper.is-expanded{margin-bottom:24px}
.award-paper.is-expanded .award-paper-recipient{font-size:clamp(18px,4.5cqw,25px);line-height:1.65;letter-spacing:1px}
.award-paper.is-expanded .award-paper-title{font-size:clamp(28px,7cqw,38px);line-height:1.45;letter-spacing:1px}
.award-paper.is-expanded .award-paper-reason{font-size:clamp(14px,3.3cqw,18px);line-height:1.9}
.award-paper.is-expanded .award-paper-issuer{font-size:clamp(12px,2.8cqw,15px);line-height:1.7}
.people-dialog.is-award-dialog>footer{background:#fff;border-color:#e5e5e5}
.people-panel .people-dialog.is-award-dialog>footer button{border:1px solid #ddd;background:#fff;color:#666;border-radius:0}


/* The award toolbar sits directly below the tabs, outside the scrolling list. */
.people-panel .people-award-heading[hidden]{display:none}
.people-panel .people-award-heading{display:flex;flex:none;align-items:center;justify-content:space-between;gap:10px;min-height:34px;margin:0;padding:0 16px;box-sizing:border-box;background:#fff;border-bottom:1px solid #ededed;font-size:12px}
.people-award-heading small{margin-left:8px;font:10px Georgia,serif;color:#aaa}
.people-panel .people-award-heading button{padding:0;font-size:10px;min-height:32px}
@media(max-width:380px){.people-panel .people-award-heading{padding-inline:12px}}
/* Status messages float above the list, so the two pinned rows touch. */
.people-panel{position:relative}
.people-panel>.people-feedback:not(:empty){position:absolute;left:16px;right:16px;bottom:14px;z-index:5;margin:0;padding:9px 12px;border:1px solid #e6e6e6;border-radius:8px;background:#fff;box-shadow:0 5px 18px #00000012}

/* IF branches live in the Experiences World and keep the same quiet paper UI. */
.experience-future-panel{flex:1;min-height:0;overflow-y:auto;padding:0;background:#fff}
.if-world{max-width:780px;margin:0 auto;padding:0 18px 70px;color:#454545;font-size:13px;line-height:1.7}
.if-world [hidden]{display:none!important}
.if-world header{position:sticky;top:0;z-index:8;display:flex;height:38px;align-items:center;gap:12px;flex-wrap:nowrap;border-bottom:1px solid #e9e9e9;padding:0;background:#fff}
.if-world header h2{flex:1;min-width:0;margin:0;overflow:hidden;font-size:15px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.if-subtabs{position:sticky;top:38px;z-index:7;display:flex;height:38px;gap:24px;margin:0;border-bottom:1px solid #e9e9e9;background:#fff}.if-world .if-subtabs button{border:0;border-radius:0;padding:7px 3px;background:transparent;color:#999;font-size:11px}.if-world .if-subtabs button[aria-selected=true]{color:#444;border-bottom:1px solid #555}
.if-world h3{font-size:14px;font-weight:500;margin:22px 0 10px}
.if-world button,.timeline-if-open{font:inherit;color:#474747;background:#fff;border:1px solid #d9d9d9;border-radius:5px;padding:7px 11px;cursor:pointer}
.if-world button:disabled{opacity:.55;cursor:wait}
.if-source{margin:18px 0;padding:16px;border:1px solid #e5e5e5;background:#fbfbfb}
.if-source small{color:#999}.if-source h3{margin:5px 0;font-size:16px}.if-source p{margin:5px 0;white-space:pre-wrap}
.if-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.if-settings{padding:0 2px;margin:0}.if-settings h3{margin:0}.if-settings h3 small{font-size:10px;color:#aaa;font-weight:400}.if-settings>.if-hint{padding:4px 0;margin:0;font-size:11px}.if-settings summary{cursor:pointer}
.if-setting-tabs{position:sticky;top:76px;z-index:6;display:grid;height:35px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 9px;border-bottom:1px solid #e9e9e9;background:#fff}.if-world .if-setting-tabs button{position:relative;padding:7px 4px 9px;border:0;border-radius:0;background:transparent;color:#aaa;font-family:"Songti SC",serif;font-size:10px}.if-world .if-setting-tabs button[aria-selected=true]{color:#444}.if-world .if-setting-tabs button[aria-selected=true]::after{position:absolute;right:30%;bottom:-1px;left:30%;height:1px;background:#555;content:""}.if-setting-pane{min-height:112px;padding:5px 0}.if-setting-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:10px}.if-world .if-setting-actions button{padding:6px 2px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#777;font-size:10px}
.if-setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.if-settings label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#777}
.if-style-preview,.if-style-add{margin:12px 0;border-top:1px solid #eee;padding-top:8px}.if-style-preview summary,.if-style-add summary{cursor:pointer;color:#777;font-size:11px}.if-style-preview pre{max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#fafafa;padding:10px;color:#666;font-family:inherit;font-size:11px;line-height:1.8}.if-style-add label{margin:10px 0}.if-style-add button{margin-top:6px}
.if-settings select,.if-settings input[type=number],.if-settings input[type=text]{font:inherit;box-sizing:border-box;width:100%;min-width:0;border:0;border-bottom:1px solid #d8d8d8;border-radius:0;background:transparent;color:#333;padding:6px 0;outline:none}
.if-settings select:focus,.if-settings input[type=number]:focus,.if-settings input[type=text]:focus{border-bottom-color:#666}
.if-settings textarea,.if-compose textarea{display:block;box-sizing:border-box;width:100%;height:234px;min-height:104px;margin:12px 0 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px);color:#555;font-family:"Songti SC",serif;font-size:12px;line-height:26px;resize:vertical;scrollbar-width:thin;outline:none}
.if-settings textarea::placeholder,.if-compose textarea::placeholder{color:#bbb;font-size:11px}
.if-settings .if-setting-check{display:flex;flex-direction:row;align-items:center;gap:7px;margin:8px 0}
.if-settings .if-setting-check input{width:auto}.if-settings form>div:last-child{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.if-prompt-preview{margin:12px 0;border-top:1px solid #eee;padding-top:8px}.if-prompt-preview h4{font-size:11px;font-weight:500}.if-prompt-preview pre{max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px;line-height:1.7;font-family:inherit;background:#f8f8f8;padding:8px}
.if-history{display:grid;gap:10px}.if-message{padding:12px 14px;border:1px solid #e8e8e8;background:#fcfcfc;white-space:pre-wrap;overflow-wrap:anywhere}.if-message.is-user{background:#f5f7f8}.if-message p{margin:5px 0 0}.if-message label{font-size:10px;color:#999}
.if-compose{display:grid;gap:9px;margin-top:15px}.if-compose textarea{resize:vertical;min-height:90px}.if-compose button{justify-self:end;background:#333;color:#fff;border-color:#333}
.if-feedback{min-height:18px;color:#777}.if-feedback.is-error,.if-error{color:#a54438}
.if-branch-list,.if-node-list{display:grid;gap:12px}.if-world .if-branch-list button,.if-world .if-node-list button{text-align:left;display:grid;gap:7px;min-height:122px;padding:18px 20px;border:1px solid #e9e9e9;border-radius:0;background:#fff;font-family:"Songti SC",serif}.if-node-list strong,.if-branch-list strong{font-size:12px;font-weight:500;letter-spacing:1px}.if-node-list small,.if-branch-list small{display:block;min-height:26px;color:#888;font-size:11px;line-height:26px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#f0f0f0 25px,#f0f0f0 26px)}.if-node-list span{justify-self:end;color:#777;font-size:10px;border-bottom:1px solid #aaa}
.if-compose label{font-size:12px;color:#666}
.if-dream-list{display:grid;gap:10px}.if-dream-list article{border:1px solid #e5e5e5;padding:12px}.if-dream-list p{white-space:pre-wrap;max-height:190px;overflow:auto}.if-dream-list label{display:inline-flex;align-items:center;gap:5px;margin-right:14px;font-size:11px}.if-dream-list button{margin-top:8px}
.if-empty,.if-hint{padding:16px;color:#888}.timeline-if-open{margin-top:8px}
@media(max-width:480px){.if-world{padding:0 12px 80px}.if-setting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.if-world header h2{order:initial;flex-basis:auto}}

.author-feedback-dialog{box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #e5e5e5;border-radius:4px;background:#fff;color:#555;overflow:auto;box-shadow:0 16px 60px #00000018}.author-feedback-dialog::backdrop{background:#0005}.author-feedback{padding:22px;text-align:left}.author-feedback header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.author-feedback header small{font-size:9px;letter-spacing:1.5px;color:#aaa}.author-feedback h3{margin:5px 0 0;font-size:18px;font-weight:500}.author-feedback header button{appearance:none;-webkit-appearance:none;padding:6px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#999;font-size:22px;-webkit-tap-highlight-color:transparent}.author-feedback:focus{outline:none}.author-feedback header button:focus:not(:focus-visible){outline:none}.author-feedback header button:focus-visible{outline:1px solid #999;outline-offset:2px}.author-feedback label{display:block;margin:12px 0;color:#777;font-size:12px}.author-feedback select{display:block;box-sizing:border-box;width:100%;margin-top:8px;padding:8px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:#fff;color:#555;font:inherit}.author-feedback textarea{display:block;box-sizing:border-box;width:100%;min-height:156px;max-height:260px;margin:10px 0;padding:0;border:0;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 25px,#eee 25px,#eee 26px);color:#555;font-family:inherit;font-size:12px;line-height:26px;resize:vertical}.author-feedback p,.author-feedback small{display:block;margin:9px 0;color:#999;font-size:11px;line-height:1.8;overflow-wrap:anywhere}.author-feedback a{color:#666;text-decoration:underline;text-underline-offset:3px}.author-feedback footer{display:flex;align-items:center;gap:14px;margin:18px 0}.author-feedback footer button{font-size:12px}.author-feedback footer .primary{flex:1;width:auto;border-radius:3px}.author-feedback footer>button:first-child{flex:none;padding:8px 0;color:#777}.author-feedback [data-feedback-status]:empty{display:none}

.author-feedback input[name=replyTo]{box-sizing:border-box;width:100%;margin:8px 0;padding:8px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:#fff;font:inherit}.author-feedback input[type=file]{display:block;width:100%;margin:10px 0;font-size:11px}.author-feedback-file{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid #eee;font-size:11px}.author-feedback-file span{flex:1;min-width:0;overflow-wrap:anywhere}.author-feedback-file button{flex:none;color:#999;font-size:11px}.author-feedback button:disabled{opacity:.5;cursor:wait}

.author-feedback h3{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.author-feedback-quota{display:inline-flex;align-items:center;padding:0 0 0 9px;border:0;border-left:1px solid #d5d5d5;border-radius:0;background:transparent;color:#888;font-size:10px;font-weight:400;line-height:1.4;letter-spacing:0;white-space:nowrap}

.author-feedback .author-feedback-pick{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 16px;border:1px solid #dedede;border-radius:2px;background:#fafafa;color:#666;font-family:inherit;font-size:11px;letter-spacing:.5px}.author-feedback .author-feedback-pick:hover{background:#f2f2f2;border-color:#bbb}

.release-version-content .release-entry-link{color:#555;font-weight:600}

/* IF navigation rows meet without margins; the generated story has its own page body. */
.experiences-page:has(>.experience-future-panel:not([hidden])){gap:0}
.experiences-page>.experience-future-panel{margin:0;padding:0}
.if-story-page{display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;padding-bottom:0}
.if-story-page>header,.if-story-page>.if-subtabs{flex:none;position:relative;top:auto}
.if-story-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 0 calc(24px + env(safe-area-inset-bottom));scrollbar-width:thin}
.if-story-details{margin-top:18px;color:#777;font-size:11px}
.if-story-details>summary{cursor:pointer}

/* IF interaction uses its own full-page chrome and URL-loaded wordmark. */
@font-face{font-family:"Iris IF Script";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/great-vibes/great-vibes-regular.woff2") format("woff2")}
.experiences-page.if-interaction-active>.experiences-tabs{display:none}
.experiences-page.if-interaction-active>.experience-future-panel{flex:1;min-height:0}
.timeline-role-switch[hidden]{display:none}
.if-story-brand{display:flex;align-items:baseline;gap:10px;min-width:0;max-width:100%;padding:0;border:0;background:transparent;text-align:left}
.if-story-brand .feature-page-wordmark{flex:none;font-family:"Iris IF Script",cursive;font-size:38px;font-weight:400;font-style:normal;line-height:1.3;letter-spacing:0}
.if-story-brand small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"LXGW WenKai",serif;font-size:11px;font-style:normal;color:#888}
.if-interaction-active .if-world{padding-inline:0}
.if-interaction-active .if-subtabs{top:0}
.if-interaction-active .if-setting-tabs{top:39px}
.if-setting-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.if-story-page>.if-chat-composer{display:flex;flex:none;align-items:center;gap:9px;min-height:0;margin:0;padding:10px 0 calc(8px + env(safe-area-inset-bottom));border:0;background:#fff}
.if-story-page>.if-chat-composer textarea{display:block;flex:1;box-sizing:border-box;width:100%;height:22px;min-height:22px;max-height:88px;margin:0;padding:0;border:0;border-radius:0;background:transparent;align-self:stretch;overflow-x:hidden;overflow-y:auto;white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:22px;resize:none}
.if-chat-composer textarea::placeholder{color:#adadad;font-size:inherit}
.if-world .if-chat-composer button{display:grid;place-items:center;flex-shrink:0;padding:0;border:0;background:var(--surface,#f2f2f2);color:#676767;border-radius:50%}
.if-world .if-chat-composer .emoji.is-send{width:28px;height:28px;background:#e2e2e2;color:#363636;margin-left:8px}
.if-chat-composer .emoji.is-send svg{width:15px;height:15px}
.if-world .if-chat-composer>.small{width:40px;height:40px}
.if-story-page .if-message.is-user{border:0;background:#f5f5f5}
@media(max-width:480px){.if-story-page>.if-chat-composer{gap:6px}.if-world .if-chat-composer>.small{width:35px;height:35px}}
@media(pointer:coarse){.if-story-page>.if-chat-composer textarea{font-size:16px}}
.if-story-page>.if-feedback{flex:none;min-height:0;margin:0;font-size:11px}
.if-story-page>.if-feedback:empty{display:none}
.if-story-page .if-history .if-message.is-role{border:0;padding:10px 0;background:transparent;font-size:14px;line-height:2}
.if-index .if-node-list{gap:22px;padding:20px 4px 8px}
/* Monochrome cards with a small ribbon at the upper-right corner. */
.if-world.if-index .if-node-list>button{display:grid;position:relative;isolation:isolate;grid-template-columns:minmax(0,1fr) auto;min-height:116px;gap:9px 18px;padding:28px 25px 22px;border:1px solid #e5e5e5;border-radius:4px;background:#fff;box-shadow:0 3px 14px #00000004;transition:border-color .2s,box-shadow .2s}
.if-world.if-index .if-node-list>button:hover{border-color:#c9c9c9;box-shadow:0 5px 18px #00000008}
.if-world.if-index .if-node-list>button:focus-visible{outline:2px solid #888;outline-offset:5px}
.if-index .if-node-list>button>strong,.if-index .if-node-list>button>small{grid-column:1;min-width:0;overflow-wrap:anywhere}
.if-index .if-node-list>button>strong{display:flex;align-items:center;padding-right:12px;color:#333;font-family:"Noto Serif SC","Songti SC",serif;font-size:13px;font-weight:400;letter-spacing:1.6px}
.if-index .if-node-list>button>small{align-self:end;min-height:0;background:none;color:#999;font-size:10px;line-height:1.8;letter-spacing:.6px}
.if-index .if-node-list>button>.if-opening-count{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;min-width:32px;margin-top:13px;padding:0 3px 0 12px;border:0;background:transparent;color:#555;font-family:"Italianno","Iris IF Script",cursive;font-size:52px;font-weight:400;font-style:normal;font-synthesis:none;line-height:1;letter-spacing:1px;text-shadow:0 1px 0 #fff}
.if-opening-picker{box-sizing:border-box;width:calc(100% - 40px);max-width:420px;max-height:70dvh;padding:20px;border:1px solid #eee;border-radius:14px;background:#fff;color:#555;overflow:auto;box-shadow:0 12px 60px #0002;font-family:"LXGW WenKai",serif}
.if-opening-picker::backdrop{background:#0003}
.if-opening-picker h3{margin:0 0 15px;font-size:16px;font-weight:400}
.if-opening-list{display:grid;gap:10px}
.if-opening-card{position:relative;padding:19px 16px 12px;border:1px solid #e7e7e7;border-radius:3px;background:#fff;box-shadow:0 4px 16px #00000005}.if-opening-picker .if-opening-preview{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.if-timeline-bow{position:absolute;z-index:1;top:-9px;right:14px;left:auto;width:47px;height:auto;transform:rotate(5deg);filter:drop-shadow(0 1px 1px #00000018);pointer-events:none;user-select:none}.if-opening-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:9px;border-top:1px solid #eee}.if-opening-picker .if-opening-delete{flex:none;margin-left:auto;padding:3px 0 3px 10px;border:0;background:transparent;color:#888;font-family:inherit;font-size:10px;line-height:1.5;cursor:pointer}.if-opening-delete:hover{color:#222}.if-opening-delete:disabled{opacity:.4;cursor:wait}.if-picker-error{color:#a54438;font-size:11px}
.if-timeline-bow{overflow:visible;transform-origin:51% 40%}
.if-timeline-bow .if-bow-tail-left,.if-timeline-bow .if-bow-tail-right{transform-box:view-box;transform-origin:51% 40%}
.if-index .if-bow-burst,.if-index .if-bow-butterfly{padding:0;border:0;background:transparent}
.if-bow-burst{position:absolute;z-index:3;top:-9px;right:14px;width:47px;height:42px;pointer-events:none}
.if-index .if-bow-butterfly{position:absolute;top:11px;left:17px;display:block;width:13px;color:#444;opacity:0;pointer-events:none}
.if-bow-butterfly svg{display:block;width:100%;height:auto;overflow:visible}
.if-butterfly-wings{transform-box:view-box;transform-origin:50% 50%}
.if-opening-list p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;margin:0 0 8px;font-size:12px;line-height:1.8}
.if-opening-list time{color:#aaa;font:10px/1.5 sans-serif}
.if-opening-new{display:block;margin:16px 0 0;padding:7px 0;border:0;border-bottom:1px solid #ddd;background:transparent;color:#777;font:12px "LXGW WenKai",serif;cursor:pointer}
.if-world-preview,.if-world-add{margin:14px 0;font-size:11px}
.if-world-preview p{max-height:230px;overflow:auto;white-space:pre-wrap;line-height:1.9;color:#777}
.if-world-add label{margin:12px 0}
@media(max-width:360px){.if-story-brand{gap:7px}.if-story-brand .feature-page-wordmark{font-size:33px}.if-story-brand small{font-size:10px}}

/* IF message actions share chat menus; selection stays above the input area. */
.if-story-page .if-message{position:relative;touch-action:pan-y;-webkit-touch-callout:none}
.if-story-page .if-message>p{margin:0}
.if-world .if-message-actions{top:6px;left:8px;max-width:calc(100% - 16px)}
.if-world .if-message-actions button{flex:none;min-height:27px;padding:0 9px;border:0;border-radius:13px;background:transparent;color:#555;font-size:10px;line-height:1}
.if-world .if-message-actions button:hover{background:#f1f1f1}
.if-story-page .if-message.is-selecting{padding-left:34px;cursor:pointer}
.if-story-page .if-message.is-selected{outline:1px solid #aaa;outline-offset:-1px;background:#f5f5f5}
.if-story-page .message-selection-check{top:14px;left:5px;right:auto}
.if-story-page>.if-message-selection{position:relative;flex:none;bottom:auto;margin:0;white-space:normal}
.if-world .if-message-selection button{border:0;background:#f3f3f3}
.if-world .if-message-selection [data-if-selection-delete]{background:#555;color:#fff}
.if-world .if-message-edit{white-space:normal}
.if-world .if-message-edit textarea{background:#fafafa;resize:vertical;touch-action:auto}
.if-message-edit>div{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}
.if-world .if-message-edit button{padding:7px 12px;font-size:11px}

.if-story-page .if-message.is-selected .message-selection-check{border-color:#777;background:#fff;color:#111}
.if-story-page .if-selection-butterfly{display:block;width:14px;height:14px;pointer-events:none}

/* IF tools use fixed equal dimensions so flex layouts cannot squeeze the circle. */
.if-chat-composer{--if-action-size:40px}
.if-world .if-chat-composer .if-tools-toggle{box-sizing:border-box;flex:0 0 var(--if-action-size);width:var(--if-action-size);min-width:var(--if-action-size);max-width:var(--if-action-size);height:var(--if-action-size);min-height:var(--if-action-size);max-height:var(--if-action-size);aspect-ratio:1 / 1;border-radius:50%;padding:0}
.if-story-tools{position:relative;flex:0 0 var(--if-action-size);width:var(--if-action-size);height:var(--if-action-size)}
.if-story-tools-menu{position:absolute;z-index:10;left:0;right:auto;bottom:calc(100% + 12px);display:flex;flex-direction:column;gap:8px;padding:4px 0;width:max-content;max-width:calc(100vw - 40px)}
.if-world .if-chat-composer .if-story-tool{display:flex;align-items:center;justify-content:flex-start;gap:10px;border:0;border-radius:0;background:transparent;color:#555;font-family:inherit;font-size:11px;white-space:nowrap}
.if-story-tool-label{padding:5px 9px;border-radius:12px;background:#fff;box-shadow:0 2px 12px #0000000c}
.if-story-tool-icon{display:grid;place-items:center;box-sizing:border-box;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#f0f0f0}
.if-story-tool-icon svg{width:17px;height:17px}
.if-dream-dialog{box-sizing:border-box;width:min(340px,calc(100vw - 40px));padding:22px;border:1px solid #e5e5e5;border-radius:12px;background:#fff;color:#555;font-family:inherit;font-size:12px}
.if-dream-dialog::backdrop{background:#0003}
.if-dream-dialog h3{margin:0 0 12px;font-size:16px;font-weight:400}
.if-dream-dialog label{display:flex;align-items:center;gap:8px;margin:16px 0}
.if-dream-dialog input{accent-color:#333}
.if-dream-dialog footer{display:flex;justify-content:flex-end;gap:16px;margin-top:18px}
.if-dream-dialog button{padding:7px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#555;font:inherit}
.if-dream-dialog-status{color:#888}
.if-sealed-stories details{padding:12px 0;border-bottom:1px solid #eee}
.if-sealed-stories summary{cursor:pointer;color:#555}
.if-sealed-stories p{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:480px){.if-chat-composer{--if-action-size:35px}}

/* A compact name-language switch at the foot of the main feature menu. */
.dock-feature-menu .function-language-switch{display:inline-flex;align-items:center;align-self:flex-end;gap:2px;margin-top:8px;padding:3px;border:1px solid #e5e5e5;border-radius:999px;background:#fff;box-shadow:0 2px 10px #00000006}
.function-language-switch>button{display:grid;place-items:center;min-width:30px;height:25px;margin:0;padding:0 7px;border:0;border-radius:999px;background:transparent;color:#999;font-family:inherit;font-size:10px;line-height:1;cursor:pointer}
.function-language-switch>button[aria-pressed=true]{background:#ededed;color:#222}
.function-language-switch>span{padding:0 1px;color:#ccc;font-size:10px;line-height:1}
.function-language-switch>button:focus-visible{outline:1px solid #777;outline-offset:2px}

/* White relief globe: quiet surface, clear routes and city landmark silhouettes. */
.earth-stage{border-radius:0;max-width:520px;margin:10px auto 0;overflow:hidden}
.earth-stage::after{content:'';position:absolute;z-index:-1;bottom:1.5%;left:28%;width:44%;height:4%;border-radius:50%;background:radial-gradient(ellipse,#00000019,transparent 70%);filter:blur(5px);pointer-events:none}
.earth-stage canvas{position:relative}
 .earth-map-pins{position:absolute;inset:0;pointer-events:none;z-index:1}
.earth-panel .earth-map-pin{position:absolute;transform:translate(-50%,-100%) scale(var(--earth-pin-scale,1));transform-origin:50% 100%;width:12px;height:17px;min-width:0;padding:0;border:0;border-radius:0;background:transparent;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 1px 1px #0000000a);touch-action:manipulation}
.earth-map-pin[hidden]{display:none!important}
.earth-map-pin svg{display:block;width:100%;height:100%;overflow:visible}
.earth-pin-shell{fill:#292929;stroke:#fff;stroke-width:.8;stroke-linejoin:round}
.earth-pin-hole{fill:#fff;stroke:none}
.earth-map-pin.is-active{z-index:2}
.earth-map-pin.is-active .earth-pin-shell{fill:#111;stroke:#fff;stroke-width:1}
.earth-map-pin:focus-visible{outline:1px solid #555;outline-offset:3px}
.earth-panel .earth-toolbar button{color:#555}
.earth-panel .earth-toolbar button:hover{background:#f5f5f5}
.earth-panel .earth-toolbar button:focus-visible,.earth-panel canvas:focus-visible{outline:1px solid #555}
.earth-player{column-gap:12px;max-width:460px;margin:0 auto 8px;width:100%;grid-template-columns:auto auto auto minmax(50px,1fr) auto auto}
.earth-player>label{grid-column:5;grid-row:1;font-size:0}
.earth-player [data-earth-seek]{grid-column:4;grid-row:1}
.earth-player [data-earth-time]{grid-column:6;grid-row:1;color:#888}
.earth-map-help{margin:10px 0;color:#999;font-size:9px;line-height:1.7}
.earth-map-help summary{cursor:pointer;width:fit-content}
.earth-map-help .earth-note,.earth-credit{color:#999}
@media(max-width:380px){.earth-player{column-gap:8px;grid-template-columns:auto auto auto minmax(30px,1fr) auto auto}.earth-panel .earth-player>button{font-size:10px;gap:3px}.earth-panel .earth-map-pin{width:11px;height:15px}}

.earth-panel [data-earth-playing]{font-size:14px;line-height:1.9;color:#555;margin:14px 0 18px;overflow-wrap:anywhere}
.earth-panel [data-earth-playing]>p{margin:0;font:inherit;line-height:inherit}

.earth-ticket-info [hidden]{display:none!important}
.earth-ticket-info.is-turning{animation:earth-memory-turn .42s ease both;transform-origin:center}
@keyframes earth-memory-turn{0%{transform:perspective(900px) rotateY(-75deg);opacity:.25}100%{transform:none;opacity:1}}
.earth-memory-page{padding:20px 24px 26px;min-height:240px;background:#fff}
.earth-panel [data-earth-memory-flip],.earth-panel [data-earth-memory-back]{display:block;border:0;border-radius:0;background:transparent;color:#666;font-size:11px;padding:10px 0}
.earth-panel [data-earth-memory-flip]{margin:10px 22px 18px}
.earth-memory-page h3{font-size:17px;font-weight:500;color:#333;margin:20px 0 12px}
.earth-memory-page small{display:block;color:#999;font-size:9px;margin-top:18px}
.earth-memory-page .earth-memory-handwriting,.shared-travel-memory .earth-memory-handwriting{font-family:var(--travel-record-font,'Zhi Mang Xing','Kaiti SC',KaiTi,cursive);font-size:16px;font-weight:400;font-synthesis:none;-webkit-text-stroke:0;paint-order:normal;text-shadow:none;filter:none;line-height:1.95;letter-spacing:.04em;white-space:pre-wrap;overflow-wrap:anywhere;color:#666;margin:12px 0 22px}
.earth-memory-page details,.earth-memory-page [data-earth-memory-status],.earth-memory-empty{font-size:10px;line-height:1.8;color:#888;overflow-wrap:anywhere}
.earth-memory-page details p{white-space:pre-wrap}
@media(prefers-reduced-motion:reduce){.earth-ticket-info.is-turning{animation:none}}

.earth-panel .earth-toolbar>[data-earth-generate]{margin-left:auto}
.earth-panel .earth-toolbar>[data-earth-generate-memories]{margin-left:0;white-space:nowrap;color:#333;border-bottom-color:#777}
.earth-ticket-dialog .earth-trip-sheet .earth-route-actions{flex-wrap:nowrap;align-items:center;gap:12px;margin:8px 16px 16px}
.earth-ticket-dialog .earth-route-actions>[data-earth-memory-flip]{margin:0 auto 0 0;padding:5px 0;white-space:nowrap}
.earth-ticket-dialog .earth-route-actions>button{white-space:nowrap}
@media(max-width:380px){.earth-panel .earth-toolbar>button,.earth-panel .earth-toolbar .earth-view-controls>button{padding-inline:7px;font-size:10px}.earth-ticket-dialog .earth-trip-sheet .earth-route-actions{gap:8px;margin-inline:12px}.earth-ticket-dialog .earth-trip-sheet .earth-route-actions>button{font-size:9px}}

/* Fixed ticket and panel; only the panel body scrolls. */
.earth-ticket-dialog[open]{position:fixed;inset:0;display:block;box-sizing:border-box;height:min(560px,calc(var(--app-viewport-height,100dvh) * .75));min-height:0;max-height:calc(var(--app-viewport-height,100dvh) - 48px);margin:auto;overflow:hidden;overscroll-behavior:contain}
.earth-ticket-dialog .earth-trip-sheet{display:flex;flex-direction:column;align-items:center;box-sizing:border-box;height:100%;min-height:0;padding:12px 0;overflow:hidden}
.earth-panel .earth-ticket-dialog .earth-ticket{flex:none;width:min(100%,calc(var(--app-viewport-height,100dvh) * .85))}
.earth-ticket-dialog .earth-ticket-info{display:flex;flex-direction:column;flex:0 1 auto;min-height:0;height:auto;max-height:420px;overflow:hidden}
.earth-ticket-dialog .earth-ticket-info.is-reading-memory{flex:1;height:0}
.earth-ticket-dialog .earth-ticket-info>header{flex:none}
.earth-ticket-dialog [data-earth-ticket-front],.earth-ticket-dialog .earth-memory-page{flex:1;min-height:0;height:auto;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;box-sizing:border-box}
.earth-memory-page h3{font-size:14px;font-weight:400}

.earth-ticket-dialog .earth-memory-page{display:flex;flex-direction:column;overflow:hidden;padding:14px 24px 20px}
.earth-memory-page>[data-earth-memory-back]{flex:none;align-self:flex-start;margin:0}
.earth-memory-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}

.earth-memory-page>[data-earth-memory-title]{flex:none;margin:10px 0 12px;font-size:14px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}
.earth-ticket .ticket-from,.earth-ticket .ticket-to,.earth-ticket .ticket-stub-from,.earth-ticket .ticket-stub-to{text-overflow:clip;letter-spacing:0}

.earth-panel .earth-toolbar>[data-earth-together]{margin-left:auto;white-space:nowrap;border-bottom-color:#777}
.earth-panel .earth-toolbar>[data-earth-generate]{margin-left:0}
.earth-panel .earth-toolbar{flex-wrap:wrap}
.earth-panel .earth-toolbar .earth-view-controls{flex:none}
.earth-together-dialog{position:fixed;inset:0;margin:auto;width:min(520px,calc(100vw - 28px));height:min(620px,80dvh);max-height:80dvh;padding:0;border:1px solid #ddd;border-radius:8px;background:#fff;color:#444;overflow:hidden;font-family:inherit}
.earth-together-dialog[open]{display:flex;flex-direction:column}
.earth-together-dialog::backdrop{background:#0004}
.earth-together-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #eee;font-size:12px;flex:none}
.earth-panel .earth-together-dialog button{font-size:11px;background:#fff;border-color:#ddd;color:#444}
.earth-together-body{flex:1;min-height:0;overflow:auto;padding:8px 18px 18px;overscroll-behavior:contain;font-size:12px;line-height:1.9}
.earth-together-intro,[data-together-status]{font-size:10px;color:#999}
.earth-together-message{display:grid;gap:4px;margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.earth-together-message small{font-size:9px;color:#999}
[data-together-plan]{padding-top:10px;border-top:1px solid #eee}
[data-together-plan]:empty{display:none}
[data-together-plan] h3{font-size:12px;font-weight:400}
[data-together-plan] p{white-space:pre-wrap;overflow-wrap:anywhere}
.earth-together-dialog form{display:flex;align-items:flex-end;gap:10px;padding:12px 18px;border-top:1px solid #eee;flex:none}
.earth-together-dialog textarea{flex:1;min-width:0;resize:vertical;max-height:110px;border:1px solid #ddd;border-radius:8px;background:#fafafa;font:12px/1.7 inherit;padding:8px;color:#444}
.earth-together-dialog>footer{display:flex;justify-content:space-between;gap:8px;padding:0 18px 12px;flex:none}
.earth-together-dialog [hidden]{display:none!important}
@media(max-width:480px){.earth-panel .earth-toolbar>button,.earth-panel .earth-toolbar .earth-view-controls>button{padding-inline:6px;font-size:10px}}

.earth-travel-invite-dialog{height:auto;max-height:80dvh}
.earth-travel-invite-dialog form{display:grid;gap:16px;overflow-y:auto;padding:20px;border-top:0;min-height:0}
.earth-travel-invite-dialog label{display:grid;gap:7px;font-size:11px;color:#666}
.earth-travel-invite-dialog input{box-sizing:border-box;width:100%;min-width:0;border:1px solid #ddd;border-radius:6px;padding:10px;background:#fafafa;color:#444;font-family:inherit;font-size:13px}
.earth-travel-invite-dialog form>button{justify-self:end}

.earth-panel .earth-travel-invite-dialog{position:fixed;inset:auto;top:calc(var(--app-viewport-top,0px) + var(--app-viewport-height,100dvh) / 2);left:50%;transform:translate(-50%,-50%);margin:0;width:min(360px,calc(100vw - 40px));height:max-content;min-height:0;max-height:calc(var(--app-viewport-height,100dvh) - 64px);border:1px solid #e5e5e5;border-radius:10px;box-shadow:0 12px 40px #00000012}
.earth-travel-invite-dialog>header{padding:13px 16px;border-bottom:1px solid #f0f0f0;font-size:12px}
.earth-panel .earth-travel-invite-dialog>header button{border:0;background:transparent;padding:0;width:24px;height:24px;font-size:19px;font-weight:300;color:#888}
.earth-travel-invite-dialog form{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:12px 10px;padding:16px;margin:0}
.earth-travel-invite-dialog form>label:first-child{grid-column:1/-1}
.earth-travel-invite-dialog label{gap:6px;font-size:10px;color:#888}
.earth-travel-invite-dialog input{height:36px;border:1px solid #e9e9e9;border-radius:5px;padding:8px;background:#fafafa;font-size:12px;box-shadow:none}
.earth-travel-invite-dialog form>.earth-together-intro{grid-column:1/-1;margin:0;font-size:9px;line-height:1.6;color:#aaa}
.earth-travel-invite-dialog [data-together-status]{grid-column:1/-1;margin:0;font-size:10px}
.earth-travel-invite-dialog [data-together-status]:empty{display:none}
.earth-panel .earth-travel-invite-dialog form>button{grid-column:1/-1;justify-self:stretch;height:34px;padding:7px 12px;border:0;border-radius:5px;background:#292929;color:#fff;font-size:11px}

/* Compact invitation: two input rows and one action. */
.earth-travel-invite-dialog>header{padding:9px 13px;font-size:11px}
.earth-travel-invite-dialog form{gap:9px 10px;padding:12px 13px;grid-template-columns:minmax(0,1fr) 70px}
.earth-travel-invite-dialog form>label:first-child{grid-column:1;grid-row:1}
.earth-travel-invite-dialog form>label:nth-child(2){grid-column:1/-1;grid-row:2}
.earth-travel-invite-dialog form>label:nth-child(3){grid-column:2;grid-row:1}
.earth-travel-invite-dialog label{gap:4px}
.earth-travel-invite-dialog input{height:31px;padding:6px 8px;font-size:11px}
.earth-panel .earth-travel-invite-dialog form>button{height:31px;padding:6px 10px}
.travel-chat-card{box-sizing:border-box;width:266px;max-width:100%;padding:12px 14px;text-align:left;border:1px solid #e8e8e8;border-radius:4px;background:#fff;color:#333;box-shadow:none;overflow:hidden;font-family:inherit}
.travel-card-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;letter-spacing:.08em;line-height:1.5;color:#888}
.travel-card-heading small{font-size:9px;letter-spacing:0;color:#aaa}
.travel-card-place{display:block;margin:2px 0 0;font-size:17px;line-height:1.4;font-weight:400;letter-spacing:.02em;overflow-wrap:anywhere}
.travel-card-route{display:flex;align-items:center;gap:10px;margin:10px 0 11px;min-width:0}
.travel-card-arrival{flex:1;min-width:0}
.travel-card-arrival>small{display:block;color:#aaa;font-size:8px;letter-spacing:.1em;line-height:1.4}
.travel-card-flight{width:70px;height:26px;flex:0 1 70px;color:#8b8b8b}
.travel-card-duration{flex:none;min-width:35px;text-align:center;border-left:1px solid #eee;padding-left:10px}
.travel-card-duration b{display:block;font-family:Georgia,'Times New Roman',serif;font-size:24px;font-weight:400;line-height:1.1;color:#555}
.travel-card-duration small{display:block;font-size:8px;color:#aaa;line-height:1.5;margin-top:2px}
.travel-card-departure{color:#aaa}
.travel-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px dashed #e2e2e2;padding-top:8px}
.travel-card-bottom p{margin:0;min-width:0;font-size:9px;line-height:1.6;color:#999;font-variant-numeric:tabular-nums}
.travel-card-bottom button{flex:none;border:0;padding:0;background:transparent;color:#666;font:inherit;font-size:10px;line-height:1.8;cursor:pointer}
.travel-card-bottom button:focus-visible{outline:1px solid #888;outline-offset:3px}
.travel-chat-card .travel-card-note{display:block;margin:7px 0 0;font-size:9px;line-height:1.5;color:#999}


.travel-update-note{font-size:10px;color:#888}
.travel-detail{font-size:12px;line-height:1.8;max-height:min(65dvh,560px);overflow:auto;padding:0 4px 12px;overscroll-behavior:contain}
.travel-detail h3{font-size:18px;font-weight:400}
.travel-detail-status{font-size:10px;color:#999}
.travel-detail button{border:1px solid #ddd;border-radius:5px;background:#fff;color:#444;font-size:11px;padding:8px 12px;margin:8px 8px 0 0}
.travel-proposal,.shared-travel-plan{border-top:1px solid #e8e8e8;padding-top:12px;margin-top:16px}
.shared-travel-plan p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.9}
.shared-travel-plan h4{font-weight:400;font-size:12px}
.travel-detail form label{display:grid;gap:8px;font-size:11px;color:#888}
.travel-detail textarea{width:100%;box-sizing:border-box;border:1px solid #ddd;border-radius:5px;font-family:inherit;font-size:12px;line-height:1.7;padding:8px;resize:vertical}
.shared-travel-ticket{background:#fff;border:1px solid #ddd;padding:18px;margin:12px 0;color:#333}
.shared-travel-ticket>small{font-size:9px;color:#999;letter-spacing:.08em}
.shared-travel-ticket>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px dashed #ddd}
.shared-travel-ticket strong{font-size:17px;font-weight:400;overflow-wrap:anywhere}
.shared-travel-ticket>p{font-size:11px}
.earth-shared-trips{margin:18px 0 6px;padding-top:12px;border-top:1px solid #eee}
.earth-shared-trips:empty{display:none}
.earth-shared-trips h3{font-size:12px;font-weight:400;color:#555}
.earth-panel .earth-shared-trips>button{display:grid;gap:5px;width:100%;text-align:left;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent;padding:12px 0;color:#444}
.earth-shared-trips small{font-size:9px;color:#999;line-height:1.6}

.shared-journal{display:flex;flex-direction:column;height:min(590px,65dvh);min-height:220px;overflow:hidden;color:#555}
.shared-journal>header{display:flex;flex:none;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 12px;border-bottom:1px solid #eee;font-size:11px}
.shared-journal button{border:1px solid #ddd;border-radius:5px;background:#fff;color:#555;font-family:inherit;font-size:10px;line-height:1.5;padding:7px 10px;cursor:pointer}
.shared-journal button:disabled{opacity:.45;cursor:wait}
.shared-journal>header button{border:0;padding:5px 0}
.shared-journal-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding-top:10px}
.shared-travel-scenes,.shared-travel-records{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 6px}
.shared-scene{padding:12px 0 18px;border-bottom:1px solid #eee;text-align:left}
.shared-scene small{font-size:9px;color:#aaa}
.shared-scene h3,.shared-travel-memory h3{font-size:13px;font-weight:400;line-height:1.7;margin:10px 0}
.shared-scene p{font-size:13px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0}
.shared-scene.is-user{margin-left:18px;padding-left:12px;border-left:1px solid #ddd}
.shared-journal form{flex:none;padding:12px 0 0;border-top:1px solid #eee}
.shared-journal textarea{box-sizing:border-box;width:100%;min-width:0;max-height:100px;border:1px solid #e3e3e3;border-radius:7px;background:#fafafa;padding:9px;font-family:inherit;font-size:12px;line-height:1.7;resize:vertical;color:#444}
.shared-journal form>div{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
.shared-journal-status{flex:none;font-size:9px;color:#999;line-height:1.6;margin:8px 0;min-height:14px}
.shared-journal>footer{display:flex;flex:none;justify-content:space-between;gap:12px;border-top:1px solid #eee;padding-top:9px}
.shared-journal>footer button{border:0;padding-inline:0}
.shared-travel-memory{padding:4px 0 20px;margin-bottom:14px;border-bottom:1px solid #eee;text-align:left}

.shared-travel-memory details{font-size:9px;color:#999;line-height:1.8}
.shared-travel-memory details p{white-space:pre-wrap;overflow-wrap:anywhere}
.shared-travel-empty{font-size:11px;color:#999;line-height:1.8;margin:20px 0}
@media(prefers-reduced-motion:no-preference){.shared-journal{animation:earth-memory-turn .25s ease both}}

.travel-map-view{height:min(650px,69dvh);min-height:320px;display:flex;flex-direction:column;overflow:hidden;color:#555}
.travel-map-view>header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex:none;padding:0 0 10px;font-size:12px}
.travel-map-view button{font-family:inherit;font-size:10px;color:#555;border:1px solid #ddd;background:#fff;border-radius:5px;padding:7px 10px;cursor:pointer}
.travel-map-view button:disabled{opacity:.4;cursor:wait}
.travel-map-view>header button{border:0;padding:4px 0}
.travel-map-view>[data-map-search]{display:flex;flex:none;gap:8px;margin-bottom:10px}
.travel-map-view input,.travel-map-view select{box-sizing:border-box;min-width:0;border:1px solid #ddd;border-radius:5px;padding:8px;background:#fafafa;color:#444;font-family:inherit;font-size:11px}
.travel-map-view>[data-map-search] input{flex:1}
.travel-map-canvas{height:min(240px,30dvh);min-height:160px;flex:none;border:1px solid #e6e6e6;border-radius:6px;background:#f5f5f5;z-index:0}
.travel-map-canvas .leaflet-tile-pane{filter:grayscale(1) contrast(.9) brightness(1.04)}
.travel-map-canvas .leaflet-control-attribution{font-size:8px;background:#fffe;color:#666}
.travel-map-canvas .leaflet-control-attribution a{color:#555}
.travel-map-status{flex:none;font-size:10px;color:#999;line-height:1.6;min-height:16px;margin:7px 0}
.travel-map-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 2px}
.travel-map-scroll h4{font-size:11px;font-weight:400;color:#777;margin:12px 0 8px}
.travel-map-scroll small{display:block;font-size:9px;color:#999;line-height:1.7;margin-top:4px;overflow-wrap:anywhere}
.travel-map-scroll [data-place-result],.travel-map-scroll [data-place-proposal]{display:block;width:100%;padding:10px;text-align:left;margin:6px 0;border-color:#e7e7e7}
.travel-map-scroll [data-place-result] strong{font-size:12px;font-weight:400}
.travel-map-scroll [data-map-confirm]{display:grid;grid-template-columns:70px 1fr;gap:8px;border:1px solid #ddd;border-radius:5px;padding:10px;margin:10px 0;font-size:10px}
.travel-map-scroll [data-map-confirm]>strong{grid-column:1/-1;font-size:11px;line-height:1.7;font-weight:400}
.travel-map-scroll [data-map-confirm] label{display:grid;gap:5px}
.travel-map-scroll [data-map-confirm]>button{grid-column:1/-1;background:#303030;color:#fff;border:0}
.travel-map-scroll [data-map-places]>article{display:block;padding:10px 0;border-bottom:1px solid #eee;font-size:10px}
.travel-map-scroll [data-place-focus]{flex:1;display:flex;align-items:flex-start;gap:8px;min-width:0;text-align:left;border:0;padding:0;background:transparent;font-size:11px}
.travel-map-scroll [data-place-focus]>span{min-width:0;overflow-wrap:anywhere}
.travel-map-scroll [data-place-focus] b{display:grid;place-items:center;flex:none;width:18px;height:18px;background:#333;color:#fff;border-radius:50%;font-size:9px;font-weight:400}
.travel-map-scroll [data-map-places] a{color:#888;font-size:9px;white-space:nowrap}
.travel-map-scroll [data-map-places]>p{font-size:10px;color:#999;line-height:1.8}
.travel-map-credit{font-size:8px;line-height:1.5;margin:9px 0 0;color:#aaa;flex:none}
.travel-map-credit a{color:inherit}
.travel-map-view [hidden]{display:none!important}
.travel-place-pin{background:transparent;border:0}
.travel-place-pin svg{display:block;width:20px;height:28px;overflow:visible;filter:drop-shadow(0 1px 1px #0002)}
.travel-place-pin path{fill:#222;stroke:#fff;stroke-width:1.5}
.travel-place-pin circle{fill:#fff;stroke:none}

.travel-billing{height:min(570px,65dvh);display:flex;flex-direction:column;overflow:hidden;color:#555}
.travel-billing>header{flex:none;display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;border-bottom:1px solid #eee;font-size:12px}
.travel-billing button{font:inherit;font-size:11px;border:1px solid #ddd;border-radius:5px;background:#fff;color:#444;padding:8px 11px;cursor:pointer}
.travel-billing>header button{border:0;padding:4px 0}
.travel-billing button:disabled{opacity:.4;cursor:wait}
.travel-billing-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px 2px;font-size:12px;line-height:1.9}
.travel-billing-scroll>small,.travel-billing-scroll article small{font-size:9px;color:#999}
.travel-billing-scroll article{padding:8px 0;border-bottom:1px solid #eee}
.travel-billing-scroll h4{font-size:12px;font-weight:400;margin:0}
.travel-billing-scroll p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.travel-billing-scroll form{margin-top:18px;display:grid;gap:10px}
.travel-billing-scroll textarea{box-sizing:border-box;min-width:0;width:100%;padding:9px;border:1px solid #ddd;border-radius:6px;background:#fafafa;font-family:inherit;font-size:12px;line-height:1.7;color:#555;resize:vertical}
.travel-billing .travel-billing-note,.travel-billing-status{font-size:10px;color:#999;line-height:1.7}
.travel-billing-status{flex:none;min-height:16px;margin:10px 0 0}
.travel-billing [data-bill-pay]{background:#292929;color:#fff;border-color:#292929}

.travel-billing-scroll select,.shared-journey-country select{box-sizing:border-box;max-width:100%;min-width:0;border:1px solid #ddd;border-radius:5px;padding:7px;background:#fafafa;color:#555;font-family:inherit;font-size:11px}
.travel-billing-scroll form>label{display:grid;gap:6px;font-size:10px;color:#888}
.travel-billing-scroll details{margin:14px 0;padding:10px;border:1px solid #eee;border-radius:5px}
.travel-billing-credit{flex:none;font-size:8px;color:#aaa;line-height:1.6;margin-top:7px}
.travel-billing-credit a{color:inherit}
.travel-bill-list{display:flex;gap:7px;overflow:auto;padding-bottom:12px}
.travel-bill-list button{flex:none;font-size:9px;padding:5px 8px}
.shared-journey-country{display:flex;flex:none;gap:10px;align-items:center;font-size:9px;color:#999;margin:9px 0 0}
.shared-journey-country select{flex:1;min-width:0;padding:5px;font-size:10px}
.shared-journey-expenses{display:flex;flex:none;gap:7px;overflow:auto;padding:9px 0 0}
.shared-journey-expenses button{flex:none;font-size:10px;background:#303030;color:#fff;border-color:#303030}

.travel-system-row{display:flex;justify-content:center;align-items:center;width:100%;box-sizing:border-box;padding:9px 12px;clear:both}
.travel-system-row>span{display:block;max-width:100%;box-sizing:border-box;padding:5px 13px;border-radius:999px;background:#fff;color:#999;font-size:10px;font-weight:400;line-height:1.5;text-align:center;overflow-wrap:anywhere}

.travel-detail .travel-detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin-top:16px;border-top:1px solid #eee;padding-top:11px}
.travel-detail .travel-detail-actions>button{flex:1;min-width:0;width:auto;margin:0;padding:7px 4px;font-size:10px;line-height:1.5;white-space:normal}

.travel-map-view>[data-map-search]{align-items:center;gap:7px}
.travel-map-view>[data-map-search] input,.travel-map-view>[data-map-search]>button{box-sizing:border-box;height:30px;min-height:30px;max-height:30px;margin:0;padding:5px 9px;line-height:18px;border-radius:4px;font-size:10px}
.travel-map-view>[data-map-search]>button{flex:0 0 48px;width:48px}

.travel-search-result{margin:6px 0}
.travel-search-result>[data-place-result]{margin:0}
.travel-search-result [data-map-confirm]{margin:0;border-top:0;border-radius:0 0 5px 5px}

.travel-quick-entry{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:0 0 10px;min-width:0}
.travel-quick-entry[hidden]{display:none}
.travel-quick-entry>button{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0;padding:7px 11px;border:1px solid #e9e9e9;border-radius:999px;background:#fff;box-shadow:0 2px 10px #00000005;color:#666;font-size:10px;line-height:1.5;text-align:left}
.travel-quick-entry svg{width:14px;height:14px;flex:none;stroke-width:1.1}
.travel-quick-destination{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}
.travel-quick-entry small{flex:none;color:#aaa;font-size:9px}
.travel-quick-entry>select{max-width:72px;min-width:0;border:1px solid #eee;border-radius:8px;padding:5px;background:#fff;color:#999;font-size:9px}

.travel-map-scroll [data-map-confirm]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.travel-map-scroll [data-map-confirm]>label{display:grid;grid-template-rows:15px 30px;align-items:start;gap:5px;min-width:0;margin:0;font-size:10px;line-height:15px}
.travel-map-scroll [data-map-confirm]>label>input,.travel-map-scroll [data-map-confirm]>label>select{display:block;box-sizing:border-box;width:100%;height:30px;min-height:30px;max-height:30px;margin:0;padding:5px 8px;line-height:18px;font-size:11px;align-self:start}

.travel-departure-actions{display:flex;gap:8px;margin-top:12px}.travel-departure-actions>button{flex:1;min-width:0;font-size:11px;padding:9px;border:1px solid #e5e5e5;border-radius:5px}
.travel-plan-places article{display:grid;gap:3px;border-top:1px solid #eee;padding:9px 0}.travel-plan-places small,.travel-plan-places span{font-size:10px;color:#999}.travel-plan-places strong{font-size:12px;font-weight:400}
.travel-booking{display:flex;flex-direction:column;max-height:65dvh;gap:10px;color:#666;font-size:11px}.travel-booking header,.travel-booking footer{display:flex;gap:8px;flex:none}.travel-booking button{padding:7px 10px;border:1px solid #e6e6e6;border-radius:5px;background:#fff;font-size:10px}.travel-booking header button:last-child{margin-left:auto}.travel-booking>small{font-size:9px;color:#aaa}.travel-booking-list{overflow:auto;min-height:0}.travel-booking-list article{border:1px solid #eee;border-radius:5px;padding:12px;margin:8px 0}.travel-booking-list strong{font-weight:400;font-size:12px}.travel-booking p{line-height:1.8;white-space:pre-wrap}.travel-booking button:disabled{opacity:.4}

.travel-place-author{flex:none;white-space:nowrap;font-size:9px;color:#aaa;text-align:right}

.travel-detail .travel-detail-actions{overflow-x:auto;scrollbar-width:none;gap:7px}
.travel-detail .travel-detail-actions>button{flex:0 0 auto;white-space:nowrap;word-break:keep-all;padding:7px 5px}
.travel-detail .travel-detail-actions>button:last-child{margin-left:auto}
.travel-map-places-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 8px}
.travel-map-scroll .travel-map-places-heading h4{margin:0}
.travel-map-places-heading>[data-map-confirm-plan]{flex:none;margin-left:auto;padding:5px 9px;font-size:10px;white-space:nowrap}

.travel-booking footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr);gap:5px;align-items:stretch}
.travel-booking footer>button{min-width:0;padding:8px 2px;font-size:clamp(8px,2.2vw,10px);white-space:nowrap;line-height:1.6;letter-spacing:0}
.travel-booking-selected{flex:0 1 auto;min-height:0;max-height:26dvh;overflow:auto}
.travel-booking-selected:empty{display:none}
.travel-booking-selected article{border:1px solid #bfbfbf;border-radius:5px;padding:12px 13px;background:#fff;margin:0 0 8px}
.travel-booking-selected article:last-child{margin-bottom:0}
.travel-booking-selected small{font-size:10px;color:#999}
.travel-booking-selected strong{display:block;margin-top:5px;font-size:15px;font-weight:400;line-height:1.5}
.travel-booking-selected p{font-size:12px;margin:7px 0 0;line-height:1.7}
.travel-booking .travel-booking-price{font-size:14px;color:#333;font-variant-numeric:tabular-nums}
.travel-booking-selected .travel-booking-role{font-size:11px;color:#888}

.travel-detail{display:flex;flex-direction:column;max-height:min(65dvh,560px);overflow:hidden;padding-bottom:0;min-height:0}
.travel-detail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 2px 8px}
.travel-detail-fixed{flex:0 0 auto;background:#fff;padding-top:5px}
.travel-detail-fixed .travel-departure-actions{margin-top:0}
.travel-detail-fixed .travel-detail-actions{margin-top:8px}
.travel-booking header>strong{font-size:12px;font-weight:400;align-self:center}
.travel-booking .travel-booking-price>small{display:block;font-size:10px;color:#999;margin-top:2px;line-height:1.7}
.travel-booking .travel-price-number{font-family:'Great Vibes','Italianno',cursive;font-weight:400;font-synthesis:none;font-size:25px;line-height:1.15;letter-spacing:.02em}
.travel-booking .travel-booking-price>small .travel-price-number{font-size:22px;color:#666}

.travel-booking-selected{max-height:20dvh}
.travel-booking-selected .travel-booking-receipt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 11px;border:1px solid #d7d7d7;border-radius:3px;margin:0;background:#fff}
.travel-receipt-itinerary{min-width:0;font-size:12px;line-height:1.8;color:#555}
.travel-receipt-itinerary>div{overflow-wrap:anywhere}
.travel-booking-selected .travel-receipt-itinerary>strong{font-size:12px;line-height:1.6;margin:0 0 3px;font-weight:400}
.travel-booking-receipt>.travel-booking-price{text-align:right;font-size:10px;margin:0;white-space:nowrap}
.travel-booking-receipt .travel-price-unit{font-size:9px;color:#999}
.travel-booking-receipt .travel-price-unit .travel-price-number{font-size:17px}
.travel-booking-receipt .travel-booking-price>small{font-size:8px;line-height:1.4;margin-top:3px}
.travel-booking-receipt .travel-booking-price>small .travel-price-number{font-size:17px;color:#999}
.travel-booking-selected .is-hotel{border-style:dashed;border-color:#c9c9c9;border-radius:0;background:repeating-linear-gradient(#fff,#fff 23px,#fcfcfc 24px)}
.travel-booking>p[role="status"]:empty{display:none}

.travel-billing-scroll [data-bill-country]{box-sizing:border-box;width:100%;height:32px;min-width:0;border:1px solid #ddd;border-radius:4px;padding:6px 9px;background:#fff;font-size:11px;color:#555}
.travel-country-results{max-height:180px;overflow-y:auto;border:1px solid #eee;border-radius:4px;background:#fff}
.travel-country-results[hidden]{display:none}
.travel-country-results>button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-bottom:1px solid #f1f1f1;border-radius:0;padding:8px 10px;text-align:left}
.travel-country-results small{font-size:9px;color:#999;padding:4px}

/* Booking receipts: itinerary first, price footer below it. */
.travel-booking-selected .travel-booking-receipt{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.travel-booking-receipt>.travel-receipt-itinerary{width:100%}
.travel-booking-selected .travel-booking-receipt>.travel-booking-price{align-self:flex-end;margin:0;text-align:right;max-width:100%;white-space:normal}
.travel-booking-receipt>.travel-booking-price>span{display:inline-block;white-space:nowrap}

.travel-booking{overflow-y:auto;max-height:72dvh;overscroll-behavior:contain}
.travel-booking-selected{flex:none;max-height:none;overflow:visible}
.travel-booking-selected .travel-booking-receipt{max-height:none;overflow:visible}
.travel-booking header{position:sticky;top:0;z-index:2;background:#fff;padding-bottom:5px;align-items:center}
.travel-booking header>[data-booking-switch]{margin-left:auto;font-size:9px;padding:5px 7px;white-space:nowrap}
.travel-booking header>[data-booking-back]{margin-left:0;font-size:9px;padding:5px 7px;white-space:nowrap}
.travel-booking footer{position:sticky;bottom:0;z-index:2;background:#fff;padding-top:7px}
.travel-booking-selected .travel-flight-route,.travel-booking-selected .travel-flight-fallback{font-size:15px;font-weight:400;line-height:1.9;color:#444}
.travel-flight-date-label{white-space:nowrap}
.travel-flight-date-label small{font-size:10px;color:#999}
.travel-flight-date{font-family:'Great Vibes','Italianno',cursive;font-size:25px;font-weight:400;font-synthesis:none;line-height:1.4;letter-spacing:.02em}
.travel-flight-leg+.travel-flight-leg{margin-top:5px}
.travel-booking-selected .travel-receipt-itinerary .travel-hotel-name{font-size:16px;line-height:1.6;font-weight:400;color:#444;margin-bottom:4px}

.travel-booking .travel-flight-date{font-size:15px;line-height:1.9;letter-spacing:0}
.travel-booking header>strong{flex:1;min-width:0}
.travel-booking-header-actions{display:flex;align-items:center;gap:4px;flex:none;margin-left:auto}
.travel-booking header .travel-booking-header-actions>button{margin:0;padding:5px 7px;font-size:9px;white-space:nowrap}
.travel-booking-list [data-booking-delete]{margin-left:7px;color:#999;border-color:#eee}

.travel-booking-option-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:8px}
.travel-booking-option-actions>[data-booking-delete]{margin-left:0}
.travel-billing-feedback{padding:9px 10px;border:1px solid #e5e5e5;border-radius:4px;font-size:11px;line-height:1.7;background:#fafafa}
.travel-billing-feedback.is-error{color:#333;border-color:#aaa}

.travel-billing-scroll .travel-bill-reference{display:inline-block;margin-left:7px;font-size:9px;line-height:1.6;color:#999}

.earth-route-tabs{display:flex;justify-content:center;align-items:center;gap:3px;width:max-content;margin:15px auto 8px;padding:3px;border:1px solid #e8e8e8;border-radius:999px;background:#fff}
.earth-route-tabs>button{min-width:52px;padding:5px 14px;border:0;border-radius:999px;background:transparent;color:#aaa;font-size:10px;line-height:1.5}
.earth-route-tabs>button[aria-pressed="true"]{background:#f1f1f1;color:#333}

.shade.is-earth-travel-overlay{z-index:30}
.sheet.is-earth-travel-overlay{z-index:31}

.earth-snake-segment.is-planned .earth-snake-line{stroke-dasharray:4 5;stroke:#999}

/* Equal-height Chinese name capsules in the online horizontal action row. */
#quickFeatures .quick-action-row>button{display:flex;align-items:center;gap:4px;min-width:0;font-size:10px;line-height:12px}
#quickFeatures .quick-action-row>button>.quick-icon{box-sizing:border-box;flex:0 0 38px;width:38px;height:38px;padding:0;background:#f0f0f0;box-shadow:none}
#quickFeatures .quick-action-row>button>span:last-child{display:flex;align-items:center;justify-content:center;box-sizing:border-box;flex:1;min-width:0;height:28px;min-height:28px;max-height:28px;margin:0;padding:3px 4px;border-radius:14px;background:#fff;color:#555;box-shadow:0 2px 12px #0000000c;font-size:10px;line-height:11px;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal}
#quickFeatures .quick-action-row>.quick-exit{font-size:10px}
@media(max-width:360px){#quickFeatures .quick-action-row{gap:4px}#quickFeatures .quick-action-row>button>.quick-icon{flex-basis:32px;width:32px;height:32px}#quickFeatures .quick-action-row>button>.quick-icon svg{width:32px;height:32px;padding:8px}}

/* Extend the sticker panel background through the shell gutters. */
.bottom #emojiInlinePanel{width:calc(100% + 2 * var(--app-shell-gutter,48px));max-width:none;margin-inline:calc(0px - var(--app-shell-gutter,48px));padding-inline:var(--app-shell-gutter,48px);background:#fff}

/* Three sticker rows, with the scroll area ending at the bottom of the panel. */
.bottom:has(#emojiInlinePanel:not([hidden])){padding-bottom:0}
.bottom #emojiInlinePanel{--emoji-row-height:91px;--emoji-row-gap:6px;--emoji-three-rows:calc(3 * var(--emoji-row-height) + 2 * var(--emoji-row-gap));padding-bottom:env(safe-area-inset-bottom,0px)}
#emojiInlinePanel .emoji-picker-panel{display:flex;flex-direction:column;gap:5px;height:auto;min-height:0;max-height:calc(var(--app-viewport-height,100dvh) - 140px);padding-bottom:0}
#emojiInlinePanel .emoji-picker-toolbar,#emojiInlinePanel .emoji-picker-tabs{flex-shrink:0}
#emojiInlinePanel .emoji-picker-grid{flex:0 1 var(--emoji-three-rows);height:var(--emoji-three-rows);min-height:0;max-height:var(--emoji-three-rows);grid-auto-rows:var(--emoji-row-height);row-gap:var(--emoji-row-gap);align-content:start;padding:0 1px;overflow-y:auto}

.travel-quick-entry>[data-travel-quick-close]{flex:none;justify-content:center;width:26px;height:26px;min-width:26px;min-height:26px;aspect-ratio:1;box-sizing:border-box;padding:0;border-radius:50%;font-size:16px;line-height:1;color:#888;box-shadow:none}
.earth-shared-trip-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #eee}
.earth-panel .earth-shared-trip-row>[data-earth-shared-trip]{display:grid;flex:1;min-width:0;gap:5px;text-align:left;border:0;border-radius:0;background:transparent;padding:12px 0;color:#444}
.earth-panel .earth-shared-trip-row>[data-earth-travel-shortcut-toggle]{flex:none;border:1px solid #ddd;border-radius:999px;padding:5px 8px;font-size:9px;white-space:nowrap;color:#777}

/* Shared trips reuse the globe's boarding pass; only daily record text scrolls. */
.shared-ticket-view{max-height:min(680px,calc(var(--app-viewport-height,100dvh) - 130px));padding:0;gap:0}
.shared-ticket-view .travel-detail-body{overflow:hidden;display:flex;flex-direction:column;min-height:0;padding:0}
.shared-ticket-view .travel-detail-status{margin:0 0 6px;text-align:center}
.shared-ticket-shell{display:flex;flex-direction:column;align-items:center;min-height:0;width:100%}
.shared-ticket-view button.shared-travel-ticket{display:block;position:relative;container-type:inline-size;flex:none;width:100%;aspect-ratio:1875/839;box-sizing:border-box;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#222;overflow:visible;box-shadow:none;text-align:center;font:inherit;cursor:pointer}
.shared-ticket-view .shared-travel-ticket .ticket-from,.shared-ticket-view .shared-travel-ticket .ticket-to{text-overflow:clip;letter-spacing:0}
.shared-ticket-view .shared-ticket-info{display:flex;flex-direction:column;width:94%;min-height:0;height:310px;max-height:calc(var(--app-viewport-height,100dvh) - 370px);margin:0 auto;overflow:hidden;box-shadow:none}
.shared-ticket-view .shared-ticket-info[hidden],.shared-ticket-view [hidden]{display:none!important}
.shared-ticket-info>header{flex:none}
.shared-ticket-front{flex:1;min-height:0;overflow-y:auto;padding:10px 18px;overscroll-behavior:contain}
.shared-ticket-front dl{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 14px;margin:0 0 12px}
.shared-ticket-front dt{color:#999;font-size:10px;line-height:1.8}
.shared-ticket-front dd{margin:0;color:#444;font-size:11px;line-height:1.8;overflow-wrap:anywhere}
.shared-ticket-front dd:first-of-type{font-size:22px;line-height:1.2}
.shared-ticket-front>[data-travel-memories],.shared-ticket-back>[data-shared-ticket-return]{margin:0;padding:6px 0;border:0;background:transparent;color:#555;font-size:10px}
.shared-ticket-plan{margin:8px 0;font-size:10px;color:#888}
.shared-ticket-plan>p{white-space:pre-wrap}
.shared-ticket-back{display:flex;flex-direction:column;flex:1;min-height:0;padding:10px 16px 12px}
.shared-ticket-back>[data-shared-ticket-return]{flex:none;align-self:flex-start}
.shared-ticket-back>[data-shared-daily-host]{display:flex;flex-direction:column;flex:1;min-height:0}
.shared-ticket-record-status{flex:none;margin:4px 0 0;font-size:9px;line-height:1.5;color:#999}
.shared-ticket-record-status:empty{display:none}
.shared-ticket-view .travel-detail-fixed{padding-top:6px}
.shared-ticket-view .travel-departure-actions{justify-content:center}
.shared-ticket-view .travel-detail-actions{margin-top:4px;padding-top:6px}
.shared-daily-pages{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;color:#555}
.shared-daily-navigation{display:flex;align-items:center;justify-content:space-between;flex:none;gap:12px;padding:8px 0 12px;border-bottom:1px solid #eee}
.shared-daily-navigation>span{text-align:center;font-size:11px;font-weight:400;line-height:1.6}
.shared-daily-navigation small{font-size:9px;color:#aaa}
.shared-daily-navigation time{display:block;color:#999;font-size:9px}
.shared-daily-navigation>button{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;min-height:30px;margin:0;padding:0;border:1px solid #e7e7e7;border-radius:50%;background:#fff;color:#555;font:300 23px/1 Georgia,serif;cursor:pointer}
.shared-daily-navigation>button:disabled{opacity:.25;cursor:default}
.shared-daily-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-top:12px}
.shared-daily-scroll .shared-travel-memory{margin:0;padding:0 0 12px;border:0}
.shared-daily-scroll .shared-travel-memory>small{font-size:9px;color:#aaa}
.shared-daily-scroll .earth-memory-handwriting{font-weight:400;white-space:pre-wrap;overflow-wrap:anywhere}
.earth-memory-scroll:has(.shared-daily-pages){display:flex;flex-direction:column;overflow:hidden}
.earth-memory-scroll>[data-earth-memory-content]:has(.shared-daily-pages){display:flex;flex-direction:column;flex:1;min-height:0}
.shared-travel-records[data-journal-daily]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
@media(prefers-reduced-motion:reduce){.shared-ticket-info.is-turning{animation:none}}

.travel-record-font-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;width:100%;box-sizing:border-box}
.earth-panel .travel-record-font-toolbar>button,.travel-record-font-toolbar>button{border:0;background:transparent;color:#666;font:inherit;font-size:11px;padding:8px 0;cursor:pointer}
.travel-record-font-toolbar>[data-travel-record-font]{margin-left:auto;flex:none}
.travel-font-dialog{width:min(360px,calc(100vw - 40px));max-height:70dvh;overflow:auto;box-sizing:border-box;padding:20px;border:1px solid #e6e6e6;border-radius:12px;background:#fff;color:#444;font:13px/1.7 system-ui,sans-serif}
.travel-font-dialog::backdrop{background:#0004}.travel-font-dialog header{display:flex;align-items:center;justify-content:space-between}.travel-font-dialog header strong{font-weight:500}.travel-font-dialog p{font-size:11px;color:#777}.travel-font-dialog button{font:inherit;font-size:12px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#666;padding:7px 0;cursor:pointer}.travel-font-dialog header button{border:0;font-size:20px;padding:0 5px}.travel-font-builtins{display:flex;gap:24px;margin:12px 0}.travel-font-row{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0}.travel-font-row>button:first-child{min-width:0;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.travel-font-row [aria-pressed=true]{border-bottom-color:#222;color:#222}.travel-font-custom{margin:16px 0}.travel-font-custom>span{font-size:11px;color:#888}.travel-font-custom-list{display:flex;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:4px 0 8px}.travel-font-row [data-font-delete]{font-size:10px;color:#999}.travel-font-import{display:flex;flex-direction:column;gap:10px;margin:18px 0 12px}.travel-font-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.travel-font-actions>button{flex:0 0 auto;white-space:nowrap;font-size:11px}.travel-font-import [data-font-url]{width:100%;box-sizing:border-box;min-width:0;border:1px solid #ddd;border-radius:6px;padding:9px;font:inherit;font-size:11px;resize:vertical;min-height:72px}.travel-font-dialog [data-font-status]{white-space:pre-wrap;overflow-wrap:anywhere}.travel-font-dialog button:disabled{opacity:.5;cursor:wait}

.if-world .if-prose{font:inherit;color:inherit;white-space:normal;text-indent:0;letter-spacing:inherit}
.if-world .if-prose .offline-prose-paragraph{margin:0 0 1em;line-height:inherit;text-indent:2em!important;white-space:pre-wrap}
.if-world .if-prose .offline-prose-paragraph:last-child{margin-bottom:0}
.if-world .if-prose .offline-user-paragraph{margin:0 0 1em}

.if-world .if-prose{font-family:"LXGW WenKai","Iris Kai","Kaiti SC","STKaiti","KaiTi",serif;font-weight:400}
.if-world [data-if-reply][aria-busy="true"] svg {
 animation: if-reply-spin 1s linear infinite;
 transform-origin: center;
}
@keyframes if-reply-spin { to { transform: rotate(360deg); } }
.if-custom-dialog { width:min(440px,calc(100vw - 40px)); max-height:80dvh; overflow:auto; box-sizing:border-box; padding:22px; border:1px solid #e5e5e5; border-radius:14px; background:#fff; color:#333; }
.if-custom-dialog::backdrop { background:#0005; }
.if-custom-dialog form,.if-custom-dialog label { display:grid; gap:8px; }
.if-custom-dialog form { gap:16px; }
.if-custom-dialog header,.if-custom-dialog footer { display:flex; align-items:center; justify-content:space-between; }
.if-custom-dialog h3 { margin:0; font-size:16px; font-weight:400; }
.if-custom-dialog label { min-width:0; font-size:12px; color:#777; }
.if-custom-dialog input,.if-custom-dialog select,.if-custom-dialog textarea { box-sizing:border-box; width:100%; min-width:0; padding:10px; border:1px solid #e5e5e5; border-radius:6px; background:#fafafa; color:#333; font:inherit; }
.if-custom-dialog textarea { resize:vertical; line-height:1.7; }
.if-custom-fields { display:grid; grid-template-columns:1fr 1.5fr; gap:12px; }
.if-custom-dialog button { border:1px solid #ddd; border-radius:6px; background:#fff; color:#333; padding:9px 14px; }
.if-custom-dialog [role="status"] { margin:0; font-size:12px; }
.if-custom-dialog footer { justify-content:flex-end; }
.if-cards-fold { margin:18px 0; border:0; background:transparent; }
.if-cards-fold>summary { padding:10px 4px; color:#555; font-family:"Noto Serif SC","Songti SC",serif; font-size:13px; letter-spacing:1px; cursor:pointer; }
.if-cards-fold>summary>span { margin-left:8px; color:#999; font-size:11px; }
.if-index .if-cards-fold>.if-node-list { padding:20px 4px 8px; }
.if-world .if-dream-list button[data-if-dream-summary],
.if-world .if-dream-list button[data-if-dream-update],
.if-world .if-dream-list button[data-if-dream-delete] {
 margin:8px 12px 0 0;
 padding:5px 2px;
 border:0;
 border-bottom:1px solid #aaa;
 border-radius:0;
 background:transparent;
 box-shadow:none;
}
.if-dream-actions { display:flex; justify-content:flex-end; align-items:center; gap:16px; margin-top:8px; }
.if-world .if-dream-list .if-dream-actions button[data-if-dream-summary],
.if-world .if-dream-list .if-dream-actions button[data-if-dream-update],
.if-world .if-dream-list .if-dream-actions button[data-if-dream-delete] { margin:0; }
.if-sealed-stamp { display:inline-block; padding:2px 8px; border:1px solid #999; color:#777; font-size:10px; letter-spacing:2px; transform:rotate(-4deg); }
.if-sealed-viewer { width:min(640px,calc(100vw - 32px)); max-height:min(82dvh,900px); overflow:auto; box-sizing:border-box; padding:24px; border:1px solid #ddd; background:#fff; color:#333; }
.if-sealed-viewer::backdrop { background:#0007; }
.if-sealed-viewer header { display:flex; align-items:center; justify-content:space-between; }
.if-sealed-viewer header button { border:0; background:transparent; font-size:24px; }
.if-sealed-viewer h3 { font-weight:400; }
.if-sealed-summary { white-space:pre-wrap; line-height:1.8; color:#777; }
.if-sealed-transcript article { padding:8px 0; border-top:1px solid #eee; }
.if-sealed-transcript small { color:#888; }
.if-sealed-transcript p { white-space:pre-wrap; line-height:1.85; }
.if-opening-card { position:relative; }
.if-opening-card>.if-sealed-stamp { position:absolute; top:12px; right:12px; pointer-events:none; }
.if-dream-actions { width:100%; }
.if-dream-list .if-dream-actions button { justify-self:auto; }
.if-dream-list { gap:3px; }
.if-dream-list .if-dream-entry { border:0; border-bottom:1px solid #ececec; padding:0; background:transparent; }
.if-dream-list .if-dream-entry>summary { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:38px; padding:6px 2px; color:#555; font-size:12px; cursor:pointer; list-style:none; }
.if-dream-list .if-dream-entry>summary::-webkit-details-marker { display:none; }
.if-dream-list .if-dream-entry>summary::after { content:"＋"; color:#999; font-size:12px; }
.if-dream-list .if-dream-entry[open]>summary::after { content:"−"; }
.if-dream-list .if-dream-entry>summary>small { margin-left:auto; color:#aaa; font-size:10px; }
.if-dream-list .if-dream-content { padding:2px 2px 12px; }

/* Keep archive rows in normal flow; percentage SVG sizing must not set the grid row height. */
.growth-detail-scroll .growth-form{display:block;margin:0 auto}
.growth-detail-scroll .growth-form> :not([hidden])+ :not([hidden]){margin-top:14px}
.growth-detail-scroll .growth-stage-header{position:relative;display:grid;align-items:start;grid-template-rows:auto;height:auto;min-height:0}
.growth-stage-header .growth-photo-edit{align-self:start;min-width:0;box-sizing:border-box}
.growth-stage-header .growth-photo-edit>.growth-detail-avatar{position:relative;height:auto;aspect-ratio:1;overflow:hidden}
.growth-stage-header .growth-detail-avatar .growth-default-avatar{position:absolute;inset:0;width:100%;height:100%}
.growth-stage-meta{position:static;align-self:start;min-height:0}
.if-opening-picker .if-opening-preview,.if-custom-dialog [data-custom-cancel],.earth-snake [data-route-show]{-webkit-tap-highlight-color:transparent;outline:none!important;box-shadow:none!important}
.if-opening-picker .if-opening-preview:focus,.if-opening-picker .if-opening-preview:active{outline:none!important;background:transparent}
.if-custom-dialog header [data-custom-cancel]{border:0;border-radius:0;background:transparent;padding:0 4px;font:22px/1.4 serif}
.earth-snake-segment:focus .earth-snake-line,.earth-snake-segment:hover .earth-snake-line,.earth-snake-segment.is-selected .earth-snake-line{stroke:#777;stroke-width:1;stroke-dasharray:3 4}
.earth-snake-city:focus circle{stroke:none;stroke-width:0}

.if-opening-picker .if-opening-card{border:0;border-radius:0;box-shadow:none}
.earth-snake{-webkit-tap-highlight-color:transparent}

/* Blend the camera print into the home-indicator area without a fractional-pixel seam. */
.growth-camera-bottom::after{content:"";position:absolute;pointer-events:none;left:0;right:0;bottom:calc(0px - var(--app-safe-bottom,env(safe-area-inset-bottom,0px)));height:calc(var(--app-safe-bottom,env(safe-area-inset-bottom,0px)) + 1px);background:linear-gradient(to right,#101010,#080808)}

.earth-city-field{display:flex;align-items:center;gap:10px;min-width:0}
.earth-city-field>input{flex:1;width:0;min-width:0}
.earth-city-field>[data-edit-map-end]{flex:none;padding:6px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;font-size:10px;white-space:nowrap}
.earth-city-mapping{display:grid;gap:8px;margin-top:8px;font-size:10px}
.earth-city-mapping[hidden]{display:none}
.earth-city-mapping-tools{display:flex;align-items:center;gap:12px}
.earth-city-mapping-tools>button{flex:none;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;font-size:10px}
.earth-city-mapping-tools>small{overflow-wrap:anywhere;color:#888}

/* The font dialog close icon stays unboxed after modal autofocus and mobile taps. */
.travel-font-dialog [data-font-close],.travel-font-dialog [data-font-close]:focus,.travel-font-dialog [data-font-close]:focus-visible,.travel-font-dialog [data-font-close]:active{appearance:none;-webkit-appearance:none;outline:none!important;box-shadow:none!important;border:0;border-radius:0;background:transparent;-webkit-tap-highlight-color:transparent}

.travel-map-scroll .travel-place-row{display:flex;align-items:center;gap:8px;min-width:0;width:100%}
.travel-map-scroll .travel-place-row>small,.travel-map-scroll .travel-place-row>a,.travel-map-scroll .travel-place-row>button:not([data-place-focus]){flex:none;white-space:nowrap}
.travel-map-scroll .travel-place-schedule{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:8px;width:100%;margin:6px 0}
.travel-map-scroll .travel-place-schedule label{display:grid;gap:4px;font-size:10px;min-width:0}
.travel-map-scroll .travel-place-schedule input,.travel-map-scroll .travel-place-schedule select{box-sizing:border-box;width:100%;height:30px;min-height:30px;margin:0;padding:4px 6px;border:0;border-bottom:1px solid #ddd;border-radius:0;background:#fff;font-size:11px}
.travel-map-scroll .travel-place-schedule button{flex:none;height:30px;padding:4px 6px;font-size:10px}
.profile-save-actions{display:flex;gap:9px}.profile-save-actions>.profile-confirm{width:auto;min-width:0;flex:1;justify-content:center}.profile-save-actions>.profile-save-only{background:#f4f4f4;color:#666;border:1px solid #e5e5e5}.character-dialog .profile-save-actions>.profile-confirm{position:relative}

/* 每条消息显示头像时，与该条消息顶部对齐。 */
.message.has-every-message-avatar{align-items:flex-start}.message.has-every-message-avatar>.avatar{align-self:flex-start}

/* More 设置按用途分组，选项标题统一使用常规字重。 */
.is-online-settings .more-settings-group{border:0;border-bottom:1px solid #e7e7e7}
.is-online-settings .more-settings-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;list-style:none;cursor:pointer}
.is-online-settings .more-settings-group>summary::-webkit-details-marker{display:none}
.is-online-settings .more-settings-group>summary>span{color:#444;font-size:11px;font-weight:400}
.is-online-settings .more-settings-group>summary>i{color:#999;font-size:15px;font-style:normal;font-weight:400}
.is-online-settings .more-settings-group>summary>i::before{content:'+'}.is-online-settings .more-settings-group[open]>summary>i::before{content:'−'}
.is-online-settings .more-settings-group>summary:focus-visible{outline:1px solid #999;outline-offset:2px}
.is-online-settings .more-settings-group-body{padding:0 0 5px}
.is-online-settings .more-settings-group-body>.more-preference-card:first-child{border-top:0}
.is-online-settings .more-settings-group-body>.more-preference-card:last-child{border-bottom:0}
.is-online-settings .more-page strong{font-weight:400}
.is-online-settings .more-page .settings-switch-row strong,.is-online-settings .more-page .more-card-heading strong,.is-online-settings .more-page .chat-avatar-setting strong{font-size:11px!important;font-weight:400}
.storage-connection-switch{flex:none;margin:0 0 10px;padding:0 0 7px;border-bottom:1px solid #eee}
.github-sync-page{width:100%;max-width:640px;margin:0 auto;padding:0 0 10px;color:#666;font-weight:400}
.github-sync-form{display:grid;gap:12px}
.github-sync-credentials{display:grid}
.github-sync-credentials>label{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:12px;min-height:43px;border-bottom:1px solid #eee;color:#888;font-size:10px;font-weight:400}
.github-sync-credentials>label>span{display:contents}
.github-sync-credentials input{grid-column:2;grid-row:1}
.github-sync-credentials>label:has(.github-token-link){grid-template-columns:62px minmax(0,1fr) auto}
.github-token-link{grid-column:3;grid-row:1;color:#999;font-size:9px;font-weight:400;text-decoration:none;border-bottom:1px solid #ddd;white-space:nowrap;padding:2px 0}
.github-token-link:hover{color:#555;border-color:#999}
.github-sync-page input:not([type=checkbox]),.github-sync-page select{box-sizing:border-box;width:100%;min-width:0;min-height:34px;margin:0;padding:7px 0;border:0;border-radius:0;background:transparent;color:#555;font:inherit;font-size:11px;outline:none;box-shadow:none}
.github-sync-page input::placeholder{color:#bbb;font-size:10px}
.github-sync-credentials>label:focus-within{border-color:#aaa}
.github-sync-preferences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.github-sync-preferences>label{display:grid;gap:2px;min-width:0;padding:3px 0 5px;border-bottom:1px solid #eee;color:#888;font-size:10px;font-weight:400}
.github-sync-preferences>label:last-child{grid-column:1/-1;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:12px;padding:3px 0}
.github-sync-preferences select{font-size:10px;cursor:pointer}
.github-sync-page select:focus-visible,.github-sync-page input:focus-visible{outline:1px solid #bbb;outline-offset:2px}
.github-password-hint{margin:-4px 0 0;color:#999;font-size:9px;line-height:1.7}
.github-sync-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:1px 0 0}
.github-sync-actions button{display:flex;align-items:center;justify-content:space-between;gap:3px;min-width:0;min-height:37px;padding:7px 0;border:0;border-top:1px solid #ddd;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#777;font:inherit;font-size:10px;text-align:left;white-space:nowrap;cursor:pointer}
.github-sync-actions button::after{content:'↗';color:#aaa;font-size:13px;font-style:normal}
.github-sync-actions [data-github-action=upload]{color:#444;border-color:#aaa}
.github-sync-actions button:hover{color:#333;border-color:#888}
.github-sync-actions button:disabled{opacity:.45;cursor:wait}
.github-sync-page button:focus-visible,.github-advanced>summary:focus-visible{outline:1px solid #bbb;outline-offset:3px}
.github-advanced{border-bottom:1px solid #eee;color:#888}
.github-advanced>summary{display:flex;align-items:center;justify-content:space-between;min-height:29px;padding:0;list-style:none;font-size:10px;font-weight:400;cursor:pointer}
.github-advanced>summary::-webkit-details-marker{display:none}
.github-advanced>summary i{font-style:normal;color:#aaa;font-size:13px}
.github-advanced>summary i::before{content:'＋'}.github-advanced[open]>summary i::before{content:'−'}
.github-advanced>div{display:grid;gap:10px;padding:7px 0 13px}
.github-advanced>div>label:not(.github-sync-check){display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:12px;border-bottom:1px solid #eee;font-size:10px}
.github-sync-check{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#777;font-size:10px;line-height:1.7;cursor:pointer}
.github-sync-check>span{order:-1}
.github-sync-check input{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:13px;height:13px;margin:0;border:1px solid #ccc;border-radius:50%;background:#fff;cursor:pointer}
.github-sync-check input:checked{border-color:#666;background:#666;box-shadow:inset 0 0 0 3px #fff}
.github-sync-hint{margin:0;color:#999;font-size:9px;line-height:1.8;overflow-wrap:anywhere}
.github-sync-recovery{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:7px 0;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent;color:#888;font:inherit;font-size:9px;text-align:left;cursor:pointer}
.github-sync-recovery::after{content:'↗';color:#aaa;font-size:12px}
.github-sync-transfer{margin-top:10px;padding:0;border:0}
.github-sync-status,.github-sync-restore>#storageFeedback{margin:0;color:#888;font-size:10px;font-weight:400;line-height:1.8;overflow-wrap:anywhere}
.github-sync-status.is-error{color:#b04d43}
.github-sync-details{margin:4px 0 0;white-space:pre-line;color:#aaa;font-size:9px;line-height:1.8;overflow-wrap:anywhere}
.github-sync-reconfigure{display:none;margin:9px 0;padding:5px 0;border:0;border-bottom:1px solid #ccc;border-radius:0;background:transparent;color:#888;font:inherit;font-size:10px}
.github-sync-page.has-restore-preview .github-sync-form{display:none}.github-sync-page.has-restore-preview .github-sync-reconfigure{display:inline-block}
.github-sync-restore>#storageFeedback:empty{display:none}
.github-sync-compact .github-sync-restore .backup-preview{margin-top:10px;padding:0;border:0}.github-sync-compact .github-sync-restore .backup-preview h3{font-size:12px;font-weight:400}.github-sync-compact .github-sync-restore .backup-preview>details>summary{font-size:10px;color:#888;cursor:pointer}.github-sync-compact .github-sync-restore .backup-preview ul{max-height:140px;overflow:auto}
.github-sync-compact .backup-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.github-sync-compact .backup-mode-options small{display:none}.github-sync-compact .backup-mode-options label{padding:8px 3px}.github-sync-compact .backup-primary-action{margin-top:8px}
@media(max-width:360px){.github-sync-actions{gap:10px}.github-sync-preferences{column-gap:14px}.github-sync-credentials>label,.github-sync-preferences>label:last-child{grid-template-columns:54px minmax(0,1fr);gap:8px}.github-sync-credentials>label:has(.github-token-link){grid-template-columns:54px minmax(0,1fr) auto}}
@media(pointer:coarse){.github-sync-page input:not([type=checkbox]){font-size:16px}}
.github-encryption-option{padding:2px 0 4px}.github-encryption-option>span{display:grid;gap:3px;color:#777}.github-encryption-option small{color:#999;font-size:9px;font-weight:400;line-height:1.6}
.github-password-dialog{box-sizing:border-box;width:min(360px,calc(100vw - 40px));max-height:calc(100dvh - 48px);overflow:auto;margin:auto;padding:24px;border:1px solid #e5e5e5;border-radius:2px;background:#fff;color:#666;font:inherit;box-shadow:0 12px 45px #0001}
.github-password-dialog::backdrop{background:#0004}
.github-password-dialog form{display:grid;gap:15px}.github-password-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #eee}
.github-password-dialog h3{margin:0;color:#555;font-size:14px;font-weight:400}.github-password-dialog header button{padding:0 2px;border:0;border-radius:0;background:transparent;color:#999;font:inherit;font-size:20px;cursor:pointer}
.github-password-dialog p{margin:0;font-size:11px;line-height:1.9;color:#888}.github-password-dialog label{display:grid;gap:6px;color:#777;font-size:10px}
.github-password-dialog input{box-sizing:border-box;width:100%;min-width:0;min-height:36px;padding:8px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#444;font:inherit;font-size:14px;outline:none}.github-password-dialog input:focus{border-color:#888}
.github-password-dialog .github-password-note{font-size:9px;color:#999}.github-password-dialog .github-password-error{color:#b04d43;font-size:10px}.github-password-error:empty{display:none}
.github-password-dialog footer{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-top:3px}.github-password-dialog footer button{min-height:36px;padding:7px 0;border:0;border-block:1px solid #ddd;border-radius:0;background:transparent;color:#777;font:inherit;font-size:11px;cursor:pointer}.github-password-dialog footer button[type=submit]{color:#444;border-color:#aaa}.github-password-dialog button:focus-visible{outline:1px solid #aaa;outline-offset:3px}
@media(pointer:coarse){.github-password-dialog input{font-size:16px}}
.github-encryption-control{display:flex;align-items:center;gap:14px}.github-encryption-control>.github-encryption-option{flex:1;min-width:0}.github-password-edit{flex:none;padding:4px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#888;font:inherit;font-size:9px;cursor:pointer}.github-password-edit[hidden]{display:none}
.travel-record-sources{margin-top:15px;color:#999;font-size:9px;line-height:1.8}.travel-record-sources summary{cursor:pointer}.travel-record-sources a{display:block;margin-top:5px;color:#888;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
/* Expand only the reading face; trip details keep their original compact height. */
.sheet.is-centered-panel:has(.shared-ticket-info:not([hidden]) .shared-ticket-back:not([hidden])){display:flex;flex-direction:column;box-sizing:border-box;height:min(900px,calc(var(--app-viewport-height,100dvh) - 28px));max-height:calc(var(--app-viewport-height,100dvh) - 28px);padding:18px 20px;overflow:hidden}
.sheet.is-centered-panel:has(.shared-ticket-info:not([hidden]) .shared-ticket-back:not([hidden]))>.sheet-head{flex:none;margin-bottom:10px}
.shared-ticket-view:has(.shared-ticket-info:not([hidden]) .shared-ticket-back:not([hidden])){flex:1;max-height:none;min-height:0;overflow:hidden}
.shared-ticket-view:has(.shared-ticket-back:not([hidden])) .travel-detail-body,.shared-ticket-view:has(.shared-ticket-back:not([hidden])) .shared-ticket-shell{flex:1;min-height:0}
.shared-ticket-view:has(.shared-ticket-back:not([hidden])) .shared-ticket-info{flex:1;min-height:0;height:auto;max-height:none}
.shared-ticket-view:has(.shared-ticket-back:not([hidden])) button.shared-travel-ticket{width:min(100%,360px);max-height:none}
.shared-ticket-back{padding:8px 14px 10px}
.shared-ticket-view .shared-daily-navigation{padding:5px 0 8px}
.shared-ticket-view [data-shared-organize]{flex:none;margin-top:7px}
.earth-ticket-dialog[open]:has(.earth-ticket-info.is-reading-memory .shared-daily-pages){height:min(900px,calc(var(--app-viewport-height,100dvh) - 28px));max-height:calc(var(--app-viewport-height,100dvh) - 28px)}
@media(max-height:600px){.shared-ticket-view:has(.shared-ticket-back:not([hidden])) button.shared-travel-ticket{width:min(100%,268px);max-height:none}.sheet.is-centered-panel:has(.shared-ticket-info:not([hidden]) .shared-ticket-back:not([hidden])){padding:12px 16px}.sheet.is-centered-panel:has(.shared-ticket-info:not([hidden]) .shared-ticket-back:not([hidden]))>.sheet-head{margin-bottom:5px}}
.github-token-guide{display:block;padding:0 0 9px;border-bottom:1px solid #eee;color:#888;font-size:9px;line-height:1.7}.github-token-guide summary{cursor:pointer;color:#666;font-size:10px;font-weight:400}.github-token-guide[open]>div{display:grid;gap:3px;padding-top:5px}.github-token-guide span{display:block;overflow-wrap:anywhere}

.github-backup-location{color:#888;font-size:10px;text-underline-offset:3px}.github-backup-location[hidden]{display:none}

.iris-tasks-entry{border:1px solid #e5e5e5;border-radius:14px;background:#fff;color:#777;font:inherit;font-size:10px;padding:5px 8px;white-space:nowrap}.iris-tasks-entry[hidden]{display:none}.iris-tasks-entry.has-errors{color:#a35d50;border-color:#ead8d4}
.iris-task-dialog{width:min(360px,calc(100vw - 36px));max-height:75dvh;padding:18px;border:1px solid #e8e8e8;border-radius:12px;background:#fff;color:#555}.iris-task-dialog::backdrop{background:rgba(0,0,0,.18)}.iris-task-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:14px}.iris-task-dialog h3{margin:0;font-size:14px;font-weight:400}.iris-task-dialog button{background:none;border:0;padding:5px;color:#777;font:inherit;font-size:11px;cursor:pointer}.iris-task-dialog [data-task-list]{overflow:auto;max-height:58dvh;margin-top:10px}.iris-task-row{padding:12px 0;border-top:1px solid #eee}.iris-task-row h4{margin:0 0 6px;font-size:12px;font-weight:400}.iris-task-row p{margin:5px 0;font-size:11px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.iris-task-row .iris-task-help{color:#999}.iris-task-actions{display:flex;justify-content:flex-end;gap:10px}.iris-task-actions button:disabled{opacity:.5}
.github-sync-remedy{padding:7px 0;border-top:1px solid #eee}.github-sync-remedy[hidden]{display:none}.github-sync-remedy p{margin:0;color:#888;font-size:10px;line-height:1.7}.github-sync-remedy button{border:0;background:none;color:#666;padding:6px 0;font:inherit;font-size:10px;text-decoration:underline;text-underline-offset:3px}

.storage-media-info{margin:0 0 10px;color:#999;font-size:10px;line-height:1.6}

.settings-topbar .iris-tasks-entry,.feature-page-topbar .iris-tasks-entry{width:auto;height:auto;flex:none;margin-left:auto;padding:5px 8px;border:1px solid #e5e5e5;border-radius:14px;background:#fff;font-family:inherit;font-size:10px;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.2}


.lore-character-card small strong{font:inherit;font-weight:600;color:inherit}
.role-global-worldbooks{margin:8px 0 12px;padding:6px 0 8px;border:0;color:#666;min-width:0}.role-global-worldbooks>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.role-global-worldbooks h3{margin:0;font-size:11px;font-weight:400}
.role-global-worldbooks-list,.worldbook-audience-roles{display:flex;align-items:center;gap:9px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:2px 0 5px;scrollbar-width:thin;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.role-global-worldbook-row,.worldbook-audience-roles label{display:flex;align-items:center;gap:7px;flex:0 0 auto;margin:0;padding:7px 9px;border:1px solid #eee;border-radius:5px;font-size:10px;white-space:nowrap}.role-global-worldbook-row>span{display:flex;align-items:center;gap:8px;max-width:270px;overflow:hidden;text-overflow:ellipsis}.role-global-worldbook-row small{font-size:9px;color:#aaa;white-space:nowrap}.role-global-worldbooks input,.worldbook-audience input{width:12px;height:12px;margin:0;flex:none;accent-color:#777}
.worldbook-audience{position:relative;flex:none;margin:0;padding:0;border:0;color:#777}.worldbook-audience>summary,.worldbook-effective>summary{cursor:pointer;font-size:10px;white-space:nowrap}.worldbook-audience-popover,.worldbook-active-summary{position:absolute;z-index:25;top:calc(100% + 8px);left:0;width:min(290px,calc(100vw - 84px));padding:12px;border:1px solid #e8e8e8;border-radius:6px;background:#fff;box-shadow:0 5px 16px #0000000a}.worldbook-audience-modes{display:flex;gap:14px;margin-bottom:10px}.global-worldbook-scope .worldbook-audience-modes button{padding:4px 0;border:0;border-bottom:1px solid transparent;border-radius:0;font-size:10px}.global-worldbook-scope .worldbook-audience-modes button[aria-pressed=true]{border-color:#777;background:none;color:#555}.worldbook-mount-note{font-size:9px;line-height:1.7;color:#999;margin:8px 0 0}
.worldbook-effective{position:relative;flex:none;color:#999}.worldbook-effective .worldbook-active-summary{left:auto;right:0;margin:0;color:#777;font-size:10px;line-height:1.7;white-space:pre-line}

.global-worldbook-toolbar>.worldbook-audience{margin-left:auto}.global-worldbook-toolbar>.worldbook-audience>summary{white-space:nowrap}.global-worldbook-toolbar .worldbook-audience-popover{left:auto;right:0}.global-worldbook-toolbar .worldbook-audience-modes button{padding:4px 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:none;font-size:10px}.global-worldbook-toolbar .worldbook-audience-modes button[aria-pressed=true]{border-color:#777;color:#555}

.global-worldbook-toolbar{overflow:visible}.global-worldbook-actions-scroll{display:flex;align-items:center;flex:1 1 auto;min-width:0;gap:inherit;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.global-worldbook-actions-scroll::-webkit-scrollbar{display:none}

.worldbook-audience-roles{flex-direction:column;align-items:stretch;gap:3px;max-height:min(300px,45dvh);overflow-x:hidden;overflow-y:auto;padding:5px 2px}.worldbook-audience-roles .worldbook-role-choice{position:relative;flex:none;width:100%;gap:12px;padding:8px 3px;border:0;border-radius:0;white-space:normal;cursor:pointer}.worldbook-role-choice>input{position:absolute;width:1px;height:1px;opacity:0}.worldbook-role-choice .forum-add-avatar{flex:none}.worldbook-role-choice.is-selected .forum-add-avatar{outline:1px solid #222;outline-offset:1px}.worldbook-role-choice>input:focus-visible+.forum-add-avatar{outline:2px solid #777;outline-offset:3px}.worldbook-role-name{min-width:0;overflow-wrap:anywhere;font-size:11px;color:#666}

.role-worldbook-tabs{flex:none;margin:0 0 16px}.worldbook-audience-popover{width:min(240px,calc(100vw - 72px));padding:11px}.worldbook-audience-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px 7px;max-height:min(330px,48dvh);padding:7px 2px}.worldbook-audience-roles .worldbook-role-choice{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;width:auto;min-width:0;margin:0;padding:3px 1px;border:0;text-align:center}.worldbook-role-choice .forum-add-avatar{width:42px;height:42px}.worldbook-role-name{width:100%;font-size:10px;line-height:1.5;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}

/* Assistant routes share the ordinary chat bubble. */
.iris-assistant-links{display:inline;margin-left:5px}.iris-assistant-links button{display:inline;border:0;border-radius:0;background:transparent;padding:0;margin:0 8px 0 0;font:inherit;color:#3978c6;text-align:left;cursor:pointer;white-space:normal}.iris-assistant-links button:hover{text-decoration:underline}.iris-assistant-links button:focus-visible{outline:1px solid currentColor;outline-offset:3px}.iris-assistant-links button span{margin-left:2px;color:inherit}
.iris-assistant-role-dialog{width:min(300px,85vw);border:1px solid #e7e7e7;border-radius:18px;padding:18px;background:#fff;color:#333}.iris-assistant-role-dialog::backdrop{background:#0005}.iris-assistant-role-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.iris-assistant-role-dialog strong{font-weight:500;font-size:14px}.iris-assistant-role-dialog button{font:inherit;font-size:12px;background:#f5f5f5;border:0;border-radius:8px;padding:10px}.iris-assistant-role-dialog>div{display:grid;gap:8px;max-height:50dvh;overflow:auto}
.character-dialog .profile-save-actions:has(#openAssistantChat){gap:6px}.character-dialog .profile-save-actions:has(#openAssistantChat)>.profile-confirm{padding:12px 5px;letter-spacing:0;white-space:nowrap;font-size:10px}.character-dialog .profile-save-actions:has(#openAssistantChat)>.profile-confirm>span{margin-left:3px;font-size:12px}

.assistant-entry-target{outline:1px solid #aaa;outline-offset:5px;border-radius:8px}
.assistant-start-card{margin:0;padding:0;border:0;font:inherit;line-height:inherit;white-space:normal}.assistant-start-message .message-content{min-width:0}.assistant-start-message .bubble{max-width:100%;box-sizing:border-box}.assistant-start-message .bubble-text{white-space:normal}.assistant-start-card>p{margin:0 0 7px}.assistant-start-card button{border:0;border-radius:0;padding:3px 0;background:transparent;color:#3978c6;font:inherit;cursor:pointer}.assistant-start-card>div{display:flex;gap:16px}.assistant-suggestions{margin-top:12px}.assistant-suggestions summary{font-size:.9em;color:inherit;opacity:.7;cursor:pointer}.assistant-start-route{display:flex;align-items:center;gap:12px;margin-top:8px;min-width:0}.assistant-start-route>button{flex-shrink:0}.assistant-start-route>span{flex:1}.assistant-route-pair{display:inline}.iris-assistant-links .assistant-route-pair>[data-assistant-guide]{font-size:.88em;color:#75859b;margin-left:0}
.assistant-guide-highlight{scroll-margin:90px 12px}.assistant-guide-spotlight{position:fixed;z-index:2147483645;box-sizing:border-box;border:2px solid #fff;border-radius:7px;box-shadow:0 0 0 150vmax #1119;pointer-events:none}.assistant-guide-spotlight[hidden]{display:none}.assistant-guide-panel{position:fixed;left:50%;transform:translateX(-50%);width:min(310px,calc(100vw - 40px));padding:15px 17px;border:1px solid #d9e3ee;border-radius:14px;background:#fff;color:#333;box-shadow:0 8px 30px #0002;z-index:2147483646;font-size:13px;line-height:1.7;box-sizing:border-box}.assistant-guide-panel small{font-size:10px;color:#8895a5}.assistant-guide-panel p{margin:7px 0 12px}.assistant-guide-panel>div{display:flex;gap:20px;justify-content:flex-end}.assistant-guide-panel button{font:inherit;font-size:12px;border:0;background:transparent;color:#3978c6;padding:4px 0;cursor:pointer}
.assistant-start-message{margin-bottom:8px}.assistant-start-message .bubble{padding:12px 15px}.assistant-start-card>p{margin:0 0 9px}.assistant-welcome-choices{flex-wrap:wrap;gap:4px 16px!important}.assistant-question-card{width:225px;max-width:100%}.assistant-question-card .assistant-suggestions{margin:0}.assistant-question-card summary{list-style:none;font-size:.85em;letter-spacing:.04em;margin-bottom:7px}.assistant-question-card summary::-webkit-details-marker{display:none}.assistant-start-route{gap:16px;margin-top:0;padding:5px 0;line-height:1.6}.assistant-start-route>span:first-child{flex:1;min-width:0}.assistant-start-route>.assistant-route-options{flex:none;white-space:nowrap;font-size:.9em}.assistant-route-options>span{color:#b7b7b7;margin:0 5px}.assistant-start-route button{padding:2px 0}.assistant-start-message+.assistant-start-message{margin-top:0}

.music-search-history{margin:0 0 24px}.music-search-history>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.music-search-history>header small{font-size:11px;color:#777}.music-search-history>header button{font:inherit;font-size:10px;color:#999;border:0;background:transparent;padding:3px 0}.music-search-history-list{display:flex;flex-wrap:wrap;gap:7px 10px}.music-search-history-list button{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:4px;background:#f3f3f3;color:#666;font:inherit;font-size:11px;padding:6px 9px;text-align:left}.music-search-history>p{font-size:11px;color:#aaa;margin:0}

.music-library-account .music-library-connect{flex:none;justify-items:end;gap:6px}
.music-library-connect>small{max-width:138px;text-align:right;font-size:10px;line-height:1.5;letter-spacing:0}

/* Online appearance library: two compact horizontal shelves. */
.beautify-theme-library{min-width:0;padding:5px 0 15px;border-bottom:1px solid #eee;color:#666}
.beautify-theme-library>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.beautify-theme-library>header>div{display:grid;gap:5px}.beautify-theme-library strong{font-size:11px;font-weight:500}.beautify-theme-library header small{font-size:9px;color:#aaa}
.beautify-theme-library button{font:inherit;font-size:10px;background:transparent;color:#777}
.beautify-theme-library>header>button,.beautify-theme-tools>button{padding:4px 0;border:0;border-bottom:1px solid #dcdcdc;border-radius:0;white-space:nowrap}
.beautify-theme-group{min-width:0;margin:12px 0}.beautify-theme-group>h3{font-size:10px;font-weight:400;letter-spacing:1px;color:#999;margin:0 0 7px}
.beautify-theme-strip{display:flex;gap:12px;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding:3px 0 9px;-webkit-overflow-scrolling:touch}
.beautify-theme-strip .beautify-theme-card{flex:0 0 89px;min-width:0;display:grid;align-content:start;justify-items:center;gap:7px;border:0;border-bottom:1px solid transparent;border-radius:0;padding:0 0 7px;position:relative}
.beautify-theme-card>span:last-of-type{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;text-align:center}
.beautify-theme-card[aria-pressed=true]{border-bottom-color:#555;color:#333}.beautify-theme-card>small{font-size:8px;color:#999}
.beautify-theme-sample{width:89px;height:59px;display:flex;flex-direction:column;gap:6px;padding:10px 9px;border:1px solid #e8e8e8;background:#f5f5f5;border-radius:3px}
.beautify-theme-sample i{display:block;width:43px;height:7px;border-radius:4px;background:#fff;border:1px solid #e6e6e6}.beautify-theme-sample i:nth-child(2){align-self:flex-end;width:32px;background:#e5e5e5}.beautify-theme-sample i:nth-child(3){width:34px}
.is-imported .beautify-theme-sample{background:#f5f2f3}.is-imported .beautify-theme-sample i:nth-child(2){background:#e6dde0}
.beautify-theme-empty{margin:5px 0;color:#aaa;font-size:10px;line-height:1.8}.beautify-theme-save{display:flex;gap:12px;align-items:center;margin-top:13px}
.beautify-theme-save input{flex:1;min-width:0;background:transparent;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;padding:7px 0;font:inherit;font-size:10px;color:#555}.beautify-theme-save input::placeholder{color:#aaa}.beautify-theme-save button{flex:none;padding:7px 10px;border:1px solid #ddd;border-radius:3px}
.beautify-theme-tools{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:12px}.beautify-theme-feedback{font-size:10px;color:#a77676;line-height:1.7;margin:8px 0 0}.beautify-theme-feedback:empty{display:none}

/* Avatar shape is a per-role online display setting, including the live preview. */
#conversation:not(.is-offline-story) .message>.avatar.has-square-avatar,
#conversation:not(.is-offline-story) .message>.avatar.has-square-avatar img{border-radius:5px}
.beautify-theme-formats{margin:9px 0 0;color:#aaa;font-size:9px;line-height:1.7}
.is-wechat .beautify-theme-sample{background:#ededed;border-color:#e0e0e0}.is-wechat .beautify-theme-sample i{background:#fff;border:0;border-radius:2px;position:relative}.is-wechat .beautify-theme-sample i:nth-child(2){background:#95ec69}.is-wechat .beautify-theme-sample i::before{content:"";position:absolute;top:2px;left:-2px;width:3px;height:3px;background:inherit;transform:rotate(45deg)}.is-wechat .beautify-theme-sample i:nth-child(2)::before{left:auto;right:-2px}
.is-imessage .beautify-theme-sample{background:#f5f5f7;border-color:#e4e4e8}.is-imessage .beautify-theme-sample i{background:#fff;border:0;border-radius:5px}.is-imessage .beautify-theme-sample i:nth-child(2){background:#007aff}
.is-discord .beautify-theme-sample{background:#fafafa;border-color:#dfe0e4}.is-discord .beautify-theme-sample i{background:#dfe0e4;border:0;border-radius:2px}.is-discord .beautify-theme-sample i:nth-child(2){align-self:flex-start;background:#555862}.is-discord .beautify-theme-sample i:nth-child(3){background:#9b9da4}

/* Timestamps sit beside bubbles without reducing the avatar-to-avatar span. */
#conversation:not(.is-offline-story) .message-type-text>.message-content{flex:1;min-width:0;max-width:calc(100% - 92px)}
#conversation:not(.is-offline-story) .message-type-text:not(.mine)>.message-content{margin-right:46px}
#conversation:not(.is-offline-story) .message-type-text.mine>.message-content{margin-left:46px}
#conversation:not(.is-offline-story) .message-bubble-line{width:max-content;max-width:100%;align-self:flex-start}
#conversation:not(.is-offline-story) .mine .message-bubble-line{align-self:flex-end}
#conversation:not(.is-offline-story) .message-type-text .bubble{flex-shrink:0;max-width:100%;min-width:0;overflow-wrap:anywhere}
#conversation:not(.is-offline-story) .message-bubble-line>.message-time{position:absolute;bottom:0;left:calc(100% + 7px);width:max-content;margin:0 0 3px;white-space:nowrap}
#conversation:not(.is-offline-story) .message.mine .message-bubble-line>.message-time{right:calc(100% + 7px);left:auto}
.phone:has(#conversation:not(.is-offline-story)){background-color:#fff}
.phone:has(#conversation:not(.is-offline-story))>:where(.topbar,#conversation,.bottom){background-color:#fff}
.beautify-forum-preview-choice{display:flex;justify-content:space-between;align-items:center;margin:7px 0 10px;font-size:10px;color:#999}.beautify-forum-preview-choice select{border:1px solid #e5e5e5;border-radius:4px;padding:5px;background:#fff;color:#666;font:inherit}
#conversation:not(.is-offline-story) .message>.message-content{flex:1;min-width:0;width:calc(100% - 92px);max-width:calc(100% - 92px)}
#conversation:not(.is-offline-story) .message:not(.mine)>.message-content{margin-right:46px}
#conversation:not(.is-offline-story) .message.mine>.message-content{margin-left:46px}
#conversation:not(.is-offline-story) .message-content :is(.voice-message-wrap,.transfer-message-card,.location-message-card,.image-description-card,.message-image,.music-chat-invite){max-width:100%;box-sizing:border-box}

/* The forum dock shares the chat footer's bottom inset, without adding safe area twice. */
:root{--app-dock-bottom:max(10px,env(safe-area-inset-bottom,0px))}
.phone>.bottom:has(#dock:not([hidden])){padding-bottom:var(--app-dock-bottom)}
#featureScreen>.forum-dock{bottom:calc(var(--app-viewport-bottom,0px) + var(--app-dock-bottom))}

.beautify-workspace .beautify-preview-panel iframe{display:block;width:min(100%,390px);height:640px;max-height:none;margin-inline:auto}
.beautify-preview-segments{flex-wrap:wrap;row-gap:7px}

/* Keep the complete preview after the appearance controls. */
.beautify-panel>.beautify-preview-panel{margin:20px 0 0}

/* Full-width chrome; gutters belong to the contents, not the bar surfaces. */
.phone{--app-shell-max-width:780px}
.phone>.topbar,.phone>.bottom{width:calc(100% + 2 * var(--app-shell-gutter));max-width:none;margin-inline:calc(0px - var(--app-shell-gutter));padding-inline:var(--app-shell-gutter)}
.settings-screen>.settings-topbar,.feature-screen>.feature-page-topbar{width:calc(100% + 2 * var(--app-page-gutter));max-width:none;margin-inline:calc(0px - var(--app-page-gutter));padding-inline:var(--app-page-gutter)}
#featureScreen>.forum-dock{width:min(var(--app-shell-max-width,780px),100vw);max-width:none;padding-inline:var(--app-page-gutter,48px)}
@media(min-width:850px){.phone{--app-shell-max-width:700px}}

.release-notice-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.release-notice-title-row h2{flex:none;margin:0}
.release-backup-reminder{max-width:154px;min-width:0;color:#999;font:400 9px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:0;text-align:left}


.music-chat-page-header>[data-music-invite]{flex:none;max-width:46%;padding:7px 10px;border:1px solid #e5e5e5;border-radius:16px;background:#fff;color:#777;font-size:10px;line-height:1.5;text-align:center}
.music-chat-page-header>[data-music-invite] svg{display:none}
.music-chat-page-header>[data-music-invite]:disabled{opacity:.55}

.music-chat-page-header{justify-content:space-between;gap:12px}
.music-chat-page-header .music-chat-brand{min-width:0}

/* Online and offline preview states share a scrolling strip, with no enclosing pill. */
.beautify-workspace .beautify-preview-mode{min-width:0}
.beautify-workspace .beautify-preview-mode>span{flex:none}
.beautify-workspace .beautify-preview-segments{display:flex;flex:1;min-width:0;max-width:100%;flex-wrap:nowrap;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:3px 0;border:0;border-radius:0;background:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.beautify-workspace .beautify-preview-segments::-webkit-scrollbar{display:none}
.beautify-workspace .beautify-preview-segments label{flex:0 0 auto;min-width:76px}
.beautify-workspace .beautify-preview-segments label>span{padding:7px 10px;border-bottom:1px solid transparent;border-radius:0;text-align:center}
.beautify-workspace .beautify-preview-segments input:checked+span{border-bottom-color:#555;background:none;color:#444;box-shadow:none}

/* Translation folding is a chat interaction shared by every appearance. */
.bubble[data-message-translation-toggle]{cursor:pointer}
.bubble[data-message-translation-toggle]:focus-visible{outline:1px solid #aaa;outline-offset:3px}

/* Chat destinations share the existing character picker typography and spacing. */
.character-conversation-tabs{display:flex;gap:24px;margin:18px 0 0;border-bottom:1px solid #ededed}
.character-conversation-tabs>button{position:relative;min-width:38px;padding:9px 0 11px;background:transparent;color:#aaa;font:400 11px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:1px}
.character-conversation-tabs>button[aria-pressed="true"]{color:#444}
.character-conversation-tabs>button[aria-pressed="true"]::after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:1px;background:#555}
.character-conversation-tabs+.character-list{margin-top:10px}
.group-chat-entry{display:flex;min-height:250px;flex-direction:column;align-items:center;justify-content:center;padding:30px 4px 22px;text-align:center}
.group-chat-entry-mark{display:grid;width:54px;height:54px;place-items:center;border:1px solid #ededed;border-radius:50%;color:#888}
.group-chat-entry-mark svg{width:30px;height:30px;stroke-width:1.25}
.group-chat-entry h3{margin:17px 0 8px;font-size:13px;letter-spacing:2px;font-weight:400;color:#555}
.group-chat-entry p{margin:0;color:#999;font-size:10px;line-height:1.8}
.group-chat-entry small{max-width:240px;margin-top:24px;color:#aaa;font-size:9px;line-height:1.8}

/* Group chats use the same quiet roster and conversation surfaces as private chat. */
.group-chat-list-heading,.group-chat-pick-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px;color:#888;font-size:10px}
.group-chat-list-heading>button,.group-chat-pick-heading>button{display:flex;align-items:center;gap:5px;padding:5px 0;color:#555;font-size:10px}
.group-chat-list-heading svg{width:13px;height:13px;stroke-width:1.3}
.group-chat-roster{max-height:48dvh;overflow:auto}
.group-chat-list-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 0;text-align:left;border-bottom:1px solid #f0f0f0}
.group-chat-list-row>span:not(.group-chat-mosaic){flex:1;min-width:0}.group-chat-list-row strong{display:block;font-size:12px;font-weight:400;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-chat-list-row small{display:block;margin-top:5px;color:#aaa;font-size:9px}.group-chat-list-row p{margin:6px 0 0;color:#999;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-chat-list-row>svg{width:13px;height:13px;color:#aaa}
.group-chat-mosaic{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;flex:none;width:44px;height:44px;padding:3px;border-radius:8px;background:#f3f3f3;overflow:hidden}.group-chat-mosaic .avatar{width:18px;height:18px;margin:0!important;border:0;border-radius:3px;font-size:8px;overflow:hidden}.group-chat-mosaic .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.group-chat-create label,.group-chat-settings label{display:block;margin:16px 0;color:#777;font-size:10px}.group-chat-create label>small{margin-left:6px;color:#aaa;font-size:9px}
.group-chat-create input,.group-chat-create select,.group-chat-settings input,.group-chat-settings textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;padding:10px 2px;border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background:transparent;color:#555;font:inherit;font-size:12px;line-height:1.6}
.group-chat-people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 8px;margin:19px 0 24px}
.group-chat-person{display:flex;min-width:0;flex-direction:column;align-items:center;gap:8px;padding:0;color:#777;font-size:10px}.group-chat-person>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-chat-person-image{position:relative;display:block}.group-chat-person .avatar{width:48px;height:48px;margin:0;border:1px solid #eee;border-radius:50%;overflow:hidden;font-size:18px}.group-chat-person img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.group-chat-person i{display:none;position:absolute;right:-2px;bottom:-1px;width:17px;height:17px;border:2px solid #fff;border-radius:50%;background:#222;color:#fff;font:normal 10px/13px sans-serif;text-align:center}.group-chat-person[aria-pressed="true"] i{display:block}.group-chat-person[aria-pressed="true"] .avatar{border-color:#444}.group-chat-person[aria-pressed="true"]{color:#333}
.group-chat-hint{margin:14px 0;color:#aaa;font-size:10px;line-height:1.8}.group-chat-create .profile-confirm{width:100%}.group-chat-create .profile-confirm:disabled,.group-chat-settings .profile-confirm:disabled{opacity:.4;cursor:default}
.feature-screen.is-group-chat .feature-page-topbar{justify-content:space-between;gap:12px}.is-group-chat .feature-page-brand small{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-chat-top-actions button{min-width:32px;padding:10px 0;color:#666;font-size:18px;letter-spacing:1px}.group-chat-top-actions>span{color:#999;font-size:10px;white-space:nowrap}
.is-group-chat .feature-page-content{display:flex;flex-direction:column;overflow:hidden;padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}.group-chat-room{display:flex;flex:1;min-height:0;flex-direction:column}.group-chat-room-caption{flex:none;padding:0 0 10px;color:#aaa;font-size:9px;line-height:1.6;max-height:50px;overflow:auto}.group-chat-thread{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:8px 0 16px}
.group-chat-system{margin:12px 18px;text-align:center;font-size:9px;color:#aaa;line-height:1.7;overflow-wrap:anywhere}
.group-chat-status{min-height:0;margin:7px 0 0;color:#999;font-size:10px;line-height:1.6}.group-chat-status:empty{display:none}
.group-chat-settings{overflow:auto;padding-bottom:18px}.group-chat-text-action{display:block;margin-left:auto;padding:6px 2px;color:#555;font-size:11px}.group-chat-danger{display:block;width:100%;margin-top:26px;padding:12px 0;border-top:1px solid #eee;color:#a47777;font-size:11px}

.group-chat-bottom{flex:none;padding-top:12px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px));border-top:0}
.phone>.bottom,.group-chat-room>.group-chat-bottom{flex:0 0 auto}
#conversation,.group-chat-room>.group-chat-thread{flex:1 1 0%;min-height:0;overflow-y:auto}
.group-chat-bottom .composer{flex:none;min-height:0;margin:0}
.group-chat-room .group-chat-thread{margin-inline:-12px;padding:8px 0 16px}
.group-chat-room .group-chat-thread .message-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:4px}
.group-chat-room .group-chat-thread .mine .message-content{align-items:flex-end}
.group-chat-room .group-chat-thread .message-bubble-line{display:flex;min-width:0;width:100%;grid-row:auto}
.group-chat-room .group-chat-thread .group-chat-sender{display:block;color:#999;font:400 9px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
.group-chat-room .group-chat-thread .message>.avatar{overflow:hidden}
.group-chat-room .group-chat-thread .message>.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.group-chat-room .group-chat-thread .message-type-image .message-content,.group-chat-room .group-chat-thread .message-type-sticker .message-content{max-width:calc(100% - 92px)}
.message-type-image .chat-image-expanded-item{display:flex;flex-direction:column;align-items:stretch;gap:7px;width:min(56vw,210px);max-width:100%}
.message-type-image .chat-image-expanded-item .message-image{display:block;flex:none;width:100%;max-width:100%;max-height:240px;overflow:hidden}
.message-type-image .chat-image-expanded-item .message-image img{display:block;width:100%;height:auto;max-height:240px;object-fit:contain}
.message-type-image .chat-image-expanded-item .chat-image-stack-collapse{align-self:flex-start}
.message-type-image.mine .chat-image-expanded-item .chat-image-stack-collapse{align-self:flex-end}
.group-chat-room .group-chat-thread .message-type-image .chat-image-expanded-item{width:min(56vw,210px)}
.message-type-image .chat-image-expanded-item:has(.chat-image-stack-collapse){position:relative}
.message-type-image .chat-image-expanded-item .chat-image-stack-collapse{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);z-index:2;width:auto;min-width:40px;max-width:none;height:auto;padding:7px 10px;white-space:nowrap;writing-mode:horizontal-tb;text-orientation:mixed;line-height:1.2}
.discord-quote-avatar{display:none}
.group-money-wrap{max-width:100%;cursor:pointer}.group-money-wrap .transfer-message-card{max-width:100%}
.group-redpacket-card{display:block;max-width:100%;padding:0;text-align:left;cursor:pointer}
.group-redpacket-card .group-redpacket-mark svg{width:16px;height:19px}
.group-redpacket-footer{display:none}

.group-money-form label{display:block;margin:14px 0;color:#777;font-size:11px}.group-money-form input,.group-money-form select{display:block;box-sizing:border-box;width:100%;margin:8px 0 0;padding:10px 2px;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:transparent;color:#555;font:inherit;font-size:14px}.group-money-form .profile-confirm{justify-content:center;margin-top:18px}.group-money-form .profile-confirm:disabled{opacity:.4}
.group-money-detail>strong{display:block;margin:16px 0 8px;text-align:center;font-size:25px;font-weight:400;color:#555}.group-money-detail>p{text-align:center;color:#999;font-size:10px}.group-money-claim-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #eee}.group-money-claim-row .avatar{width:32px;height:32px;flex:none;overflow:hidden;font-size:13px;border:0}.group-money-claim-row img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.group-money-claim-row>span{flex:1;color:#777;font-size:11px}.group-money-claim-row b{font-size:12px;font-weight:400;color:#666}.group-money-claim-actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}.group-money-claim-actions button{padding:10px 12px;border:1px solid #eee;border-radius:10px;background:#f7f7f7;color:#666;font-size:11px}.group-money-claim-actions button:disabled{opacity:.4}
#sheet.is-group-chat-sheet{z-index:25}#shade.is-group-chat-sheet{z-index:24}
.group-chat-composer [data-group-send].is-send{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:#e2e2e2;color:#363636}.group-chat-composer [data-group-send].is-send svg{width:15px;height:15px}
.group-chat-quote-preview>span{flex:1;min-width:0}.group-chat-quote-preview strong,.group-chat-quote-preview small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-chat-quote-preview strong{margin-bottom:4px;font-size:10px;font-weight:400;color:#777}.group-chat-quote-preview small{font-size:10px;color:#999}.group-chat-quote-preview>button{flex:none;padding:4px;color:#999;font-size:17px}
.group-message-actions{display:flex;flex-wrap:wrap;gap:10px}.group-message-actions button{flex:1;min-width:48px;padding:11px 4px;border:1px solid #eee;border-radius:10px;background:#f7f7f7;color:#777;font-size:11px}.group-money-form textarea{box-sizing:border-box;width:100%;max-height:180px;margin:10px 0;padding:10px;border:1px solid #eee;border-radius:10px;background:#fafafa;font-size:13px;line-height:1.8}

/* Online composer controls share a gray surface; scoped appearance CSS can override it. */
.phone:has(>#conversation:not(.is-offline-story))>.bottom :where(#inputFunctions,#reply),
.group-chat-room .bottom :where([data-group-functions],[data-group-reply]){background:#eee}


/* Group preferences follow the same fine rules, typography and switches as More. */
.group-chat-settings{padding-bottom:22px}
.group-chat-settings-identity{display:flex;align-items:center;gap:14px;padding:5px 0 24px;margin-bottom:19px;border-bottom:1px solid #ededed}
.group-chat-settings-identity .group-chat-mosaic{width:50px;height:50px;padding:4px;gap:2px;border-radius:9px}.group-chat-settings-identity .group-chat-mosaic .avatar{width:20px;height:20px}
.group-chat-settings-identity>div{flex:1;min-width:0}.group-chat-settings-identity small{font-size:7px;letter-spacing:1.8px;color:#aaa}.group-chat-settings-identity h2{margin:6px 0 5px;color:#555;font-size:16px;line-height:1.5;font-weight:400;overflow-wrap:anywhere}.group-chat-settings-identity>div>span{color:#aaa;font-size:9px}
.group-settings-kicker{margin:0 0 15px;color:#aaa;font-size:9px;letter-spacing:1px}
.group-chat-settings label{color:#777;font-size:10px;line-height:1.6;margin:15px 0 18px}
.group-chat-settings input:not([type="checkbox"]):not([type="file"]),.group-chat-settings select,.group-chat-settings textarea{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:38px;padding:9px 1px;margin:6px 0 0;border:0;border-bottom:1px solid #e8e8e8;border-radius:0;background-color:transparent;color:#555;font-family:inherit;font-size:12px;font-weight:400;line-height:1.65;box-shadow:none}
.group-chat-settings input::placeholder,.group-chat-settings textarea::placeholder{color:#b8b8b8;font-size:11px;opacity:1}.group-chat-settings input:disabled,.group-chat-settings textarea:disabled{color:#aaa;-webkit-text-fill-color:#aaa}
.group-chat-settings input:focus,.group-chat-settings select:focus,.group-chat-settings textarea:focus{border-bottom-color:#aaa}
.group-chat-settings select{-webkit-appearance:none;appearance:none;padding-right:23px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23999' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:12px}
.group-chat-settings textarea{min-height:76px;max-height:210px;resize:vertical;line-height:1.8}.group-chat-settings [name="announcement"]{min-height:57px}.group-chat-settings [name="css"]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.8}
.group-preference-section{border:0;border-bottom:1px solid #e7e7e7}.group-preference-section:first-of-type{margin-top:23px;border-top:1px solid #e7e7e7}
.group-preference-section>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:16px 0;list-style:none;cursor:pointer}.group-preference-section>summary::-webkit-details-marker{display:none}.group-preference-section>summary>span{grid-column:1;grid-row:1;color:#555;font-size:12px;line-height:1.5;font-weight:400;letter-spacing:.5px}.group-preference-section>summary>small{grid-column:1;grid-row:2;color:#aaa;font-size:9px;line-height:1.6;font-weight:400}.group-preference-section>summary>i{grid-column:2;grid-row:1/3;align-self:center;color:#999;font-size:17px;font-style:normal;font-weight:400}.group-preference-section>summary>i::before{content:'+'}.group-preference-section[open]>summary>i::before{content:'−'}.group-preference-section>summary:focus-visible{outline:1px solid #999;outline-offset:2px}
.group-preference-section>div{padding:0 0 10px 10px}.group-preference-section>div>label:first-child{margin-top:5px}.group-preference-section .group-chat-hint{margin:10px 0 5px;font-size:9px;line-height:1.8;color:#aaa}
.group-preference-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.group-preference-pair>label{min-width:0}
.group-chat-settings .group-preference-switch{position:relative;gap:16px;margin:4px 0;min-height:42px;padding:10px 0}.group-preference-switch>span{flex:1;min-width:0}.group-preference-switch strong{font-size:11px;font-weight:400;line-height:1.7;color:#666}.group-preference-switch>i{flex:0 0 34px}.group-chat-settings .group-preference-switch>input{position:absolute;right:0;top:50%;transform:translateY(-50%);width:34px;height:19px;min-height:0;margin:0;padding:0;border:0;opacity:0;pointer-events:none}.group-preference-switch>input:focus-visible+i{outline:2px solid #999;outline-offset:4px}
.group-preference-speakers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 10px;padding:6px 0 16px}.group-chat-settings .group-preference-speaker{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;margin:0;min-width:0;cursor:pointer}.group-preference-speaker>input{position:absolute;width:1px;height:1px;margin:0;opacity:0}.group-preference-speaker-image{display:block;position:relative}.group-preference-speaker .avatar{width:43px;height:43px;margin:0;border:1px solid #eee;overflow:hidden;font-size:16px}.group-preference-speaker img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.group-preference-speaker-image>i{position:absolute;right:-3px;bottom:-1px;display:none;width:16px;height:16px;border:2px solid #fff;border-radius:50%;background:#222;color:#fff;text-align:center;font:normal 9px/12px sans-serif}.group-preference-speaker input:checked+.group-preference-speaker-image>i{display:block}.group-preference-speaker input:checked+.group-preference-speaker-image .avatar{border-color:#555}.group-preference-speaker input:focus-visible+.group-preference-speaker-image{outline:1px solid #999;outline-offset:5px;border-radius:50%}.group-preference-speaker>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#777}
.group-preference-nicknames{display:flex;flex-direction:column;margin-top:7px}.group-chat-settings .group-preference-nicknames>label{display:flex;align-items:center;gap:16px;margin:0;border-bottom:1px solid #eee}.group-nickname-person{display:flex;align-items:center;gap:8px;flex:0 0 44%;min-width:0}.group-nickname-person .avatar{width:28px;height:28px;flex:none;border:0;overflow:hidden;font-size:11px}.group-nickname-person img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.group-nickname-person>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#888;font-size:10px}.group-chat-settings .group-preference-nicknames input{margin:0;padding:12px 0;border:0;min-width:0;font-size:11px;text-align:right}
.group-preference-inline-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:9px 0 17px}.group-preference-inline-actions button{padding:5px 0;border:0;border-bottom:1px solid #ddd;color:#777;font-size:10px}.group-preference-inline-actions button:disabled{opacity:.45}.group-preference-inline-actions small{color:#aaa;font-size:9px}.group-chat-settings [data-group-summary-status]{display:block;margin-top:9px;color:#999;font-size:9px;line-height:1.7}
.group-chat-settings .group-chat-settings-save{justify-content:center;min-height:40px;margin:20px 0 26px;padding:11px 15px;border:0;border-radius:23px;background:#eaeaea;color:#555;box-shadow:none;font-size:11px;font-weight:400;letter-spacing:.5px}
.group-chat-members-heading{padding-top:3px;margin-bottom:20px;color:#666;font-size:11px}.group-chat-members-heading>span>small{margin-left:6px;color:#aaa;font-size:9px}.group-chat-members-heading>button{gap:5px;color:#888;font-size:10px}.group-chat-members-heading svg{width:12px;height:12px;stroke-width:1.2}
.group-chat-management{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 12px;padding:0 0 8px}.group-chat-member{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:0;color:#777}.group-chat-member>.avatar{width:47px;height:47px;flex:none;margin:0;border:1px solid #eee;overflow:hidden;font-size:17px}.group-chat-member img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.group-chat-member>span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.group-chat-member>small{font-size:8px;color:#aaa;line-height:1.3}.group-chat-settings>.group-chat-hint{margin-top:19px;font-size:9px;line-height:1.8}.group-chat-settings>.group-chat-danger{margin-top:25px;color:#a18383;font-size:10px}
.group-member-sheet-person{display:flex;flex-direction:column;align-items:center;gap:9px;padding:8px 0 23px}.group-member-sheet-person>.avatar{width:58px;height:58px;margin:0;border:1px solid #eee;overflow:hidden;font-size:20px}.group-member-sheet-person img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.group-member-sheet-person>strong{font-size:13px;font-weight:400;color:#555}.group-member-sheet-person>small{font-size:9px;color:#aaa}.group-member-sheet-actions{border-top:1px solid #eee}.group-member-sheet-actions:empty{display:none}.group-member-sheet-actions>button{display:block;width:100%;padding:14px 0;border-bottom:1px solid #eee;text-align:left;color:#777;font-size:11px}.group-member-sheet-actions>[data-group-remove]{color:#a18383}
.group-chat-settings .group-preference-speaker>input{min-height:0;padding:0;border:0;pointer-events:none}.group-chat-settings select{text-overflow:ellipsis;white-space:nowrap}

.role-online-appearance .chat-avatar-setting{display:flex;align-items:center;justify-content:space-between;gap:12px}.role-online-appearance .chat-avatar-setting>span{min-width:0;flex:1}.role-online-appearance strong{display:block;font-size:11px;font-weight:400;color:#666}.role-online-appearance small{display:block;margin-top:5px;color:#aaa;font-size:9px;line-height:1.6}.role-online-appearance select{max-width:48%;font-size:11px}.role-online-appearance>.subtle-action{display:block;margin:9px 0 0 auto;font-size:9px;color:#999}
.appearance-target-list{max-height:40dvh;overflow:auto;margin:22px 0}.appearance-target-list.is-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 10px}.appearance-target-picker .profile-confirm{justify-content:center}.appearance-target-picker .profile-confirm:disabled{opacity:.4}.appearance-group-target{display:flex;align-items:center;gap:12px;width:100%;padding:13px 0;border-bottom:1px solid #eee;text-align:left}.appearance-group-target>span:first-child{display:grid;width:40px;height:40px;flex:none;place-items:center;border-radius:9px;background:#f4f4f4;color:#999}.appearance-group-target svg{width:19px;height:19px}.appearance-group-target>span:nth-child(2){flex:1;min-width:0}.appearance-group-target strong{display:block;color:#666;font-size:11px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appearance-group-target small{display:block;margin-top:5px;color:#aaa;font-size:9px}.appearance-group-target>i{display:grid;width:17px;height:17px;place-items:center;border:1px solid #e3e3e3;border-radius:50%;font:normal 9px sans-serif;color:transparent}.appearance-group-target[aria-pressed="true"]>i{background:#222;border-color:#222;color:#fff}

/* Group chat fills the feature shell; settings retain the normal page gutters. */
#featureScreen.is-group-chat-conversation{padding:0}
#featureScreen.is-group-chat-conversation>.feature-page-content{box-sizing:border-box;display:flex;flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:0;align-self:stretch}
#featureScreen.is-group-chat-conversation>.feature-page-topbar{box-sizing:border-box;width:100%;max-width:none;margin:0;padding-inline:var(--app-shell-gutter,25px)}
#featureScreen.is-group-chat-conversation .group-chat-room{width:100%;min-width:0;min-height:0;overflow:hidden}
#featureScreen.is-group-chat-conversation .group-chat-thread{box-sizing:border-box;width:100%;margin:0;padding:12px var(--app-shell-gutter,25px) 24px}
#featureScreen.is-group-chat-conversation .group-chat-bottom{box-sizing:border-box;width:100%;margin:0;padding-inline:var(--app-shell-gutter,25px)}
#featureScreen.is-group-chat-conversation .group-chat-bottom .input-wrap{background:#f2f2f2}

/* Compact horizontal group settings categories, matching the online setting tabs. */
.group-settings-tabs{display:flex;gap:22px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;border-bottom:1px solid #ededed;margin:0 0 22px;padding:0;overscroll-behavior-x:contain}
.group-settings-tabs::-webkit-scrollbar{display:none}
.group-settings-tabs button{position:relative;flex:none;padding:10px 1px 13px;color:#aaa;font-size:12px;font-weight:400;background:transparent}
.group-settings-tabs button.active{color:#444}
.group-settings-tabs button.active::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#555}
.group-chat-settings [data-group-settings-panel]{margin-top:0;border-top:0}
.group-chat-settings details[data-group-settings-panel]>summary{display:none}
.group-chat-settings details[data-group-settings-panel]>div{padding-top:0}
.group-chat-settings [data-group-settings-panel="members"] .group-chat-members-heading{margin-top:0}

#featureScreen.is-group-chat-conversation>.feature-page-topbar:has(.group-chat-reply-status){flex-wrap:wrap;row-gap:0}
.group-chat-reply-status{grid-column:1 / -1;grid-row:2;flex:0 0 100%;order:3;width:100%;padding:2px 0;color:#888;text-align:center;font-size:10px;line-height:1.5;white-space:nowrap;pointer-events:none}

.group-chat-thread>.chat-pat-row{position:relative;align-self:stretch}
.group-chat-thread>[data-group-message]:first-of-type>.message-action-menu{top:6px}
.group-chat-thread>[data-group-message]>.avatar{touch-action:manipulation;user-select:none;-webkit-user-select:none}

.group-chat-selection-bar{margin:0;padding-inline:0;border-top:0;background:transparent;backdrop-filter:none}
.group-chat-selection-bar [data-group-selection-delete]{background:#555;color:#fff}
.group-chat-thread>.selection-mode{position:relative;padding-right:28px;pointer-events:auto;cursor:pointer}
.group-chat-thread>.selection-mode .message-content,.group-chat-thread>.selection-mode .chat-pat-card{pointer-events:none}

.group-chat-thread.conversation .message.is-group-arriving{animation:appear .25s ease both!important}
@media(prefers-reduced-motion:reduce){.group-chat-thread.conversation .message.is-group-arriving{animation:none!important}}

.group-chat-typing-placeholder{visibility:hidden}
.group-chat-thread .group-chat-typing .message-content{display:flex;flex-direction:column;gap:4px}

.group-money-claim-row>b{text-align:right;white-space:nowrap}
.group-money-claim-row .group-money-received{display:block;margin-top:4px;color:#999;font-size:10px;line-height:1.5;font-weight:400}
.group-money-detail>.group-money-exchange-note{margin:10px 0 16px;font-size:10px;line-height:1.7;color:#999}
/* Group video shares the private call controls and uses a compact participant grid. */
.group-video-screen{height:100dvh;min-height:0;overflow:hidden}
.group-video-screen .video-call-title{font-family:"Snell Roundhand","Apple Chancery","URW Chancery L","Great Vibes",cursive;font-size:1em;font-weight:400;line-height:1;letter-spacing:-1.5px}
.group-video-screen .video-call-stage{display:flex;flex-direction:column;gap:10px}
.group-video-attendance{position:static;flex:none;min-width:0;max-height:65px;overflow:auto;margin:0;padding-left:var(--call-status-left-gap,0px);padding-right:var(--call-status-right-gap,calc(clamp(104px,22vw,176px) + 16px));color:#aaa;font-size:10px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.group-video-screen .video-call-pip{position:absolute;inset:14px clamp(18px,5vw,52px) auto auto;width:clamp(104px,22vw,176px);min-width:0}
.group-video-screen .group-video-messages{flex:1;width:100%;min-width:0;min-height:0;padding:0 0 18px;gap:14px}
@media(max-width:520px){.group-video-screen .video-call-pip{top:10px;right:17px;width:106px}.group-video-attendance{padding-right:var(--call-status-right-gap,122px)}}
.group-video-line{display:flex;align-items:flex-start;align-self:flex-start;gap:10px;max-width:88%;font-size:13px;line-height:1.8}
.group-video-line.is-mine{align-self:flex-end;flex-direction:row-reverse;text-align:right}
.group-video-line>.avatar{flex:none;width:28px;height:28px;border:0;overflow:hidden;font-size:13px}
.group-video-line>.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.group-video-line>div{min-width:0}
.group-video-line small{color:#aaa;font-size:10px}
.group-video-line p{margin:3px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#555}
.group-video-line .group-video-translation{font-size:11px;color:#999}
.group-video-screen .video-call-footer{flex:none}
.group-video-screen .video-call-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%;max-width:500px}
.group-video-screen .video-call-controls button{min-width:0;padding:0;gap:4px}
.group-video-screen .video-call-controls button svg{width:18px;height:18px;stroke-width:1.5}
.group-video-screen .video-call-controls button small{font-size:9px;white-space:nowrap;color:#888}
.group-video-invite-card{position:relative;align-self:center;width:min(290px,90%);margin:12px 0;padding:16px;border:1px solid #e9e9e9;border-radius:12px;background:rgba(255,255,255,.82);color:#666}
.group-video-invite-card>small{display:block;font-family:"Great Vibes","Snell Roundhand",cursive;font-size:22px;color:#999}
.group-video-invite-card>strong{display:block;margin-top:5px;font-size:13px;font-weight:400}
.group-video-invite-card>p{font-size:11px;line-height:1.7;overflow-wrap:anywhere;color:#999}
.group-video-invite-card>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.group-video-invite-card button{padding:7px 10px;border-radius:15px;background:#f1f1f1;color:#777;font-size:10px}
.group-video-invite-card.is-selected .message-selection-check,.group-call-record.is-selected .message-selection-check{background:#555;border-color:#555}
.group-call-transcript>article{margin:14px 0;font-size:12px;line-height:1.8;color:#666}
.group-call-transcript small{color:#aaa;font-size:10px}
.group-call-transcript p{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}

.group-video-messages .group-video-paragraph,.group-call-transcript .group-video-paragraph{display:block}
.group-video-messages .group-video-paragraph+.group-video-paragraph,.group-call-transcript .group-video-paragraph+.group-video-paragraph{margin-top:6px}

.video-call-screen .video-call-pip{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;max-width:calc(100% - 16px);max-height:calc(100% - 16px)}
.video-call-screen .video-call-pip.is-dragging{cursor:grabbing}
.video-call-screen .video-call-pip video{pointer-events:none}
.video-call-screen:not(.group-video-screen) .video-call-messages{padding-top:0}
.video-call-screen .video-call-messages>:is(.message,.video-call-message,.group-video-line,.reply-typing-bubble){margin-left:var(--call-pip-left-gap,0px);margin-right:var(--call-pip-right-gap,0px);max-width:min(88%,calc(100% - var(--call-pip-left-gap,0px) - var(--call-pip-right-gap,0px)));flex-shrink:0}

.group-memory-core{padding:12px 0;border-bottom:1px solid #eee;color:#777}
.group-memory-core>strong{font-size:11px;font-weight:500}
.group-memory-core>p,.group-memory-entry>p{font-size:11px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#888}
.group-memory-entry{padding:12px 0;border-bottom:1px solid #eee}
.group-memory-entry>summary{font-size:10px;color:#999;cursor:pointer}
.group-chat-thread .mine .message-delivery-failed{left:auto;right:calc(100% + 7px)}

.group-memory-core button,.group-memory-entry button,[data-group-memory-reset]{padding:6px 9px;margin:5px 6px 0 0;border:1px solid #e9e9e9;border-radius:14px;color:#888;font-size:10px}
[data-group-memory-editor] textarea{width:100%;min-height:150px;max-height:45dvh;resize:vertical;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa;padding:12px;color:#666;font:12px/1.8 inherit}
.group-memory-advanced>summary{font-size:10px;color:#999;padding:10px 0;cursor:pointer}

/* Novel navigation stays outside the scrolling page body. */
.feature-page-content.novel-page-content{display:flex;flex-direction:column;overflow:hidden;padding-block:0}
.novel-studio{display:flex;flex-direction:column;flex:1;width:100%;min-height:0;max-width:640px;margin:0 auto;color:#777;font-size:11px;line-height:1.8}
.novel-studio button,.novel-studio input,.novel-studio select,.novel-studio textarea{font-family:inherit}
.novel-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:14px 0 25px}
.novel-tabs{display:flex;flex:none;gap:26px;margin:0;border-bottom:1px solid #ededed;overflow-x:auto;scrollbar-width:none;white-space:nowrap;background:#fff}
.novel-tabs button{flex:none;padding:11px 0 12px;color:#aaa;font-size:11px;letter-spacing:.5px;border-bottom:1px solid transparent}
.novel-tabs button[aria-pressed="true"]{color:#555;border-bottom-color:#666}
.novel-primary,.novel-action{display:inline-block;min-height:0;padding:5px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;box-shadow:none;color:#777;font-size:10px;font-weight:400;line-height:1.7;letter-spacing:0}
.novel-studio button:disabled{opacity:.4;cursor:default}.novel-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:19px;margin:16px 0}
.novel-toolbar>select{margin-left:auto;max-width:45%;padding:6px 0;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#999;font-size:10px}
.novel-search{display:flex;align-items:center;gap:16px;padding:7px 0;border-bottom:1px solid #e9e9e9}.novel-search input{flex:1;width:100%;min-width:0;padding:5px 0;border:0;background:transparent;color:#777;font-size:11px}.novel-search input::placeholder{color:#bbb}.novel-search button{flex:none;padding:3px 0;color:#888;font-size:10px;border-bottom:1px solid #ddd}
.novel-genres{display:flex;gap:19px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;padding:16px 0 3px}.novel-genres button{flex:none;padding:4px 0;color:#aaa;font-size:10px;border-bottom:1px solid transparent}.novel-genres button[aria-pressed="true"]{color:#666;border-bottom-color:#888}
.novel-feedback{min-height:0;margin:6px 0 14px;color:#999;font-size:10px;white-space:pre-wrap}.novel-feedback:empty{display:none}.novel-feedback.is-busy{padding:8px 0;border-bottom:1px solid #eee}.novel-feedback.is-busy::before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border:1px solid #ccc;border-top-color:#777;border-radius:50%;animation:novel-spin .9s linear infinite}@keyframes novel-spin{to{transform:rotate(360deg)}}
.novel-hint{color:#aaa;font-size:9px;line-height:1.9;margin:10px 0 16px}
.novel-book-row{display:flex;align-items:flex-start;gap:15px;width:100%;padding:19px 0;border-bottom:1px solid #eee;text-align:left;color:#777}
.novel-cover{position:relative;display:flex;flex-direction:column;justify-content:space-between;flex:none;width:74px;height:106px;box-sizing:border-box;padding:13px 10px 10px 13px;border-left:3px solid #dedad5;border-radius:0;background:#efede9;color:#827b73;overflow:hidden}
.novel-cover[data-tone="1"]{background:#eceaee;border-left-color:#d8d4dd;color:#807688}.novel-cover[data-tone="2"]{background:#f0e9e6;border-left-color:#e2d5d0;color:#927a70}.novel-cover[data-tone="3"]{background:#e9eeed;border-left-color:#d3dedb;color:#73857f}
.novel-cover strong{font-size:11px;font-weight:400;line-height:1.75;overflow-wrap:anywhere}.novel-cover i{font-size:7px;font-style:normal}.novel-cover.is-large{width:87px;height:125px;padding:16px 12px 12px 14px}.novel-cover.is-large strong{font-size:13px}
.novel-book-copy{display:block;flex:1;min-width:0}.novel-book-copy>strong{display:block;color:#666;font-size:12px;font-weight:400;line-height:1.65}.novel-tags{display:block;color:#aaa;font-size:9px;margin:5px 0}.novel-book-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:7px 0;color:#999;font-size:10px;line-height:1.9}.novel-book-copy>small:last-child{display:flex;justify-content:space-between;gap:8px;color:#aaa;font-size:8px}.novel-book-copy b{font-weight:400;white-space:nowrap}.novel-rank{display:block;margin-bottom:4px;color:#aaa;font-size:7px;letter-spacing:1px}
.novel-empty{padding:38px 10px;text-align:center;color:#aaa}.novel-empty h3{margin:0 0 9px;font-size:11px;font-weight:400;color:#999}.novel-empty p{font-size:10px;line-height:1.9;max-width:260px;margin:auto}
.novel-detail-head{display:flex;align-items:center;gap:20px;margin:22px 0}.novel-detail-head>div{min-width:0}.novel-detail-head h2{font-size:16px;font-weight:400;line-height:1.7;margin:0 0 6px;color:#666}.novel-detail-head p{font-size:10px;color:#999;margin:0}.novel-heat{display:block;margin-top:10px;color:#888;font-size:13px;font-weight:400}.novel-heat small{font-size:8px;font-weight:400;color:#aaa}.novel-synopsis{font-size:11px;line-height:2;color:#888;white-space:pre-wrap}
.novel-panel{padding:19px 0 6px;border-top:1px solid #ededed;margin-top:23px}.novel-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.novel-panel h3{margin:0;color:#777;font-size:11px;font-weight:400}.novel-panel>header>small{font-size:8px;color:#aaa}
.novel-chapter-entry{display:flex;align-items:center;gap:16px;border-bottom:1px solid #f1f1f1}.novel-chapter-row{display:flex;justify-content:space-between;gap:12px;flex:1;min-width:0;width:100%;padding:12px 0;text-align:left;color:#888;font-size:10px}.novel-chapter-row i{font-style:normal;color:#bbb}.novel-chapter-entry>.novel-action{flex:none;padding:3px 0;font-size:9px}
.novel-offer{padding:16px 0;border-bottom:1px solid #eee}.novel-offer>small{display:block;color:#999;font-size:9px}.novel-offer>strong{display:block;margin:8px 0;color:#777;font-size:17px;font-weight:400}.novel-offer strong small{font-size:8px;font-weight:400;color:#aaa}.novel-offer p{color:#888;font-size:10px}.novel-offer>span{display:block;color:#aaa;font-size:9px;margin-bottom:10px}
.novel-view-reader>.novel-scroll{padding-top:0}.novel-reader{padding:4px 0 10px}.novel-reader>small{font-size:9px;color:#aaa}.novel-reader h2{font-size:17px;font-weight:400;line-height:1.5;margin:0 0 20px;color:#666}.novel-reader>p{font-size:15px;line-height:2.15;margin:0 0 20px;color:#666;white-space:pre-wrap;overflow-wrap:anywhere}.novel-reader-catalog{border-top:1px solid #eee;padding:13px 0;color:#999;font-size:10px}.novel-reader-catalog button{display:block;width:100%;padding:10px 0;text-align:left;color:#888;font-size:10px}
.novel-editor{margin:19px 0}.novel-editor label,.novel-field{display:block;color:#999;font-size:10px;margin:18px 0}.novel-editor input,.novel-editor select,.novel-editor textarea,.novel-field select,.novel-inline-form select{display:block;box-sizing:border-box;width:100%;min-width:0;margin-top:7px;padding:9px 0;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#777;font-size:11px;line-height:1.9;resize:vertical}.novel-editor textarea{padding:10px 0}.novel-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.novel-field-pair label{margin:0}.novel-inline-form{display:flex;align-items:end;gap:16px;margin:22px 0 8px}.novel-inline-form label{flex:1;min-width:0;color:#999;font-size:10px}.novel-inline-form button{flex:none;margin-bottom:8px}
.novel-project-row{display:flex;justify-content:space-between;gap:18px;width:100%;padding:21px 0;border-bottom:1px solid #eee;text-align:left}.novel-project-row small{font-size:9px;color:#aaa}.novel-project-row strong{display:block;font-size:13px;font-weight:400;margin:8px 0;color:#666}.novel-project-row p{margin:0;font-size:10px;color:#999}.novel-project-row i{align-self:center;font-style:normal;color:#aaa;font-size:17px}
.novel-project-head{padding:20px 0 8px}.novel-project-head h2{font-size:17px;font-weight:400;line-height:1.7;margin:8px 0;color:#666}.novel-project-head>p{color:#999;font-size:10px;line-height:1.9}.novel-project-head .novel-company{font-size:9px;color:#aaa;margin:0}.novel-project-stats{display:flex;flex-wrap:wrap;gap:8px 15px;margin:16px 0;color:#999;font-size:9px}
.novel-part,.novel-response,.novel-cast-row{padding:13px 0;border-bottom:1px solid #eee}.novel-part header{display:flex;justify-content:space-between;gap:10px}.novel-part strong,.novel-response strong,.novel-cast-row strong{font-size:11px;font-weight:400;color:#777}.novel-part small{font-size:9px;color:#999}.novel-part p,.novel-response p,.novel-cast-row p{font-size:10px;color:#999;white-space:pre-wrap;line-height:2}.novel-part details{padding:7px 0;color:#999;font-size:9px}.novel-response strong small,.novel-cast-row strong small{font-size:9px;color:#aaa;margin-left:12px}.novel-applicant{display:flex;justify-content:space-between;align-items:start;gap:14px;padding:12px 0;border-bottom:1px solid #eee;font-size:10px;color:#888}.novel-applicant>small{font-size:9px;color:#aaa;text-align:right}
.novel-audition{padding:13px 0;border-bottom:1px solid #eee;color:#888}.novel-audition summary{font-size:10px;cursor:pointer;line-height:1.9}.novel-prose{font-size:12px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:17px 0;color:#888}.novel-audition>p{font-size:10px;line-height:2;color:#999}.novel-audition>small{color:#aaa;font-size:9px}.novel-audition h4{font-weight:400;font-size:10px;border-top:1px solid #eee;padding-top:15px}.novel-release{font-size:12px;color:#888;margin:16px 0}.novel-disclaimer{text-align:center;font-size:8px;color:#bbb;line-height:1.9;border-top:1px solid #eee;margin-top:32px;padding-top:16px}
.studio-casting-card{align-self:center;box-sizing:border-box;width:min(320px,100%);padding:18px 0;margin:16px auto;border-block:1px solid #e8e8e8;background:rgba(255,255,255,.7);color:#888}.studio-casting-card>small{font-size:8px;letter-spacing:.5px;color:#aaa}.studio-casting-card h3{font-size:14px;font-weight:400;line-height:1.7;margin:12px 0}.studio-casting-card p{font-size:10px;line-height:2;white-space:pre-wrap}.studio-casting-card>button{display:block;width:max-content;max-width:100%;margin-left:auto;padding:6px 0;border-bottom:1px solid #ddd;color:#888;font-size:10px}.studio-casting-card.selection-mode{position:relative}
@media(max-width:360px){.novel-book-row{gap:12px}.novel-cover{width:66px;height:99px}.novel-detail-head{gap:15px}.novel-detail-head h2{font-size:15px}}
@media(prefers-reduced-motion:reduce){.novel-feedback.is-busy::before{animation:none}}
.novel-home-controls{flex:none;padding-top:12px;border-bottom:1px solid #eee;background:#fff}
.novel-search-user-row{display:flex;align-items:center;gap:18px;min-width:0}
.novel-search-user-row .novel-search{flex:1;min-width:0;margin:0;padding:5px 0;gap:10px}
.novel-current-user{display:flex;align-items:center;gap:8px;flex:none;max-width:43%;color:#aaa;font-size:9px;white-space:nowrap}
.novel-current-user select{max-width:100px;min-width:0;flex:1;padding:7px 0;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#888;font-size:10px}
.novel-home-controls .novel-genres{padding-top:13px}
.novel-home-controls .novel-store-toolbar{margin:9px 0 10px}
.novel-other-controls{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:10px}
.novel-other-controls .novel-toolbar{margin:0}.novel-other-controls>.novel-current-user{margin-left:auto}
@media(max-width:360px){.novel-search-user-row{gap:12px}.novel-current-user{gap:5px}.novel-current-user select{max-width:72px}}
/* Reading shares the page header's back action; only the chapter text scrolls. */
.novel-reading-brand{align-items:baseline;width:100%;gap:11px}
.novel-reading-brand>.feature-page-wordmark{flex:none}
.novel-reading-brand>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit;font-size:10px;font-style:normal;line-height:1.8}
.novel-reader-footer{position:relative;z-index:5;flex:none;width:100%;padding:11px 0 max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid #eee;background:#fff}
.novel-reader-controls{display:grid;grid-template-columns:minmax(48px,1fr) minmax(100px,1.65fr) minmax(48px,1fr);align-items:center;gap:16px;width:100%}
.novel-reader-controls>[data-n-action="prev"]{justify-self:start}
.novel-reader-controls>[data-n-action="next"],.novel-reader-controls>[data-n-action="continue"]{justify-self:end}
.novel-reader-controls>.novel-reader-catalog-toggle{box-sizing:border-box;width:100%;min-width:0;min-height:35px;padding:7px 15px;border:1px solid #eee;border-radius:18px;background:#f5f5f5;color:#888;font-size:10px;font-weight:400;line-height:1.8}
.novel-reader-catalog-panel{position:absolute;bottom:calc(100% + 8px);left:0;right:0;display:flex;flex-direction:column;max-height:min(55dvh,420px);padding:15px 17px 7px;border:1px solid #e9e9e9;border-radius:9px;background:#fff;box-shadow:0 4px 24px #0000000a;color:#888}
.novel-reader-catalog-panel>header{display:flex;justify-content:space-between;align-items:center;gap:14px;flex:none;padding-bottom:11px;border-bottom:1px solid #eee;font-size:10px}
.novel-reader-catalog-panel>header>button{padding:3px 0;border-bottom:1px solid #ddd;color:#aaa;font-size:9px}
.novel-reader-catalog-panel>div{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.novel-reader-catalog-panel>div>button{display:block;width:100%;padding:12px 0;text-align:left;border-bottom:1px solid #f1f1f1;color:#999;font-size:10px;line-height:1.8;overflow-wrap:anywhere}
.novel-reader-catalog-panel>div>button[aria-current="page"]{color:#555}
@media(max-width:360px){.novel-reading-brand{gap:8px}.novel-reading-brand>small{font-size:9px}.novel-reader-controls{gap:12px}}
#featurePageTitle:has(.novel-reading-brand){flex:1;min-width:0}
.novel-view-book .novel-toolbar{justify-content:flex-end}
.novel-view-book .novel-scroll>.novel-action,.novel-view-book .novel-scroll>.novel-primary,.novel-view-book .novel-panel>.novel-action,.novel-view-book .novel-panel>.novel-primary,.novel-view-book .novel-offer>.novel-action{display:block;width:max-content;max-width:100%;margin-left:auto}
.novel-reader>p,.novel-synopsis>p{text-indent:2em}
.novel-synopsis>p{margin:0 0 12px}.novel-synopsis>p:last-child{margin-bottom:0}
/* A 16:9 script stage, with independent playback controls and optional danmu. */
.novel-screen{margin:12px 0 20px;min-width:0}
.novel-screen-stage{position:relative;isolation:isolate;aspect-ratio:16 / 9;width:100%;overflow:hidden;background:linear-gradient(145deg,#303139,#171920 65%,#333038);color:#f6f5f3}
.novel-screen-badge{position:absolute;z-index:3;top:9px;left:11px;font-size:8px;letter-spacing:.5px;color:#ddd;opacity:.75}
.novel-screen-caption{position:absolute;z-index:2;inset:auto 15px 13px;padding-top:8px;text-align:center;pointer-events:none;text-shadow:0 1px 3px #0008}
.novel-screen-caption>small{display:block;color:#c5c3c8;font-size:8px;margin:0 0 5px}
.novel-screen-caption>strong{display:block;font-size:10px;font-weight:400;color:#e9d9bd;line-height:1.6;margin:0 0 5px}
.novel-screen-caption>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;margin:5px 0 0;font-size:12px;line-height:1.9;white-space:pre-wrap}
.novel-screen-caption .novel-screen-action{color:#c9c7cc;font-size:10px;line-height:1.8;-webkit-line-clamp:3}
.novel-screen-transport{display:flex;align-items:center;gap:12px;padding:10px 0 3px;color:#999;font-size:9px}
.novel-screen-transport>button{flex:none;padding:3px 0;border-bottom:1px solid #ddd;font-size:10px;color:#888}
.novel-screen-transport>span{font-size:8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.novel-danmu-switch{display:flex;align-items:center;gap:5px;margin-left:auto;white-space:nowrap;font-size:9px}
.novel-danmu-switch input{width:11px;height:11px;margin:0;accent-color:#888}
.novel-screen-transport select{padding:3px 0;border:0;border-bottom:1px solid #eee;border-radius:0;background:transparent;color:#999;font-size:9px}
.novel-screen-progress{display:block;width:100%;height:15px;margin:5px 0 0;accent-color:#999;cursor:pointer}
.novel-screen-episode-title{font-size:10px;line-height:1.8;color:#999;margin:8px 0 0}
.novel-screen-tabs{display:flex;gap:25px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;border-bottom:1px solid #eee;margin:20px 0 12px}
.novel-screen-tabs button{flex:none;padding:8px 0 10px;border-bottom:1px solid transparent;color:#aaa;font-size:10px}
.novel-screen-tabs button[aria-pressed="true"]{color:#666;border-bottom-color:#777}
.novel-episode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 17px;margin:20px 0}
.novel-episode-grid button{padding:7px 0;text-align:center;color:#aaa;border-bottom:1px solid #eee;font-size:9px;white-space:nowrap}
.novel-episode-grid button[aria-pressed="true"]{color:#555;border-bottom-color:#777}
.novel-screen-generate{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:22px 0}
.novel-screen-generate label{display:flex;align-items:center;gap:12px;color:#aaa;font-size:9px}
.novel-screen-generate select{padding:6px 0;border:0;border-bottom:1px solid #ddd;border-radius:0;background:transparent;color:#888;font-size:10px}
.novel-screen-cast{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 13px;padding:18px 0}
.novel-screen-cast article{display:flex;align-items:center;gap:12px;min-width:0}.novel-screen-cast .avatar{width:36px;height:36px;border-width:1px;font-size:14px;overflow:hidden}.novel-screen-cast .avatar img{width:100%;height:100%;object-fit:cover}
.novel-screen-cast strong{display:block;font-size:10px;color:#777;font-weight:400}.novel-screen-cast small{display:block;margin-top:4px;font-size:9px;color:#aaa}
.novel-screen-review{padding:17px 0;border-bottom:1px solid #eee}.novel-screen-review header{display:flex;justify-content:space-between;gap:12px;color:#888;font-size:10px}.novel-screen-review header small{color:#aaa;font-size:9px}.novel-screen-review p{font-size:11px;line-height:2;color:#999;margin:10px 0 0;white-space:pre-wrap}
.novel-screen-script{margin:21px 0;color:#aaa;font-size:10px}.novel-screen-script article{padding:15px 0;border-bottom:1px solid #eee}.novel-screen-script small{font-size:8px;color:#aaa}.novel-screen-script p{font-size:11px;line-height:1.9;color:#888;white-space:pre-wrap}.novel-screen-script blockquote{margin:8px 0;padding:0 0 0 10px;border-left:1px solid #ddd;color:#aaa;font-size:9px;white-space:pre-wrap;line-height:1.9}
.novel-plan-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:17px;margin:25px 0 13px}.novel-plan-form label{display:block;color:#aaa;font-size:9px}.novel-plan-form input,.novel-plan-form select{display:block;box-sizing:border-box;width:100%;min-width:0;padding:7px 0;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#888;font-size:10px}
.novel-screen-danmu{position:absolute;z-index:4;inset:29px 0 auto;height:70px;overflow:hidden;pointer-events:none}
.novel-danmu{position:absolute;left:100%;top:calc(var(--danmu-lane) * 22px);white-space:nowrap;font-size:11px;line-height:20px;font-weight:500;text-shadow:0 1px 2px #000a;animation:novel-danmu-fly 8s linear forwards;will-change:transform}
.novel-danmu.color-white{color:#fff}.novel-danmu.color-rose{color:#ffacd2}.novel-danmu.color-amber{color:#ffe496}.novel-danmu.color-cyan{color:#9de7ff}.novel-danmu.color-lime{color:#b8f1b0}.novel-danmu.color-violet{color:#d6b8ff}
@keyframes novel-danmu-fly{from{transform:translateX(0)}to{transform:translateX(calc(-100% - 650px))}}
@media(max-width:360px){.novel-screen-transport{gap:8px}.novel-screen-caption{inset:auto 11px 9px}.novel-screen-caption>p{font-size:11px;-webkit-line-clamp:4}.novel-screen-caption .novel-screen-action{font-size:9px}.novel-episode-grid{gap:12px}.novel-screen-tabs{gap:21px}}
@media(prefers-reduced-motion:reduce){.novel-danmu{left:12px;animation:none!important;transform:none;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}}
.novel-chat-share{box-sizing:border-box;width:min(280px,100%);padding:14px 15px;border:1px solid #eee;border-radius:8px;background:rgba(255,255,255,.8);color:#888}
.novel-chat-share>small{display:block;color:#aaa;font-size:8px;line-height:1.7}.novel-chat-share>strong{display:block;margin:8px 0;font-size:12px;font-weight:400;color:#666}.novel-chat-share>p{font-size:10px;line-height:1.9;white-space:pre-wrap;margin:8px 0 12px}
.novel-chat-share>div:last-child{display:flex;justify-content:flex-end;gap:13px;flex-wrap:wrap}.novel-chat-share button{padding:4px 0;border-bottom:1px solid #ddd;font-size:9px;color:#999}.novel-chat-share button:disabled{opacity:.4}
.novel-chat-proposal{padding:11px 0;border-top:1px solid #eee;font-size:10px;line-height:1.9}.novel-chat-proposal>span{color:#777}.novel-chat-proposal>p{margin:7px 0;white-space:pre-wrap}.novel-chat-proposal>small{display:block;color:#aaa;font-size:8px}
.novel-investment-event{display:block;max-width:280px;font-size:10px;line-height:1.9;color:#999;padding:8px 0}
.novel-investment-confirm p{font-size:11px;line-height:1.9;color:#888}.novel-investment-confirm>small{font-size:9px;color:#aaa;line-height:1.9}
.novel-investor{padding:13px 0;border-bottom:1px solid #eee}.novel-investor>strong{font-size:11px;font-weight:400;color:#777}.novel-investor strong small{display:block;font-size:9px;color:#aaa;margin-top:4px}.novel-investor p{font-size:10px;line-height:1.9;color:#999}.novel-investor>small{font-size:9px;color:#aaa}

/* Clock-style duration is exclusive to Discord. */
.discord-voice-duration{display:none}

/* Keep the composer surface flush with the open mobile keyboard. */
html[data-chat-keyboard-open] .phone>.bottom,html[data-chat-keyboard-open] .group-chat-room>.group-chat-bottom{isolation:isolate;background:var(--chat-surface,#fff)!important;padding-bottom:0!important;margin-bottom:0!important}
html[data-chat-keyboard-open] .phone{padding-bottom:0}

.group-chat-action-row{align-self:stretch;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:4px}
.group-chat-action-row>button{min-width:0}
.group-private-switch-list{display:grid;gap:5px}
.group-private-switch-list>button{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:7px 10px;border:0;border-radius:12px;background:#f5f5f6;color:#333;text-align:left}
.group-private-switch-list>button>.avatar{flex:none;width:36px;height:36px;border-radius:50%}
.group-private-switch-list>button>span:nth-child(2){flex:1;min-width:0}
.group-private-switch-list>button>span:last-child{color:#888;font-size:20px}

.group-chat-bottom .group-home-dock{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:430px;margin:0 auto}
.group-home-dock .dock-feature-menu{left:auto;right:0;bottom:calc(100% + 8px)}
.group-chat-bottom:has(.group-home-dock:not([hidden])){padding-top:12px;padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}

/* 小说短剧：版权邀约弹窗与选角制作分类 */
.novel-offers-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 32px));max-height:min(80dvh,720px);margin:auto;padding:0;border:1px solid #e7e7e9;border-radius:20px;background:#fafafa;color:#39393e;box-shadow:0 18px 70px #0002;overflow:hidden}
.novel-offers-dialog::backdrop{background:rgba(25,25,32,.3);backdrop-filter:blur(3px)}
.novel-offers-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px 16px;border-bottom:1px solid #e9e9ec}
.novel-offers-dialog>header small{font-size:10px;color:#999;letter-spacing:1px}
.novel-offers-dialog h2{margin:5px 0 0;font-size:16px;font-weight:500;line-height:1.5}
.novel-offers-dialog>header>button{flex:none;width:32px;height:32px;padding:0;border-radius:50%;background:#efeff1;color:#777;font-size:22px}
.novel-offers-list{box-sizing:border-box;max-height:calc(min(80dvh,720px) - 98px);overflow-y:auto;overscroll-behavior:contain;padding:0 22px 20px}
.novel-offers-list .novel-offer{padding:20px 0}
.novel-offers-list .novel-offer:last-child{border-bottom:0;padding-bottom:0}
.novel-offers-list .novel-offer>small{font-size:12px;color:#555}
.novel-offers-list .novel-offer>strong{font-size:24px;margin:10px 0}
.novel-offers-list .novel-offer p{font-size:12px;line-height:1.8}
.novel-offers-list dl{margin:16px 0;font-size:11px;color:#777}
.novel-offers-list dl>div{display:flex;justify-content:space-between;gap:16px;margin:8px 0}
.novel-offers-list dd{margin:0;text-align:right}
.novel-offers-list .novel-primary{width:100%;padding:12px;border-radius:10px}
.novel-production-categories{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:7px 0 12px;border-bottom:1px solid #ededf0}
.novel-production-categories>button{flex:none;padding:7px 10px;border-radius:8px;background:transparent;color:#92929a;font-size:11px;white-space:nowrap}
.novel-production-categories>button[aria-pressed="true"]{background:#eeeef1;color:#42424a}
.novel-view-project [data-production-section][hidden]{display:none!important}
.novel-salary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0;border-bottom:1px solid #eee;font-size:12px}
.novel-salary-row>strong{font-weight:500}.novel-salary-row>div{text-align:right}.novel-salary-row b{font-weight:500;color:#555}.novel-salary-row small{display:block;margin-top:6px;color:#999;font-size:10px;line-height:1.6}
.novel-financier-review{padding:14px 0;border-bottom:1px solid #eee}.novel-financier-review strong{font-size:12px;font-weight:500}.novel-financier-review p{font-size:12px;line-height:1.8;color:#666}.novel-financier-review>small{color:#999;font-size:10px;line-height:1.7}

/* 群聊中的短剧选角邀请 */
.group-chat-thread .studio-casting-card{align-self:center;box-sizing:border-box;width:min(320px,calc(100% - 20px));max-width:100%;margin:16px auto;padding:18px;border:1px solid #e5e3ec;border-radius:18px;background:#fff;color:#494651;box-shadow:0 5px 20px rgba(45,35,72,.06);overflow:hidden;text-align:left}
.studio-casting-heading{display:flex;align-items:center;gap:10px}.studio-casting-symbol{display:grid;place-items:center;flex:none;width:35px;height:35px;border-radius:11px;background:#f0edf8;color:#817097}.studio-casting-symbol svg{width:21px;height:21px}
.studio-casting-heading>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.studio-casting-heading small{font-size:10px;letter-spacing:.5px;color:#6f637f}.studio-casting-heading>div>span{font-size:10px;color:#99929f;overflow-wrap:anywhere}.studio-casting-heading>b{flex:none;padding:4px 7px;border-radius:6px;background:#f2f0f6;color:#8b7b9a;font-size:9px;font-weight:400}
.group-chat-thread .studio-casting-card h3{margin:17px 0 9px;font-size:16px;font-weight:600;line-height:1.5;color:#46404e;overflow-wrap:anywhere}
.studio-casting-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.studio-casting-meta>span{padding:4px 7px;border-radius:5px;background:#f6f5f8;font-size:9px;color:#958b9f}
.studio-casting-roles{padding:0 12px;border:1px solid #eeecf2;border-radius:11px;background:#fbfafc}.studio-casting-roles>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eeecf2}.studio-casting-roles>div:last-child{border-bottom:0}.studio-casting-roles>div>span{display:flex;min-width:0;flex-direction:column;gap:5px}.studio-casting-roles>div>span:last-child{flex:none;text-align:right}.studio-casting-roles strong{font-size:12px;font-weight:500;color:#62576c}.studio-casting-roles b{font-size:12px;font-weight:500;color:#7c698d}.studio-casting-roles small{font-size:9px;color:#aaa1b1}
.group-chat-thread .studio-casting-card .studio-casting-note{margin:12px 0;font-size:9px;line-height:1.7;color:#a29aa9;white-space:normal}
.group-chat-thread .studio-casting-card>button{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;max-width:100%;margin:0;padding:11px 12px;border:0;border-radius:9px;background:#eee9f5;color:#7c678f;font-size:11px;text-align:left}
/* 选角卡片是完整的消息块，内容超过消息区时滚动，不参与压缩。 */
.group-chat-thread>.studio-casting-card{flex:0 0 auto;flex-shrink:0;height:auto;max-height:none;min-height:min-content}

/* Feature-page selectors must sit above their originating feature screen. */
#shade.is-feature-overlay{z-index:30}
#sheet.is-feature-overlay{z-index:31}

/* Fill the footer gutters and keyboard seam throughout chat focus transitions. */
html[data-chat-keyboard-open] .phone>.bottom::after{content:"";position:absolute;top:0;bottom:-1px;left:calc(0px - var(--app-shell-gutter,25px));right:calc(0px - var(--app-shell-gutter,25px));z-index:-1;background:var(--chat-surface,#fff);pointer-events:none}

/* 本地小说短剧：项目名称与全部导航固定，内容独立滚动。 */
.novel-view-project>.novel-project-fixed{position:relative;z-index:2;flex:0 0 auto;min-width:0;padding-top:5px;background:#fff}
.novel-project-fixed>.novel-project-head{padding:0 0 4px}
.novel-project-fixed>.novel-project-head h2{margin:0;font-size:17px;line-height:1.5;overflow-wrap:anywhere}
.novel-project-fixed>.novel-project-head>p{margin:3px 0 0;font-size:10px;line-height:1.5}
.novel-project-fixed>.novel-screen-tabs{flex:none;gap:22px;margin:3px 0 0}
.novel-project-fixed>.novel-screen-tabs button{padding:6px 0 7px}
.novel-project-fixed>.novel-production-categories{flex:none;margin:0;padding:4px 0 7px}
.novel-project-fixed>.novel-production-categories>button{padding:5px 8px;font-size:10px}
.novel-view-project>.novel-scroll{padding-top:6px}
.novel-view-project>.novel-scroll>.novel-feedback:empty{display:none}
.novel-view-project .novel-screen-panel{min-width:0}

/* 小说与短剧：相邻区域共用一条分隔线。 */
.feature-screen:has(>.novel-page-content)>.feature-page-topbar{border-bottom:0}
.novel-studio>.novel-tabs{border-bottom:0}
.novel-project-fixed:has(>.novel-production-categories)>.novel-screen-tabs{border-bottom:0}
.novel-view-project>.novel-scroll>.novel-screen-panel>.novel-panel:first-child{margin-top:0;padding-top:8px;border-top:0}
.novel-studio>.novel-scroll>.novel-disclaimer{margin-top:18px;padding-top:0;border-top:0}
.novel-view-home:has(.novel-project-list)>.novel-scroll{padding-top:4px}

/* 本地小说短剧：六个项目分类等宽排列，选中态使用黑色下划线。 */
.novel-project-fixed>.novel-production-categories{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;overflow:visible;padding:0;border-bottom:1px solid #e7e7e7}
.novel-project-fixed>.novel-production-categories>button{box-sizing:border-box;min-width:0;padding:8px 1px 7px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent!important;color:#888;font-size:clamp(8px,2.7vw,10px);line-height:1.3;white-space:nowrap;text-align:center}
.novel-project-fixed>.novel-production-categories>button[aria-pressed="true"]{border-bottom-color:#777;background:transparent!important;color:#555;font-weight:500}
.novel-project-progress{margin:0 0 15px}
.novel-project-progress-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#777;font-size:10px}
.novel-project-progress-label strong{color:#222;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.novel-project-progress-track{height:5px;overflow:hidden;border-radius:999px;background:#ededed}
.novel-project-progress-track>span{display:block;height:100%;border-radius:inherit;background:#222;transition:width .25s ease}
.novel-view-project .novel-project-progress-panel{margin:0;padding:0;border:0;border-bottom:1px solid #ededed;background:#fff}
.novel-project-progress-panel>summary{list-style:none}
.novel-project-progress-panel>summary::-webkit-details-marker{display:none}
.novel-project-progress-panel>.novel-progress-summary{display:flex;align-items:center;gap:9px;min-height:37px;padding:3px 0;cursor:pointer}
.novel-project-progress-panel .novel-progress-summary h3{flex:none;color:#666;font-size:11px;font-weight:400}
.novel-progress-compact{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:1;min-width:0}
.novel-progress-compact>span{display:block;width:min(100%,100px);height:4px;overflow:hidden;border-radius:999px;background:#ededed}
.novel-progress-compact>span>i{display:block;height:100%;border-radius:inherit;background:#777;transition:width .25s ease}
.novel-progress-compact>b{flex:none;color:#666;font-size:10px;font-weight:400;font-variant-numeric:tabular-nums}
.novel-progress-chevron{flex:none;color:#888;font-size:14px;line-height:1;transition:transform .18s ease}
.novel-project-progress-panel[open] .novel-progress-chevron{transform:rotate(180deg)}
.novel-project-progress-content{padding:2px 0 10px}
.novel-project-progress-content .novel-project-progress-label{margin:0 0 6px}
.novel-project-progress-content .novel-project-progress-label small{margin-left:auto;color:#999;font-size:9px}
.novel-project-progress-content .novel-project-progress-label strong{margin-left:8px}
.novel-project-progress-content .novel-project-progress-track{height:4px;margin-bottom:10px}
.novel-project-progress-panel>.novel-progress-summary{gap:8px;min-height:34px}
.novel-progress-compact{flex:0 1 auto;justify-content:flex-start;gap:6px}
.novel-progress-compact>span{flex:none;width:72px;height:3px}
.novel-progress-toggle{position:relative;flex:none;width:24px;height:24px;margin-left:auto;color:#888}
.novel-progress-toggle::before,.novel-progress-toggle::after{content:"";position:absolute;left:7px;top:11.5px;width:10px;height:1px;background:currentColor}
.novel-progress-toggle::after{transform:rotate(90deg)}
.novel-project-progress-panel[open] .novel-progress-toggle::after{display:none}
.novel-project-progress-content{padding:0 0 8px}
.novel-project-progress-content>.novel-hint{margin:5px 0;color:#999;font-size:9px;line-height:1.5}
.novel-project-progress-content>.novel-toolbar{gap:10px;margin:5px 0 7px}
.novel-project-progress-content .novel-action,.novel-project-progress-content .novel-primary{padding:3px 0;font-size:10px;line-height:1.5}
.novel-project-progress-content .novel-primary{color:#555;border-bottom-color:#999}
.novel-project-progress-content .novel-api-count{margin-left:-5px;color:#aaa;font-size:8px}
.novel-project-progress-content [data-n-action="visit-group"]{margin-left:auto}
.novel-project-progress-content>.novel-field{display:flex;align-items:center;gap:10px;margin:5px 0;font-size:9px}
.novel-project-progress-content>.novel-field>select{flex:1;width:auto;margin:0;padding:3px 0;font-size:10px;line-height:1.5}
.novel-project-progress-content>.novel-inline-form{align-items:center;gap:12px;margin:7px 0 4px}
.novel-project-progress-content>.novel-inline-form>label{display:flex;align-items:center;gap:9px;font-size:9px}
.novel-project-progress-content>.novel-inline-form select{flex:1;width:0;margin:0;padding:3px 0;font-size:10px;line-height:1.5}
.novel-project-progress-content>.novel-inline-form>button{margin:0}
.novel-project-progress-content>.novel-plan-form{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:12px;margin:8px 0 0}
.novel-project-progress-content>.novel-plan-form>label{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:9px}
.novel-project-progress-content>.novel-plan-form input,.novel-project-progress-content>.novel-plan-form select{flex:1;width:0;padding:3px 0;font-size:10px;line-height:1.5}
.novel-project-progress-content>.novel-plan-form>button{white-space:nowrap;font-size:9px}

/* 项目操作：明确主次，表单保留自然间距。 */
.novel-project-progress-content{padding:7px 0 15px}
.novel-project-progress-content>.novel-hint{margin:9px 0;color:#999;font-size:10px;line-height:1.6}
.novel-project-progress-content>.novel-toolbar{gap:10px;margin:12px 0 16px}
.novel-project-progress-content .novel-primary{padding:9px 15px;border:0;border-radius:7px;background:#555;color:#fff;font-size:11px;line-height:1.5}
.novel-project-progress-content .novel-action{padding:7px 2px;border:0;color:#777;font-size:10px;line-height:1.5}
.novel-project-progress-content .novel-api-count{margin-left:-3px;color:#aaa;font-size:9px}
.novel-project-progress-content [data-n-action="visit-group"]{margin-left:auto;padding:8px 0;color:#888}
.novel-project-progress-content>.novel-field{display:block;margin:10px 0;font-size:10px}
.novel-project-progress-content>.novel-field>select{width:100%;margin-top:6px;padding:9px 10px;border:1px solid #e9e9e9;border-radius:6px;background:#fafafa;font-size:11px}
.novel-project-progress-content>.novel-inline-form{align-items:center;gap:12px;margin:16px 0 5px}
.novel-project-progress-content>.novel-inline-form>label{display:flex;align-items:center;gap:12px;font-size:10px}
.novel-project-progress-content>.novel-inline-form select{padding:8px 9px;border:1px solid #e9e9e9;border-radius:6px;background:#fafafa;font-size:11px}
.novel-project-progress-content>.novel-inline-form>button{padding:8px 12px;border:1px solid #dedede;border-radius:6px;color:#666;white-space:nowrap}
.novel-project-progress-content>.novel-plan-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;margin:18px 0 0;padding:13px 0 0;border-top:1px solid #ededed}
.novel-project-progress-content>.novel-plan-form>label{display:block;color:#999;font-size:10px}
.novel-project-progress-content>.novel-plan-form input,.novel-project-progress-content>.novel-plan-form select{display:block;width:100%;margin-top:6px;padding:8px 9px;border:1px solid #e9e9e9;border-radius:6px;background:#fafafa;color:#666;font-size:11px;line-height:1.5}
.novel-project-progress-content>.novel-plan-form>button{padding:8px 10px;border:1px solid #dedede;border-radius:6px;color:#666;font-size:10px;line-height:1.5}
.novel-project-progress-content>.novel-editor{margin:14px 0}
.novel-project-progress-content>.novel-editor label{margin:10px 0}

/* 项目操作延续小说页面的文字与细线样式。 */
.novel-project-progress-content .novel-primary{padding:7px 0;border:0;border-bottom:1px solid #999;border-radius:0;background:transparent;color:#555;font-size:11px;font-weight:500;line-height:1.6}
.novel-project-progress-content .novel-action{padding:7px 0;border:0;border-radius:0;background:transparent;color:#999;font-size:10px;line-height:1.6}
.novel-project-progress-content>.novel-toolbar{gap:14px;margin:10px 0 16px}
.novel-project-progress-content [data-n-action="visit-group"]{color:#999}
.novel-project-progress-content>.novel-field>select,.novel-project-progress-content>.novel-inline-form select,.novel-project-progress-content>.novel-plan-form input,.novel-project-progress-content>.novel-plan-form select{padding:8px 0;border:0;border-bottom:1px solid #e5e5e5;border-radius:0;background:transparent;box-shadow:none;color:#777;font-size:11px}
.novel-project-progress-content>.novel-inline-form>button,.novel-project-progress-content>.novel-plan-form>button{padding:7px 0;border:0;border-bottom:1px solid #d0d0d0;border-radius:0;background:transparent;color:#777;font-size:10px}
.novel-project-progress-content>.novel-plan-form{gap:18px;margin-top:17px;padding-top:0;border-top:0}

/* 群聊短剧邀请沿用小说页面的白底、浅灰字与细线。 */
.group-chat-thread>.studio-casting-card{align-self:flex-start;width:min(320px,calc(100% - 12px));margin:12px 0 12px 12px;padding:17px 18px 14px;border:1px solid #e9e9e9;border-radius:10px;background:#fff;color:#555;box-shadow:0 3px 14px rgba(0,0,0,.035)}
.studio-casting-heading{gap:9px}
.studio-casting-symbol{width:28px;height:28px;border:1px solid #e8e8e8;border-radius:7px;background:#fff;color:#888}
.studio-casting-symbol svg{width:17px;height:17px}
.studio-casting-heading small{font-size:9px;letter-spacing:.3px;color:#888}
.studio-casting-heading>div>span{font-size:9px;color:#aaa}
.studio-casting-heading>b{padding:0;border:0;border-radius:0;background:transparent;color:#999;font-size:9px;font-weight:400}
.group-chat-thread .studio-casting-card h3{margin:15px 0 5px;color:#444;font-size:16px;font-weight:500;line-height:1.4}
.studio-casting-meta{gap:5px;margin:0 0 15px}
.studio-casting-meta>span{padding:0;border:0;border-radius:0;background:transparent;color:#999;font-size:9px}
.studio-casting-meta>span+span::before{content:"·";margin-right:5px;color:#bbb}
.studio-casting-roles{padding:0;border:0;border-top:1px solid #ededed;border-bottom:1px solid #ededed;border-radius:0;background:transparent}
.studio-casting-roles>div{align-items:center;padding:10px 0;border-bottom:1px solid #f2f2f2}
.studio-casting-roles strong{color:#555;font-size:11px;font-weight:500}
.studio-casting-roles b{color:#666;font-size:11px;font-weight:400}
.studio-casting-roles small{color:#aaa;font-size:9px}
.group-chat-thread .studio-casting-card .studio-casting-note{margin:11px 0;color:#aaa;font-size:9px;line-height:1.6}
.group-chat-thread .studio-casting-card>button{padding:7px 0;border:0;border-radius:0;background:transparent;color:#666;font-size:10px;font-weight:500}
.group-chat-thread .studio-casting-card>button>span:last-child{font-size:14px;font-weight:400}

.novel-self-audition{padding:2px 0 7px}.novel-self-audition>.novel-hint{margin:4px 0}.novel-self-audition .novel-toolbar{margin:4px 0 8px}.novel-self-audition-manual>summary{width:max-content;color:#777;font-size:10px;cursor:pointer}.novel-self-audition-manual .novel-editor{margin-top:8px}

.chat-load-earlier{display:block;margin:12px auto 22px;padding:8px 16px;border:1px solid #e6e6e6;border-radius:20px;background:#fff;color:#777;font-size:12px}

.chat-bookmarks{max-width:620px;margin:0 auto;padding:4px 4px 80px;color:#4d4b49}
.chat-bookmark-controls{position:sticky;top:0;z-index:6;padding:3px 0 9px;background:#fff}
.chat-bookmark-filters{display:flex;align-items:center;gap:14px;min-width:0;margin:0 0 5px;padding:9px 0;border-bottom:1px solid #e9e8e6}
.chat-bookmark-filters label{display:flex;align-items:center;gap:5px;min-width:0;flex:1;white-space:nowrap}
.chat-bookmark-filters label>span{flex:none;color:#99948e;font-size:10px}
.chat-bookmark-filters select{min-width:0;width:100%;height:30px;padding:0 15px 0 0;border:0;background:transparent;color:#4d4b49;font-size:11px;outline:none;text-overflow:ellipsis}
.chat-bookmark-search{display:flex;align-items:center;gap:8px;height:35px;padding:0 2px;border-bottom:1px solid #e9e8e6;color:#aaa}
.chat-bookmark-search>span{font-size:20px;line-height:1}
.chat-bookmark-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#4d4b49;font-size:11px}
.chat-bookmark-search input::placeholder{color:#aaa}
.chat-bookmark-list{display:grid}
.chat-bookmark-batch{border-bottom:1px solid #e9e8e6}
.chat-bookmark-batch>summary{display:flex;align-items:center;gap:8px;min-height:52px;list-style:none;cursor:pointer}
.chat-bookmark-batch>summary::-webkit-details-marker{display:none}
.chat-bookmark-batch>summary>span{min-width:0;flex:1;overflow:hidden;color:#77736e;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.chat-bookmark-batch>summary>span i{margin:0 3px;color:#c2beba;font-style:normal}
.chat-bookmark-batch>summary strong{flex:none;color:#555;font-size:10px;font-weight:400}
.chat-bookmark-batch>summary time{flex:none;color:#aaa;font-size:9px}
.chat-bookmark-batch>summary b{flex:none;color:#999;font-size:14px;font-weight:400;transition:transform .18s}
.chat-bookmark-batch[open]>summary b{transform:rotate(180deg)}
.chat-bookmark-batch-items{padding:0 0 4px 12px;border-left:1px solid #e9e8e6}
.chat-bookmark-batch-items .chat-bookmark-card:last-child{border-bottom:0}
.chat-bookmark-card{padding:12px 1px 11px;border-bottom:1px solid #eeece9;background:transparent}
.chat-bookmark-meta{display:flex;align-items:center;gap:7px;min-width:0;color:#9f9b96;font-size:9px}
.chat-bookmark-people{min-width:0;flex:1;overflow:hidden;color:#77736e;text-overflow:ellipsis;white-space:nowrap}
.chat-bookmark-people i{margin:0 3px;color:#c2beba;font-style:normal}
.chat-bookmark-meta time{flex:none;color:#aaa7a2}
.chat-bookmark-content{margin:7px 0 7px}
.chat-bookmark-body{min-width:0;color:#4b4946;font:400 12px/1.65 "Songti SC","Noto Serif CJK SC",Georgia,serif}
.chat-bookmark-body summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;list-style:none;white-space:pre-wrap;overflow-wrap:anywhere;cursor:pointer}
.chat-bookmark-body summary::-webkit-details-marker{display:none}
.chat-bookmark-body[open] summary{display:block}
.chat-bookmark-image{display:block;max-width:min(100%,120px);max-height:120px;margin:0 0 7px;object-fit:contain}
.chat-bookmark-sticker{display:block;max-width:90px;max-height:90px;margin:0 0 7px;object-fit:contain}
.chat-bookmark-card footer{display:flex;align-items:center;justify-content:flex-end;gap:16px}
.chat-bookmark-card footer button{padding:2px 0;border:0;background:none;font-size:9px}
.chat-bookmark-open{color:#666!important}
.chat-bookmark-open:disabled{color:#b9b5b0!important;cursor:default}
.chat-bookmark-remove{color:#aaa6a0!important}
.chat-bookmark-empty{display:grid;justify-items:center;padding:52px 20px;text-align:center}
.chat-bookmark-empty>span{color:#c7c2bc;font:400 38px Georgia,serif}
.chat-bookmark-empty strong{margin-top:9px;color:#77726c;font:400 17px Georgia,serif}
.chat-bookmark-empty p{max-width:230px;margin:10px 0 0;color:#aaa6a0;font-size:10px;line-height:1.7}
.is-online-settings .online-setting-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.is-online-settings .online-setting-tab{font-size:12px}.message-selection-bar{gap:4px}

/* Briefly marks the online message opened from Favorites. */
.conversation [data-message-index].chat-jump-highlight{position:relative;isolation:isolate}
.conversation [data-message-index].chat-jump-highlight::after{position:absolute;inset:0;z-index:2;border-radius:10px;background:#e2e2e2;content:"";pointer-events:none;animation:chat-jump-flash 2.6s ease-in-out both}
@keyframes chat-jump-flash{0%,8%,46%,82%,100%{opacity:0}18%,32%,56%,70%{opacity:.55}}

.novel-contract-list-head p{font-size:12px;line-height:1.7;color:#777;margin:18px 0 4px}.novel-contract-back{border:0;background:none;color:#666;font-size:12px;padding:16px 0;cursor:pointer}.novel-contract-paper{background:#fff;border:1px solid #e6e2db;box-shadow:0 5px 20px #0000000a;padding:24px 22px;margin-bottom:18px;color:#444}.novel-contract-paper>small{font-size:10px;letter-spacing:1px;color:#999}.novel-contract-paper h3{text-align:center;font-size:19px;font-weight:500;margin:18px 0 24px}.novel-contract-paper h4{font-size:12px;margin:24px 0 8px;border-bottom:1px solid #eee;padding-bottom:7px}.novel-contract-paper p{font-size:12px;line-height:1.9;margin:0}.novel-contract-intro{padding-bottom:15px;border-bottom:1px solid #eee}.novel-contract-role{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f2f2f2;font-size:11px}.novel-contract-role span{text-align:right;color:#777}.novel-contract-paper .novel-contract-note{margin-top:24px;color:#999;font-size:10px}.novel-contract>.novel-primary{width:100%;padding:12px;margin-bottom:20px;border-radius:10px}

.novel-price-offer{padding:18px 0}.novel-price-offer>small{font-size:12px}.novel-price-quote{display:flex;align-items:center;width:100%;gap:12px;margin-top:10px;padding:16px;border:1px solid #e7e4df;border-radius:12px;background:#fff;text-align:left;cursor:pointer}.novel-price-quote span{font-size:11px;color:#888}.novel-price-quote strong{margin-left:auto;font-size:23px;font-weight:500;color:#333}.novel-price-quote i{font-size:22px;font-style:normal;color:#aaa}

.novel-company-scores{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.novel-company-scores span{padding:5px 8px;border:1px solid #e8e5df;border-radius:6px;color:#666;font-size:11px}.novel-project-head>small{display:block;margin-top:6px;font-size:10px;color:#888}
.novel-screen-progress{box-sizing:border-box;display:block;width:100%;height:16px;margin:8px 0 0;padding:6px 0;border:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer}
.novel-screen-progress::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(to right,#766b89 0 var(--novel-progress,0%),#e5e2e9 var(--novel-progress,0%) 100%)}
.novel-screen-progress::-moz-range-track{height:4px;border-radius:999px;background:#e5e2e9}
.novel-screen-progress::-moz-range-progress{height:4px;border-radius:999px;background:#766b89}
.novel-screen-progress::-webkit-slider-thumb{width:12px;height:12px;margin-top:-4px;border:2px solid #fff;border-radius:50%;background:#766b89;box-shadow:0 1px 5px #0003;appearance:none;-webkit-appearance:none}
.novel-screen-progress::-moz-range-thumb{width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#766b89;box-shadow:0 1px 5px #0003}
.novel-screen-progress:focus-visible{outline:2px solid #766b89;outline-offset:2px;border-radius:6px}
.novel-screen-progress:disabled{opacity:.45;cursor:default}
.novel-screen-next-step{padding:18px;margin:18px 0;border:1px solid #e8e5eb;border-radius:12px;background:#faf9fb}
.novel-screen-next-step h3{margin:0 0 8px;color:#56505c;font-size:13px;font-weight:500}
.novel-screen-next-step p{margin:0;color:#817d86;font-size:11px;line-height:1.7}
.novel-screen-next-step>.novel-primary{margin-top:14px}
.novel-screen-next-step .novel-screen-generate{margin:15px 0 0;flex-wrap:wrap;gap:12px}
.novel-screen-next-step .novel-screen-generate .novel-primary{padding:10px 15px;border-radius:8px}
.novel-project-fixed>.novel-screen{flex:none;margin:4px 0 2px}
.novel-project-fixed>.novel-screen-tabs{margin-top:5px}
.novel-project-fixed>.novel-episode-grid{flex:none;margin:5px 0 0;padding:0 0 7px;border-bottom:1px solid #eee;gap:4px 10px}
.novel-project-fixed>.novel-episode-grid button{padding:6px 0;font-size:10px}
.novel-danmu-action{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:16px 0;padding:14px;border:1px solid #eee;border-radius:10px;background:#fafafa}
.novel-danmu-action p{flex-basis:100%;margin:0;color:#888;font-size:11px;line-height:1.6}
.novel-danmu-action .novel-primary{padding:9px 13px;border-radius:8px}
.novel-danmu-action small{color:#999;font-size:10px}
.novel-screen-transport{gap:8px;padding-top:8px}
.novel-screen-transport>.novel-screen-play{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#5f566d;color:#fff;font-size:20px;line-height:1}
.novel-screen-transport>.novel-screen-skip{display:grid;place-items:center;flex:none;width:26px;height:28px;padding:0;border:0;background:transparent;color:#696273;font-size:18px;line-height:1}
.novel-screen-transport>.novel-screen-skip:disabled{opacity:.3}
.novel-screen-danmu{inset:25px 0 46px;height:auto;overflow:hidden}
.novel-danmu{top:calc(var(--danmu-lane) * 24px);font-size:var(--danmu-size,12px);line-height:21px;font-weight:600;text-shadow:0 1px 2px #000,0 0 5px #0009;animation-name:novel-danmu-fly;animation-timing-function:linear;animation-fill-mode:both}
@media(max-width:360px){.novel-screen-transport{gap:5px}.novel-screen-transport>.novel-screen-play{width:29px;height:29px}.novel-screen-transport>.novel-screen-skip{width:23px;font-size:16px}}
.novel-screen-transport>.novel-screen-play{width:38px;height:38px;border:1px solid #dad7df;border-radius:50%;background:#fff;color:#45414a;box-shadow:0 2px 8px #25202c16;transition:background .16s,border-color .16s,transform .16s}
.novel-screen-transport>.novel-screen-play:hover{background:#f5f3f7;border-color:#c3bdcb;transform:scale(1.04)}
.novel-screen-transport>.novel-screen-play:active{transform:scale(.96)}
.novel-screen-play svg{display:block;width:20px;height:20px}
.novel-screen-play .novel-icon-pause,.novel-screen-play[data-playing="true"] .novel-icon-play{display:none}
.novel-screen-play[data-playing="true"] .novel-icon-pause{display:block}
.novel-screen-transport>.novel-screen-play:focus-visible{outline:2px solid #6b6174;outline-offset:3px}
@keyframes novel-danmu-fly{from{transform:translateX(0)}to{transform:translateX(calc(-100% - var(--danmu-width,300px)))}}
.novel-screen-danmu{inset:20px 0 40px}
.novel-danmu{top:calc(var(--danmu-lane) * 23px);font-size:var(--danmu-size,12px);line-height:21px}
.novel-screen-danmu{inset:14px 0 24px}
.novel-danmu{top:calc(var(--danmu-lane) * 19px);line-height:18px;text-shadow:0 1px 2px #000,0 0 4px #000b}
.novel-screen-caption{z-index:5;inset:auto 8px 7px;padding:24px 8px 4px;background:linear-gradient(transparent,rgba(0,0,0,.7));border-radius:5px}


.novel-project-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
.novel-project-title-row h2{flex:1;min-width:0}
.novel-project-title-row>.novel-primary{flex:none;margin-left:auto;padding:5px 0;color:#68606f;font-size:11px;white-space:nowrap}

.novel-editor>.novel-editor-actions{justify-content:flex-end}

/* Novel character planning and relationship map. */
.novel-story-setup{margin:24px 0;padding:18px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}
.novel-story-setup>header,.novel-story-person-editor>header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.novel-story-setup h3{margin:0;color:#6d6570;font-size:12px;font-weight:500}
.novel-story-setup>header>div{display:flex;gap:15px;flex-wrap:wrap}
.novel-story-setup [data-tone="lead"]{--story-color:#d66976;--story-tint:#fff2f3}
.novel-story-setup [data-tone="connection"],.novel-story-setup [data-tone="cooperation"]{--story-color:#9b7cc0;--story-tint:#f8f3fd}
.novel-story-setup [data-tone="tension"]{--story-color:#6b99c9;--story-tint:#f0f7ff}
.novel-story-setup [data-tone="romance"],.novel-story-setup [data-tone="love"]{--story-color:#dc92b9;--story-tint:#fff3fa}
.novel-story-setup [data-tone="family"]{--story-color:#bd9a64;--story-tint:#fcf7ee}
.novel-story-setup [data-tone="support"],.novel-story-setup [data-tone="other"]{--story-color:#aaa5ae;--story-tint:#f6f5f7}
.novel-relationship-legend{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:15px 0 0;color:#9b949d;font-size:9px}
.novel-relationship-legend>span{display:inline-flex;align-items:center;gap:5px}
.novel-relationship-legend>span:before{content:"";width:7px;height:7px;border:2px solid var(--story-color);border-radius:50%;box-sizing:border-box}
.novel-relationship-map{position:relative;width:100%;height:340px;margin:4px 0 12px;isolation:isolate;background:radial-gradient(ellipse at center,#faf8fb 0,transparent 68%)}
.novel-relationship-map>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.novel-relationship-map line{stroke:var(--story-color,#c7c1cd);stroke-width:1;stroke-opacity:.55;vector-effect:non-scaling-stroke}
.novel-relationship-map text{fill:var(--story-color,#a99faf);font-size:15px;stroke:#fff;stroke-width:6px;stroke-linejoin:round;paint-order:stroke fill}
.novel-story-node{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;width:80px;transform:translate(-50%,-50%);padding:3px 0!important;border:0!important;background:transparent;text-align:center;line-height:1.4;z-index:1;color:#766e7b}
.novel-story-avatar{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;border:2px solid var(--story-color,#aaa5ae);border-radius:50%;background:var(--story-tint,#f6f5f7);color:var(--story-color,#aaa5ae);font-size:13px;font-weight:500;box-shadow:0 0 0 4px #fff}
.novel-story-node>strong{max-width:80px;padding:0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#fff;font-size:11px;font-weight:500}
.novel-story-node>small{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a79faa;background:#fff;font-size:9px}
.novel-story-node[aria-pressed="true"] .novel-story-avatar{outline:1px solid var(--story-color);outline-offset:4px}
.novel-story-node:focus-visible{outline:1px dashed var(--story-color);outline-offset:4px;border-radius:8px}
.novel-relationship-accessible{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.novel-story-person-editor{padding:14px 0 2px;border-top:1px solid #f0ecf2}
.novel-story-person-editor>header strong{color:#8d8095;font-size:10px;font-weight:400}
.novel-story-person-editor label{margin:10px 0}
.novel-story-person-editor .novel-field-pair{gap:18px}
.novel-story-relation-editor{padding:10px 0;color:#8e8497}
.novel-story-relation-editor>summary,.novel-story-identities>summary{font-size:10px;cursor:pointer}
.novel-story-relation-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 0;border-bottom:1px solid #f1edf4}
.novel-story-relation-row>input{grid-row:2;grid-column:1/4;margin:0;padding:6px 0;font-size:10px}
.novel-story-relation-row>button{grid-column:4;grid-row:1/3;font-size:9px}
.novel-story-relation-row>select{margin:0;font-size:10px}
.novel-story-relation-editor>.novel-action{margin-top:12px}
.novel-story-identities article{padding:10px 0;border-bottom:1px solid #f2eef4}
.novel-story-identities article>strong{font-weight:500;font-size:11px}
.novel-story-identities article>p{margin:5px 0;font-size:10px;line-height:1.8;white-space:pre-wrap}
@media(max-width:380px){.novel-story-setup>header>div{gap:12px}.novel-relationship-map{height:345px}.novel-story-avatar{width:38px;height:38px;font-size:11px}.novel-story-node{width:68px}.novel-story-node>strong{max-width:68px;font-size:10px}.novel-story-node>small{font-size:8px}}

.novel-story-identities article:focus{outline:0;background:#faf7fc}

.novel-relationship-map[data-count="1"]{height:150px}
.novel-relationship-map[data-count="2"]{height:240px}

.novel-source-update{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;color:#999;font-size:10px}
.novel-source-update>.novel-action{flex:none;white-space:nowrap}

/* Episode revisions: a small entry beside the title and an on-demand panel. */
.novel-screen-version-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.novel-screen-version-row>.novel-screen-episode-title{flex:1;min-width:0}
.novel-screen-version-row>.novel-action{flex:none;margin-top:5px;white-space:nowrap;font-size:10px}
.novel-version-preview-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 0 1px;color:#9a839e;font-size:9px}
.novel-version-preview-status>span{margin-right:auto}
.novel-version-preview-status>button{padding:3px 0;border-bottom:1px solid #ded5e3;font-size:9px;color:#786a81;white-space:nowrap}
.novel-version-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 24px));max-height:min(84dvh,740px);margin:auto;padding:0;border:1px solid #e9e4ec;border-radius:16px;background:#fff;color:#756d7c;overflow:hidden;box-shadow:0 18px 70px #0002}
.novel-version-dialog[open]{display:flex;flex-direction:column}
.novel-version-dialog::backdrop{background:#27212c55;backdrop-filter:blur(3px)}
.novel-version-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:18px 20px 14px;border-bottom:1px solid #efebf1}
.novel-version-dialog>header>div{min-width:0}
.novel-version-dialog>header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#aaa0b0}
.novel-version-dialog h2{margin:4px 0 0;font-size:16px;font-weight:400;color:#5d5365}
.novel-version-dialog>header>button{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:#f6f3f7;color:#998da2;font-size:21px}
.novel-version-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 20px 20px;font-size:11px;line-height:1.8}
.novel-version-body button{font:inherit;color:#7e6f88;cursor:pointer}
.novel-version-body button:disabled{opacity:.4;cursor:default}
.novel-version-tools,.novel-version-ready{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;font-size:10px}
.novel-version-tools>small{color:#aaa0af;font-size:9px}
.novel-version-tools>button,.novel-version-ready>button{flex:none;padding:4px 0;border-bottom:1px solid #ded6e4;white-space:nowrap;font-size:10px}
.novel-version-ready{color:#8a7694;border-bottom:1px solid #eee8f2}
.novel-version-item{padding:16px 0;border-bottom:1px solid #efeaf2}
.novel-version-item:last-child{border-bottom:0}
.novel-version-item>header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.novel-version-item>header>strong{color:#66576f;font-size:13px;font-weight:500}
.novel-version-item>header>span{color:#9c8ba7;font-size:9px}
.novel-version-item time{margin-left:auto;color:#b3aab8;font-size:9px}
.novel-version-item>p{margin:5px 0 8px;font-size:10px;color:#9a8fa2}
.novel-version-item details{font-size:10px;color:#9a8fa2}
.novel-version-item summary{cursor:pointer;max-width:max-content}
.novel-version-item details>p{white-space:pre-wrap;overflow-wrap:anywhere}
.novel-version-item footer,[data-retake-form]>footer{display:flex;justify-content:flex-end;align-items:center;gap:18px;padding-top:12px}
.novel-version-item footer>button,[data-retake-form]>footer>button{padding:5px 0;border-bottom:1px solid #ded6e4;font-size:10px;white-space:nowrap}
.novel-version-item footer>button:disabled{border-bottom-color:transparent}
.novel-version-comparison{padding:6px 0;color:#9a8da3;font-size:10px}
.novel-version-comparison p{margin:5px 0;overflow-wrap:anywhere}
.novel-version-comparison article{padding:8px 0;border-top:1px solid #f1edf4}
.novel-version-job,.novel-version-error{margin:12px 0;padding:8px 0;border-bottom:1px solid #ece5f0;font-size:10px;line-height:1.8;color:#9b829f}
.novel-version-error{color:#a97785}
[data-retake-form] .novel-hint{margin:12px 0 18px;font-size:10px}
[data-retake-form] fieldset{min-width:0;margin:0;padding:0;border:0}
[data-retake-form] legend{padding:0;color:#a194aa;font-size:10px}
.novel-retake-focuses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:14px 0 20px}
.novel-retake-focuses label{display:flex;align-items:center;gap:7px;color:#8b7b95;font-size:11px}
.novel-retake-focuses input{accent-color:#97839f}
.novel-retake-label{display:block;margin:16px 0;color:#a194aa;font-size:10px}
.novel-retake-label>select,.novel-retake-label>textarea{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:8px 0;border:0;border-bottom:1px solid #e8e1ed;border-radius:0;background:transparent;color:#75677e;font:inherit;font-size:11px;line-height:1.9;resize:vertical}
.novel-version-api-note{display:block;margin-top:10px;text-align:right;color:#b4a9bb;font-size:9px}
.novel-version-review-select{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 18px;color:#a093aa;font-size:10px}
.novel-version-review-select>label{display:flex;align-items:center;gap:8px}
.novel-version-review-select select{max-width:190px;padding:5px 0;border:0;border-bottom:1px solid #e8e1ed;border-radius:0;background:transparent;color:#81718c;font:inherit}
.novel-version-review-select>small{font-size:9px;color:#b5aabd}
@media(max-width:600px){.novel-version-dialog{margin:auto auto max(12px,env(safe-area-inset-bottom,0px))}.novel-version-dialog>header{padding:17px 18px 13px}.novel-version-body{padding-inline:18px}}

.group-chat-history-control{display:block;flex:none;width:max-content;max-width:100%;margin:7px auto 13px;padding:7px 12px;border:0;border-radius:14px;background:#f5f3f6;color:#a197a8;font-size:10px;line-height:1.6;text-align:center;cursor:pointer}
.group-chat-thread{overflow-anchor:auto}

.appearance-target-picker .appearance-role-person{display:flex;min-width:0;flex-direction:column;align-items:center;gap:8px;padding:0;color:#777;font-size:10px}.appearance-target-picker .appearance-role-person>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appearance-target-picker .appearance-role-person-image{position:relative;display:block}.appearance-target-picker .appearance-role-person .avatar{width:48px;height:48px;margin:0;border:1px solid #eee;border-radius:50%;overflow:hidden;font-size:18px}.appearance-target-picker .appearance-role-person img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.appearance-target-picker .appearance-role-person i{display:none;position:absolute;right:-2px;bottom:-1px;width:17px;height:17px;border:2px solid #fff;border-radius:50%;background:#222;color:#fff;font:normal 10px/13px sans-serif;text-align:center}.appearance-target-picker .appearance-role-person[aria-pressed="true"] i{display:block}.appearance-target-picker .appearance-role-person[aria-pressed="true"] .avatar{border-color:#444}.appearance-target-picker .appearance-role-person[aria-pressed="true"]{color:#333}
.appearance-target-picker .appearance-selection-heart svg{display:block;width:9px;height:9px;margin:2px auto;fill:currentColor;stroke:none}
.appearance-target-picker [aria-pressed="true"] .appearance-selection-heart{background:#222;color:#fff}


/* Proactive contact follows the quiet, divided settings rows. */
.proactive-preference{min-width:0}.proactive-preference .more-main-toggle>span,.proactive-preference .group-preference-switch>span{min-width:0}.proactive-options{padding-top:5px}.proactive-field-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:17px 0 10px;color:#666;font-size:11px}.proactive-field-heading>small{color:#aaa;font-size:9px;font-weight:400}
.proactive-native-frequency{display:none!important}.proactive-frequency{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:3px;background:#f5f5f5;border-radius:9px}.proactive-frequency>button{display:grid;justify-items:center;align-content:center;gap:4px;min-width:0;min-height:53px;padding:9px 3px;border:0;border-radius:7px;background:transparent;color:#999;font:inherit;cursor:pointer}.proactive-frequency>button>span{font-size:11px}.proactive-frequency>button>small{font-size:9px;line-height:1.4;color:inherit;opacity:.8}.proactive-frequency>button[aria-pressed="true"]{background:#fff;color:#444;box-shadow:0 1px 4px #00000009}.proactive-frequency>button:focus-visible{outline:1px solid #888;outline-offset:1px}
.proactive-preference .proactive-invitation-options>.settings-switch-row{min-height:41px;padding:8px 0;border:0;border-bottom:1px solid #f1f1f1}.proactive-preference .proactive-invitation-options>.settings-switch-row:last-child{border-bottom:0}.proactive-preference .proactive-spending{padding:14px 0 8px;border-top:1px solid #eee}.proactive-preference .proactive-spending strong{font-size:11px;font-weight:400}.proactive-preference .proactive-spending small{margin-top:4px;color:#aaa;font-size:9px}.proactive-explanation{margin-top:9px;padding:5px 0 0;border:0}.proactive-explanation>summary{width:max-content;cursor:pointer;color:#aaa;font-size:10px;line-height:1.8}.proactive-explanation>p{margin:7px 0;color:#999;font-size:10px;line-height:1.9}.proactive-group{padding:0 0 17px;margin-bottom:4px;border-bottom:1px solid #eee}.group-preference-section .proactive-group>label{margin:0}.proactive-group .proactive-frequency>button{width:auto;margin:0;border:0}.proactive-group .proactive-explanation>summary{padding:0;display:list-item;list-style:disclosure-closed}.proactive-group .proactive-explanation[open]>summary{list-style:disclosure-open}.proactive-group .proactive-explanation>summary::after{display:none}
.activity-invite-card{display:grid;gap:14px;width:230px;max-width:100%;padding:14px;border:1px solid #e9e9e9;border-radius:11px;background:var(--surface,#fff);color:inherit;text-align:left}.activity-invite-heading{display:flex;align-items:center;gap:11px;min-width:0}.activity-invite-symbol{display:grid;place-items:center;flex:none;width:35px;height:44px;border:1px solid #e7e7e7;border-radius:4px;background:#f6f6f6;color:#888}.activity-invite-symbol>svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2}.activity-invite-heading>div{display:grid;gap:5px;min-width:0}.activity-invite-heading small{color:#aaa;font-size:9px;line-height:1.4}.activity-invite-heading strong{font-size:13px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}.activity-invite-card>footer{display:flex;align-items:center;gap:16px;padding-top:11px;border-top:1px solid #eee}.activity-invite-card button{border:0;font:inherit;font-size:10px;cursor:pointer}.activity-invite-card .activity-invite-primary{display:flex;align-items:center;gap:12px;padding:7px 12px;border-radius:6px;background:#444;color:#fff}.activity-invite-card .activity-invite-secondary{padding:6px 0;background:transparent;color:#999}.activity-invite-status{margin-right:auto;color:#aaa;font-size:10px}

.proactive-frequency{grid-template-columns:repeat(4,minmax(0,1fr))}.proactive-preference .proactive-custom-time{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:12px 0 0;padding:0;color:#999;font-size:10px}.proactive-preference .proactive-custom-time>span:first-child{margin-right:auto;color:#777}.proactive-preference .proactive-custom-time>input{box-sizing:border-box;width:76px;min-width:0;margin:0;padding:7px 9px;border:1px solid #e8e8e8;border-radius:6px;background:#fff;color:#555;font-size:12px;text-align:center}.proactive-preference .proactive-custom-time[hidden]{display:none!important}
/* Keep proactive controls at the same quiet scale as surrounding More rows. */
.is-online-settings .proactive-preference,.group-preference-section .proactive-preference{font-size:10px;line-height:1.6}
.is-online-settings .proactive-preference .more-main-toggle strong,.group-preference-section .proactive-preference .group-preference-switch strong{font-size:11px;font-weight:500;line-height:1.6}
.is-online-settings .proactive-preference .more-main-toggle small,.group-preference-section .proactive-preference .group-preference-switch small{font-size:9px;line-height:1.7;color:#aaa}
.proactive-preference .proactive-field-heading{margin:14px 0 8px;font-size:10px;line-height:1.6}.proactive-preference .proactive-field-heading>small{font-size:8px}
.proactive-preference .proactive-frequency>button{min-height:45px;gap:3px;padding:7px 2px}.proactive-preference .proactive-frequency>button>span{font-size:10px;line-height:1.4;font-weight:400}.proactive-preference .proactive-frequency>button>small{font-size:8px;line-height:1.4}
.is-online-settings .proactive-preference .proactive-invitation-options>.settings-switch-row{min-height:35px;padding:6px 0}.is-online-settings .proactive-preference .proactive-invitation-options>.settings-switch-row>span{font-size:10px;line-height:1.6}
.is-online-settings .proactive-preference .proactive-spending strong{font-size:10px;line-height:1.6;font-weight:400}.is-online-settings .proactive-preference .proactive-spending small{font-size:9px;line-height:1.7}
.proactive-preference .proactive-custom-time{gap:7px;font-size:9px}.proactive-preference .proactive-custom-time>input{width:66px;padding:6px 8px;font-size:10px;line-height:1.5}
.is-online-settings .proactive-preference .proactive-explanation>summary,.group-preference-section .proactive-preference .proactive-explanation>summary{font-size:9px;font-weight:400;line-height:1.7}.is-online-settings .proactive-preference .proactive-explanation>p,.group-preference-section .proactive-preference .proactive-explanation>p{font-size:9px;font-weight:400;line-height:1.8;color:#999}


.proactive-background{margin-top:17px;padding-top:15px;border-top:1px solid #eee;font-size:10px}.bg-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#666;font-size:10px}.bg-state{display:flex;align-items:center;gap:5px;font-size:8px;font-weight:400;color:#aaa}.bg-state::before{content:"";width:4px;height:4px;border-radius:50%;background:#d4d4d4}.bg-state.is-on::before{background:#8caa94}
.bg-caption,.bg-consent,.bg-feedback{margin:6px 0 0;color:#aaa;font-size:9px;line-height:1.8}.bg-consent{max-width:280px}.bg-feedback{color:#999}.bg-feedback.is-error{color:#a47f7f}.bg-actions{display:flex;align-items:center;gap:17px;margin-top:12px}.bg-actions>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;margin:0;cursor:pointer;font:inherit;font-size:10px}.bg-actions>.bg-test-button{padding:7px 10px;border:0;border-radius:6px;background:#4b4b4b;color:#fff}.bg-actions>.bg-test-button svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.bg-actions>.bg-stop-button{padding:6px 0;border:0;border-radius:0;background:transparent;color:#aaa}.bg-actions>button:disabled{opacity:.45;cursor:default}
.proactive-background .bg-preferences{margin-top:13px;border:0;border-top:1px solid #f0f0f0;padding-top:10px}.proactive-background .bg-preferences>summary{display:flex;align-items:center;gap:9px;padding:0;list-style:none;color:#888;font-size:9px;font-weight:400;line-height:1.8;cursor:pointer}.proactive-background .bg-preferences>summary::-webkit-details-marker{display:none}.proactive-background .bg-preferences>summary>small{margin-left:auto;font-size:8px;color:#bbb}.proactive-background .bg-preferences>summary::after{content:"";width:4px;height:4px;border:solid #bbb;border-width:0 1px 1px 0;transform:rotate(45deg);margin:0 2px 3px}.proactive-background .bg-preferences[open]>summary::after{transform:rotate(225deg);margin-top:4px}.bg-settings-body{padding-top:5px}
.is-online-settings .proactive-background .settings-switch-row{min-height:34px;margin:0;padding:7px 0;border:0;border-bottom:1px solid #f3f3f3}.is-online-settings .proactive-background .settings-switch-row>span{font-size:10px;line-height:1.6}.proactive-quiet-times{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:9px 0 12px;font-size:9px;color:#bbb}.proactive-quiet-times>input{box-sizing:border-box;min-width:0;width:89px;margin:0;padding:5px 6px;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#888;font-size:10px;text-align:center}.proactive-quiet-times[hidden]{display:none!important}
.bg-privacy{margin-top:12px}.is-online-settings .bg-privacy>p{margin:6px 0;color:#aaa;font-size:9px;line-height:1.85}.proactive-background .bg-connection{margin-top:10px;border:0;padding:0}.proactive-background .bg-connection>summary{display:list-item;width:max-content;padding:0;color:#aaa;font-size:9px;line-height:1.8;list-style:disclosure-closed;cursor:pointer}.proactive-background .bg-connection[open]>summary{list-style:disclosure-open}.proactive-background .bg-connection>summary::after{display:none}.proactive-service-address{display:block!important;margin:7px 0 0}.proactive-service-address>input{box-sizing:border-box;min-width:0;width:100%;padding:6px 0;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;background:transparent;color:#999;font-size:9px}

.is-online-settings .incoming-video-preference .more-main-toggle strong{font-size:11px;font-weight:500;line-height:1.6}.is-online-settings .incoming-video-preference .more-main-toggle small{font-size:9px;line-height:1.7;color:#aaa}.incoming-video-frequency{margin:3px 0 16px;min-width:0}.incoming-video-frequency .proactive-field-heading{margin:13px 0 8px;font-size:10px}.incoming-video-frequency .proactive-field-heading>small{font-size:8px}.incoming-video-frequency .proactive-frequency{width:100%;box-sizing:border-box;grid-template-columns:repeat(3,minmax(0,1fr))}.incoming-video-frequency .proactive-frequency>button{min-height:45px;padding:7px 3px;gap:3px}.incoming-video-frequency .proactive-frequency>button>span{font-size:10px;line-height:1.4;white-space:nowrap}.incoming-video-frequency .proactive-frequency>button>small{font-size:8px;line-height:1.4;white-space:nowrap}.is-online-settings .incoming-video-preference .incoming-frequency-note{margin:8px 0 0;color:#aaa;font-size:9px;font-weight:400;line-height:1.8}

.contact-settings-heading{gap:14px}.contact-settings-fold{display:flex;flex:1;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit}.contact-settings-fold>span{min-width:0}.contact-settings-fold>b{flex:none;font-size:12px;font-weight:400;color:#aaa;transition:transform .15s}.contact-settings-fold[aria-expanded="true"]>b{transform:rotate(180deg)}.contact-settings-fold:disabled{opacity:1;cursor:default}.contact-settings-fold:disabled>b{visibility:hidden}.contact-settings-switch{display:flex!important;flex:none;align-items:center;margin:0;padding:6px 0 6px 6px;cursor:pointer}.contact-settings-body[hidden]{display:none!important}.contact-settings-fold:focus-visible{outline:1px solid #aaa;outline-offset:4px;border-radius:3px}.contact-settings-switch:focus-within i{outline:1px solid #888;outline-offset:3px}
